From 575540c84c2e061c66b1a97b2e51cec170e92a30 Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Tue, 9 Jul 2024 17:32:31 -0700 Subject: [PATCH 01/21] REFACTOR: the world does not need Camel, life is short, and let snakes be everywhere --- barstools/src/barstools/converter.py | 22 +- example/char-rnn/runtime_test_c/char-rnn.c | 4 +- example/char-rnn/runtime_test_c/model.h | 4 +- example/char-rnn/runtime_test_c/nn.h | 8 +- example/char-rnn/runtime_test_np/model.py | 4 +- example/char-rnn/runtime_test_np/nn.py | 2 +- example/diffuse-loco/model.h | 46 +- example/fast-depth/model.h | 854 ++++++++++----------- example/llama2/main.c | 4 +- example/mlp/model.h | 46 +- example/mnist/main.c | 20 +- example/ppo/main.c | 26 +- example/simple/main.c | 8 +- example/stereo-block-matching/main.c | 26 +- nn/CMakeLists.txt | 2 +- nn/inc/nn.h | 2 +- nn/inc/nn_abs.h | 2 +- nn/inc/nn_add.h | 12 +- nn/inc/nn_batchnorm2d.h | 2 +- nn/inc/nn_clip.h | 2 +- nn/inc/nn_conv2d.h | 12 +- nn/inc/nn_elu.h | 4 +- nn/inc/nn_layernorm.h | 2 +- nn/inc/nn_linear.h | 2 +- nn/inc/nn_math.h | 2 +- nn/inc/nn_matmul.h | 2 +- nn/inc/nn_matrixnorm.h | 20 - nn/inc/nn_maxpool2d.h | 2 +- nn/inc/nn_neg.h | 2 +- nn/inc/nn_norm.h | 18 + nn/inc/nn_print.h | 4 +- nn/inc/nn_relu.h | 4 +- nn/inc/nn_relu6.h | 4 +- nn/inc/nn_softmax.h | 2 +- nn/inc/nn_sub.h | 8 +- nn/inc/nn_tensor.h | 20 +- nn/inc/ops/abs.h | 10 +- nn/inc/ops/acc.h | 4 +- nn/inc/ops/acc1.h | 2 +- nn/inc/ops/add.h | 6 +- nn/inc/ops/add1.h | 2 +- nn/inc/ops/div.h | 2 +- nn/inc/ops/dot.h | 4 +- nn/inc/ops/fill.h | 12 +- nn/inc/ops/log.h | 2 +- nn/inc/ops/max.h | 2 +- nn/inc/ops/maximum.h | 2 +- nn/inc/ops/maximum1.h | 2 +- nn/inc/ops/min.h | 2 +- nn/inc/ops/minimum.h | 2 +- nn/inc/ops/minimum1.h | 2 +- nn/inc/ops/mul.h | 2 +- nn/inc/ops/mul1.h | 2 +- nn/inc/ops/neg.h | 2 +- nn/inc/ops/norm.h | 8 +- nn/inc/ops/rmsnorm.h | 2 +- nn/inc/ops/sgn.h | 2 +- nn/inc/ops/softmax.h | 2 +- nn/inc/ops/sqr.h | 2 +- nn/inc/ops/sqrt.h | 2 +- nn/inc/ops/sub.h | 10 +- nn/inc/ops/sum.h | 6 +- nn/inc/ops/transpose.h | 2 +- nn/nn_todo | 2 +- nn/src/nn_abs.c | 14 +- nn/src/nn_add.c | 32 +- nn/src/nn_attention.c | 6 +- nn/src/nn_batchnorm2d.c | 2 +- nn/src/nn_clip.c | 8 +- nn/src/nn_conv2d.c | 12 +- nn/src/nn_div.c | 4 +- nn/src/nn_elu.c | 8 +- nn/src/nn_fill.c | 8 +- nn/src/nn_interpolate.c | 2 +- nn/src/nn_layernorm.c | 2 +- nn/src/nn_linear.c | 4 +- nn/src/nn_matmul.c | 10 +- nn/src/nn_max.c | 4 +- nn/src/nn_maximum.c | 4 +- nn/src/nn_maxpool2d.c | 2 +- nn/src/nn_min.c | 4 +- nn/src/nn_minimum.c | 4 +- nn/src/nn_mul.c | 8 +- nn/src/nn_neg.c | 6 +- nn/src/{nn_matrixnorm.c => nn_norm.c} | 8 +- nn/src/nn_print.c | 20 +- nn/src/nn_relu.c | 10 +- nn/src/nn_relu6.c | 12 +- nn/src/nn_softmax.c | 10 +- nn/src/nn_sub.c | 38 +- nn/src/nn_sum.c | 8 +- nn/src/nn_tensor.c | 8 +- nn/src/nn_transpose.c | 4 +- nn/src/nn_unfold.c | 16 +- tests/src/generate_test.py | 8 +- tests/src/generated.c | 32 +- tests/src/main_avx.c | 2 +- tests/src/main_fp16.c | 4 +- tests/src/main_matlib.c | 188 ++--- 99 files changed, 907 insertions(+), 909 deletions(-) delete mode 100644 nn/inc/nn_matrixnorm.h create mode 100644 nn/inc/nn_norm.h rename nn/src/{nn_matrixnorm.c => nn_norm.c} (88%) diff --git a/barstools/src/barstools/converter.py b/barstools/src/barstools/converter.py index 42b8027..7598aa7 100644 --- a/barstools/src/barstools/converter.py +++ b/barstools/src/barstools/converter.py @@ -92,7 +92,7 @@ def addDataTensor(self, name, tensor): ) data = TorchConverter.toNumpy(tensor) - self.model_init += INDENT + "NN_initTensor(&model->{name}, {dim}, (size_t[]){{{shape}}}, {dtype}, array_pointer);\n".format( + self.model_init += INDENT + "NN_init_tensor(&model->{name}, {dim}, (size_t[]){{{shape}}}, {dtype}, array_pointer);\n".format( name=name, dim=len(tensor.shape), shape=", ".join(str(x) for x in tensor.shape), @@ -107,7 +107,7 @@ def addOutputTensor(self, name, shape, dtype=torch.float32): self.model_struct += INDENT + "Tensor {name};\n".format( name=name ) - self.model_init += INDENT + "NN_initTensor(&model->{name}, {dim}, (size_t[]){{{shape}}}, {dtype}, NULL);\n".format( + self.model_init += INDENT + "NN_init_tensor(&model->{name}, {dim}, (size_t[]){{{shape}}}, {dtype}, NULL);\n".format( name=name, dim=len(shape), shape=", ".join(str(x) for x in shape), @@ -134,7 +134,7 @@ def placeholder(self, target, args, kwargs): self.model_struct += INDENT + "Tensor {name};\n".format(name=name) - self.model_init += INDENT + "NN_initTensor(&model->{name}, {dim}, (size_t[]){{{shape}}}, DTYPE_F32, NULL);\n".format( + self.model_init += INDENT + "NN_init_tensor(&model->{name}, {dim}, (size_t[]){{{shape}}}, DTYPE_F32, NULL);\n".format( name=name, dim=len(shape), shape=", ".join(str(x) for x in shape) @@ -175,7 +175,7 @@ def call_function(self, target, args, kwargs): elif target == torch.nn.functional.relu: layer_name = "relu_{count}".format(count=count) if count > 0 else "relu" self.model_forward += INDENT + "// F.{layer_name}\n".format(layer_name=layer_name) - self.model_forward += INDENT + "NN_ReLU(&model->{layer_name}, &model->{input_names[0]});\n".format( + self.model_forward += INDENT + "NN_relu(&model->{layer_name}, &model->{input_names[0]});\n".format( layer_name=layer_name, input_names=self.node_info[layer_name][0] ) @@ -183,7 +183,7 @@ def call_function(self, target, args, kwargs): elif target == torch.nn.functional.relu6: layer_name = "relu6_{count}".format(count=count) if count > 0 else "relu6" self.model_forward += INDENT + "// F.{layer_name}\n".format(layer_name=layer_name) - self.model_forward += INDENT + "NN_ReLU6(&model->{layer_name}, &model->{input_names[0]});\n".format( + self.model_forward += INDENT + "NN_relu6(&model->{layer_name}, &model->{input_names[0]});\n".format( layer_name=layer_name, input_names=self.node_info[layer_name][0] ) @@ -234,7 +234,7 @@ def call_module(self, target, args, kwargs): (batch_size, module.out_features) ) - self.model_forward += INDENT + "NN_Linear(&model->{layer_name}, &model->{input_names[0]}, {weight}, {bias});\n".format( + self.model_forward += INDENT + "NN_linear(&model->{layer_name}, &model->{input_names[0]}, {weight}, {bias});\n".format( layer_name=layer_name, input_names=input_names, weight="&model->{layer_name}_weight".format(layer_name=layer_name), @@ -266,7 +266,7 @@ def call_module(self, target, args, kwargs): batch_size = int(output_shape[0]) self.addOutputTensor(layer_name, output_shape) - self.model_forward += INDENT + """NN_BatchNorm2d( + self.model_forward += INDENT + """NN_batch_norm2d( &model->{layer_name}, &model->{input_name[0]}, {weight}, {bias}, {eps}, {running_mean}, {running_var});\n""".format( @@ -294,7 +294,7 @@ def call_module(self, target, args, kwargs): self.addOutputTensor(layer_name, output_shape) - self.model_forward += INDENT + """NN_Conv2d( + self.model_forward += INDENT + """NN_conv2d( &model->{layer_name}, &model->{input_names[0]}, {weight}, {bias}, (size_t[]){{{stride}}}, (size_t[]){{{padding}}}, (size_t[]){{{dilation}}}, {groups});\n""".format( layer_name=layer_name, @@ -309,21 +309,21 @@ def call_module(self, target, args, kwargs): self.prev_layer_name = "{layer_name}".format(layer_name=layer_name) elif type(module) == torch.nn.ReLU: - self.model_forward += INDENT + "NN_ReLU(&model->{layer_name}, &model->{input_names[0]});\n".format( + self.model_forward += INDENT + "NN_relu(&model->{layer_name}, &model->{input_names[0]});\n".format( layer_name=layer_name, input_names=input_names ) self.addOutputTensor(layer_name, output_shape) elif type(module) == torch.nn.ReLU6: - self.model_forward += INDENT + "NN_ReLU6(&model->{layer_name}, &model->{input_names[0]});\n".format( + self.model_forward += INDENT + "NN_relu6(&model->{layer_name}, &model->{input_names[0]});\n".format( layer_name=layer_name, input_names=input_names ) self.addOutputTensor(layer_name, output_shape) elif type(module) == torch.nn.ELU: - self.model_forward += INDENT + "NN_ELU(&model->{layer_name}, &model->{input_names[0]}, {eps});\n".format( + self.model_forward += INDENT + "NN_elu(&model->{layer_name}, &model->{input_names[0]}, {eps});\n".format( layer_name=layer_name, input_names=input_names, eps=module.alpha diff --git a/example/char-rnn/runtime_test_c/char-rnn.c b/example/char-rnn/runtime_test_c/char-rnn.c index a510980..309a977 100644 --- a/example/char-rnn/runtime_test_c/char-rnn.c +++ b/example/char-rnn/runtime_test_c/char-rnn.c @@ -57,7 +57,7 @@ int main() { for (int j=1; j %s\n", str); printf("score: ("); - NN_printFloat(output.data[index], 2); + NN_print_f32(output.data[index], 2); printf("), predicted: (%d, %s)\n", index, categories[index]); } diff --git a/example/char-rnn/runtime_test_c/model.h b/example/char-rnn/runtime_test_c/model.h index 03a3472..b89c5e9 100644 --- a/example/char-rnn/runtime_test_c/model.h +++ b/example/char-rnn/runtime_test_c/model.h @@ -35,9 +35,9 @@ static void forward(Matrix *output, Matrix *hidden, Matrix *input) { // Input Matrix *input_out = input; // Linear - NN_Linear(hidden, &i2h_weight_transposed, &i2h_bias, input_out); + NN_linear(hidden, &i2h_weight_transposed, &i2h_bias, input_out); // Linear - NN_Linear(output, &h2o_weight_transposed, &h2o_bias, hidden); + NN_linear(output, &h2o_weight_transposed, &h2o_bias, hidden); // Log Softmax NN_logSoftmax(output, output); } diff --git a/example/char-rnn/runtime_test_c/nn.h b/example/char-rnn/runtime_test_c/nn.h index 2d843fe..b6fdc01 100644 --- a/example/char-rnn/runtime_test_c/nn.h +++ b/example/char-rnn/runtime_test_c/nn.h @@ -31,7 +31,7 @@ void NN_assert(int condition, char *message) { * These functions assumes that printf is available. */ -void NN_printFloat(float v, int16_t num_digits) { +void NN_print_f32(float v, int16_t num_digits) { int32_t scale = 1; int32_t integer_part, fractional_part; while (num_digits != 0) { @@ -46,14 +46,14 @@ void NN_printFloat(float v, int16_t num_digits) { printf("%i.%i", integer_part, fractional_part); } -void NN_printShape(Matrix *a) { +void NN_print_shape(Matrix *a) { printf("(%d, %d)\n", a->rows, a->cols); } void NN_printMatrix(Matrix *a) { for (size_t i = 0; i < a->rows; i++) { for (size_t j = 0; j < a->cols; j++) { - NN_printFloat(a->data[i * a->cols + j], 2); + NN_print_f32(a->data[i * a->cols + j], 2); printf(" "); } printf("\n"); @@ -128,7 +128,7 @@ size_t NN_argmax(Matrix *a) { * ====== Operators ====== */ -void NN_Linear(Matrix *out, Matrix *weight, Matrix *bias, Matrix *input) { +void NN_linear(Matrix *out, Matrix *weight, Matrix *bias, Matrix *input) { NN_matmul(out, input, weight); NN_matadd(out, out, bias); } diff --git a/example/char-rnn/runtime_test_np/model.py b/example/char-rnn/runtime_test_np/model.py index 667ba68..607fc36 100644 --- a/example/char-rnn/runtime_test_np/model.py +++ b/example/char-rnn/runtime_test_np/model.py @@ -8,9 +8,9 @@ def forward(input): # Input input_out = input # Linear - i2h_out = NN_Linear(input_out, i2h_weight_transposed, i2h_bias) + i2h_out = NN_linear(input_out, i2h_weight_transposed, i2h_bias) # Linear - h2o_out = NN_Linear(i2h_out, h2o_weight_transposed, h2o_bias) + h2o_out = NN_linear(i2h_out, h2o_weight_transposed, h2o_bias) # Log Softmax softmax_out = nn_logsoftmax(h2o_out) return softmax_out, i2h_out diff --git a/example/char-rnn/runtime_test_np/nn.py b/example/char-rnn/runtime_test_np/nn.py index 233a995..1caa9b6 100644 --- a/example/char-rnn/runtime_test_np/nn.py +++ b/example/char-rnn/runtime_test_np/nn.py @@ -1,6 +1,6 @@ import numpy as np -def NN_Linear(input, weight_T, bias): +def NN_linear(input, weight_T, bias): return np.matmul(input, weight_T) + bias def nn_logsoftmax(input): diff --git a/example/diffuse-loco/model.h b/example/diffuse-loco/model.h index 7edefba..7e8021b 100644 --- a/example/diffuse-loco/model.h +++ b/example/diffuse-loco/model.h @@ -41,44 +41,44 @@ void forward(Model *model); void init(Model *model) { float *array_pointer = (float *)model_weight_data; - NN_initTensor(&model->input_1, 2, (size_t[]){1, 48}, DTYPE_F32, NULL); + NN_init_tensor(&model->input_1, 2, (size_t[]){1, 48}, DTYPE_F32, NULL); // : actor_0 - NN_initTensor(&model->actor_0_weight, 2, (size_t[]){512, 48}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->actor_0_weight, 2, (size_t[]){512, 48}, DTYPE_F32, array_pointer); array_pointer += 24576; - NN_initTensor(&model->actor_0_bias, 1, (size_t[]){512}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->actor_0_bias, 1, (size_t[]){512}, DTYPE_F32, array_pointer); array_pointer += 512; - NN_initTensor(&model->actor_0, 2, (size_t[]){1, 512}, DTYPE_F32, NULL); + NN_init_tensor(&model->actor_0, 2, (size_t[]){1, 512}, DTYPE_F32, NULL); // : actor_1 - NN_initTensor(&model->actor_1, 2, (size_t[]){1, 512}, DTYPE_F32, NULL); + NN_init_tensor(&model->actor_1, 2, (size_t[]){1, 512}, DTYPE_F32, NULL); // : actor_2 - NN_initTensor(&model->actor_2_weight, 2, (size_t[]){256, 512}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->actor_2_weight, 2, (size_t[]){256, 512}, DTYPE_F32, array_pointer); array_pointer += 131072; - NN_initTensor(&model->actor_2_bias, 1, (size_t[]){256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->actor_2_bias, 1, (size_t[]){256}, DTYPE_F32, array_pointer); array_pointer += 256; - NN_initTensor(&model->actor_2, 2, (size_t[]){1, 256}, DTYPE_F32, NULL); + NN_init_tensor(&model->actor_2, 2, (size_t[]){1, 256}, DTYPE_F32, NULL); // : actor_3 - NN_initTensor(&model->actor_3, 2, (size_t[]){1, 256}, DTYPE_F32, NULL); + NN_init_tensor(&model->actor_3, 2, (size_t[]){1, 256}, DTYPE_F32, NULL); // : actor_4 - NN_initTensor(&model->actor_4_weight, 2, (size_t[]){128, 256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->actor_4_weight, 2, (size_t[]){128, 256}, DTYPE_F32, array_pointer); array_pointer += 32768; - NN_initTensor(&model->actor_4_bias, 1, (size_t[]){128}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->actor_4_bias, 1, (size_t[]){128}, DTYPE_F32, array_pointer); array_pointer += 128; - NN_initTensor(&model->actor_4, 2, (size_t[]){1, 128}, DTYPE_F32, NULL); + NN_init_tensor(&model->actor_4, 2, (size_t[]){1, 128}, DTYPE_F32, NULL); // : actor_5 - NN_initTensor(&model->actor_5, 2, (size_t[]){1, 128}, DTYPE_F32, NULL); + NN_init_tensor(&model->actor_5, 2, (size_t[]){1, 128}, DTYPE_F32, NULL); // : actor_6 - NN_initTensor(&model->actor_6_weight, 2, (size_t[]){12, 128}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->actor_6_weight, 2, (size_t[]){12, 128}, DTYPE_F32, array_pointer); array_pointer += 1536; - NN_initTensor(&model->actor_6_bias, 1, (size_t[]){12}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->actor_6_bias, 1, (size_t[]){12}, DTYPE_F32, array_pointer); array_pointer += 12; - NN_initTensor(&model->actor_6, 2, (size_t[]){1, 12}, DTYPE_F32, NULL); + NN_init_tensor(&model->actor_6, 2, (size_t[]){1, 12}, DTYPE_F32, NULL); } @@ -87,13 +87,13 @@ void init(Model *model) { * Forward pass of the model */ void forward(Model *model) { - NN_Linear(&model->actor_0, &model->input_1, &model->actor_0_weight, &model->actor_0_bias); - NN_ELU(&model->actor_1, &model->actor_0, 1.0); - NN_Linear(&model->actor_2, &model->actor_1, &model->actor_2_weight, &model->actor_2_bias); - NN_ELU(&model->actor_3, &model->actor_2, 1.0); - NN_Linear(&model->actor_4, &model->actor_3, &model->actor_4_weight, &model->actor_4_bias); - NN_ELU(&model->actor_5, &model->actor_4, 1.0); - NN_Linear(&model->actor_6, &model->actor_5, &model->actor_6_weight, &model->actor_6_bias); + NN_linear(&model->actor_0, &model->input_1, &model->actor_0_weight, &model->actor_0_bias); + NN_elu(&model->actor_1, &model->actor_0, 1.0); + NN_linear(&model->actor_2, &model->actor_1, &model->actor_2_weight, &model->actor_2_bias); + NN_elu(&model->actor_3, &model->actor_2, 1.0); + NN_linear(&model->actor_4, &model->actor_3, &model->actor_4_weight, &model->actor_4_bias); + NN_elu(&model->actor_5, &model->actor_4, 1.0); + NN_linear(&model->actor_6, &model->actor_5, &model->actor_6_weight, &model->actor_6_bias); } diff --git a/example/fast-depth/model.h b/example/fast-depth/model.h index 17b48c5..aa4addb 100644 --- a/example/fast-depth/model.h +++ b/example/fast-depth/model.h @@ -339,737 +339,737 @@ void forward(Model *model); void init(Model *model) { float *array_pointer = (float *)model_weight_data; - NN_initTensor(&model->x, 4, (size_t[]){1, 224, 224, 3}, DTYPE_F32, NULL); + NN_init_tensor(&model->x, 4, (size_t[]){1, 224, 224, 3}, DTYPE_F32, NULL); // : conv0_0 - NN_initTensor(&model->conv0_0_weight, 4, (size_t[]){3, 3, 3, 16}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv0_0_weight, 4, (size_t[]){3, 3, 3, 16}, DTYPE_F32, array_pointer); array_pointer += 432; - NN_initTensor(&model->conv0_0, 4, (size_t[]){1, 112, 112, 16}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv0_0, 4, (size_t[]){1, 112, 112, 16}, DTYPE_F32, NULL); // : conv0_1 - NN_initTensor(&model->conv0_1_weight, 1, (size_t[]){16}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv0_1_weight, 1, (size_t[]){16}, DTYPE_F32, array_pointer); array_pointer += 16; - NN_initTensor(&model->conv0_1_bias, 1, (size_t[]){16}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv0_1_bias, 1, (size_t[]){16}, DTYPE_F32, array_pointer); array_pointer += 16; - NN_initTensor(&model->conv0_1_running_mean, 1, (size_t[]){16}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv0_1_running_mean, 1, (size_t[]){16}, DTYPE_F32, array_pointer); array_pointer += 16; - NN_initTensor(&model->conv0_1_running_var, 1, (size_t[]){16}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv0_1_running_var, 1, (size_t[]){16}, DTYPE_F32, array_pointer); array_pointer += 16; - NN_initTensor(&model->conv0_1, 4, (size_t[]){1, 112, 112, 16}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv0_1, 4, (size_t[]){1, 112, 112, 16}, DTYPE_F32, NULL); // : conv0_2 - NN_initTensor(&model->conv0_2, 4, (size_t[]){1, 112, 112, 16}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv0_2, 4, (size_t[]){1, 112, 112, 16}, DTYPE_F32, NULL); // : conv1_0 - NN_initTensor(&model->conv1_0_weight, 4, (size_t[]){3, 3, 1, 16}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv1_0_weight, 4, (size_t[]){3, 3, 1, 16}, DTYPE_F32, array_pointer); array_pointer += 144; - NN_initTensor(&model->conv1_0, 4, (size_t[]){1, 112, 112, 16}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv1_0, 4, (size_t[]){1, 112, 112, 16}, DTYPE_F32, NULL); // : conv1_1 - NN_initTensor(&model->conv1_1_weight, 1, (size_t[]){16}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv1_1_weight, 1, (size_t[]){16}, DTYPE_F32, array_pointer); array_pointer += 16; - NN_initTensor(&model->conv1_1_bias, 1, (size_t[]){16}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv1_1_bias, 1, (size_t[]){16}, DTYPE_F32, array_pointer); array_pointer += 16; - NN_initTensor(&model->conv1_1_running_mean, 1, (size_t[]){16}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv1_1_running_mean, 1, (size_t[]){16}, DTYPE_F32, array_pointer); array_pointer += 16; - NN_initTensor(&model->conv1_1_running_var, 1, (size_t[]){16}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv1_1_running_var, 1, (size_t[]){16}, DTYPE_F32, array_pointer); array_pointer += 16; - NN_initTensor(&model->conv1_1, 4, (size_t[]){1, 112, 112, 16}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv1_1, 4, (size_t[]){1, 112, 112, 16}, DTYPE_F32, NULL); // : conv1_2 - NN_initTensor(&model->conv1_2, 4, (size_t[]){1, 112, 112, 16}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv1_2, 4, (size_t[]){1, 112, 112, 16}, DTYPE_F32, NULL); // : conv1_3 - NN_initTensor(&model->conv1_3_weight, 4, (size_t[]){1, 1, 16, 56}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv1_3_weight, 4, (size_t[]){1, 1, 16, 56}, DTYPE_F32, array_pointer); array_pointer += 896; - NN_initTensor(&model->conv1_3, 4, (size_t[]){1, 112, 112, 56}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv1_3, 4, (size_t[]){1, 112, 112, 56}, DTYPE_F32, NULL); // : conv1_4 - NN_initTensor(&model->conv1_4_weight, 1, (size_t[]){56}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv1_4_weight, 1, (size_t[]){56}, DTYPE_F32, array_pointer); array_pointer += 56; - NN_initTensor(&model->conv1_4_bias, 1, (size_t[]){56}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv1_4_bias, 1, (size_t[]){56}, DTYPE_F32, array_pointer); array_pointer += 56; - NN_initTensor(&model->conv1_4_running_mean, 1, (size_t[]){56}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv1_4_running_mean, 1, (size_t[]){56}, DTYPE_F32, array_pointer); array_pointer += 56; - NN_initTensor(&model->conv1_4_running_var, 1, (size_t[]){56}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv1_4_running_var, 1, (size_t[]){56}, DTYPE_F32, array_pointer); array_pointer += 56; - NN_initTensor(&model->conv1_4, 4, (size_t[]){1, 112, 112, 56}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv1_4, 4, (size_t[]){1, 112, 112, 56}, DTYPE_F32, NULL); // : conv1_5 - NN_initTensor(&model->conv1_5, 4, (size_t[]){1, 112, 112, 56}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv1_5, 4, (size_t[]){1, 112, 112, 56}, DTYPE_F32, NULL); // : conv2_0 - NN_initTensor(&model->conv2_0_weight, 4, (size_t[]){3, 3, 1, 56}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv2_0_weight, 4, (size_t[]){3, 3, 1, 56}, DTYPE_F32, array_pointer); array_pointer += 504; - NN_initTensor(&model->conv2_0, 4, (size_t[]){1, 56, 56, 56}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv2_0, 4, (size_t[]){1, 56, 56, 56}, DTYPE_F32, NULL); // : conv2_1 - NN_initTensor(&model->conv2_1_weight, 1, (size_t[]){56}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv2_1_weight, 1, (size_t[]){56}, DTYPE_F32, array_pointer); array_pointer += 56; - NN_initTensor(&model->conv2_1_bias, 1, (size_t[]){56}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv2_1_bias, 1, (size_t[]){56}, DTYPE_F32, array_pointer); array_pointer += 56; - NN_initTensor(&model->conv2_1_running_mean, 1, (size_t[]){56}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv2_1_running_mean, 1, (size_t[]){56}, DTYPE_F32, array_pointer); array_pointer += 56; - NN_initTensor(&model->conv2_1_running_var, 1, (size_t[]){56}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv2_1_running_var, 1, (size_t[]){56}, DTYPE_F32, array_pointer); array_pointer += 56; - NN_initTensor(&model->conv2_1, 4, (size_t[]){1, 56, 56, 56}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv2_1, 4, (size_t[]){1, 56, 56, 56}, DTYPE_F32, NULL); // : conv2_2 - NN_initTensor(&model->conv2_2, 4, (size_t[]){1, 56, 56, 56}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv2_2, 4, (size_t[]){1, 56, 56, 56}, DTYPE_F32, NULL); // : conv2_3 - NN_initTensor(&model->conv2_3_weight, 4, (size_t[]){1, 1, 56, 88}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv2_3_weight, 4, (size_t[]){1, 1, 56, 88}, DTYPE_F32, array_pointer); array_pointer += 4928; - NN_initTensor(&model->conv2_3, 4, (size_t[]){1, 56, 56, 88}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv2_3, 4, (size_t[]){1, 56, 56, 88}, DTYPE_F32, NULL); // : conv2_4 - NN_initTensor(&model->conv2_4_weight, 1, (size_t[]){88}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv2_4_weight, 1, (size_t[]){88}, DTYPE_F32, array_pointer); array_pointer += 88; - NN_initTensor(&model->conv2_4_bias, 1, (size_t[]){88}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv2_4_bias, 1, (size_t[]){88}, DTYPE_F32, array_pointer); array_pointer += 88; - NN_initTensor(&model->conv2_4_running_mean, 1, (size_t[]){88}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv2_4_running_mean, 1, (size_t[]){88}, DTYPE_F32, array_pointer); array_pointer += 88; - NN_initTensor(&model->conv2_4_running_var, 1, (size_t[]){88}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv2_4_running_var, 1, (size_t[]){88}, DTYPE_F32, array_pointer); array_pointer += 88; - NN_initTensor(&model->conv2_4, 4, (size_t[]){1, 56, 56, 88}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv2_4, 4, (size_t[]){1, 56, 56, 88}, DTYPE_F32, NULL); // : conv2_5 - NN_initTensor(&model->conv2_5, 4, (size_t[]){1, 56, 56, 88}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv2_5, 4, (size_t[]){1, 56, 56, 88}, DTYPE_F32, NULL); // : conv3_0 - NN_initTensor(&model->conv3_0_weight, 4, (size_t[]){3, 3, 1, 88}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv3_0_weight, 4, (size_t[]){3, 3, 1, 88}, DTYPE_F32, array_pointer); array_pointer += 792; - NN_initTensor(&model->conv3_0, 4, (size_t[]){1, 56, 56, 88}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv3_0, 4, (size_t[]){1, 56, 56, 88}, DTYPE_F32, NULL); // : conv3_1 - NN_initTensor(&model->conv3_1_weight, 1, (size_t[]){88}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv3_1_weight, 1, (size_t[]){88}, DTYPE_F32, array_pointer); array_pointer += 88; - NN_initTensor(&model->conv3_1_bias, 1, (size_t[]){88}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv3_1_bias, 1, (size_t[]){88}, DTYPE_F32, array_pointer); array_pointer += 88; - NN_initTensor(&model->conv3_1_running_mean, 1, (size_t[]){88}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv3_1_running_mean, 1, (size_t[]){88}, DTYPE_F32, array_pointer); array_pointer += 88; - NN_initTensor(&model->conv3_1_running_var, 1, (size_t[]){88}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv3_1_running_var, 1, (size_t[]){88}, DTYPE_F32, array_pointer); array_pointer += 88; - NN_initTensor(&model->conv3_1, 4, (size_t[]){1, 56, 56, 88}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv3_1, 4, (size_t[]){1, 56, 56, 88}, DTYPE_F32, NULL); // : conv3_2 - NN_initTensor(&model->conv3_2, 4, (size_t[]){1, 56, 56, 88}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv3_2, 4, (size_t[]){1, 56, 56, 88}, DTYPE_F32, NULL); // : conv3_3 - NN_initTensor(&model->conv3_3_weight, 4, (size_t[]){1, 1, 88, 120}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv3_3_weight, 4, (size_t[]){1, 1, 88, 120}, DTYPE_F32, array_pointer); array_pointer += 10560; - NN_initTensor(&model->conv3_3, 4, (size_t[]){1, 56, 56, 120}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv3_3, 4, (size_t[]){1, 56, 56, 120}, DTYPE_F32, NULL); // : conv3_4 - NN_initTensor(&model->conv3_4_weight, 1, (size_t[]){120}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv3_4_weight, 1, (size_t[]){120}, DTYPE_F32, array_pointer); array_pointer += 120; - NN_initTensor(&model->conv3_4_bias, 1, (size_t[]){120}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv3_4_bias, 1, (size_t[]){120}, DTYPE_F32, array_pointer); array_pointer += 120; - NN_initTensor(&model->conv3_4_running_mean, 1, (size_t[]){120}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv3_4_running_mean, 1, (size_t[]){120}, DTYPE_F32, array_pointer); array_pointer += 120; - NN_initTensor(&model->conv3_4_running_var, 1, (size_t[]){120}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv3_4_running_var, 1, (size_t[]){120}, DTYPE_F32, array_pointer); array_pointer += 120; - NN_initTensor(&model->conv3_4, 4, (size_t[]){1, 56, 56, 120}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv3_4, 4, (size_t[]){1, 56, 56, 120}, DTYPE_F32, NULL); // : conv3_5 - NN_initTensor(&model->conv3_5, 4, (size_t[]){1, 56, 56, 120}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv3_5, 4, (size_t[]){1, 56, 56, 120}, DTYPE_F32, NULL); // : conv4_0 - NN_initTensor(&model->conv4_0_weight, 4, (size_t[]){3, 3, 1, 120}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv4_0_weight, 4, (size_t[]){3, 3, 1, 120}, DTYPE_F32, array_pointer); array_pointer += 1080; - NN_initTensor(&model->conv4_0, 4, (size_t[]){1, 28, 28, 120}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv4_0, 4, (size_t[]){1, 28, 28, 120}, DTYPE_F32, NULL); // : conv4_1 - NN_initTensor(&model->conv4_1_weight, 1, (size_t[]){120}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv4_1_weight, 1, (size_t[]){120}, DTYPE_F32, array_pointer); array_pointer += 120; - NN_initTensor(&model->conv4_1_bias, 1, (size_t[]){120}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv4_1_bias, 1, (size_t[]){120}, DTYPE_F32, array_pointer); array_pointer += 120; - NN_initTensor(&model->conv4_1_running_mean, 1, (size_t[]){120}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv4_1_running_mean, 1, (size_t[]){120}, DTYPE_F32, array_pointer); array_pointer += 120; - NN_initTensor(&model->conv4_1_running_var, 1, (size_t[]){120}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv4_1_running_var, 1, (size_t[]){120}, DTYPE_F32, array_pointer); array_pointer += 120; - NN_initTensor(&model->conv4_1, 4, (size_t[]){1, 28, 28, 120}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv4_1, 4, (size_t[]){1, 28, 28, 120}, DTYPE_F32, NULL); // : conv4_2 - NN_initTensor(&model->conv4_2, 4, (size_t[]){1, 28, 28, 120}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv4_2, 4, (size_t[]){1, 28, 28, 120}, DTYPE_F32, NULL); // : conv4_3 - NN_initTensor(&model->conv4_3_weight, 4, (size_t[]){1, 1, 120, 144}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv4_3_weight, 4, (size_t[]){1, 1, 120, 144}, DTYPE_F32, array_pointer); array_pointer += 17280; - NN_initTensor(&model->conv4_3, 4, (size_t[]){1, 28, 28, 144}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv4_3, 4, (size_t[]){1, 28, 28, 144}, DTYPE_F32, NULL); // : conv4_4 - NN_initTensor(&model->conv4_4_weight, 1, (size_t[]){144}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv4_4_weight, 1, (size_t[]){144}, DTYPE_F32, array_pointer); array_pointer += 144; - NN_initTensor(&model->conv4_4_bias, 1, (size_t[]){144}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv4_4_bias, 1, (size_t[]){144}, DTYPE_F32, array_pointer); array_pointer += 144; - NN_initTensor(&model->conv4_4_running_mean, 1, (size_t[]){144}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv4_4_running_mean, 1, (size_t[]){144}, DTYPE_F32, array_pointer); array_pointer += 144; - NN_initTensor(&model->conv4_4_running_var, 1, (size_t[]){144}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv4_4_running_var, 1, (size_t[]){144}, DTYPE_F32, array_pointer); array_pointer += 144; - NN_initTensor(&model->conv4_4, 4, (size_t[]){1, 28, 28, 144}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv4_4, 4, (size_t[]){1, 28, 28, 144}, DTYPE_F32, NULL); // : conv4_5 - NN_initTensor(&model->conv4_5, 4, (size_t[]){1, 28, 28, 144}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv4_5, 4, (size_t[]){1, 28, 28, 144}, DTYPE_F32, NULL); // : conv5_0 - NN_initTensor(&model->conv5_0_weight, 4, (size_t[]){3, 3, 1, 144}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv5_0_weight, 4, (size_t[]){3, 3, 1, 144}, DTYPE_F32, array_pointer); array_pointer += 1296; - NN_initTensor(&model->conv5_0, 4, (size_t[]){1, 28, 28, 144}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv5_0, 4, (size_t[]){1, 28, 28, 144}, DTYPE_F32, NULL); // : conv5_1 - NN_initTensor(&model->conv5_1_weight, 1, (size_t[]){144}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv5_1_weight, 1, (size_t[]){144}, DTYPE_F32, array_pointer); array_pointer += 144; - NN_initTensor(&model->conv5_1_bias, 1, (size_t[]){144}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv5_1_bias, 1, (size_t[]){144}, DTYPE_F32, array_pointer); array_pointer += 144; - NN_initTensor(&model->conv5_1_running_mean, 1, (size_t[]){144}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv5_1_running_mean, 1, (size_t[]){144}, DTYPE_F32, array_pointer); array_pointer += 144; - NN_initTensor(&model->conv5_1_running_var, 1, (size_t[]){144}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv5_1_running_var, 1, (size_t[]){144}, DTYPE_F32, array_pointer); array_pointer += 144; - NN_initTensor(&model->conv5_1, 4, (size_t[]){1, 28, 28, 144}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv5_1, 4, (size_t[]){1, 28, 28, 144}, DTYPE_F32, NULL); // : conv5_2 - NN_initTensor(&model->conv5_2, 4, (size_t[]){1, 28, 28, 144}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv5_2, 4, (size_t[]){1, 28, 28, 144}, DTYPE_F32, NULL); // : conv5_3 - NN_initTensor(&model->conv5_3_weight, 4, (size_t[]){1, 1, 144, 256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv5_3_weight, 4, (size_t[]){1, 1, 144, 256}, DTYPE_F32, array_pointer); array_pointer += 36864; - NN_initTensor(&model->conv5_3, 4, (size_t[]){1, 28, 28, 256}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv5_3, 4, (size_t[]){1, 28, 28, 256}, DTYPE_F32, NULL); // : conv5_4 - NN_initTensor(&model->conv5_4_weight, 1, (size_t[]){256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv5_4_weight, 1, (size_t[]){256}, DTYPE_F32, array_pointer); array_pointer += 256; - NN_initTensor(&model->conv5_4_bias, 1, (size_t[]){256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv5_4_bias, 1, (size_t[]){256}, DTYPE_F32, array_pointer); array_pointer += 256; - NN_initTensor(&model->conv5_4_running_mean, 1, (size_t[]){256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv5_4_running_mean, 1, (size_t[]){256}, DTYPE_F32, array_pointer); array_pointer += 256; - NN_initTensor(&model->conv5_4_running_var, 1, (size_t[]){256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv5_4_running_var, 1, (size_t[]){256}, DTYPE_F32, array_pointer); array_pointer += 256; - NN_initTensor(&model->conv5_4, 4, (size_t[]){1, 28, 28, 256}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv5_4, 4, (size_t[]){1, 28, 28, 256}, DTYPE_F32, NULL); // : conv5_5 - NN_initTensor(&model->conv5_5, 4, (size_t[]){1, 28, 28, 256}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv5_5, 4, (size_t[]){1, 28, 28, 256}, DTYPE_F32, NULL); // : conv6_0 - NN_initTensor(&model->conv6_0_weight, 4, (size_t[]){3, 3, 1, 256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv6_0_weight, 4, (size_t[]){3, 3, 1, 256}, DTYPE_F32, array_pointer); array_pointer += 2304; - NN_initTensor(&model->conv6_0, 4, (size_t[]){1, 14, 14, 256}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv6_0, 4, (size_t[]){1, 14, 14, 256}, DTYPE_F32, NULL); // : conv6_1 - NN_initTensor(&model->conv6_1_weight, 1, (size_t[]){256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv6_1_weight, 1, (size_t[]){256}, DTYPE_F32, array_pointer); array_pointer += 256; - NN_initTensor(&model->conv6_1_bias, 1, (size_t[]){256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv6_1_bias, 1, (size_t[]){256}, DTYPE_F32, array_pointer); array_pointer += 256; - NN_initTensor(&model->conv6_1_running_mean, 1, (size_t[]){256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv6_1_running_mean, 1, (size_t[]){256}, DTYPE_F32, array_pointer); array_pointer += 256; - NN_initTensor(&model->conv6_1_running_var, 1, (size_t[]){256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv6_1_running_var, 1, (size_t[]){256}, DTYPE_F32, array_pointer); array_pointer += 256; - NN_initTensor(&model->conv6_1, 4, (size_t[]){1, 14, 14, 256}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv6_1, 4, (size_t[]){1, 14, 14, 256}, DTYPE_F32, NULL); // : conv6_2 - NN_initTensor(&model->conv6_2, 4, (size_t[]){1, 14, 14, 256}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv6_2, 4, (size_t[]){1, 14, 14, 256}, DTYPE_F32, NULL); // : conv6_3 - NN_initTensor(&model->conv6_3_weight, 4, (size_t[]){1, 1, 256, 408}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv6_3_weight, 4, (size_t[]){1, 1, 256, 408}, DTYPE_F32, array_pointer); array_pointer += 104448; - NN_initTensor(&model->conv6_3, 4, (size_t[]){1, 14, 14, 408}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv6_3, 4, (size_t[]){1, 14, 14, 408}, DTYPE_F32, NULL); // : conv6_4 - NN_initTensor(&model->conv6_4_weight, 1, (size_t[]){408}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv6_4_weight, 1, (size_t[]){408}, DTYPE_F32, array_pointer); array_pointer += 408; - NN_initTensor(&model->conv6_4_bias, 1, (size_t[]){408}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv6_4_bias, 1, (size_t[]){408}, DTYPE_F32, array_pointer); array_pointer += 408; - NN_initTensor(&model->conv6_4_running_mean, 1, (size_t[]){408}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv6_4_running_mean, 1, (size_t[]){408}, DTYPE_F32, array_pointer); array_pointer += 408; - NN_initTensor(&model->conv6_4_running_var, 1, (size_t[]){408}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv6_4_running_var, 1, (size_t[]){408}, DTYPE_F32, array_pointer); array_pointer += 408; - NN_initTensor(&model->conv6_4, 4, (size_t[]){1, 14, 14, 408}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv6_4, 4, (size_t[]){1, 14, 14, 408}, DTYPE_F32, NULL); // : conv6_5 - NN_initTensor(&model->conv6_5, 4, (size_t[]){1, 14, 14, 408}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv6_5, 4, (size_t[]){1, 14, 14, 408}, DTYPE_F32, NULL); // : conv7_0 - NN_initTensor(&model->conv7_0_weight, 4, (size_t[]){3, 3, 1, 408}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv7_0_weight, 4, (size_t[]){3, 3, 1, 408}, DTYPE_F32, array_pointer); array_pointer += 3672; - NN_initTensor(&model->conv7_0, 4, (size_t[]){1, 14, 14, 408}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv7_0, 4, (size_t[]){1, 14, 14, 408}, DTYPE_F32, NULL); // : conv7_1 - NN_initTensor(&model->conv7_1_weight, 1, (size_t[]){408}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv7_1_weight, 1, (size_t[]){408}, DTYPE_F32, array_pointer); array_pointer += 408; - NN_initTensor(&model->conv7_1_bias, 1, (size_t[]){408}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv7_1_bias, 1, (size_t[]){408}, DTYPE_F32, array_pointer); array_pointer += 408; - NN_initTensor(&model->conv7_1_running_mean, 1, (size_t[]){408}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv7_1_running_mean, 1, (size_t[]){408}, DTYPE_F32, array_pointer); array_pointer += 408; - NN_initTensor(&model->conv7_1_running_var, 1, (size_t[]){408}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv7_1_running_var, 1, (size_t[]){408}, DTYPE_F32, array_pointer); array_pointer += 408; - NN_initTensor(&model->conv7_1, 4, (size_t[]){1, 14, 14, 408}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv7_1, 4, (size_t[]){1, 14, 14, 408}, DTYPE_F32, NULL); // : conv7_2 - NN_initTensor(&model->conv7_2, 4, (size_t[]){1, 14, 14, 408}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv7_2, 4, (size_t[]){1, 14, 14, 408}, DTYPE_F32, NULL); // : conv7_3 - NN_initTensor(&model->conv7_3_weight, 4, (size_t[]){1, 1, 408, 376}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv7_3_weight, 4, (size_t[]){1, 1, 408, 376}, DTYPE_F32, array_pointer); array_pointer += 153408; - NN_initTensor(&model->conv7_3, 4, (size_t[]){1, 14, 14, 376}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv7_3, 4, (size_t[]){1, 14, 14, 376}, DTYPE_F32, NULL); // : conv7_4 - NN_initTensor(&model->conv7_4_weight, 1, (size_t[]){376}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv7_4_weight, 1, (size_t[]){376}, DTYPE_F32, array_pointer); array_pointer += 376; - NN_initTensor(&model->conv7_4_bias, 1, (size_t[]){376}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv7_4_bias, 1, (size_t[]){376}, DTYPE_F32, array_pointer); array_pointer += 376; - NN_initTensor(&model->conv7_4_running_mean, 1, (size_t[]){376}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv7_4_running_mean, 1, (size_t[]){376}, DTYPE_F32, array_pointer); array_pointer += 376; - NN_initTensor(&model->conv7_4_running_var, 1, (size_t[]){376}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv7_4_running_var, 1, (size_t[]){376}, DTYPE_F32, array_pointer); array_pointer += 376; - NN_initTensor(&model->conv7_4, 4, (size_t[]){1, 14, 14, 376}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv7_4, 4, (size_t[]){1, 14, 14, 376}, DTYPE_F32, NULL); // : conv7_5 - NN_initTensor(&model->conv7_5, 4, (size_t[]){1, 14, 14, 376}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv7_5, 4, (size_t[]){1, 14, 14, 376}, DTYPE_F32, NULL); // : conv8_0 - NN_initTensor(&model->conv8_0_weight, 4, (size_t[]){3, 3, 1, 376}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv8_0_weight, 4, (size_t[]){3, 3, 1, 376}, DTYPE_F32, array_pointer); array_pointer += 3384; - NN_initTensor(&model->conv8_0, 4, (size_t[]){1, 14, 14, 376}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv8_0, 4, (size_t[]){1, 14, 14, 376}, DTYPE_F32, NULL); // : conv8_1 - NN_initTensor(&model->conv8_1_weight, 1, (size_t[]){376}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv8_1_weight, 1, (size_t[]){376}, DTYPE_F32, array_pointer); array_pointer += 376; - NN_initTensor(&model->conv8_1_bias, 1, (size_t[]){376}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv8_1_bias, 1, (size_t[]){376}, DTYPE_F32, array_pointer); array_pointer += 376; - NN_initTensor(&model->conv8_1_running_mean, 1, (size_t[]){376}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv8_1_running_mean, 1, (size_t[]){376}, DTYPE_F32, array_pointer); array_pointer += 376; - NN_initTensor(&model->conv8_1_running_var, 1, (size_t[]){376}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv8_1_running_var, 1, (size_t[]){376}, DTYPE_F32, array_pointer); array_pointer += 376; - NN_initTensor(&model->conv8_1, 4, (size_t[]){1, 14, 14, 376}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv8_1, 4, (size_t[]){1, 14, 14, 376}, DTYPE_F32, NULL); // : conv8_2 - NN_initTensor(&model->conv8_2, 4, (size_t[]){1, 14, 14, 376}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv8_2, 4, (size_t[]){1, 14, 14, 376}, DTYPE_F32, NULL); // : conv8_3 - NN_initTensor(&model->conv8_3_weight, 4, (size_t[]){1, 1, 376, 272}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv8_3_weight, 4, (size_t[]){1, 1, 376, 272}, DTYPE_F32, array_pointer); array_pointer += 102272; - NN_initTensor(&model->conv8_3, 4, (size_t[]){1, 14, 14, 272}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv8_3, 4, (size_t[]){1, 14, 14, 272}, DTYPE_F32, NULL); // : conv8_4 - NN_initTensor(&model->conv8_4_weight, 1, (size_t[]){272}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv8_4_weight, 1, (size_t[]){272}, DTYPE_F32, array_pointer); array_pointer += 272; - NN_initTensor(&model->conv8_4_bias, 1, (size_t[]){272}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv8_4_bias, 1, (size_t[]){272}, DTYPE_F32, array_pointer); array_pointer += 272; - NN_initTensor(&model->conv8_4_running_mean, 1, (size_t[]){272}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv8_4_running_mean, 1, (size_t[]){272}, DTYPE_F32, array_pointer); array_pointer += 272; - NN_initTensor(&model->conv8_4_running_var, 1, (size_t[]){272}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv8_4_running_var, 1, (size_t[]){272}, DTYPE_F32, array_pointer); array_pointer += 272; - NN_initTensor(&model->conv8_4, 4, (size_t[]){1, 14, 14, 272}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv8_4, 4, (size_t[]){1, 14, 14, 272}, DTYPE_F32, NULL); // : conv8_5 - NN_initTensor(&model->conv8_5, 4, (size_t[]){1, 14, 14, 272}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv8_5, 4, (size_t[]){1, 14, 14, 272}, DTYPE_F32, NULL); // : conv9_0 - NN_initTensor(&model->conv9_0_weight, 4, (size_t[]){3, 3, 1, 272}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv9_0_weight, 4, (size_t[]){3, 3, 1, 272}, DTYPE_F32, array_pointer); array_pointer += 2448; - NN_initTensor(&model->conv9_0, 4, (size_t[]){1, 14, 14, 272}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv9_0, 4, (size_t[]){1, 14, 14, 272}, DTYPE_F32, NULL); // : conv9_1 - NN_initTensor(&model->conv9_1_weight, 1, (size_t[]){272}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv9_1_weight, 1, (size_t[]){272}, DTYPE_F32, array_pointer); array_pointer += 272; - NN_initTensor(&model->conv9_1_bias, 1, (size_t[]){272}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv9_1_bias, 1, (size_t[]){272}, DTYPE_F32, array_pointer); array_pointer += 272; - NN_initTensor(&model->conv9_1_running_mean, 1, (size_t[]){272}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv9_1_running_mean, 1, (size_t[]){272}, DTYPE_F32, array_pointer); array_pointer += 272; - NN_initTensor(&model->conv9_1_running_var, 1, (size_t[]){272}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv9_1_running_var, 1, (size_t[]){272}, DTYPE_F32, array_pointer); array_pointer += 272; - NN_initTensor(&model->conv9_1, 4, (size_t[]){1, 14, 14, 272}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv9_1, 4, (size_t[]){1, 14, 14, 272}, DTYPE_F32, NULL); // : conv9_2 - NN_initTensor(&model->conv9_2, 4, (size_t[]){1, 14, 14, 272}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv9_2, 4, (size_t[]){1, 14, 14, 272}, DTYPE_F32, NULL); // : conv9_3 - NN_initTensor(&model->conv9_3_weight, 4, (size_t[]){1, 1, 272, 288}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv9_3_weight, 4, (size_t[]){1, 1, 272, 288}, DTYPE_F32, array_pointer); array_pointer += 78336; - NN_initTensor(&model->conv9_3, 4, (size_t[]){1, 14, 14, 288}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv9_3, 4, (size_t[]){1, 14, 14, 288}, DTYPE_F32, NULL); // : conv9_4 - NN_initTensor(&model->conv9_4_weight, 1, (size_t[]){288}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv9_4_weight, 1, (size_t[]){288}, DTYPE_F32, array_pointer); array_pointer += 288; - NN_initTensor(&model->conv9_4_bias, 1, (size_t[]){288}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv9_4_bias, 1, (size_t[]){288}, DTYPE_F32, array_pointer); array_pointer += 288; - NN_initTensor(&model->conv9_4_running_mean, 1, (size_t[]){288}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv9_4_running_mean, 1, (size_t[]){288}, DTYPE_F32, array_pointer); array_pointer += 288; - NN_initTensor(&model->conv9_4_running_var, 1, (size_t[]){288}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv9_4_running_var, 1, (size_t[]){288}, DTYPE_F32, array_pointer); array_pointer += 288; - NN_initTensor(&model->conv9_4, 4, (size_t[]){1, 14, 14, 288}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv9_4, 4, (size_t[]){1, 14, 14, 288}, DTYPE_F32, NULL); // : conv9_5 - NN_initTensor(&model->conv9_5, 4, (size_t[]){1, 14, 14, 288}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv9_5, 4, (size_t[]){1, 14, 14, 288}, DTYPE_F32, NULL); // : conv10_0 - NN_initTensor(&model->conv10_0_weight, 4, (size_t[]){3, 3, 1, 288}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv10_0_weight, 4, (size_t[]){3, 3, 1, 288}, DTYPE_F32, array_pointer); array_pointer += 2592; - NN_initTensor(&model->conv10_0, 4, (size_t[]){1, 14, 14, 288}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv10_0, 4, (size_t[]){1, 14, 14, 288}, DTYPE_F32, NULL); // : conv10_1 - NN_initTensor(&model->conv10_1_weight, 1, (size_t[]){288}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv10_1_weight, 1, (size_t[]){288}, DTYPE_F32, array_pointer); array_pointer += 288; - NN_initTensor(&model->conv10_1_bias, 1, (size_t[]){288}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv10_1_bias, 1, (size_t[]){288}, DTYPE_F32, array_pointer); array_pointer += 288; - NN_initTensor(&model->conv10_1_running_mean, 1, (size_t[]){288}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv10_1_running_mean, 1, (size_t[]){288}, DTYPE_F32, array_pointer); array_pointer += 288; - NN_initTensor(&model->conv10_1_running_var, 1, (size_t[]){288}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv10_1_running_var, 1, (size_t[]){288}, DTYPE_F32, array_pointer); array_pointer += 288; - NN_initTensor(&model->conv10_1, 4, (size_t[]){1, 14, 14, 288}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv10_1, 4, (size_t[]){1, 14, 14, 288}, DTYPE_F32, NULL); // : conv10_2 - NN_initTensor(&model->conv10_2, 4, (size_t[]){1, 14, 14, 288}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv10_2, 4, (size_t[]){1, 14, 14, 288}, DTYPE_F32, NULL); // : conv10_3 - NN_initTensor(&model->conv10_3_weight, 4, (size_t[]){1, 1, 288, 296}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv10_3_weight, 4, (size_t[]){1, 1, 288, 296}, DTYPE_F32, array_pointer); array_pointer += 85248; - NN_initTensor(&model->conv10_3, 4, (size_t[]){1, 14, 14, 296}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv10_3, 4, (size_t[]){1, 14, 14, 296}, DTYPE_F32, NULL); // : conv10_4 - NN_initTensor(&model->conv10_4_weight, 1, (size_t[]){296}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv10_4_weight, 1, (size_t[]){296}, DTYPE_F32, array_pointer); array_pointer += 296; - NN_initTensor(&model->conv10_4_bias, 1, (size_t[]){296}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv10_4_bias, 1, (size_t[]){296}, DTYPE_F32, array_pointer); array_pointer += 296; - NN_initTensor(&model->conv10_4_running_mean, 1, (size_t[]){296}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv10_4_running_mean, 1, (size_t[]){296}, DTYPE_F32, array_pointer); array_pointer += 296; - NN_initTensor(&model->conv10_4_running_var, 1, (size_t[]){296}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv10_4_running_var, 1, (size_t[]){296}, DTYPE_F32, array_pointer); array_pointer += 296; - NN_initTensor(&model->conv10_4, 4, (size_t[]){1, 14, 14, 296}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv10_4, 4, (size_t[]){1, 14, 14, 296}, DTYPE_F32, NULL); // : conv10_5 - NN_initTensor(&model->conv10_5, 4, (size_t[]){1, 14, 14, 296}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv10_5, 4, (size_t[]){1, 14, 14, 296}, DTYPE_F32, NULL); // : conv11_0 - NN_initTensor(&model->conv11_0_weight, 4, (size_t[]){3, 3, 1, 296}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv11_0_weight, 4, (size_t[]){3, 3, 1, 296}, DTYPE_F32, array_pointer); array_pointer += 2664; - NN_initTensor(&model->conv11_0, 4, (size_t[]){1, 14, 14, 296}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv11_0, 4, (size_t[]){1, 14, 14, 296}, DTYPE_F32, NULL); // : conv11_1 - NN_initTensor(&model->conv11_1_weight, 1, (size_t[]){296}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv11_1_weight, 1, (size_t[]){296}, DTYPE_F32, array_pointer); array_pointer += 296; - NN_initTensor(&model->conv11_1_bias, 1, (size_t[]){296}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv11_1_bias, 1, (size_t[]){296}, DTYPE_F32, array_pointer); array_pointer += 296; - NN_initTensor(&model->conv11_1_running_mean, 1, (size_t[]){296}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv11_1_running_mean, 1, (size_t[]){296}, DTYPE_F32, array_pointer); array_pointer += 296; - NN_initTensor(&model->conv11_1_running_var, 1, (size_t[]){296}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv11_1_running_var, 1, (size_t[]){296}, DTYPE_F32, array_pointer); array_pointer += 296; - NN_initTensor(&model->conv11_1, 4, (size_t[]){1, 14, 14, 296}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv11_1, 4, (size_t[]){1, 14, 14, 296}, DTYPE_F32, NULL); // : conv11_2 - NN_initTensor(&model->conv11_2, 4, (size_t[]){1, 14, 14, 296}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv11_2, 4, (size_t[]){1, 14, 14, 296}, DTYPE_F32, NULL); // : conv11_3 - NN_initTensor(&model->conv11_3_weight, 4, (size_t[]){1, 1, 296, 328}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv11_3_weight, 4, (size_t[]){1, 1, 296, 328}, DTYPE_F32, array_pointer); array_pointer += 97088; - NN_initTensor(&model->conv11_3, 4, (size_t[]){1, 14, 14, 328}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv11_3, 4, (size_t[]){1, 14, 14, 328}, DTYPE_F32, NULL); // : conv11_4 - NN_initTensor(&model->conv11_4_weight, 1, (size_t[]){328}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv11_4_weight, 1, (size_t[]){328}, DTYPE_F32, array_pointer); array_pointer += 328; - NN_initTensor(&model->conv11_4_bias, 1, (size_t[]){328}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv11_4_bias, 1, (size_t[]){328}, DTYPE_F32, array_pointer); array_pointer += 328; - NN_initTensor(&model->conv11_4_running_mean, 1, (size_t[]){328}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv11_4_running_mean, 1, (size_t[]){328}, DTYPE_F32, array_pointer); array_pointer += 328; - NN_initTensor(&model->conv11_4_running_var, 1, (size_t[]){328}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv11_4_running_var, 1, (size_t[]){328}, DTYPE_F32, array_pointer); array_pointer += 328; - NN_initTensor(&model->conv11_4, 4, (size_t[]){1, 14, 14, 328}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv11_4, 4, (size_t[]){1, 14, 14, 328}, DTYPE_F32, NULL); // : conv11_5 - NN_initTensor(&model->conv11_5, 4, (size_t[]){1, 14, 14, 328}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv11_5, 4, (size_t[]){1, 14, 14, 328}, DTYPE_F32, NULL); // : conv12_0 - NN_initTensor(&model->conv12_0_weight, 4, (size_t[]){3, 3, 1, 328}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv12_0_weight, 4, (size_t[]){3, 3, 1, 328}, DTYPE_F32, array_pointer); array_pointer += 2952; - NN_initTensor(&model->conv12_0, 4, (size_t[]){1, 7, 7, 328}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv12_0, 4, (size_t[]){1, 7, 7, 328}, DTYPE_F32, NULL); // : conv12_1 - NN_initTensor(&model->conv12_1_weight, 1, (size_t[]){328}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv12_1_weight, 1, (size_t[]){328}, DTYPE_F32, array_pointer); array_pointer += 328; - NN_initTensor(&model->conv12_1_bias, 1, (size_t[]){328}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv12_1_bias, 1, (size_t[]){328}, DTYPE_F32, array_pointer); array_pointer += 328; - NN_initTensor(&model->conv12_1_running_mean, 1, (size_t[]){328}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv12_1_running_mean, 1, (size_t[]){328}, DTYPE_F32, array_pointer); array_pointer += 328; - NN_initTensor(&model->conv12_1_running_var, 1, (size_t[]){328}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv12_1_running_var, 1, (size_t[]){328}, DTYPE_F32, array_pointer); array_pointer += 328; - NN_initTensor(&model->conv12_1, 4, (size_t[]){1, 7, 7, 328}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv12_1, 4, (size_t[]){1, 7, 7, 328}, DTYPE_F32, NULL); // : conv12_2 - NN_initTensor(&model->conv12_2, 4, (size_t[]){1, 7, 7, 328}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv12_2, 4, (size_t[]){1, 7, 7, 328}, DTYPE_F32, NULL); // : conv12_3 - NN_initTensor(&model->conv12_3_weight, 4, (size_t[]){1, 1, 328, 480}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv12_3_weight, 4, (size_t[]){1, 1, 328, 480}, DTYPE_F32, array_pointer); array_pointer += 157440; - NN_initTensor(&model->conv12_3, 4, (size_t[]){1, 7, 7, 480}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv12_3, 4, (size_t[]){1, 7, 7, 480}, DTYPE_F32, NULL); // : conv12_4 - NN_initTensor(&model->conv12_4_weight, 1, (size_t[]){480}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv12_4_weight, 1, (size_t[]){480}, DTYPE_F32, array_pointer); array_pointer += 480; - NN_initTensor(&model->conv12_4_bias, 1, (size_t[]){480}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv12_4_bias, 1, (size_t[]){480}, DTYPE_F32, array_pointer); array_pointer += 480; - NN_initTensor(&model->conv12_4_running_mean, 1, (size_t[]){480}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv12_4_running_mean, 1, (size_t[]){480}, DTYPE_F32, array_pointer); array_pointer += 480; - NN_initTensor(&model->conv12_4_running_var, 1, (size_t[]){480}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv12_4_running_var, 1, (size_t[]){480}, DTYPE_F32, array_pointer); array_pointer += 480; - NN_initTensor(&model->conv12_4, 4, (size_t[]){1, 7, 7, 480}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv12_4, 4, (size_t[]){1, 7, 7, 480}, DTYPE_F32, NULL); // : conv12_5 - NN_initTensor(&model->conv12_5, 4, (size_t[]){1, 7, 7, 480}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv12_5, 4, (size_t[]){1, 7, 7, 480}, DTYPE_F32, NULL); // : conv13_0 - NN_initTensor(&model->conv13_0_weight, 4, (size_t[]){3, 3, 1, 480}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv13_0_weight, 4, (size_t[]){3, 3, 1, 480}, DTYPE_F32, array_pointer); array_pointer += 4320; - NN_initTensor(&model->conv13_0, 4, (size_t[]){1, 7, 7, 480}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv13_0, 4, (size_t[]){1, 7, 7, 480}, DTYPE_F32, NULL); // : conv13_1 - NN_initTensor(&model->conv13_1_weight, 1, (size_t[]){480}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv13_1_weight, 1, (size_t[]){480}, DTYPE_F32, array_pointer); array_pointer += 480; - NN_initTensor(&model->conv13_1_bias, 1, (size_t[]){480}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv13_1_bias, 1, (size_t[]){480}, DTYPE_F32, array_pointer); array_pointer += 480; - NN_initTensor(&model->conv13_1_running_mean, 1, (size_t[]){480}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv13_1_running_mean, 1, (size_t[]){480}, DTYPE_F32, array_pointer); array_pointer += 480; - NN_initTensor(&model->conv13_1_running_var, 1, (size_t[]){480}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv13_1_running_var, 1, (size_t[]){480}, DTYPE_F32, array_pointer); array_pointer += 480; - NN_initTensor(&model->conv13_1, 4, (size_t[]){1, 7, 7, 480}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv13_1, 4, (size_t[]){1, 7, 7, 480}, DTYPE_F32, NULL); // : conv13_2 - NN_initTensor(&model->conv13_2, 4, (size_t[]){1, 7, 7, 480}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv13_2, 4, (size_t[]){1, 7, 7, 480}, DTYPE_F32, NULL); // : conv13_3 - NN_initTensor(&model->conv13_3_weight, 4, (size_t[]){1, 1, 480, 512}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv13_3_weight, 4, (size_t[]){1, 1, 480, 512}, DTYPE_F32, array_pointer); array_pointer += 245760; - NN_initTensor(&model->conv13_3, 4, (size_t[]){1, 7, 7, 512}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv13_3, 4, (size_t[]){1, 7, 7, 512}, DTYPE_F32, NULL); // : conv13_4 - NN_initTensor(&model->conv13_4_weight, 1, (size_t[]){512}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv13_4_weight, 1, (size_t[]){512}, DTYPE_F32, array_pointer); array_pointer += 512; - NN_initTensor(&model->conv13_4_bias, 1, (size_t[]){512}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv13_4_bias, 1, (size_t[]){512}, DTYPE_F32, array_pointer); array_pointer += 512; - NN_initTensor(&model->conv13_4_running_mean, 1, (size_t[]){512}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv13_4_running_mean, 1, (size_t[]){512}, DTYPE_F32, array_pointer); array_pointer += 512; - NN_initTensor(&model->conv13_4_running_var, 1, (size_t[]){512}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->conv13_4_running_var, 1, (size_t[]){512}, DTYPE_F32, array_pointer); array_pointer += 512; - NN_initTensor(&model->conv13_4, 4, (size_t[]){1, 7, 7, 512}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv13_4, 4, (size_t[]){1, 7, 7, 512}, DTYPE_F32, NULL); // : conv13_5 - NN_initTensor(&model->conv13_5, 4, (size_t[]){1, 7, 7, 512}, DTYPE_F32, NULL); + NN_init_tensor(&model->conv13_5, 4, (size_t[]){1, 7, 7, 512}, DTYPE_F32, NULL); // : decode_conv1_0_0 - NN_initTensor(&model->decode_conv1_0_0_weight, 4, (size_t[]){5, 5, 1, 512}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv1_0_0_weight, 4, (size_t[]){5, 5, 1, 512}, DTYPE_F32, array_pointer); array_pointer += 12800; - NN_initTensor(&model->decode_conv1_0_0, 4, (size_t[]){1, 7, 7, 512}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv1_0_0, 4, (size_t[]){1, 7, 7, 512}, DTYPE_F32, NULL); // : decode_conv1_0_1 - NN_initTensor(&model->decode_conv1_0_1_weight, 1, (size_t[]){512}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv1_0_1_weight, 1, (size_t[]){512}, DTYPE_F32, array_pointer); array_pointer += 512; - NN_initTensor(&model->decode_conv1_0_1_bias, 1, (size_t[]){512}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv1_0_1_bias, 1, (size_t[]){512}, DTYPE_F32, array_pointer); array_pointer += 512; - NN_initTensor(&model->decode_conv1_0_1_running_mean, 1, (size_t[]){512}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv1_0_1_running_mean, 1, (size_t[]){512}, DTYPE_F32, array_pointer); array_pointer += 512; - NN_initTensor(&model->decode_conv1_0_1_running_var, 1, (size_t[]){512}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv1_0_1_running_var, 1, (size_t[]){512}, DTYPE_F32, array_pointer); array_pointer += 512; - NN_initTensor(&model->decode_conv1_0_1, 4, (size_t[]){1, 7, 7, 512}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv1_0_1, 4, (size_t[]){1, 7, 7, 512}, DTYPE_F32, NULL); // : decode_conv1_0_2 - NN_initTensor(&model->decode_conv1_0_2, 4, (size_t[]){1, 7, 7, 512}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv1_0_2, 4, (size_t[]){1, 7, 7, 512}, DTYPE_F32, NULL); // : decode_conv1_1_0 - NN_initTensor(&model->decode_conv1_1_0_weight, 4, (size_t[]){1, 1, 512, 200}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv1_1_0_weight, 4, (size_t[]){1, 1, 512, 200}, DTYPE_F32, array_pointer); array_pointer += 102400; - NN_initTensor(&model->decode_conv1_1_0, 4, (size_t[]){1, 7, 7, 200}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv1_1_0, 4, (size_t[]){1, 7, 7, 200}, DTYPE_F32, NULL); // : decode_conv1_1_1 - NN_initTensor(&model->decode_conv1_1_1_weight, 1, (size_t[]){200}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv1_1_1_weight, 1, (size_t[]){200}, DTYPE_F32, array_pointer); array_pointer += 200; - NN_initTensor(&model->decode_conv1_1_1_bias, 1, (size_t[]){200}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv1_1_1_bias, 1, (size_t[]){200}, DTYPE_F32, array_pointer); array_pointer += 200; - NN_initTensor(&model->decode_conv1_1_1_running_mean, 1, (size_t[]){200}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv1_1_1_running_mean, 1, (size_t[]){200}, DTYPE_F32, array_pointer); array_pointer += 200; - NN_initTensor(&model->decode_conv1_1_1_running_var, 1, (size_t[]){200}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv1_1_1_running_var, 1, (size_t[]){200}, DTYPE_F32, array_pointer); array_pointer += 200; - NN_initTensor(&model->decode_conv1_1_1, 4, (size_t[]){1, 7, 7, 200}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv1_1_1, 4, (size_t[]){1, 7, 7, 200}, DTYPE_F32, NULL); // : decode_conv1_1_2 - NN_initTensor(&model->decode_conv1_1_2, 4, (size_t[]){1, 7, 7, 200}, DTYPE_F32, NULL); - NN_initTensor(&model->interpolate, 4, (size_t[]){1, 14, 14, 200}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv1_1_2, 4, (size_t[]){1, 7, 7, 200}, DTYPE_F32, NULL); + NN_init_tensor(&model->interpolate, 4, (size_t[]){1, 14, 14, 200}, DTYPE_F32, NULL); // : decode_conv2_0_0 - NN_initTensor(&model->decode_conv2_0_0_weight, 4, (size_t[]){5, 5, 1, 200}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv2_0_0_weight, 4, (size_t[]){5, 5, 1, 200}, DTYPE_F32, array_pointer); array_pointer += 5000; - NN_initTensor(&model->decode_conv2_0_0, 4, (size_t[]){1, 14, 14, 200}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv2_0_0, 4, (size_t[]){1, 14, 14, 200}, DTYPE_F32, NULL); // : decode_conv2_0_1 - NN_initTensor(&model->decode_conv2_0_1_weight, 1, (size_t[]){200}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv2_0_1_weight, 1, (size_t[]){200}, DTYPE_F32, array_pointer); array_pointer += 200; - NN_initTensor(&model->decode_conv2_0_1_bias, 1, (size_t[]){200}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv2_0_1_bias, 1, (size_t[]){200}, DTYPE_F32, array_pointer); array_pointer += 200; - NN_initTensor(&model->decode_conv2_0_1_running_mean, 1, (size_t[]){200}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv2_0_1_running_mean, 1, (size_t[]){200}, DTYPE_F32, array_pointer); array_pointer += 200; - NN_initTensor(&model->decode_conv2_0_1_running_var, 1, (size_t[]){200}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv2_0_1_running_var, 1, (size_t[]){200}, DTYPE_F32, array_pointer); array_pointer += 200; - NN_initTensor(&model->decode_conv2_0_1, 4, (size_t[]){1, 14, 14, 200}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv2_0_1, 4, (size_t[]){1, 14, 14, 200}, DTYPE_F32, NULL); // : decode_conv2_0_2 - NN_initTensor(&model->decode_conv2_0_2, 4, (size_t[]){1, 14, 14, 200}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv2_0_2, 4, (size_t[]){1, 14, 14, 200}, DTYPE_F32, NULL); // : decode_conv2_1_0 - NN_initTensor(&model->decode_conv2_1_0_weight, 4, (size_t[]){1, 1, 200, 256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv2_1_0_weight, 4, (size_t[]){1, 1, 200, 256}, DTYPE_F32, array_pointer); array_pointer += 51200; - NN_initTensor(&model->decode_conv2_1_0, 4, (size_t[]){1, 14, 14, 256}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv2_1_0, 4, (size_t[]){1, 14, 14, 256}, DTYPE_F32, NULL); // : decode_conv2_1_1 - NN_initTensor(&model->decode_conv2_1_1_weight, 1, (size_t[]){256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv2_1_1_weight, 1, (size_t[]){256}, DTYPE_F32, array_pointer); array_pointer += 256; - NN_initTensor(&model->decode_conv2_1_1_bias, 1, (size_t[]){256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv2_1_1_bias, 1, (size_t[]){256}, DTYPE_F32, array_pointer); array_pointer += 256; - NN_initTensor(&model->decode_conv2_1_1_running_mean, 1, (size_t[]){256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv2_1_1_running_mean, 1, (size_t[]){256}, DTYPE_F32, array_pointer); array_pointer += 256; - NN_initTensor(&model->decode_conv2_1_1_running_var, 1, (size_t[]){256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv2_1_1_running_var, 1, (size_t[]){256}, DTYPE_F32, array_pointer); array_pointer += 256; - NN_initTensor(&model->decode_conv2_1_1, 4, (size_t[]){1, 14, 14, 256}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv2_1_1, 4, (size_t[]){1, 14, 14, 256}, DTYPE_F32, NULL); // : decode_conv2_1_2 - NN_initTensor(&model->decode_conv2_1_2, 4, (size_t[]){1, 14, 14, 256}, DTYPE_F32, NULL); - NN_initTensor(&model->interpolate_1, 4, (size_t[]){1, 28, 28, 256}, DTYPE_F32, NULL); - NN_initTensor(&model->add, 4, (size_t[]){1, 28, 28, 256}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv2_1_2, 4, (size_t[]){1, 14, 14, 256}, DTYPE_F32, NULL); + NN_init_tensor(&model->interpolate_1, 4, (size_t[]){1, 28, 28, 256}, DTYPE_F32, NULL); + NN_init_tensor(&model->add, 4, (size_t[]){1, 28, 28, 256}, DTYPE_F32, NULL); // : decode_conv3_0_0 - NN_initTensor(&model->decode_conv3_0_0_weight, 4, (size_t[]){5, 5, 1, 256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv3_0_0_weight, 4, (size_t[]){5, 5, 1, 256}, DTYPE_F32, array_pointer); array_pointer += 6400; - NN_initTensor(&model->decode_conv3_0_0, 4, (size_t[]){1, 28, 28, 256}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv3_0_0, 4, (size_t[]){1, 28, 28, 256}, DTYPE_F32, NULL); // : decode_conv3_0_1 - NN_initTensor(&model->decode_conv3_0_1_weight, 1, (size_t[]){256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv3_0_1_weight, 1, (size_t[]){256}, DTYPE_F32, array_pointer); array_pointer += 256; - NN_initTensor(&model->decode_conv3_0_1_bias, 1, (size_t[]){256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv3_0_1_bias, 1, (size_t[]){256}, DTYPE_F32, array_pointer); array_pointer += 256; - NN_initTensor(&model->decode_conv3_0_1_running_mean, 1, (size_t[]){256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv3_0_1_running_mean, 1, (size_t[]){256}, DTYPE_F32, array_pointer); array_pointer += 256; - NN_initTensor(&model->decode_conv3_0_1_running_var, 1, (size_t[]){256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv3_0_1_running_var, 1, (size_t[]){256}, DTYPE_F32, array_pointer); array_pointer += 256; - NN_initTensor(&model->decode_conv3_0_1, 4, (size_t[]){1, 28, 28, 256}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv3_0_1, 4, (size_t[]){1, 28, 28, 256}, DTYPE_F32, NULL); // : decode_conv3_0_2 - NN_initTensor(&model->decode_conv3_0_2, 4, (size_t[]){1, 28, 28, 256}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv3_0_2, 4, (size_t[]){1, 28, 28, 256}, DTYPE_F32, NULL); // : decode_conv3_1_0 - NN_initTensor(&model->decode_conv3_1_0_weight, 4, (size_t[]){1, 1, 256, 120}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv3_1_0_weight, 4, (size_t[]){1, 1, 256, 120}, DTYPE_F32, array_pointer); array_pointer += 30720; - NN_initTensor(&model->decode_conv3_1_0, 4, (size_t[]){1, 28, 28, 120}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv3_1_0, 4, (size_t[]){1, 28, 28, 120}, DTYPE_F32, NULL); // : decode_conv3_1_1 - NN_initTensor(&model->decode_conv3_1_1_weight, 1, (size_t[]){120}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv3_1_1_weight, 1, (size_t[]){120}, DTYPE_F32, array_pointer); array_pointer += 120; - NN_initTensor(&model->decode_conv3_1_1_bias, 1, (size_t[]){120}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv3_1_1_bias, 1, (size_t[]){120}, DTYPE_F32, array_pointer); array_pointer += 120; - NN_initTensor(&model->decode_conv3_1_1_running_mean, 1, (size_t[]){120}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv3_1_1_running_mean, 1, (size_t[]){120}, DTYPE_F32, array_pointer); array_pointer += 120; - NN_initTensor(&model->decode_conv3_1_1_running_var, 1, (size_t[]){120}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv3_1_1_running_var, 1, (size_t[]){120}, DTYPE_F32, array_pointer); array_pointer += 120; - NN_initTensor(&model->decode_conv3_1_1, 4, (size_t[]){1, 28, 28, 120}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv3_1_1, 4, (size_t[]){1, 28, 28, 120}, DTYPE_F32, NULL); // : decode_conv3_1_2 - NN_initTensor(&model->decode_conv3_1_2, 4, (size_t[]){1, 28, 28, 120}, DTYPE_F32, NULL); - NN_initTensor(&model->interpolate_2, 4, (size_t[]){1, 56, 56, 120}, DTYPE_F32, NULL); - NN_initTensor(&model->add_1, 4, (size_t[]){1, 56, 56, 120}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv3_1_2, 4, (size_t[]){1, 28, 28, 120}, DTYPE_F32, NULL); + NN_init_tensor(&model->interpolate_2, 4, (size_t[]){1, 56, 56, 120}, DTYPE_F32, NULL); + NN_init_tensor(&model->add_1, 4, (size_t[]){1, 56, 56, 120}, DTYPE_F32, NULL); // : decode_conv4_0_0 - NN_initTensor(&model->decode_conv4_0_0_weight, 4, (size_t[]){5, 5, 1, 120}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv4_0_0_weight, 4, (size_t[]){5, 5, 1, 120}, DTYPE_F32, array_pointer); array_pointer += 3000; - NN_initTensor(&model->decode_conv4_0_0, 4, (size_t[]){1, 56, 56, 120}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv4_0_0, 4, (size_t[]){1, 56, 56, 120}, DTYPE_F32, NULL); // : decode_conv4_0_1 - NN_initTensor(&model->decode_conv4_0_1_weight, 1, (size_t[]){120}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv4_0_1_weight, 1, (size_t[]){120}, DTYPE_F32, array_pointer); array_pointer += 120; - NN_initTensor(&model->decode_conv4_0_1_bias, 1, (size_t[]){120}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv4_0_1_bias, 1, (size_t[]){120}, DTYPE_F32, array_pointer); array_pointer += 120; - NN_initTensor(&model->decode_conv4_0_1_running_mean, 1, (size_t[]){120}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv4_0_1_running_mean, 1, (size_t[]){120}, DTYPE_F32, array_pointer); array_pointer += 120; - NN_initTensor(&model->decode_conv4_0_1_running_var, 1, (size_t[]){120}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv4_0_1_running_var, 1, (size_t[]){120}, DTYPE_F32, array_pointer); array_pointer += 120; - NN_initTensor(&model->decode_conv4_0_1, 4, (size_t[]){1, 56, 56, 120}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv4_0_1, 4, (size_t[]){1, 56, 56, 120}, DTYPE_F32, NULL); // : decode_conv4_0_2 - NN_initTensor(&model->decode_conv4_0_2, 4, (size_t[]){1, 56, 56, 120}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv4_0_2, 4, (size_t[]){1, 56, 56, 120}, DTYPE_F32, NULL); // : decode_conv4_1_0 - NN_initTensor(&model->decode_conv4_1_0_weight, 4, (size_t[]){1, 1, 120, 56}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv4_1_0_weight, 4, (size_t[]){1, 1, 120, 56}, DTYPE_F32, array_pointer); array_pointer += 6720; - NN_initTensor(&model->decode_conv4_1_0, 4, (size_t[]){1, 56, 56, 56}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv4_1_0, 4, (size_t[]){1, 56, 56, 56}, DTYPE_F32, NULL); // : decode_conv4_1_1 - NN_initTensor(&model->decode_conv4_1_1_weight, 1, (size_t[]){56}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv4_1_1_weight, 1, (size_t[]){56}, DTYPE_F32, array_pointer); array_pointer += 56; - NN_initTensor(&model->decode_conv4_1_1_bias, 1, (size_t[]){56}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv4_1_1_bias, 1, (size_t[]){56}, DTYPE_F32, array_pointer); array_pointer += 56; - NN_initTensor(&model->decode_conv4_1_1_running_mean, 1, (size_t[]){56}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv4_1_1_running_mean, 1, (size_t[]){56}, DTYPE_F32, array_pointer); array_pointer += 56; - NN_initTensor(&model->decode_conv4_1_1_running_var, 1, (size_t[]){56}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv4_1_1_running_var, 1, (size_t[]){56}, DTYPE_F32, array_pointer); array_pointer += 56; - NN_initTensor(&model->decode_conv4_1_1, 4, (size_t[]){1, 56, 56, 56}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv4_1_1, 4, (size_t[]){1, 56, 56, 56}, DTYPE_F32, NULL); // : decode_conv4_1_2 - NN_initTensor(&model->decode_conv4_1_2, 4, (size_t[]){1, 56, 56, 56}, DTYPE_F32, NULL); - NN_initTensor(&model->interpolate_3, 4, (size_t[]){1, 112, 112, 56}, DTYPE_F32, NULL); - NN_initTensor(&model->add_2, 4, (size_t[]){1, 112, 112, 56}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv4_1_2, 4, (size_t[]){1, 56, 56, 56}, DTYPE_F32, NULL); + NN_init_tensor(&model->interpolate_3, 4, (size_t[]){1, 112, 112, 56}, DTYPE_F32, NULL); + NN_init_tensor(&model->add_2, 4, (size_t[]){1, 112, 112, 56}, DTYPE_F32, NULL); // : decode_conv5_0_0 - NN_initTensor(&model->decode_conv5_0_0_weight, 4, (size_t[]){5, 5, 1, 56}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv5_0_0_weight, 4, (size_t[]){5, 5, 1, 56}, DTYPE_F32, array_pointer); array_pointer += 1400; - NN_initTensor(&model->decode_conv5_0_0, 4, (size_t[]){1, 112, 112, 56}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv5_0_0, 4, (size_t[]){1, 112, 112, 56}, DTYPE_F32, NULL); // : decode_conv5_0_1 - NN_initTensor(&model->decode_conv5_0_1_weight, 1, (size_t[]){56}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv5_0_1_weight, 1, (size_t[]){56}, DTYPE_F32, array_pointer); array_pointer += 56; - NN_initTensor(&model->decode_conv5_0_1_bias, 1, (size_t[]){56}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv5_0_1_bias, 1, (size_t[]){56}, DTYPE_F32, array_pointer); array_pointer += 56; - NN_initTensor(&model->decode_conv5_0_1_running_mean, 1, (size_t[]){56}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv5_0_1_running_mean, 1, (size_t[]){56}, DTYPE_F32, array_pointer); array_pointer += 56; - NN_initTensor(&model->decode_conv5_0_1_running_var, 1, (size_t[]){56}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv5_0_1_running_var, 1, (size_t[]){56}, DTYPE_F32, array_pointer); array_pointer += 56; - NN_initTensor(&model->decode_conv5_0_1, 4, (size_t[]){1, 112, 112, 56}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv5_0_1, 4, (size_t[]){1, 112, 112, 56}, DTYPE_F32, NULL); // : decode_conv5_0_2 - NN_initTensor(&model->decode_conv5_0_2, 4, (size_t[]){1, 112, 112, 56}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv5_0_2, 4, (size_t[]){1, 112, 112, 56}, DTYPE_F32, NULL); // : decode_conv5_1_0 - NN_initTensor(&model->decode_conv5_1_0_weight, 4, (size_t[]){1, 1, 56, 16}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv5_1_0_weight, 4, (size_t[]){1, 1, 56, 16}, DTYPE_F32, array_pointer); array_pointer += 896; - NN_initTensor(&model->decode_conv5_1_0, 4, (size_t[]){1, 112, 112, 16}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv5_1_0, 4, (size_t[]){1, 112, 112, 16}, DTYPE_F32, NULL); // : decode_conv5_1_1 - NN_initTensor(&model->decode_conv5_1_1_weight, 1, (size_t[]){16}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv5_1_1_weight, 1, (size_t[]){16}, DTYPE_F32, array_pointer); array_pointer += 16; - NN_initTensor(&model->decode_conv5_1_1_bias, 1, (size_t[]){16}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv5_1_1_bias, 1, (size_t[]){16}, DTYPE_F32, array_pointer); array_pointer += 16; - NN_initTensor(&model->decode_conv5_1_1_running_mean, 1, (size_t[]){16}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv5_1_1_running_mean, 1, (size_t[]){16}, DTYPE_F32, array_pointer); array_pointer += 16; - NN_initTensor(&model->decode_conv5_1_1_running_var, 1, (size_t[]){16}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv5_1_1_running_var, 1, (size_t[]){16}, DTYPE_F32, array_pointer); array_pointer += 16; - NN_initTensor(&model->decode_conv5_1_1, 4, (size_t[]){1, 112, 112, 16}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv5_1_1, 4, (size_t[]){1, 112, 112, 16}, DTYPE_F32, NULL); // : decode_conv5_1_2 - NN_initTensor(&model->decode_conv5_1_2, 4, (size_t[]){1, 112, 112, 16}, DTYPE_F32, NULL); - NN_initTensor(&model->interpolate_4, 4, (size_t[]){1, 224, 224, 16}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv5_1_2, 4, (size_t[]){1, 112, 112, 16}, DTYPE_F32, NULL); + NN_init_tensor(&model->interpolate_4, 4, (size_t[]){1, 224, 224, 16}, DTYPE_F32, NULL); // : decode_conv6_0 - NN_initTensor(&model->decode_conv6_0_weight, 4, (size_t[]){1, 1, 16, 1}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv6_0_weight, 4, (size_t[]){1, 1, 16, 1}, DTYPE_F32, array_pointer); array_pointer += 16; - NN_initTensor(&model->decode_conv6_0, 4, (size_t[]){1, 224, 224, 1}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv6_0, 4, (size_t[]){1, 224, 224, 1}, DTYPE_F32, NULL); // : decode_conv6_1 - NN_initTensor(&model->decode_conv6_1_weight, 1, (size_t[]){1}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv6_1_weight, 1, (size_t[]){1}, DTYPE_F32, array_pointer); array_pointer += 1; - NN_initTensor(&model->decode_conv6_1_bias, 1, (size_t[]){1}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv6_1_bias, 1, (size_t[]){1}, DTYPE_F32, array_pointer); array_pointer += 1; - NN_initTensor(&model->decode_conv6_1_running_mean, 1, (size_t[]){1}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv6_1_running_mean, 1, (size_t[]){1}, DTYPE_F32, array_pointer); array_pointer += 1; - NN_initTensor(&model->decode_conv6_1_running_var, 1, (size_t[]){1}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->decode_conv6_1_running_var, 1, (size_t[]){1}, DTYPE_F32, array_pointer); array_pointer += 1; - NN_initTensor(&model->decode_conv6_1, 4, (size_t[]){1, 224, 224, 1}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv6_1, 4, (size_t[]){1, 224, 224, 1}, DTYPE_F32, NULL); // : decode_conv6_2 - NN_initTensor(&model->decode_conv6_2, 4, (size_t[]){1, 224, 224, 1}, DTYPE_F32, NULL); + NN_init_tensor(&model->decode_conv6_2, 4, (size_t[]){1, 224, 224, 1}, DTYPE_F32, NULL); } @@ -1078,334 +1078,334 @@ void init(Model *model) { * Forward pass of the model */ void forward(Model *model) { - NN_Conv2d( + NN_conv2d( &model->conv0_0, &model->x, &model->conv0_0_weight, NULL, (size_t[]){2, 2}, (size_t[]){1, 1}, (size_t[]){1, 1}, 1); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv0_1, &model->conv0_0, &model->conv0_1_weight, &model->conv0_1_bias, 1e-05, &model->conv0_1_running_mean, &model->conv0_1_running_var); - NN_ReLU6(&model->conv0_2, &model->conv0_1); - NN_Conv2d( + NN_relu6(&model->conv0_2, &model->conv0_1); + NN_conv2d( &model->conv1_0, &model->conv0_2, &model->conv1_0_weight, NULL, (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 16); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv1_1, &model->conv1_0, &model->conv1_1_weight, &model->conv1_1_bias, 1e-05, &model->conv1_1_running_mean, &model->conv1_1_running_var); - NN_ReLU6(&model->conv1_2, &model->conv1_1); - NN_Conv2d( + NN_relu6(&model->conv1_2, &model->conv1_1); + NN_conv2d( &model->conv1_3, &model->conv1_2, &model->conv1_3_weight, NULL, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv1_4, &model->conv1_3, &model->conv1_4_weight, &model->conv1_4_bias, 1e-05, &model->conv1_4_running_mean, &model->conv1_4_running_var); - NN_ReLU6(&model->conv1_5, &model->conv1_4); - NN_Conv2d( + NN_relu6(&model->conv1_5, &model->conv1_4); + NN_conv2d( &model->conv2_0, &model->conv1_5, &model->conv2_0_weight, NULL, (size_t[]){2, 2}, (size_t[]){1, 1}, (size_t[]){1, 1}, 56); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv2_1, &model->conv2_0, &model->conv2_1_weight, &model->conv2_1_bias, 1e-05, &model->conv2_1_running_mean, &model->conv2_1_running_var); - NN_ReLU6(&model->conv2_2, &model->conv2_1); - NN_Conv2d( + NN_relu6(&model->conv2_2, &model->conv2_1); + NN_conv2d( &model->conv2_3, &model->conv2_2, &model->conv2_3_weight, NULL, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv2_4, &model->conv2_3, &model->conv2_4_weight, &model->conv2_4_bias, 1e-05, &model->conv2_4_running_mean, &model->conv2_4_running_var); - NN_ReLU6(&model->conv2_5, &model->conv2_4); - NN_Conv2d( + NN_relu6(&model->conv2_5, &model->conv2_4); + NN_conv2d( &model->conv3_0, &model->conv2_5, &model->conv3_0_weight, NULL, (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 88); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv3_1, &model->conv3_0, &model->conv3_1_weight, &model->conv3_1_bias, 1e-05, &model->conv3_1_running_mean, &model->conv3_1_running_var); - NN_ReLU6(&model->conv3_2, &model->conv3_1); - NN_Conv2d( + NN_relu6(&model->conv3_2, &model->conv3_1); + NN_conv2d( &model->conv3_3, &model->conv3_2, &model->conv3_3_weight, NULL, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv3_4, &model->conv3_3, &model->conv3_4_weight, &model->conv3_4_bias, 1e-05, &model->conv3_4_running_mean, &model->conv3_4_running_var); - NN_ReLU6(&model->conv3_5, &model->conv3_4); - NN_Conv2d( + NN_relu6(&model->conv3_5, &model->conv3_4); + NN_conv2d( &model->conv4_0, &model->conv3_5, &model->conv4_0_weight, NULL, (size_t[]){2, 2}, (size_t[]){1, 1}, (size_t[]){1, 1}, 120); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv4_1, &model->conv4_0, &model->conv4_1_weight, &model->conv4_1_bias, 1e-05, &model->conv4_1_running_mean, &model->conv4_1_running_var); - NN_ReLU6(&model->conv4_2, &model->conv4_1); - NN_Conv2d( + NN_relu6(&model->conv4_2, &model->conv4_1); + NN_conv2d( &model->conv4_3, &model->conv4_2, &model->conv4_3_weight, NULL, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv4_4, &model->conv4_3, &model->conv4_4_weight, &model->conv4_4_bias, 1e-05, &model->conv4_4_running_mean, &model->conv4_4_running_var); - NN_ReLU6(&model->conv4_5, &model->conv4_4); - NN_Conv2d( + NN_relu6(&model->conv4_5, &model->conv4_4); + NN_conv2d( &model->conv5_0, &model->conv4_5, &model->conv5_0_weight, NULL, (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 144); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv5_1, &model->conv5_0, &model->conv5_1_weight, &model->conv5_1_bias, 1e-05, &model->conv5_1_running_mean, &model->conv5_1_running_var); - NN_ReLU6(&model->conv5_2, &model->conv5_1); - NN_Conv2d( + NN_relu6(&model->conv5_2, &model->conv5_1); + NN_conv2d( &model->conv5_3, &model->conv5_2, &model->conv5_3_weight, NULL, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv5_4, &model->conv5_3, &model->conv5_4_weight, &model->conv5_4_bias, 1e-05, &model->conv5_4_running_mean, &model->conv5_4_running_var); - NN_ReLU6(&model->conv5_5, &model->conv5_4); - NN_Conv2d( + NN_relu6(&model->conv5_5, &model->conv5_4); + NN_conv2d( &model->conv6_0, &model->conv5_5, &model->conv6_0_weight, NULL, (size_t[]){2, 2}, (size_t[]){1, 1}, (size_t[]){1, 1}, 256); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv6_1, &model->conv6_0, &model->conv6_1_weight, &model->conv6_1_bias, 1e-05, &model->conv6_1_running_mean, &model->conv6_1_running_var); - NN_ReLU6(&model->conv6_2, &model->conv6_1); - NN_Conv2d( + NN_relu6(&model->conv6_2, &model->conv6_1); + NN_conv2d( &model->conv6_3, &model->conv6_2, &model->conv6_3_weight, NULL, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv6_4, &model->conv6_3, &model->conv6_4_weight, &model->conv6_4_bias, 1e-05, &model->conv6_4_running_mean, &model->conv6_4_running_var); - NN_ReLU6(&model->conv6_5, &model->conv6_4); - NN_Conv2d( + NN_relu6(&model->conv6_5, &model->conv6_4); + NN_conv2d( &model->conv7_0, &model->conv6_5, &model->conv7_0_weight, NULL, (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 408); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv7_1, &model->conv7_0, &model->conv7_1_weight, &model->conv7_1_bias, 1e-05, &model->conv7_1_running_mean, &model->conv7_1_running_var); - NN_ReLU6(&model->conv7_2, &model->conv7_1); - NN_Conv2d( + NN_relu6(&model->conv7_2, &model->conv7_1); + NN_conv2d( &model->conv7_3, &model->conv7_2, &model->conv7_3_weight, NULL, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv7_4, &model->conv7_3, &model->conv7_4_weight, &model->conv7_4_bias, 1e-05, &model->conv7_4_running_mean, &model->conv7_4_running_var); - NN_ReLU6(&model->conv7_5, &model->conv7_4); - NN_Conv2d( + NN_relu6(&model->conv7_5, &model->conv7_4); + NN_conv2d( &model->conv8_0, &model->conv7_5, &model->conv8_0_weight, NULL, (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 376); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv8_1, &model->conv8_0, &model->conv8_1_weight, &model->conv8_1_bias, 1e-05, &model->conv8_1_running_mean, &model->conv8_1_running_var); - NN_ReLU6(&model->conv8_2, &model->conv8_1); - NN_Conv2d( + NN_relu6(&model->conv8_2, &model->conv8_1); + NN_conv2d( &model->conv8_3, &model->conv8_2, &model->conv8_3_weight, NULL, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv8_4, &model->conv8_3, &model->conv8_4_weight, &model->conv8_4_bias, 1e-05, &model->conv8_4_running_mean, &model->conv8_4_running_var); - NN_ReLU6(&model->conv8_5, &model->conv8_4); - NN_Conv2d( + NN_relu6(&model->conv8_5, &model->conv8_4); + NN_conv2d( &model->conv9_0, &model->conv8_5, &model->conv9_0_weight, NULL, (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 272); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv9_1, &model->conv9_0, &model->conv9_1_weight, &model->conv9_1_bias, 1e-05, &model->conv9_1_running_mean, &model->conv9_1_running_var); - NN_ReLU6(&model->conv9_2, &model->conv9_1); - NN_Conv2d( + NN_relu6(&model->conv9_2, &model->conv9_1); + NN_conv2d( &model->conv9_3, &model->conv9_2, &model->conv9_3_weight, NULL, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv9_4, &model->conv9_3, &model->conv9_4_weight, &model->conv9_4_bias, 1e-05, &model->conv9_4_running_mean, &model->conv9_4_running_var); - NN_ReLU6(&model->conv9_5, &model->conv9_4); - NN_Conv2d( + NN_relu6(&model->conv9_5, &model->conv9_4); + NN_conv2d( &model->conv10_0, &model->conv9_5, &model->conv10_0_weight, NULL, (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 288); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv10_1, &model->conv10_0, &model->conv10_1_weight, &model->conv10_1_bias, 1e-05, &model->conv10_1_running_mean, &model->conv10_1_running_var); - NN_ReLU6(&model->conv10_2, &model->conv10_1); - NN_Conv2d( + NN_relu6(&model->conv10_2, &model->conv10_1); + NN_conv2d( &model->conv10_3, &model->conv10_2, &model->conv10_3_weight, NULL, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv10_4, &model->conv10_3, &model->conv10_4_weight, &model->conv10_4_bias, 1e-05, &model->conv10_4_running_mean, &model->conv10_4_running_var); - NN_ReLU6(&model->conv10_5, &model->conv10_4); - NN_Conv2d( + NN_relu6(&model->conv10_5, &model->conv10_4); + NN_conv2d( &model->conv11_0, &model->conv10_5, &model->conv11_0_weight, NULL, (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 296); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv11_1, &model->conv11_0, &model->conv11_1_weight, &model->conv11_1_bias, 1e-05, &model->conv11_1_running_mean, &model->conv11_1_running_var); - NN_ReLU6(&model->conv11_2, &model->conv11_1); - NN_Conv2d( + NN_relu6(&model->conv11_2, &model->conv11_1); + NN_conv2d( &model->conv11_3, &model->conv11_2, &model->conv11_3_weight, NULL, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv11_4, &model->conv11_3, &model->conv11_4_weight, &model->conv11_4_bias, 1e-05, &model->conv11_4_running_mean, &model->conv11_4_running_var); - NN_ReLU6(&model->conv11_5, &model->conv11_4); - NN_Conv2d( + NN_relu6(&model->conv11_5, &model->conv11_4); + NN_conv2d( &model->conv12_0, &model->conv11_5, &model->conv12_0_weight, NULL, (size_t[]){2, 2}, (size_t[]){1, 1}, (size_t[]){1, 1}, 328); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv12_1, &model->conv12_0, &model->conv12_1_weight, &model->conv12_1_bias, 1e-05, &model->conv12_1_running_mean, &model->conv12_1_running_var); - NN_ReLU6(&model->conv12_2, &model->conv12_1); - NN_Conv2d( + NN_relu6(&model->conv12_2, &model->conv12_1); + NN_conv2d( &model->conv12_3, &model->conv12_2, &model->conv12_3_weight, NULL, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv12_4, &model->conv12_3, &model->conv12_4_weight, &model->conv12_4_bias, 1e-05, &model->conv12_4_running_mean, &model->conv12_4_running_var); - NN_ReLU6(&model->conv12_5, &model->conv12_4); - NN_Conv2d( + NN_relu6(&model->conv12_5, &model->conv12_4); + NN_conv2d( &model->conv13_0, &model->conv12_5, &model->conv13_0_weight, NULL, (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 480); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv13_1, &model->conv13_0, &model->conv13_1_weight, &model->conv13_1_bias, 1e-05, &model->conv13_1_running_mean, &model->conv13_1_running_var); - NN_ReLU6(&model->conv13_2, &model->conv13_1); - NN_Conv2d( + NN_relu6(&model->conv13_2, &model->conv13_1); + NN_conv2d( &model->conv13_3, &model->conv13_2, &model->conv13_3_weight, NULL, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); - NN_BatchNorm2d( + NN_batch_norm2d( &model->conv13_4, &model->conv13_3, &model->conv13_4_weight, &model->conv13_4_bias, 1e-05, &model->conv13_4_running_mean, &model->conv13_4_running_var); - NN_ReLU6(&model->conv13_5, &model->conv13_4); - NN_Conv2d( + NN_relu6(&model->conv13_5, &model->conv13_4); + NN_conv2d( &model->decode_conv1_0_0, &model->conv13_5, &model->decode_conv1_0_0_weight, NULL, (size_t[]){1, 1}, (size_t[]){2, 2}, (size_t[]){1, 1}, 512); - NN_BatchNorm2d( + NN_batch_norm2d( &model->decode_conv1_0_1, &model->decode_conv1_0_0, &model->decode_conv1_0_1_weight, &model->decode_conv1_0_1_bias, 1e-05, &model->decode_conv1_0_1_running_mean, &model->decode_conv1_0_1_running_var); - NN_ReLU(&model->decode_conv1_0_2, &model->decode_conv1_0_1); - NN_Conv2d( + NN_relu(&model->decode_conv1_0_2, &model->decode_conv1_0_1); + NN_conv2d( &model->decode_conv1_1_0, &model->decode_conv1_0_2, &model->decode_conv1_1_0_weight, NULL, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); - NN_BatchNorm2d( + NN_batch_norm2d( &model->decode_conv1_1_1, &model->decode_conv1_1_0, &model->decode_conv1_1_1_weight, &model->decode_conv1_1_1_bias, 1e-05, &model->decode_conv1_1_1_running_mean, &model->decode_conv1_1_1_running_var); - NN_ReLU(&model->decode_conv1_1_2, &model->decode_conv1_1_1); + NN_relu(&model->decode_conv1_1_2, &model->decode_conv1_1_1); // F.interpolate NN_interpolate(&model->interpolate, &model->decode_conv1_1_2, (float []){2, 2}); - NN_Conv2d( + NN_conv2d( &model->decode_conv2_0_0, &model->interpolate, &model->decode_conv2_0_0_weight, NULL, (size_t[]){1, 1}, (size_t[]){2, 2}, (size_t[]){1, 1}, 200); - NN_BatchNorm2d( + NN_batch_norm2d( &model->decode_conv2_0_1, &model->decode_conv2_0_0, &model->decode_conv2_0_1_weight, &model->decode_conv2_0_1_bias, 1e-05, &model->decode_conv2_0_1_running_mean, &model->decode_conv2_0_1_running_var); - NN_ReLU(&model->decode_conv2_0_2, &model->decode_conv2_0_1); - NN_Conv2d( + NN_relu(&model->decode_conv2_0_2, &model->decode_conv2_0_1); + NN_conv2d( &model->decode_conv2_1_0, &model->decode_conv2_0_2, &model->decode_conv2_1_0_weight, NULL, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); - NN_BatchNorm2d( + NN_batch_norm2d( &model->decode_conv2_1_1, &model->decode_conv2_1_0, &model->decode_conv2_1_1_weight, &model->decode_conv2_1_1_bias, 1e-05, &model->decode_conv2_1_1_running_mean, &model->decode_conv2_1_1_running_var); - NN_ReLU(&model->decode_conv2_1_2, &model->decode_conv2_1_1); + NN_relu(&model->decode_conv2_1_2, &model->decode_conv2_1_1); // F.interpolate_1 NN_interpolate(&model->interpolate_1, &model->decode_conv2_1_2, (float []){2, 2}); // F.add NN_add(&model->add, &model->interpolate_1, &model->conv5_5); - NN_Conv2d( + NN_conv2d( &model->decode_conv3_0_0, &model->add, &model->decode_conv3_0_0_weight, NULL, (size_t[]){1, 1}, (size_t[]){2, 2}, (size_t[]){1, 1}, 256); - NN_BatchNorm2d( + NN_batch_norm2d( &model->decode_conv3_0_1, &model->decode_conv3_0_0, &model->decode_conv3_0_1_weight, &model->decode_conv3_0_1_bias, 1e-05, &model->decode_conv3_0_1_running_mean, &model->decode_conv3_0_1_running_var); - NN_ReLU(&model->decode_conv3_0_2, &model->decode_conv3_0_1); - NN_Conv2d( + NN_relu(&model->decode_conv3_0_2, &model->decode_conv3_0_1); + NN_conv2d( &model->decode_conv3_1_0, &model->decode_conv3_0_2, &model->decode_conv3_1_0_weight, NULL, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); - NN_BatchNorm2d( + NN_batch_norm2d( &model->decode_conv3_1_1, &model->decode_conv3_1_0, &model->decode_conv3_1_1_weight, &model->decode_conv3_1_1_bias, 1e-05, &model->decode_conv3_1_1_running_mean, &model->decode_conv3_1_1_running_var); - NN_ReLU(&model->decode_conv3_1_2, &model->decode_conv3_1_1); + NN_relu(&model->decode_conv3_1_2, &model->decode_conv3_1_1); // F.interpolate_2 NN_interpolate(&model->interpolate_2, &model->decode_conv3_1_2, (float []){2, 2}); // F.add_1 NN_add(&model->add_1, &model->interpolate_2, &model->conv3_5); - NN_Conv2d( + NN_conv2d( &model->decode_conv4_0_0, &model->add_1, &model->decode_conv4_0_0_weight, NULL, (size_t[]){1, 1}, (size_t[]){2, 2}, (size_t[]){1, 1}, 120); - NN_BatchNorm2d( + NN_batch_norm2d( &model->decode_conv4_0_1, &model->decode_conv4_0_0, &model->decode_conv4_0_1_weight, &model->decode_conv4_0_1_bias, 1e-05, &model->decode_conv4_0_1_running_mean, &model->decode_conv4_0_1_running_var); - NN_ReLU(&model->decode_conv4_0_2, &model->decode_conv4_0_1); - NN_Conv2d( + NN_relu(&model->decode_conv4_0_2, &model->decode_conv4_0_1); + NN_conv2d( &model->decode_conv4_1_0, &model->decode_conv4_0_2, &model->decode_conv4_1_0_weight, NULL, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); - NN_BatchNorm2d( + NN_batch_norm2d( &model->decode_conv4_1_1, &model->decode_conv4_1_0, &model->decode_conv4_1_1_weight, &model->decode_conv4_1_1_bias, 1e-05, &model->decode_conv4_1_1_running_mean, &model->decode_conv4_1_1_running_var); - NN_ReLU(&model->decode_conv4_1_2, &model->decode_conv4_1_1); + NN_relu(&model->decode_conv4_1_2, &model->decode_conv4_1_1); // F.interpolate_3 NN_interpolate(&model->interpolate_3, &model->decode_conv4_1_2, (float []){2, 2}); // F.add_2 NN_add(&model->add_2, &model->interpolate_3, &model->conv1_5); - NN_Conv2d( + NN_conv2d( &model->decode_conv5_0_0, &model->add_2, &model->decode_conv5_0_0_weight, NULL, (size_t[]){1, 1}, (size_t[]){2, 2}, (size_t[]){1, 1}, 56); - NN_BatchNorm2d( + NN_batch_norm2d( &model->decode_conv5_0_1, &model->decode_conv5_0_0, &model->decode_conv5_0_1_weight, &model->decode_conv5_0_1_bias, 1e-05, &model->decode_conv5_0_1_running_mean, &model->decode_conv5_0_1_running_var); - NN_ReLU(&model->decode_conv5_0_2, &model->decode_conv5_0_1); - NN_Conv2d( + NN_relu(&model->decode_conv5_0_2, &model->decode_conv5_0_1); + NN_conv2d( &model->decode_conv5_1_0, &model->decode_conv5_0_2, &model->decode_conv5_1_0_weight, NULL, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); - NN_BatchNorm2d( + NN_batch_norm2d( &model->decode_conv5_1_1, &model->decode_conv5_1_0, &model->decode_conv5_1_1_weight, &model->decode_conv5_1_1_bias, 1e-05, &model->decode_conv5_1_1_running_mean, &model->decode_conv5_1_1_running_var); - NN_ReLU(&model->decode_conv5_1_2, &model->decode_conv5_1_1); + NN_relu(&model->decode_conv5_1_2, &model->decode_conv5_1_1); // F.interpolate_4 NN_interpolate(&model->interpolate_4, &model->decode_conv5_1_2, (float []){2, 2}); - NN_Conv2d( + NN_conv2d( &model->decode_conv6_0, &model->interpolate_4, &model->decode_conv6_0_weight, NULL, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); - NN_BatchNorm2d( + NN_batch_norm2d( &model->decode_conv6_1, &model->decode_conv6_0, &model->decode_conv6_1_weight, &model->decode_conv6_1_bias, 1e-05, &model->decode_conv6_1_running_mean, &model->decode_conv6_1_running_var); - NN_ReLU(&model->decode_conv6_2, &model->decode_conv6_1); + NN_relu(&model->decode_conv6_2, &model->decode_conv6_1); } diff --git a/example/llama2/main.c b/example/llama2/main.c index f94fd19..07b14af 100644 --- a/example/llama2/main.c +++ b/example/llama2/main.c @@ -231,7 +231,7 @@ void softmax(float* x, int size) { // x[i] /= sum; // } Tensor *out = NN_tensor(2, (size_t[]){1, size}, DTYPE_F32, x); - NN_Softmax(out, out, 0); + NN_softmax(out, out, 0); } void matmul(float* xout, float* x, float* w, int n, int d) { @@ -243,7 +243,7 @@ void matmul(float* xout, float* x, float* w, int n, int d) { Tensor *b = NN_tensor(2, (size_t[]){1, n}, DTYPE_F32, x); - NN_matmulT(out, a, b); + NN_matmul_t(out, a, b); // int i; diff --git a/example/mlp/model.h b/example/mlp/model.h index 7edefba..7e8021b 100644 --- a/example/mlp/model.h +++ b/example/mlp/model.h @@ -41,44 +41,44 @@ void forward(Model *model); void init(Model *model) { float *array_pointer = (float *)model_weight_data; - NN_initTensor(&model->input_1, 2, (size_t[]){1, 48}, DTYPE_F32, NULL); + NN_init_tensor(&model->input_1, 2, (size_t[]){1, 48}, DTYPE_F32, NULL); // : actor_0 - NN_initTensor(&model->actor_0_weight, 2, (size_t[]){512, 48}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->actor_0_weight, 2, (size_t[]){512, 48}, DTYPE_F32, array_pointer); array_pointer += 24576; - NN_initTensor(&model->actor_0_bias, 1, (size_t[]){512}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->actor_0_bias, 1, (size_t[]){512}, DTYPE_F32, array_pointer); array_pointer += 512; - NN_initTensor(&model->actor_0, 2, (size_t[]){1, 512}, DTYPE_F32, NULL); + NN_init_tensor(&model->actor_0, 2, (size_t[]){1, 512}, DTYPE_F32, NULL); // : actor_1 - NN_initTensor(&model->actor_1, 2, (size_t[]){1, 512}, DTYPE_F32, NULL); + NN_init_tensor(&model->actor_1, 2, (size_t[]){1, 512}, DTYPE_F32, NULL); // : actor_2 - NN_initTensor(&model->actor_2_weight, 2, (size_t[]){256, 512}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->actor_2_weight, 2, (size_t[]){256, 512}, DTYPE_F32, array_pointer); array_pointer += 131072; - NN_initTensor(&model->actor_2_bias, 1, (size_t[]){256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->actor_2_bias, 1, (size_t[]){256}, DTYPE_F32, array_pointer); array_pointer += 256; - NN_initTensor(&model->actor_2, 2, (size_t[]){1, 256}, DTYPE_F32, NULL); + NN_init_tensor(&model->actor_2, 2, (size_t[]){1, 256}, DTYPE_F32, NULL); // : actor_3 - NN_initTensor(&model->actor_3, 2, (size_t[]){1, 256}, DTYPE_F32, NULL); + NN_init_tensor(&model->actor_3, 2, (size_t[]){1, 256}, DTYPE_F32, NULL); // : actor_4 - NN_initTensor(&model->actor_4_weight, 2, (size_t[]){128, 256}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->actor_4_weight, 2, (size_t[]){128, 256}, DTYPE_F32, array_pointer); array_pointer += 32768; - NN_initTensor(&model->actor_4_bias, 1, (size_t[]){128}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->actor_4_bias, 1, (size_t[]){128}, DTYPE_F32, array_pointer); array_pointer += 128; - NN_initTensor(&model->actor_4, 2, (size_t[]){1, 128}, DTYPE_F32, NULL); + NN_init_tensor(&model->actor_4, 2, (size_t[]){1, 128}, DTYPE_F32, NULL); // : actor_5 - NN_initTensor(&model->actor_5, 2, (size_t[]){1, 128}, DTYPE_F32, NULL); + NN_init_tensor(&model->actor_5, 2, (size_t[]){1, 128}, DTYPE_F32, NULL); // : actor_6 - NN_initTensor(&model->actor_6_weight, 2, (size_t[]){12, 128}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->actor_6_weight, 2, (size_t[]){12, 128}, DTYPE_F32, array_pointer); array_pointer += 1536; - NN_initTensor(&model->actor_6_bias, 1, (size_t[]){12}, DTYPE_F32, array_pointer); + NN_init_tensor(&model->actor_6_bias, 1, (size_t[]){12}, DTYPE_F32, array_pointer); array_pointer += 12; - NN_initTensor(&model->actor_6, 2, (size_t[]){1, 12}, DTYPE_F32, NULL); + NN_init_tensor(&model->actor_6, 2, (size_t[]){1, 12}, DTYPE_F32, NULL); } @@ -87,13 +87,13 @@ void init(Model *model) { * Forward pass of the model */ void forward(Model *model) { - NN_Linear(&model->actor_0, &model->input_1, &model->actor_0_weight, &model->actor_0_bias); - NN_ELU(&model->actor_1, &model->actor_0, 1.0); - NN_Linear(&model->actor_2, &model->actor_1, &model->actor_2_weight, &model->actor_2_bias); - NN_ELU(&model->actor_3, &model->actor_2, 1.0); - NN_Linear(&model->actor_4, &model->actor_3, &model->actor_4_weight, &model->actor_4_bias); - NN_ELU(&model->actor_5, &model->actor_4, 1.0); - NN_Linear(&model->actor_6, &model->actor_5, &model->actor_6_weight, &model->actor_6_bias); + NN_linear(&model->actor_0, &model->input_1, &model->actor_0_weight, &model->actor_0_bias); + NN_elu(&model->actor_1, &model->actor_0, 1.0); + NN_linear(&model->actor_2, &model->actor_1, &model->actor_2_weight, &model->actor_2_bias); + NN_elu(&model->actor_3, &model->actor_2, 1.0); + NN_linear(&model->actor_4, &model->actor_3, &model->actor_4_weight, &model->actor_4_bias); + NN_elu(&model->actor_5, &model->actor_4, 1.0); + NN_linear(&model->actor_6, &model->actor_5, &model->actor_6_weight, &model->actor_6_bias); } diff --git a/example/mnist/main.c b/example/mnist/main.c index f89f016..c86aa00 100644 --- a/example/mnist/main.c +++ b/example/mnist/main.c @@ -55,19 +55,19 @@ typedef struct { } Model; void init(Model *model) { - NN_initTensor(&model->input, 2, (size_t[]){ 1, 10 }, DTYPE_F32, (float *)malloc(10 * sizeof(float))); + NN_init_tensor(&model->input, 2, (size_t[]){ 1, 10 }, DTYPE_F32, (float *)malloc(10 * sizeof(float))); - NN_initTensor(&model->fc1_weight, 2, (size_t[]){ 10, 15 }, DTYPE_F32, (float *)fc1_weight_data); - NN_initTensor(&model->fc1_bias, 2, (size_t[]){ 1, 15 }, DTYPE_F32, (float *)fc1_bias_data); - NN_initTensor(&model->fc1_out, 2, (size_t[]){ 1, 15 }, DTYPE_F32, (float *)malloc(15 * sizeof(float))); + NN_init_tensor(&model->fc1_weight, 2, (size_t[]){ 10, 15 }, DTYPE_F32, (float *)fc1_weight_data); + NN_init_tensor(&model->fc1_bias, 2, (size_t[]){ 1, 15 }, DTYPE_F32, (float *)fc1_bias_data); + NN_init_tensor(&model->fc1_out, 2, (size_t[]){ 1, 15 }, DTYPE_F32, (float *)malloc(15 * sizeof(float))); - NN_initTensor(&model->fc2_weight, 2, (size_t[]){ 15, 20 }, DTYPE_F32, (float *)fc2_weight_data); - NN_initTensor(&model->fc2_bias, 2, (size_t[]){ 1, 20 }, DTYPE_F32, (float *)fc2_bias_data); - NN_initTensor(&model->fc2_out, 2, (size_t[]){ 1, 20 }, DTYPE_F32, (float *)malloc(20 * sizeof(float))); + NN_init_tensor(&model->fc2_weight, 2, (size_t[]){ 15, 20 }, DTYPE_F32, (float *)fc2_weight_data); + NN_init_tensor(&model->fc2_bias, 2, (size_t[]){ 1, 20 }, DTYPE_F32, (float *)fc2_bias_data); + NN_init_tensor(&model->fc2_out, 2, (size_t[]){ 1, 20 }, DTYPE_F32, (float *)malloc(20 * sizeof(float))); - NN_initTensor(&model->fc3_weight, 2, (size_t[]){ 20, 5 }, DTYPE_F32, (float *)fc3_weight_data); - NN_initTensor(&model->fc3_bias, 2, (size_t[]){ 1, 5 }, DTYPE_F32, (float *)fc3_bias_data); - NN_initTensor(&model->output, 2, (size_t[]){ 1, 5 }, DTYPE_F32, (float *)malloc(5 * sizeof(float))); + NN_init_tensor(&model->fc3_weight, 2, (size_t[]){ 20, 5 }, DTYPE_F32, (float *)fc3_weight_data); + NN_init_tensor(&model->fc3_bias, 2, (size_t[]){ 1, 5 }, DTYPE_F32, (float *)fc3_bias_data); + NN_init_tensor(&model->output, 2, (size_t[]){ 1, 5 }, DTYPE_F32, (float *)malloc(5 * sizeof(float))); } void forward(Model *model) { diff --git a/example/ppo/main.c b/example/ppo/main.c index c0a5540..d290f89 100644 --- a/example/ppo/main.c +++ b/example/ppo/main.c @@ -46,32 +46,32 @@ typedef struct { void init(Model *model) { uint8_t *array_pointer = externdata; - NN_initTensor(&model->input, 2, (size_t[]){ 1, N_OBS }, DTYPE_F32, (float *)malloc(N_OBS * sizeof(float))); + NN_init_tensor(&model->input, 2, (size_t[]){ 1, N_OBS }, DTYPE_F32, (float *)malloc(N_OBS * sizeof(float))); - NN_initTensor(&model->fc1_weight, 2, (size_t[]){ N_OBS, FC1_SIZE }, DTYPE_F32, (float *)(array_pointer)); + NN_init_tensor(&model->fc1_weight, 2, (size_t[]){ N_OBS, FC1_SIZE }, DTYPE_F32, (float *)(array_pointer)); array_pointer += N_OBS * FC1_SIZE * sizeof(float); - NN_initTensor(&model->fc1_bias, 2, (size_t[]){ 1, FC1_SIZE }, DTYPE_F32, (float *)(array_pointer)); + NN_init_tensor(&model->fc1_bias, 2, (size_t[]){ 1, FC1_SIZE }, DTYPE_F32, (float *)(array_pointer)); array_pointer += FC1_SIZE * sizeof(float); - NN_initTensor(&model->fc1_out, 2, (size_t[]){ 1, FC1_SIZE }, DTYPE_F32, (float *)malloc(FC1_SIZE * sizeof(float))); + NN_init_tensor(&model->fc1_out, 2, (size_t[]){ 1, FC1_SIZE }, DTYPE_F32, (float *)malloc(FC1_SIZE * sizeof(float))); - NN_initTensor(&model->fc2_weight, 2, (size_t[]){ FC1_SIZE, FC2_SIZE }, DTYPE_F32, (float *)(array_pointer)); + NN_init_tensor(&model->fc2_weight, 2, (size_t[]){ FC1_SIZE, FC2_SIZE }, DTYPE_F32, (float *)(array_pointer)); array_pointer += FC1_SIZE * FC2_SIZE * sizeof(float); - NN_initTensor(&model->fc2_bias, 2, (size_t[]){ 1, FC2_SIZE }, DTYPE_F32, (float *)(array_pointer)); + NN_init_tensor(&model->fc2_bias, 2, (size_t[]){ 1, FC2_SIZE }, DTYPE_F32, (float *)(array_pointer)); array_pointer += FC2_SIZE * sizeof(float); - NN_initTensor(&model->fc2_out, 2, (size_t[]){ 1, FC2_SIZE }, DTYPE_F32, (float *)malloc(FC2_SIZE * sizeof(float))); + NN_init_tensor(&model->fc2_out, 2, (size_t[]){ 1, FC2_SIZE }, DTYPE_F32, (float *)malloc(FC2_SIZE * sizeof(float))); - NN_initTensor(&model->fc3_weight, 2, (size_t[]){ FC2_SIZE, FC3_SIZE }, DTYPE_F32, (float *)(array_pointer)); + NN_init_tensor(&model->fc3_weight, 2, (size_t[]){ FC2_SIZE, FC3_SIZE }, DTYPE_F32, (float *)(array_pointer)); array_pointer += FC2_SIZE * FC3_SIZE * sizeof(float); - NN_initTensor(&model->fc3_bias, 2, (size_t[]){ 1, FC3_SIZE }, DTYPE_F32, (float *)(array_pointer)); + NN_init_tensor(&model->fc3_bias, 2, (size_t[]){ 1, FC3_SIZE }, DTYPE_F32, (float *)(array_pointer)); array_pointer += FC3_SIZE * sizeof(float); - NN_initTensor(&model->fc3_out, 2, (size_t[]){ 1, FC3_SIZE }, DTYPE_F32, (float *)malloc(FC3_SIZE * sizeof(float))); + NN_init_tensor(&model->fc3_out, 2, (size_t[]){ 1, FC3_SIZE }, DTYPE_F32, (float *)malloc(FC3_SIZE * sizeof(float))); - NN_initTensor(&model->fc4_weight, 2, (size_t[]){ FC3_SIZE, N_ACS }, DTYPE_F32, (float *)(array_pointer)); + NN_init_tensor(&model->fc4_weight, 2, (size_t[]){ FC3_SIZE, N_ACS }, DTYPE_F32, (float *)(array_pointer)); array_pointer += FC3_SIZE * N_ACS * sizeof(float); printf("ptr: %d\n", (int)array_pointer - (int)externdata_start); - NN_initTensor(&model->fc4_bias, 2, (size_t[]){ 1, N_ACS }, DTYPE_F32, (float *)(array_pointer)); + NN_init_tensor(&model->fc4_bias, 2, (size_t[]){ 1, N_ACS }, DTYPE_F32, (float *)(array_pointer)); array_pointer += N_ACS * sizeof(float); - NN_initTensor(&model->output, 2, (size_t[]){ 1, N_ACS }, DTYPE_F32, (float *)malloc(N_ACS * sizeof(float))); + NN_init_tensor(&model->output, 2, (size_t[]){ 1, N_ACS }, DTYPE_F32, (float *)malloc(N_ACS * sizeof(float))); printf("fc4_bias: \n"); NN_printf(&model->fc4_bias); diff --git a/example/simple/main.c b/example/simple/main.c index 14e67f0..0693fe4 100644 --- a/example/simple/main.c +++ b/example/simple/main.c @@ -30,10 +30,10 @@ Tensor D; * Initialize the required tensors for the model */ void init(Tensor *A, Tensor *B, Tensor *C, Tensor *D) { - NN_initTensor(A, 2, (size_t[]){3, 3}, DTYPE_F32, (float *)malloc(9 * sizeof(float))); - NN_initTensor(B, 2, (size_t[]){3, 3}, DTYPE_F32, (float *)(weights_data + 3 * sizeof(float))); - NN_initTensor(C, 2, (size_t[]){3, 3}, DTYPE_F32, (float *)malloc(9 * sizeof(float))); - NN_initTensor(D, 1, (size_t[]){3}, DTYPE_F32, (float *)(weights_data + 0 * sizeof(float))); + NN_init_tensor(A, 2, (size_t[]){3, 3}, DTYPE_F32, (float *)malloc(9 * sizeof(float))); + NN_init_tensor(B, 2, (size_t[]){3, 3}, DTYPE_F32, (float *)(weights_data + 3 * sizeof(float))); + NN_init_tensor(C, 2, (size_t[]){3, 3}, DTYPE_F32, (float *)malloc(9 * sizeof(float))); + NN_init_tensor(D, 1, (size_t[]){3}, DTYPE_F32, (float *)(weights_data + 0 * sizeof(float))); } /** diff --git a/example/stereo-block-matching/main.c b/example/stereo-block-matching/main.c index ed15369..9b67045 100644 --- a/example/stereo-block-matching/main.c +++ b/example/stereo-block-matching/main.c @@ -120,10 +120,10 @@ Tensor* compute_dispartiy(Tensor *left, Tensor *right, int min_disparity, int ma diff->dtype = DTYPE_I8; - NN_asType(diff_wide, diff); + NN_as_type(diff_wide, diff); diff->dtype = DTYPE_U8; - NN_absInplace(diff_wide); + NN_abs_inplace(diff_wide); // NN_printf(diff); @@ -152,16 +152,16 @@ Tensor* compute_dispartiy(Tensor *left, Tensor *right, int min_disparity, int ma } } - NN_freeTensorData(left_block_signed); - NN_freeTensorData(right_block_signed); - NN_freeTensorData(diff); - NN_freeTensorData(out); - NN_deleteTensor(left_block_signed); - NN_deleteTensor(right_block_signed); - NN_deleteTensor(diff); - NN_deleteTensor(out); - NN_deleteTensor(left_block); - NN_deleteTensor(right_block); + NN_free_tensor_data(left_block_signed); + NN_free_tensor_data(right_block_signed); + NN_free_tensor_data(diff); + NN_free_tensor_data(out); + NN_delete_tensor(left_block_signed); + NN_delete_tensor(right_block_signed); + NN_delete_tensor(diff); + NN_delete_tensor(out); + NN_delete_tensor(left_block); + NN_delete_tensor(right_block); printf("SAD IOPs: %d\n", sad_iop); @@ -189,7 +189,7 @@ int main() { // write only the data printf("printing result\n"); - NN_printShape(disparity_image); + NN_print_shape(disparity_image); printf("\n"); Tensor *img_small = NN_zeros(4, (const size_t[]){1, disparity_image->shape[1] / 4, disparity_image->shape[2] / 2, 1}, DTYPE_U8); diff --git a/nn/CMakeLists.txt b/nn/CMakeLists.txt index 55ab703..5d2ea17 100644 --- a/nn/CMakeLists.txt +++ b/nn/CMakeLists.txt @@ -19,7 +19,7 @@ add_library(nn src/nn_layernorm.c src/nn_linear.c src/nn_matmul.c - src/nn_matrixnorm.c + src/nn_norm.c src/nn_max.c src/nn_maximum.c src/nn_maxpool2d.c diff --git a/nn/inc/nn.h b/nn/inc/nn.h index ad6b026..eba1e59 100644 --- a/nn/inc/nn.h +++ b/nn/inc/nn.h @@ -18,7 +18,7 @@ #include "nn_interpolate.h" #include "nn_linear.h" #include "nn_matmul.h" -#include "nn_matrixnorm.h" +#include "nn_norm.h" #include "nn_max.h" #include "nn_maximum.h" #include "nn_min.h" diff --git a/nn/inc/nn_abs.h b/nn/inc/nn_abs.h index ee4e87b..f6f4853 100644 --- a/nn/inc/nn_abs.h +++ b/nn/inc/nn_abs.h @@ -17,7 +17,7 @@ */ void NN_abs(Tensor *out, Tensor *input); -void NN_absInplace(Tensor *x); +void NN_abs_inplace(Tensor *x); #endif // __NN_ABS_H diff --git a/nn/inc/nn_add.h b/nn/inc/nn_add.h index f90bb7a..acc43d8 100644 --- a/nn/inc/nn_add.h +++ b/nn/inc/nn_add.h @@ -44,7 +44,7 @@ void NN_add1(Tensor *out, Tensor *in, float scalar); * @param b: the target tensor * @param a: the input tensor */ -void NN_addInplace(Tensor *b, Tensor *a); +void NN_add_inplace(Tensor *b, Tensor *a); /** * Returns the element-wise addition of the input tensor with a scalar. @@ -52,15 +52,15 @@ void NN_addInplace(Tensor *b, Tensor *a); * @param b: the target tensor * @param scalar: scalar value */ -void NN_addInplace1(Tensor *b, float scalar); +void NN_add_inplace1(Tensor *b, float scalar); -void NN_add_1D(Tensor *out, Tensor *a, Tensor *b); +void NN_add_1d(Tensor *out, Tensor *a, Tensor *b); -void NN_add_2D(Tensor *out, Tensor *a, Tensor *b); +void NN_add_2d(Tensor *out, Tensor *a, Tensor *b); -void NN_add_3D(Tensor *out, Tensor *a, Tensor *b); +void NN_add_3d(Tensor *out, Tensor *a, Tensor *b); -void NN_add_4D(Tensor *out, Tensor *a, Tensor *b); +void NN_add_4d(Tensor *out, Tensor *a, Tensor *b); #endif // __NN_ADD_H diff --git a/nn/inc/nn_batchnorm2d.h b/nn/inc/nn_batchnorm2d.h index de3f5c3..6e860a8 100644 --- a/nn/inc/nn_batchnorm2d.h +++ b/nn/inc/nn_batchnorm2d.h @@ -18,7 +18,7 @@ * @param running_mean: the running mean of the module of shape (channels), or NULL if no running mean is applied * @param running_var: the running variance of the module of shape (channels), or NULL if no running variance is applied */ -void NN_BatchNorm2d( +void NN_batch_norm2d( Tensor *out, Tensor *in, Tensor *weight, Tensor *bias, float eps, Tensor *running_mean, Tensor *running_va diff --git a/nn/inc/nn_clip.h b/nn/inc/nn_clip.h index 353cf0c..662b79e 100644 --- a/nn/inc/nn_clip.h +++ b/nn/inc/nn_clip.h @@ -21,7 +21,7 @@ */ void NN_clip(Tensor *y, Tensor *x, float min, float max); -void NN_clipInplace(Tensor *x, float min, float max); +void NN_clip_inplace(Tensor *x, float min, float max); #endif // __NN_CLIP_H diff --git a/nn/inc/nn_conv2d.h b/nn/inc/nn_conv2d.h index 9a7495b..88b3e40 100644 --- a/nn/inc/nn_conv2d.h +++ b/nn/inc/nn_conv2d.h @@ -1,5 +1,5 @@ -#ifndef __NN_CONV2D_H -#define __NN_CONV2D_H +#ifndef __NN_conv2d_H +#define __NN_conv2d_H #include #include @@ -12,7 +12,7 @@ * @param out: the output tensor of shape (batch_size, height, width, channels) * @param in: the input tensor of shape (batch_size, channels, height, width) */ -void NN_NCHWToNHWC(Tensor *out, Tensor *in); +void NN_nchw_to_nhwc(Tensor *out, Tensor *in); /** * Converts a tensor from NHWC (Channel-last) to NCHW (PyTorch) format. @@ -20,7 +20,7 @@ void NN_NCHWToNHWC(Tensor *out, Tensor *in); * @param out: the output tensor of shape (batch_size, channels, height, width) * @param in: the input tensor of shape (batch_size, height, width, channels) */ -void NN_NHWCToNCHW(Tensor *out, Tensor *in); +void NN_nhwc_to_nchw(Tensor *out, Tensor *in); /** * Applies a 2D convolution over an input signal composed of several input planes. @@ -34,11 +34,11 @@ void NN_NHWCToNCHW(Tensor *out, Tensor *in); * @param dilation: the spacing between kernel elements * @param groups: number of blocked connections from input channels to output channels */ -void NN_Conv2d( +void NN_conv2d( Tensor *out, Tensor *in, Tensor *weight, Tensor *bias, const size_t *stride, const size_t *padding, const size_t *dilation, size_t groups ); -#endif // __NN_CONV2D_H +#endif // __NN_conv2d_H diff --git a/nn/inc/nn_elu.h b/nn/inc/nn_elu.h index 29db679..273cc64 100644 --- a/nn/inc/nn_elu.h +++ b/nn/inc/nn_elu.h @@ -19,9 +19,9 @@ * @param x: input tensor * @param alpha: the alpha value for the ELU formulation */ -void NN_ELU(Tensor *y, Tensor *x, float alpha); +void NN_elu(Tensor *y, Tensor *x, float alpha); -void NN_ELUInplace(Tensor *x, float alpha); +void NN_elu_inplace(Tensor *x, float alpha); #endif // __NN_ELU_H diff --git a/nn/inc/nn_layernorm.h b/nn/inc/nn_layernorm.h index e99f4c2..d432749 100644 --- a/nn/inc/nn_layernorm.h +++ b/nn/inc/nn_layernorm.h @@ -7,7 +7,7 @@ #include "nn_tensor.h" -void NN_LayerNorm( +void NN_layer_norm( Tensor *out, Tensor *in, Tensor *weight, Tensor *bias, const float eps); diff --git a/nn/inc/nn_linear.h b/nn/inc/nn_linear.h index aa3d9a9..b14c6ba 100644 --- a/nn/inc/nn_linear.h +++ b/nn/inc/nn_linear.h @@ -18,6 +18,6 @@ * @param w: weight tensor of shape (out_features, in_features) * @param b: bias tensor of shape (1, out_features), or NULL if no bias is applied */ -void NN_Linear(Tensor *y, Tensor *x, Tensor *w, Tensor *b); +void NN_linear(Tensor *y, Tensor *x, Tensor *w, Tensor *b); #endif // __NN_Linear_H diff --git a/nn/inc/nn_math.h b/nn/inc/nn_math.h index 955113f..f8f01f6 100644 --- a/nn/inc/nn_math.h +++ b/nn/inc/nn_math.h @@ -657,7 +657,7 @@ // } -// inline static void NN__sum_F32_ggf(const int n, float *s, const float *x) { +// inline static void NN__sum_f32_ggf(const int n, float *s, const float *x) { // float sum = 0.0; // for (int i = 0; i < n; i += 1) { // sum += (float)x[i]; diff --git a/nn/inc/nn_matmul.h b/nn/inc/nn_matmul.h index 0081abe..43497a5 100644 --- a/nn/inc/nn_matmul.h +++ b/nn/inc/nn_matmul.h @@ -27,7 +27,7 @@ void NN_matmul(Tensor *out, Tensor *a, Tensor *b); * @param a: the input tensor of shape (m, k) * @param b: the input tensor of shape (n, k) */ -void NN_matmulT(Tensor *out, Tensor *a, Tensor *b); +void NN_matmul_t(Tensor *out, Tensor *a, Tensor *b); #endif // __NN_MATMUL_H diff --git a/nn/inc/nn_matrixnorm.h b/nn/inc/nn_matrixnorm.h deleted file mode 100644 index ad8257a..0000000 --- a/nn/inc/nn_matrixnorm.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef __NN_MATRIXNORM_H -#define __NN_MATRIXNORM_H - -#include -#include - -#include "nn_tensor.h" - - -/** - * Computes the Frobenius norm of a matrix. - * - * @param tensor: the input tensor of shape (m, n) - */ -void NN_matrixNorm(Tensor *scalar, Tensor *x); - -void NN_matrixNorm_F32(Tensor *scalar, Tensor *x); - - -#endif // __NN_MATRIXNORM_H diff --git a/nn/inc/nn_maxpool2d.h b/nn/inc/nn_maxpool2d.h index 88c226b..b785dfe 100644 --- a/nn/inc/nn_maxpool2d.h +++ b/nn/inc/nn_maxpool2d.h @@ -14,7 +14,7 @@ * @param in: the input tensor of shape (batch_size, channels, pooled_height, pooled_width) * @param kernel_size: size of the pooling window */ -void NN_MaxPool2d_F32(Tensor *out, Tensor *in, const size_t *kernel_size); +void NN_max_pool2d(Tensor *out, Tensor *in, const size_t *kernel_size); #endif // __NN_MAXPOOL2D_H diff --git a/nn/inc/nn_neg.h b/nn/inc/nn_neg.h index a433a53..5fd27a3 100644 --- a/nn/inc/nn_neg.h +++ b/nn/inc/nn_neg.h @@ -17,7 +17,7 @@ */ void NN_neg(Tensor *out, Tensor *input); -void NN_negInplace(Tensor *tensor); +void NN_neg_inplace(Tensor *tensor); #endif // __NN_NEG_H diff --git a/nn/inc/nn_norm.h b/nn/inc/nn_norm.h new file mode 100644 index 0000000..4dd6ca4 --- /dev/null +++ b/nn/inc/nn_norm.h @@ -0,0 +1,18 @@ +#ifndef __NN_NORM_H +#define __NN_NORM_H + +#include +#include + +#include "nn_tensor.h" + + +/** + * Computes the Frobenius norm of a matrix. + * + * @param tensor: the input tensor of shape (m, n) + */ +void NN_norm(Tensor *scalar, Tensor *x); + + +#endif // __NN_NORM_H diff --git a/nn/inc/nn_print.h b/nn/inc/nn_print.h index cea4297..87b872e 100644 --- a/nn/inc/nn_print.h +++ b/nn/inc/nn_print.h @@ -6,9 +6,9 @@ #include "nn_tensor.h" -void NN_printFloat(float v, int16_t num_digits); +void NN_print_f32(float v, int16_t num_digits); -void NN_printShape(Tensor *t); +void NN_print_shape(Tensor *t); void NN_printf(Tensor *t); diff --git a/nn/inc/nn_relu.h b/nn/inc/nn_relu.h index 420b81c..fbe5def 100644 --- a/nn/inc/nn_relu.h +++ b/nn/inc/nn_relu.h @@ -15,8 +15,8 @@ * @param y: the output tensor * @param x: the input tensor */ -void NN_ReLU(Tensor *y, Tensor *x); +void NN_relu(Tensor *y, Tensor *x); -void NN_ReLUInplace(Tensor *x); +void NN_relu_inplace(Tensor *x); #endif // __NN_RELU_H diff --git a/nn/inc/nn_relu6.h b/nn/inc/nn_relu6.h index 460fe5c..3b23934 100644 --- a/nn/inc/nn_relu6.h +++ b/nn/inc/nn_relu6.h @@ -16,9 +16,9 @@ * @param y: the output tensor * @param x: the input tensor */ -void NN_ReLU6(Tensor *y, Tensor *x); +void NN_relu6(Tensor *y, Tensor *x); -void NN_ReLU6Inplace(Tensor *x); +void NN_relu6_inplace(Tensor *x); #endif // __NN_RELU6_H diff --git a/nn/inc/nn_softmax.h b/nn/inc/nn_softmax.h index 7185afb..a38726c 100644 --- a/nn/inc/nn_softmax.h +++ b/nn/inc/nn_softmax.h @@ -13,7 +13,7 @@ * @param out: the output scalar tensor * @param tensor: the input tensor */ -void NN_Softmax(Tensor *out, Tensor *tensor, size_t dim); +void NN_softmax(Tensor *out, Tensor *tensor, size_t dim); #endif // __NN_SOFTMAX_H diff --git a/nn/inc/nn_sub.h b/nn/inc/nn_sub.h index 20a7a4e..63bd28c 100644 --- a/nn/inc/nn_sub.h +++ b/nn/inc/nn_sub.h @@ -22,13 +22,13 @@ */ void NN_sub(Tensor *out, Tensor *a, Tensor *b); -void NN_sub_1D(Tensor *out, Tensor *a, Tensor *b); +void NN_sub_1d(Tensor *out, Tensor *a, Tensor *b); -void NN_sub_2D(Tensor *out, Tensor *a, Tensor *b); +void NN_sub_2d(Tensor *out, Tensor *a, Tensor *b); -void NN_sub_3D(Tensor *out, Tensor *a, Tensor *b); +void NN_sub_3d(Tensor *out, Tensor *a, Tensor *b); -void NN_sub_4D(Tensor *out, Tensor *a, Tensor *b); +void NN_sub_4d(Tensor *out, Tensor *a, Tensor *b); #endif // __NN_SUB_H diff --git a/nn/inc/nn_tensor.h b/nn/inc/nn_tensor.h index ff24da2..aa03eb1 100644 --- a/nn/inc/nn_tensor.h +++ b/nn/inc/nn_tensor.h @@ -70,7 +70,7 @@ static inline size_t NN_sizeof(DataType dtype) { } } -static inline const char *NN_getDataTypeName(DataType dtype) { +static inline const char *NN_get_datatype_name(DataType dtype) { switch (dtype) { case DTYPE_U8: return "UINT8"; @@ -104,7 +104,7 @@ static inline const char *NN_getDataTypeName(DataType dtype) { * * @param tensor: the target tensor */ -static inline uint8_t NN_isScalar(Tensor *tensor) { +static inline uint8_t NN_is_scalar(Tensor *tensor) { return tensor->ndim == 0; } @@ -113,7 +113,7 @@ static inline uint8_t NN_isScalar(Tensor *tensor) { * * @param tensor: the target tensor */ -static inline uint8_t NN_isVector(Tensor *tensor) { +static inline uint8_t NN_is_vector(Tensor *tensor) { return tensor->ndim == 1; } @@ -122,7 +122,7 @@ static inline uint8_t NN_isVector(Tensor *tensor) { * * @param tensor: the target tensor */ -static inline uint8_t NN_isMatrix(Tensor *tensor) { +static inline uint8_t NN_is_matrix(Tensor *tensor) { return tensor->ndim == 2; } @@ -131,7 +131,7 @@ static inline uint8_t NN_isMatrix(Tensor *tensor) { * * @param tensor: the target tensor */ -static inline uint8_t NN_is3D(Tensor *tensor) { +static inline uint8_t NN_is_3d(Tensor *tensor) { return tensor->ndim == 3; } @@ -140,7 +140,7 @@ static inline uint8_t NN_is3D(Tensor *tensor) { * * @param tensor: the target tensor */ -static inline uint8_t NN_is4D(Tensor *tensor) { +static inline uint8_t NN_is_4d(Tensor *tensor) { return tensor->ndim == 4; } @@ -149,7 +149,7 @@ static inline uint8_t NN_is4D(Tensor *tensor) { * * @param tensor: the target tensor */ -static inline void NN_freeTensorData(Tensor *tensor) { +static inline void NN_free_tensor_data(Tensor *tensor) { free(tensor->data); } @@ -158,7 +158,7 @@ static inline void NN_freeTensorData(Tensor *tensor) { * * @param tensor: the target tensor */ -static inline void NN_deleteTensor(Tensor *tensor) { +static inline void NN_delete_tensor(Tensor *tensor) { free(tensor); } @@ -172,7 +172,7 @@ static inline void NN_deleteTensor(Tensor *tensor) { * @param dtype: data type * @param data: pointer to data, if NULL, the data will be allocated */ -void NN_initTensor(Tensor *tensor, const size_t ndim, const size_t *shape, DataType dtype, void *data); +void NN_init_tensor(Tensor *tensor, const size_t ndim, const size_t *shape, DataType dtype, void *data); /** * Create a new tensor @@ -228,7 +228,7 @@ Tensor *NN_rand(size_t ndim, const size_t *shape, DataType dtype); * @param out: the output tensor * @param in: the input tensor */ -void NN_asType(Tensor *out, Tensor *in); +void NN_as_type(Tensor *out, Tensor *in); #endif // __NN_TENSOR \ No newline at end of file diff --git a/nn/inc/ops/abs.h b/nn/inc/ops/abs.h index 39d3b6e..d16ae85 100644 --- a/nn/inc/ops/abs.h +++ b/nn/inc/ops/abs.h @@ -13,7 +13,7 @@ #include #endif -static inline void NN__abs_I8(size_t n, int8_t *y, int8_t *x) { +static inline void NN__abs_i8(size_t n, int8_t *y, int8_t *x) { #if defined(RVV) while (n > 0) { size_t vl = __riscv_vsetvl_e8m1(n); @@ -33,7 +33,7 @@ static inline void NN__abs_I8(size_t n, int8_t *y, int8_t *x) { #endif } -static inline void NN__abs_I16(size_t n, int16_t *y, int16_t *x) { +static inline void NN__abs_i16(size_t n, int16_t *y, int16_t *x) { #if defined(RVV) while (n > 0) { size_t vl = __riscv_vsetvl_e16m1(n); @@ -53,7 +53,7 @@ static inline void NN__abs_I16(size_t n, int16_t *y, int16_t *x) { #endif } -static inline void NN__abs_I32(size_t n, int32_t *y, int32_t *x) { +static inline void NN__abs_i32(size_t n, int32_t *y, int32_t *x) { #if defined(RVV) while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); @@ -73,13 +73,13 @@ static inline void NN__abs_I32(size_t n, int32_t *y, int32_t *x) { #endif } -static inline void NN__abs_F16(size_t n, float16_t *y, float16_t *x) { +static inline void NN__abs_f16(size_t n, float16_t *y, float16_t *x) { for (size_t i = 0; i < n; i += 1) { y[i] = NN_floatToHalf(fabsf(NN_halfToFloat(x[i]))); } } -static inline void NN__abs_F32(size_t n, float *y, float *x) { +static inline void NN__abs_f32(size_t n, float *y, float *x) { #if defined(AVX) // Mask to clear the sign bit __m256 mask = _mm256_castsi256_ps(_mm256_set1_epi32(0x7FFFFFFF)); diff --git a/nn/inc/ops/acc.h b/nn/inc/ops/acc.h index 87cfbbb..3a70792 100644 --- a/nn/inc/ops/acc.h +++ b/nn/inc/ops/acc.h @@ -8,13 +8,13 @@ #include #endif -static inline void NN__acc_I8(size_t n, int8_t *y, int8_t *x) { +static inline void NN__acc_i8(size_t n, int8_t *y, int8_t *x) { for (size_t i = 0; i < n; i += 1) { y[i] += x[i]; } } -static inline void NN__acc_F32(size_t n, float *y, float *x) { +static inline void NN__acc_f32(size_t n, float *y, float *x) { #ifdef RVV while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); diff --git a/nn/inc/ops/acc1.h b/nn/inc/ops/acc1.h index d0ca777..5832341 100644 --- a/nn/inc/ops/acc1.h +++ b/nn/inc/ops/acc1.h @@ -7,7 +7,7 @@ #include #endif -static inline void NN__acc1_F32(size_t n, float *y, float v) { +static inline void NN__acc1_f32(size_t n, float *y, float v) { #ifdef RVV while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); diff --git a/nn/inc/ops/add.h b/nn/inc/ops/add.h index e785b59..3c3880d 100644 --- a/nn/inc/ops/add.h +++ b/nn/inc/ops/add.h @@ -10,7 +10,7 @@ #include "nn_float16.h" -static inline void NN__add_I8(size_t n, int8_t *z, int8_t *x, int8_t *y) { +static inline void NN__add_i8(size_t n, int8_t *z, int8_t *x, int8_t *y) { #ifdef RVV while (n > 0) { size_t vl = __riscv_vsetvl_e8m1(n); @@ -30,13 +30,13 @@ static inline void NN__add_I8(size_t n, int8_t *z, int8_t *x, int8_t *y) { #endif } -static inline void NN__add_F16(size_t n, float16_t *z, float16_t *x, float16_t *y) { +static inline void NN__add_f16(size_t n, float16_t *z, float16_t *x, float16_t *y) { for (size_t i = 0; i < n; i += 1) { z[i] = NN_floatToHalf(NN_halfToFloat(x[i]) + NN_halfToFloat(y[i])); } } -static inline void NN__add_F32(size_t n, float *z, float *x, float *y) { +static inline void NN__add_f32(size_t n, float *z, float *x, float *y) { #ifdef RVV while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); diff --git a/nn/inc/ops/add1.h b/nn/inc/ops/add1.h index 84c015c..09b3aeb 100644 --- a/nn/inc/ops/add1.h +++ b/nn/inc/ops/add1.h @@ -7,7 +7,7 @@ #include #endif -static inline void NN__add1_F32(size_t n, float *z, float *x, float v) { +static inline void NN__add1_f32(size_t n, float *z, float *x, float v) { #ifdef RVV while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); diff --git a/nn/inc/ops/div.h b/nn/inc/ops/div.h index 8e43483..ef13677 100644 --- a/nn/inc/ops/div.h +++ b/nn/inc/ops/div.h @@ -8,7 +8,7 @@ #include #endif -static inline void NN__div_F32(size_t n, float *z, float *x, float *y) { +static inline void NN__div_f32(size_t n, float *z, float *x, float *y) { #ifdef RVV while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); diff --git a/nn/inc/ops/dot.h b/nn/inc/ops/dot.h index 372d032..c9c68dc 100644 --- a/nn/inc/ops/dot.h +++ b/nn/inc/ops/dot.h @@ -10,7 +10,7 @@ #include "nn_float16.h" -static inline void NN__dot_F16(size_t n, float16_t *s, float16_t *x, float16_t *y) { +static inline void NN__dot_f16(size_t n, float16_t *s, float16_t *x, float16_t *y) { float16_t sum = 0.0; #ifdef RVV @@ -42,7 +42,7 @@ static inline void NN__dot_F16(size_t n, float16_t *s, float16_t *x, float16_t * *s = sum; } -static inline void NN__dot_F32(size_t n, float *s, float *x, float *y) { +static inline void NN__dot_f32(size_t n, float *s, float *x, float *y) { float sum = 0.0; #ifdef RVV diff --git a/nn/inc/ops/fill.h b/nn/inc/ops/fill.h index 81fc0d9..41a845b 100644 --- a/nn/inc/ops/fill.h +++ b/nn/inc/ops/fill.h @@ -16,31 +16,31 @@ inline static void NN__fill_U8(size_t n, uint8_t *x, uint8_t v) { } } -inline static void NN__fill_I8(size_t n, int8_t *x, int8_t v) { +inline static void NN__fill_i8(size_t n, int8_t *x, int8_t v) { for (size_t i = 0; i < n; i += 1) { x[i] = v; } } -inline static void NN__fill_U16(size_t n, uint16_t *x, uint16_t v) { +inline static void NN__fill_u16(size_t n, uint16_t *x, uint16_t v) { for (size_t i = 0; i < n; i += 1) { x[i] = v; } } -inline static void NN__fill_I16(size_t n, int16_t *x, int16_t v) { +inline static void NN__fill_i16(size_t n, int16_t *x, int16_t v) { for (size_t i = 0; i < n; i += 1) { x[i] = v; } } -inline static void NN__fill_I32(size_t n, int32_t *x, int32_t v) { +inline static void NN__fill_i32(size_t n, int32_t *x, int32_t v) { for (size_t i = 0; i < n; i += 1) { x[i] = v; } } -inline static void NN__fill_F16(size_t n, float16_t *x, float16_t v) { +inline static void NN__fill_f16(size_t n, float16_t *x, float16_t v) { for (size_t i = 0; i < n; i += 1) { x[i] = v; } @@ -52,7 +52,7 @@ inline static void NN__fill_F16(size_t n, float16_t *x, float16_t v) { // } // } -inline static void NN__fill_F32(size_t n, float *x, float v) { +inline static void NN__fill_f32(size_t n, float *x, float v) { #ifdef RVV while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); diff --git a/nn/inc/ops/log.h b/nn/inc/ops/log.h index 8aaf9b3..446a78f 100644 --- a/nn/inc/ops/log.h +++ b/nn/inc/ops/log.h @@ -9,7 +9,7 @@ #include #endif -static inline void NN__log_F32(size_t n, float *y, float *x) { +static inline void NN__log_f32(size_t n, float *y, float *x) { for (size_t i = 0; i < n; i += 1) { y[i] = logf(x[i]); } diff --git a/nn/inc/ops/max.h b/nn/inc/ops/max.h index 4c33d84..af5f932 100644 --- a/nn/inc/ops/max.h +++ b/nn/inc/ops/max.h @@ -9,7 +9,7 @@ #include #endif -static inline void NN__max_F32(size_t n, float *s, float *x) { +static inline void NN__max_f32(size_t n, float *s, float *x) { float max = -FLT_MAX; #ifdef RVV diff --git a/nn/inc/ops/maximum.h b/nn/inc/ops/maximum.h index 39180e3..06d3aa4 100644 --- a/nn/inc/ops/maximum.h +++ b/nn/inc/ops/maximum.h @@ -8,7 +8,7 @@ #include #endif -static inline void NN__maximum_F32(size_t n, float *z, float *x, float *y) { +static inline void NN__maximum_f32(size_t n, float *z, float *x, float *y) { #ifdef RVV while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); diff --git a/nn/inc/ops/maximum1.h b/nn/inc/ops/maximum1.h index 26ec9d7..b78b44f 100644 --- a/nn/inc/ops/maximum1.h +++ b/nn/inc/ops/maximum1.h @@ -8,7 +8,7 @@ #include #endif -static inline void NN__maximum1_F32(size_t n, float *y, float *x, float v) { +static inline void NN__maximum1_f32(size_t n, float *y, float *x, float v) { #ifdef RVV while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); diff --git a/nn/inc/ops/min.h b/nn/inc/ops/min.h index 44f2b0f..0febeb7 100644 --- a/nn/inc/ops/min.h +++ b/nn/inc/ops/min.h @@ -9,7 +9,7 @@ #include #endif -static inline void NN__min_F32(size_t n, float *s, float *x) { +static inline void NN__min_f32(size_t n, float *s, float *x) { float min = FLT_MAX; #ifdef RVV diff --git a/nn/inc/ops/minimum.h b/nn/inc/ops/minimum.h index 674bf72..08a8253 100644 --- a/nn/inc/ops/minimum.h +++ b/nn/inc/ops/minimum.h @@ -8,7 +8,7 @@ #include #endif -static inline void NN__minimum_F32(size_t n, float *z, float *x, float *y) { +static inline void NN__minimum_f32(size_t n, float *z, float *x, float *y) { #ifdef RVV while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); diff --git a/nn/inc/ops/minimum1.h b/nn/inc/ops/minimum1.h index 1b81f2a..e4cbdb8 100644 --- a/nn/inc/ops/minimum1.h +++ b/nn/inc/ops/minimum1.h @@ -8,7 +8,7 @@ #include #endif -static inline void NN__minimum1_F32(size_t n, float *y, float *x, float v) { +static inline void NN__minimum1_f32(size_t n, float *y, float *x, float v) { #ifdef RVV while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); diff --git a/nn/inc/ops/mul.h b/nn/inc/ops/mul.h index 5c0e4cf..edcc8e6 100644 --- a/nn/inc/ops/mul.h +++ b/nn/inc/ops/mul.h @@ -8,7 +8,7 @@ #include #endif -static inline void NN__mul_F32(size_t n, float *z, float *x, float *y) { +static inline void NN__mul_f32(size_t n, float *z, float *x, float *y) { #ifdef RVV while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); diff --git a/nn/inc/ops/mul1.h b/nn/inc/ops/mul1.h index f187b9a..286e75b 100644 --- a/nn/inc/ops/mul1.h +++ b/nn/inc/ops/mul1.h @@ -8,7 +8,7 @@ #include #endif -static inline void NN__mul1_F32(size_t n, float *y, float *x, float v) { +static inline void NN__mul1_f32(size_t n, float *y, float *x, float v) { #ifdef RVV while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); diff --git a/nn/inc/ops/neg.h b/nn/inc/ops/neg.h index 7f95421..9e26ecb 100644 --- a/nn/inc/ops/neg.h +++ b/nn/inc/ops/neg.h @@ -8,7 +8,7 @@ #include #endif -static inline void NN__neg_F32(size_t n, float *y, float *x) { +static inline void NN__neg_f32(size_t n, float *y, float *x) { #ifdef RVV while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); diff --git a/nn/inc/ops/norm.h b/nn/inc/ops/norm.h index 035b04e..babdc80 100644 --- a/nn/inc/ops/norm.h +++ b/nn/inc/ops/norm.h @@ -9,13 +9,13 @@ #include "dot.h" -static inline void NN__norm_F32(size_t n, float *s, float *x) { - NN__dot_F32(n, s, x, x); +static inline void NN__norm_f32(size_t n, float *s, float *x) { + NN__dot_f32(n, s, x, x); *s = sqrtf(*s); } -static inline void NN__norm_inv_F32(size_t n, float *s, float *x) { - NN__norm_F32(n, s, x); +static inline void NN__norm_inv_f32(size_t n, float *s, float *x) { + NN__norm_f32(n, s, x); *s = 1.f/(*s); } diff --git a/nn/inc/ops/rmsnorm.h b/nn/inc/ops/rmsnorm.h index fb667f8..7f44a78 100644 --- a/nn/inc/ops/rmsnorm.h +++ b/nn/inc/ops/rmsnorm.h @@ -8,7 +8,7 @@ #include #endif -void NN__rmsnorm_F32(size_t size, float* o, float* x, float* weight) { +void NN__rmsnorm_f32(size_t size, float* o, float* x, float* weight) { // calculate sum of squares float ss = 0.0f; for (int j = 0; j < size; j++) { diff --git a/nn/inc/ops/sgn.h b/nn/inc/ops/sgn.h index 830b857..4407a0d 100644 --- a/nn/inc/ops/sgn.h +++ b/nn/inc/ops/sgn.h @@ -9,7 +9,7 @@ #include #endif -static inline void NN__sgn_F32(size_t n, float *y, float *x) { +static inline void NN__sgn_f32(size_t n, float *y, float *x) { for (size_t i = 0; i < n; i += 1) { y[i] = (x[i] > 0.f) ? 1.f : ((x[i] < 0.f) ? -1.f : 0.f); } diff --git a/nn/inc/ops/softmax.h b/nn/inc/ops/softmax.h index c2bd9cc..4e79c59 100644 --- a/nn/inc/ops/softmax.h +++ b/nn/inc/ops/softmax.h @@ -8,7 +8,7 @@ #include #endif -static inline void NN__softmax_F32(size_t n, float *y, float *x, size_t stride) { +static inline void NN__softmax_f32(size_t n, float *y, float *x, size_t stride) { // exp and sum float sum = 0.0f; for (size_t i = 0; i < n * stride; i += stride) { diff --git a/nn/inc/ops/sqr.h b/nn/inc/ops/sqr.h index d829b1b..db7db59 100644 --- a/nn/inc/ops/sqr.h +++ b/nn/inc/ops/sqr.h @@ -9,7 +9,7 @@ #include #endif -static inline void NN__sqr_F32(size_t n, float *y, float *x) { +static inline void NN__sqr_f32(size_t n, float *y, float *x) { for (size_t i = 0; i < n; i += 1) { y[i] = x[i] * x[i]; } diff --git a/nn/inc/ops/sqrt.h b/nn/inc/ops/sqrt.h index 054edde..e43966d 100644 --- a/nn/inc/ops/sqrt.h +++ b/nn/inc/ops/sqrt.h @@ -9,7 +9,7 @@ #include #endif -static inline void NN__sqrt_F32(size_t n, float *y, float *x) { +static inline void NN__sqrt_f32(size_t n, float *y, float *x) { for (size_t i = 0; i < n; i += 1) { y[i] = sqrtf(x[i]); } diff --git a/nn/inc/ops/sub.h b/nn/inc/ops/sub.h index 9e5dd91..f809d82 100644 --- a/nn/inc/ops/sub.h +++ b/nn/inc/ops/sub.h @@ -8,7 +8,7 @@ #include #endif -static inline void NN__sub_U8(size_t n, uint8_t *z, uint8_t *x, uint8_t *y) { +static inline void NN__sub_u8(size_t n, uint8_t *z, uint8_t *x, uint8_t *y) { #ifdef RVV while (n > 0) { size_t vl = __riscv_vsetvl_e8m1(n); @@ -28,7 +28,7 @@ static inline void NN__sub_U8(size_t n, uint8_t *z, uint8_t *x, uint8_t *y) { #endif } -static inline void NN__sub_I8(size_t n, int8_t *z, int8_t *x, int8_t *y) { +static inline void NN__sub_i8(size_t n, int8_t *z, int8_t *x, int8_t *y) { #ifdef RVV while (n > 0) { size_t vl = __riscv_vsetvl_e8m1(n); @@ -48,7 +48,7 @@ static inline void NN__sub_I8(size_t n, int8_t *z, int8_t *x, int8_t *y) { #endif } -static inline void NN__sub_I16(size_t n, int16_t *z, int16_t *x, int16_t *y) { +static inline void NN__sub_i16(size_t n, int16_t *z, int16_t *x, int16_t *y) { #ifdef RVV while (n > 0) { size_t vl = __riscv_vsetvl_e16m1(n); @@ -68,7 +68,7 @@ static inline void NN__sub_I16(size_t n, int16_t *z, int16_t *x, int16_t *y) { #endif } -static inline void NN__sub_I32(size_t n, int32_t *z, int32_t *x, int32_t *y) { +static inline void NN__sub_i32(size_t n, int32_t *z, int32_t *x, int32_t *y) { #ifdef RVV while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); @@ -88,7 +88,7 @@ static inline void NN__sub_I32(size_t n, int32_t *z, int32_t *x, int32_t *y) { #endif } -static inline void NN__sub_F32(size_t n, float *z, float *x, float *y) { +static inline void NN__sub_f32(size_t n, float *z, float *x, float *y) { #ifdef RVV while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); diff --git a/nn/inc/ops/sum.h b/nn/inc/ops/sum.h index 31da83d..d642a54 100644 --- a/nn/inc/ops/sum.h +++ b/nn/inc/ops/sum.h @@ -9,7 +9,7 @@ #include #endif -static inline void NN__sum_I16_to_I32(size_t n, uint32_t *s, int16_t *x) { +static inline void NN__sum_i16_to_i32(size_t n, uint32_t *s, int16_t *x) { int32_t sum = 0; for (size_t i = 0; i < n; i += 1) { sum += (int32_t)x[i]; @@ -17,7 +17,7 @@ static inline void NN__sum_I16_to_I32(size_t n, uint32_t *s, int16_t *x) { *s = sum; } -static inline void NN__sum_I32(size_t n, uint32_t *s, int32_t *x) { +static inline void NN__sum_i32(size_t n, uint32_t *s, int32_t *x) { int32_t sum = 0; for (size_t i = 0; i < n; i += 1) { sum += x[i]; @@ -25,7 +25,7 @@ static inline void NN__sum_I32(size_t n, uint32_t *s, int32_t *x) { *s = sum; } -static inline void NN__sum_F32(size_t n, float *s, float *x) { +static inline void NN__sum_f32(size_t n, float *s, float *x) { float sum = 0.0; for (size_t i = 0; i < n; i += 1) { sum += (float)x[i]; diff --git a/nn/inc/ops/transpose.h b/nn/inc/ops/transpose.h index 55edada..5f2e51d 100644 --- a/nn/inc/ops/transpose.h +++ b/nn/inc/ops/transpose.h @@ -7,7 +7,7 @@ #include #endif -static inline void NN__transpose_F32(size_t n, size_t m, float *y, float *x) { +static inline void NN__transpose_f32(size_t n, size_t m, float *y, float *x) { #ifdef RVV for (size_t i = 0; i < m; i += 1) { size_t k = n; diff --git a/nn/nn_todo b/nn/nn_todo index d5e6c3a..10b9f76 100644 --- a/nn/nn_todo +++ b/nn/nn_todo @@ -78,7 +78,7 @@ size_t NN_argmax(Matrix *a) { * ====== Operators ====== */ -void NN_Linear(Matrix *out, Matrix *weight, Matrix *bias, Matrix *input) { +void NN_linear(Matrix *out, Matrix *weight, Matrix *bias, Matrix *input) { NN_matmul(out, input, weight); NN_matadd(out, out, bias); } diff --git a/nn/src/nn_abs.c b/nn/src/nn_abs.c index 20898b1..abe3500 100644 --- a/nn/src/nn_abs.c +++ b/nn/src/nn_abs.c @@ -9,19 +9,19 @@ void NN_abs(Tensor *out, Tensor *in) { switch (out->dtype) { case DTYPE_I8: - NN__abs_I8(out->size, (int8_t *)out->data, (int8_t *)in->data); + NN__abs_i8(out->size, (int8_t *)out->data, (int8_t *)in->data); return; case DTYPE_I16: - NN__abs_I16(out->size, (int16_t *)out->data, (int16_t *)in->data); + NN__abs_i16(out->size, (int16_t *)out->data, (int16_t *)in->data); return; case DTYPE_I32: - NN__abs_I32(out->size, (int32_t *)out->data, (int32_t *)in->data); + NN__abs_i32(out->size, (int32_t *)out->data, (int32_t *)in->data); return; case DTYPE_F16: - NN__abs_F16(out->size, (float16_t *)out->data, (float16_t *)in->data); + NN__abs_f16(out->size, (float16_t *)out->data, (float16_t *)in->data); return; case DTYPE_F32: - NN__abs_F32(out->size, (float *)out->data, (float *)in->data); + NN__abs_f32(out->size, (float *)out->data, (float *)in->data); return; default: @@ -29,10 +29,10 @@ void NN_abs(Tensor *out, Tensor *in) { } printf("[ERROR] Unsupported operation of tensor with dtype %s = |%s|\n", - NN_getDataTypeName(out->dtype), NN_getDataTypeName(in->dtype) + NN_get_datatype_name(out->dtype), NN_get_datatype_name(in->dtype) ); } -void NN_absInplace(Tensor *x) { +void NN_abs_inplace(Tensor *x) { NN_abs(x, x); } diff --git a/nn/src/nn_add.c b/nn/src/nn_add.c index 6ffc207..bdbae6a 100644 --- a/nn/src/nn_add.c +++ b/nn/src/nn_add.c @@ -12,7 +12,7 @@ void NN_add(Tensor *out, Tensor *a, Tensor *b) { && b->shape[1] == a->shape[1] && b->shape[2] == a->shape[2] && b->shape[3] == a->shape[3]) { - NN__add_F16(out->size, (float16_t *)out->data, (float16_t *)a->data, (float16_t *)b->data); + NN__add_f16(out->size, (float16_t *)out->data, (float16_t *)a->data, (float16_t *)b->data); return; } for (size_t i = 0; i < out->shape[0]; i += 1) { @@ -31,9 +31,9 @@ void NN_add(Tensor *out, Tensor *a, Tensor *b) { return; } printf("[ERROR] Unsupported operation between tensor with shape "); - NN_printShape(a); + NN_print_shape(a); printf(" + "); - NN_printShape(b); + NN_print_shape(b); printf("\n"); return; @@ -43,7 +43,7 @@ void NN_add(Tensor *out, Tensor *a, Tensor *b) { && b->shape[1] == a->shape[1] && b->shape[2] == a->shape[2] && b->shape[3] == a->shape[3]) { - NN__add_F32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); + NN__add_f32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); return; } for (size_t i = 0; i < out->shape[0]; i += 1) { @@ -80,9 +80,9 @@ void NN_add(Tensor *out, Tensor *a, Tensor *b) { } printf("[ERROR] Unsupported operation between tensor with shape "); - NN_printShape(a); + NN_print_shape(a); printf(" + "); - NN_printShape(b); + NN_print_shape(b); printf("\n"); return; @@ -91,7 +91,7 @@ void NN_add(Tensor *out, Tensor *a, Tensor *b) { } printf("[ERROR] Unsupported operation between tensor with dtype %s = %s + %s\n", - NN_getDataTypeName(out->dtype), NN_getDataTypeName(a->dtype), NN_getDataTypeName(b->dtype) + NN_get_datatype_name(out->dtype), NN_get_datatype_name(a->dtype), NN_get_datatype_name(b->dtype) ); } @@ -102,47 +102,47 @@ void NN_add1(Tensor *out, Tensor *a, float b) { switch (out->dtype) { case DTYPE_F32: - NN__add1_F32(out->size, (float *)out->data, (float *)a->data, b); + NN__add1_f32(out->size, (float *)out->data, (float *)a->data, b); return; default: break; } printf("[ERROR] Unsupported operation between tensor with dtype %s += %s\n", - NN_getDataTypeName(out->dtype), NN_getDataTypeName(a->dtype) + NN_get_datatype_name(out->dtype), NN_get_datatype_name(a->dtype) ); } -void NN_addInplace(Tensor *b, Tensor *a) { +void NN_add_inplace(Tensor *b, Tensor *a) { assert(b->ndim == a->ndim); assert(b->dtype == a->dtype); switch (b->dtype) { case DTYPE_F32: - NN__acc_F32(b->size, (float *)b->data, (float *)a->data); + NN__acc_f32(b->size, (float *)b->data, (float *)a->data); return; case DTYPE_I8: - NN__acc_I8(b->size, (int8_t *)b->data, (int8_t *)a->data); + NN__acc_i8(b->size, (int8_t *)b->data, (int8_t *)a->data); return; default: break; } printf("[ERROR] Unsupported operation between tensor with dtype %s += %s\n", - NN_getDataTypeName(b->dtype), NN_getDataTypeName(a->dtype) + NN_get_datatype_name(b->dtype), NN_get_datatype_name(a->dtype) ); } -void NN_addInplace1(Tensor *b, float scalar) { +void NN_add_inplace1(Tensor *b, float scalar) { switch (b->dtype) { case DTYPE_F32: - NN__acc1_F32(b->size, (float *)b->data, scalar); + NN__acc1_f32(b->size, (float *)b->data, scalar); return; default: break; } printf("[ERROR] Unsupported operation between tensor with dtype %s += float\n", - NN_getDataTypeName(b->dtype) + NN_get_datatype_name(b->dtype) ); } diff --git a/nn/src/nn_attention.c b/nn/src/nn_attention.c index ced2e2e..c79ec8f 100644 --- a/nn/src/nn_attention.c +++ b/nn/src/nn_attention.c @@ -17,9 +17,9 @@ void NN_attention( s->v = s->value_cache + loff + pos * kv_dim; // qkv matmuls for this position - NN_matmulT(q, s->xb, w->wq + l*dim*dim, dim, dim); - NN_matmulT(k, s->xb, w->wk + l*dim*kv_dim, dim, kv_dim); - NN_matmulT(v, s->xb, w->wv + l*dim*kv_dim, dim, kv_dim); + NN_matmul_t(q, s->xb, w->wq + l*dim*dim, dim, dim); + NN_matmul_t(k, s->xb, w->wk + l*dim*kv_dim, dim, kv_dim); + NN_matmul_t(v, s->xb, w->wv + l*dim*kv_dim, dim, kv_dim); // RoPE relative positional encoding: complex-valued rotate q and k in each head for (int i = 0; i < dim; i+=2) { diff --git a/nn/src/nn_batchnorm2d.c b/nn/src/nn_batchnorm2d.c index 7787021..9625a62 100644 --- a/nn/src/nn_batchnorm2d.c +++ b/nn/src/nn_batchnorm2d.c @@ -1,7 +1,7 @@ #include "nn_batchnorm2d.h" -void NN_BatchNorm2d( +void NN_batch_norm2d( Tensor *out, Tensor *in, Tensor *weight, Tensor *bias, float eps, Tensor *running_mean, Tensor *running_var) { diff --git a/nn/src/nn_clip.c b/nn/src/nn_clip.c index 6ebd1a3..24638c0 100644 --- a/nn/src/nn_clip.c +++ b/nn/src/nn_clip.c @@ -9,8 +9,8 @@ void NN_clip(Tensor *y, Tensor *x, float min, float max) { switch (y->dtype) { case DTYPE_F32: - NN__maximum1_F32(y->size, (float *)y->data, (float *)x->data, min); - NN__minimum1_F32(y->size, (float *)y->data, (float *)y->data, max); + NN__maximum1_f32(y->size, (float *)y->data, (float *)x->data, min); + NN__minimum1_f32(y->size, (float *)y->data, (float *)y->data, max); return; default: @@ -18,10 +18,10 @@ void NN_clip(Tensor *y, Tensor *x, float min, float max) { } printf("[ERROR] Unsupported operation for tensor with dtype %s = clip(%s, float, float)\n", - NN_getDataTypeName(y->dtype), NN_getDataTypeName(x->dtype) + NN_get_datatype_name(y->dtype), NN_get_datatype_name(x->dtype) ); } -void NN_clipInplace(Tensor *x, float min, float max) { +void NN_clip_inplace(Tensor *x, float min, float max) { NN_clip(x, x, min, max); } diff --git a/nn/src/nn_conv2d.c b/nn/src/nn_conv2d.c index 4bfbe4b..c383b07 100644 --- a/nn/src/nn_conv2d.c +++ b/nn/src/nn_conv2d.c @@ -6,7 +6,7 @@ #endif -void NN_NCHWToNHWC(Tensor *out, Tensor *in) { +void NN_nchw_to_nhwc(Tensor *out, Tensor *in) { assert(in->ndim == 4); assert(out->ndim == 4); assert(in->dtype == DTYPE_F32); @@ -34,7 +34,7 @@ void NN_NCHWToNHWC(Tensor *out, Tensor *in) { } } -void NN_NHWCToNCHW(Tensor *out, Tensor *in) { +void NN_nhwc_to_nchw(Tensor *out, Tensor *in) { assert(in->ndim == 4); assert(out->ndim == 4); assert(in->dtype == DTYPE_F32); @@ -62,7 +62,7 @@ void NN_NHWCToNCHW(Tensor *out, Tensor *in) { } } -void NN_Conv2d( +void NN_conv2d( Tensor *out, Tensor *in, Tensor *weight, Tensor *bias, const size_t *stride, const size_t *padding, const size_t *dilation, size_t groups) { @@ -135,8 +135,8 @@ void NN_Conv2d( Tensor *weight_1hwc = NN_tensor(4, (size_t[]){1, kernel_height, kernel_width, out_channels}, DTYPE_F32, weight->data); Tensor *weight_1chw = NN_tensor(4, (size_t[]){1, out_channels, kernel_height, kernel_width}, DTYPE_F32, NULL); - NN_NHWCToNCHW(in_nchw, in); - NN_NHWCToNCHW(weight_1chw, weight_1hwc); + NN_nhwc_to_nchw(in_nchw, in); + NN_nhwc_to_nchw(weight_1chw, weight_1hwc); for (size_t g = 0; g < groups; g += 1) { tiled_conv_auto( @@ -153,7 +153,7 @@ void NN_Conv2d( WS); } - NN_NCHWToNHWC(out, out_nchw); + NN_nchw_to_nhwc(out, out_nchw); } else { diff --git a/nn/src/nn_div.c b/nn/src/nn_div.c index 3e0f581..ee3adb7 100644 --- a/nn/src/nn_div.c +++ b/nn/src/nn_div.c @@ -11,7 +11,7 @@ void NN_div(Tensor *out, Tensor *a, Tensor *b) { switch (out->dtype) { case DTYPE_F32: - NN__div_F32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); + NN__div_f32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); return; default: @@ -19,6 +19,6 @@ void NN_div(Tensor *out, Tensor *a, Tensor *b) { } printf("[ERROR] Unsupported operation of tensor with dtype %s = %s / %s\n", - NN_getDataTypeName(out->dtype), NN_getDataTypeName(a->dtype), NN_getDataTypeName(b->dtype) + NN_get_datatype_name(out->dtype), NN_get_datatype_name(a->dtype), NN_get_datatype_name(b->dtype) ); } diff --git a/nn/src/nn_elu.c b/nn/src/nn_elu.c index 49abfa2..b078bde 100644 --- a/nn/src/nn_elu.c +++ b/nn/src/nn_elu.c @@ -2,7 +2,7 @@ #include "nn_elu.h" -void NN_ELU(Tensor *y, Tensor *x, float alpha) { +void NN_elu(Tensor *y, Tensor *x, float alpha) { assert(y->ndim == x->ndim); assert(y->dtype == x->dtype); assert(y->size == x->size); @@ -25,10 +25,10 @@ void NN_ELU(Tensor *y, Tensor *x, float alpha) { } printf("[ERROR] Unsupported operation between tensor with dtype %s = ELU(%s)\n", - NN_getDataTypeName(y->dtype), NN_getDataTypeName(x->dtype) + NN_get_datatype_name(y->dtype), NN_get_datatype_name(x->dtype) ); } -void NN_ELUInplace(Tensor *x, float alpha) { - NN_ELU(x, x, alpha); +void NN_elu_inplace(Tensor *x, float alpha) { + NN_elu(x, x, alpha); } diff --git a/nn/src/nn_fill.c b/nn/src/nn_fill.c index 115a768..899951f 100644 --- a/nn/src/nn_fill.c +++ b/nn/src/nn_fill.c @@ -8,16 +8,16 @@ void NN_fill(Tensor *tensor, float value) { NN__fill_U8(tensor->size, (uint8_t *)tensor->data, (uint8_t)value); return; case DTYPE_I8: - NN__fill_I8(tensor->size, (int8_t *)tensor->data, (int8_t)value); + NN__fill_i8(tensor->size, (int8_t *)tensor->data, (int8_t)value); return; case DTYPE_I32: - NN__fill_I32(tensor->size, (int32_t *)tensor->data, (int32_t)value); + NN__fill_i32(tensor->size, (int32_t *)tensor->data, (int32_t)value); return; case DTYPE_F16: - NN__fill_F16(tensor->size, (float16_t *)tensor->data, NN_floatToHalf(value)); + NN__fill_f16(tensor->size, (float16_t *)tensor->data, NN_floatToHalf(value)); return; case DTYPE_F32: - NN__fill_F32(tensor->size, (float *)tensor->data, value); + NN__fill_f32(tensor->size, (float *)tensor->data, value); return; default: printf("[ERROR] Unsupported operation fill to tensor with dtype: %d\n", tensor->dtype); diff --git a/nn/src/nn_interpolate.c b/nn/src/nn_interpolate.c index 93665d7..4c57ab3 100644 --- a/nn/src/nn_interpolate.c +++ b/nn/src/nn_interpolate.c @@ -46,7 +46,7 @@ void NN_interpolate(Tensor *out, Tensor *in, const float *scale_factor/*const ch default: printf("[ERROR] Unsupported operation of tensor with dtype %s = |%s|\n", - NN_getDataTypeName(out->dtype), NN_getDataTypeName(in->dtype) + NN_get_datatype_name(out->dtype), NN_get_datatype_name(in->dtype) ); break; } diff --git a/nn/src/nn_layernorm.c b/nn/src/nn_layernorm.c index 250ff2f..944e0c8 100644 --- a/nn/src/nn_layernorm.c +++ b/nn/src/nn_layernorm.c @@ -1,7 +1,7 @@ #include "nn_layernorm.h" -void NN_LayerNorm( +void NN_layer_norm( Tensor *out, Tensor *in, Tensor *weight, Tensor *bias, const float eps) { diff --git a/nn/src/nn_linear.c b/nn/src/nn_linear.c index e9017a1..6d7b8d9 100644 --- a/nn/src/nn_linear.c +++ b/nn/src/nn_linear.c @@ -2,8 +2,8 @@ #include "nn_linear.h" -void NN_Linear(Tensor *y, Tensor *x, Tensor *w, Tensor *b) { - NN_matmulT(y, x, w); +void NN_linear(Tensor *y, Tensor *x, Tensor *w, Tensor *b) { + NN_matmul_t(y, x, w); if (b != NULL) { NN_add(y, y, b); diff --git a/nn/src/nn_matmul.c b/nn/src/nn_matmul.c index 0f1bd1f..8fcebae 100644 --- a/nn/src/nn_matmul.c +++ b/nn/src/nn_matmul.c @@ -109,11 +109,11 @@ void NN_matmul(Tensor *out, Tensor *a, Tensor *b) { return; } printf("Unsupported operation: %s = %s @ %s\n", - NN_getDataTypeName(out->dtype), NN_getDataTypeName(a->dtype), NN_getDataTypeName(b->dtype) + NN_get_datatype_name(out->dtype), NN_get_datatype_name(a->dtype), NN_get_datatype_name(b->dtype) ); } -void NN_matmulT(Tensor *out, Tensor *a, Tensor *b) { +void NN_matmul_t(Tensor *out, Tensor *a, Tensor *b) { if (a->dtype == DTYPE_F16 && b->dtype == DTYPE_F16 && out->dtype == DTYPE_F16) { // currently only support 2D matrix multiplication assert(a->ndim == 2); @@ -127,7 +127,7 @@ void NN_matmulT(Tensor *out, Tensor *a, Tensor *b) { for (size_t i = 0; i < out->shape[0]; i += 1) { for (size_t j = 0; j < out->shape[1]; j += 1) { - NN__dot_F16(a->shape[1], + NN__dot_f16(a->shape[1], (float16_t *)out->data + i * out->shape[1] + j, (float16_t *)a->data + i * a->shape[1], (float16_t *)b->data + j * b->shape[1] @@ -149,7 +149,7 @@ void NN_matmulT(Tensor *out, Tensor *a, Tensor *b) { for (size_t i = 0; i < out->shape[0]; i += 1) { for (size_t j = 0; j < out->shape[1]; j += 1) { - NN__dot_F32(a->shape[1], + NN__dot_f32(a->shape[1], (float *)out->data + i * out->shape[1] + j, (float *)a->data + i * a->shape[1], (float *)b->data + j * b->shape[1] @@ -159,7 +159,7 @@ void NN_matmulT(Tensor *out, Tensor *a, Tensor *b) { return; } printf("Unsupported operation: %s = %s @ %s\n", - NN_getDataTypeName(out->dtype), NN_getDataTypeName(a->dtype), NN_getDataTypeName(b->dtype) + NN_get_datatype_name(out->dtype), NN_get_datatype_name(a->dtype), NN_get_datatype_name(b->dtype) ); } diff --git a/nn/src/nn_max.c b/nn/src/nn_max.c index e03d194..659d212 100644 --- a/nn/src/nn_max.c +++ b/nn/src/nn_max.c @@ -7,12 +7,12 @@ void NN_max(Tensor *scalar, Tensor *tensor) { switch (tensor->dtype) { case DTYPE_F32: - NN__max_F32(tensor->size, (float *)scalar->data, (float *)tensor->data); + NN__max_f32(tensor->size, (float *)scalar->data, (float *)tensor->data); break; default: printf("[ERROR] Unsupported operation of tensor with dtype max(%s)\n", - NN_getDataTypeName(tensor->dtype) + NN_get_datatype_name(tensor->dtype) ); } } diff --git a/nn/src/nn_maximum.c b/nn/src/nn_maximum.c index e9b759c..5cd0ddd 100644 --- a/nn/src/nn_maximum.c +++ b/nn/src/nn_maximum.c @@ -12,13 +12,13 @@ void NN_maximum(Tensor *out, Tensor *a, Tensor *b) { switch (out->dtype) { case DTYPE_F32: - NN__maximum_F32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); + NN__maximum_f32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); return; default: break; } printf("[ERROR] Unsupported operation between tensor with dtype %s = max(%s, %s)\n", - NN_getDataTypeName(out->dtype), NN_getDataTypeName(a->dtype), NN_getDataTypeName(b->dtype) + NN_get_datatype_name(out->dtype), NN_get_datatype_name(a->dtype), NN_get_datatype_name(b->dtype) ); } diff --git a/nn/src/nn_maxpool2d.c b/nn/src/nn_maxpool2d.c index add74f8..7225abd 100644 --- a/nn/src/nn_maxpool2d.c +++ b/nn/src/nn_maxpool2d.c @@ -2,7 +2,7 @@ #include "nn_maxpool2d.h" -void NN_MaxPool2d_F32(Tensor *out, Tensor *in, const size_t *kernel_size) { +void NN_max_pool2d(Tensor *out, Tensor *in, const size_t *kernel_size) { assert(in->ndim == 4); assert(out->ndim == 4); assert(in->dtype == DTYPE_F32); diff --git a/nn/src/nn_min.c b/nn/src/nn_min.c index 64267b9..15e445f 100644 --- a/nn/src/nn_min.c +++ b/nn/src/nn_min.c @@ -7,12 +7,12 @@ void NN_min(Tensor *scalar, Tensor *tensor) { switch (tensor->dtype) { case DTYPE_F32: - NN__min_F32(tensor->size, (float *)scalar->data, (float *)tensor->data); + NN__min_f32(tensor->size, (float *)scalar->data, (float *)tensor->data); break; default: printf("[ERROR] Unsupported operation of tensor with dtype min(%s)\n", - NN_getDataTypeName(tensor->dtype) + NN_get_datatype_name(tensor->dtype) ); } } diff --git a/nn/src/nn_minimum.c b/nn/src/nn_minimum.c index ab41f64..20c4a01 100644 --- a/nn/src/nn_minimum.c +++ b/nn/src/nn_minimum.c @@ -12,7 +12,7 @@ void NN_minimum(Tensor *out, Tensor *a, Tensor *b) { switch (out->dtype) { case DTYPE_F32: - NN__minimum_F32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); + NN__minimum_f32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); return; default: @@ -20,6 +20,6 @@ void NN_minimum(Tensor *out, Tensor *a, Tensor *b) { } printf("[ERROR] Unsupported operation between tensor with dtype %s = max(%s, %s)\n", - NN_getDataTypeName(out->dtype), NN_getDataTypeName(a->dtype), NN_getDataTypeName(b->dtype) + NN_get_datatype_name(out->dtype), NN_get_datatype_name(a->dtype), NN_get_datatype_name(b->dtype) ); } diff --git a/nn/src/nn_mul.c b/nn/src/nn_mul.c index cdba6f6..15c4dd0 100644 --- a/nn/src/nn_mul.c +++ b/nn/src/nn_mul.c @@ -11,7 +11,7 @@ void NN_mul(Tensor *out, Tensor *a, Tensor *b) { switch (out->dtype) { case DTYPE_F32: - NN__mul_F32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); + NN__mul_f32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); return; default: @@ -19,7 +19,7 @@ void NN_mul(Tensor *out, Tensor *a, Tensor *b) { } printf("[ERROR] Unsupported operation of tensor with dtype %s = %s * %s\n", - NN_getDataTypeName(out->dtype), NN_getDataTypeName(a->dtype), NN_getDataTypeName(b->dtype) + NN_get_datatype_name(out->dtype), NN_get_datatype_name(a->dtype), NN_get_datatype_name(b->dtype) ); } @@ -31,7 +31,7 @@ void NN_mul1(Tensor *out, Tensor *in, float scalar) { switch (out->dtype) { case DTYPE_F32: - NN__mul1_F32(out->size, (float *)out->data, (float *)in->data, scalar); + NN__mul1_f32(out->size, (float *)out->data, (float *)in->data, scalar); return; default: @@ -39,7 +39,7 @@ void NN_mul1(Tensor *out, Tensor *in, float scalar) { } printf("[ERROR] Unsupported operation of tensor with dtype %s = %s * scalar\n", - NN_getDataTypeName(out->dtype), NN_getDataTypeName(in->dtype) + NN_get_datatype_name(out->dtype), NN_get_datatype_name(in->dtype) ); } diff --git a/nn/src/nn_neg.c b/nn/src/nn_neg.c index 5501893..5e7830e 100644 --- a/nn/src/nn_neg.c +++ b/nn/src/nn_neg.c @@ -10,7 +10,7 @@ void NN_neg(Tensor *out, Tensor *in) { switch (out->dtype) { case DTYPE_F32: - NN__neg_F32(out->size, (float *)out->data, (float *)in->data); + NN__neg_f32(out->size, (float *)out->data, (float *)in->data); return; default: @@ -18,10 +18,10 @@ void NN_neg(Tensor *out, Tensor *in) { } printf("[ERROR] Unsupported operation of tensor with dtype %s = -%s\n", - NN_getDataTypeName(out->dtype), NN_getDataTypeName(in->dtype) + NN_get_datatype_name(out->dtype), NN_get_datatype_name(in->dtype) ); } -void NN_negInplace(Tensor *tensor) { +void NN_neg_inplace(Tensor *tensor) { NN_neg(tensor, tensor); } diff --git a/nn/src/nn_matrixnorm.c b/nn/src/nn_norm.c similarity index 88% rename from nn/src/nn_matrixnorm.c rename to nn/src/nn_norm.c index 16a07e6..722c5f6 100644 --- a/nn/src/nn_matrixnorm.c +++ b/nn/src/nn_norm.c @@ -1,13 +1,13 @@ -#include "nn_matrixnorm.h" +#include "nn_norm.h" #ifdef RVV #include #endif -void NN_matrixNorm(Tensor *scalar, Tensor *x) { +void NN_norm(Tensor *scalar, Tensor *x) { assert(x->ndim == 2); - assert(NN_isScalar(scalar)); + assert(NN_is_scalar(scalar)); assert(scalar->dtype == x->dtype); switch (x->dtype) { @@ -20,7 +20,7 @@ void NN_matrixNorm(Tensor *scalar, Tensor *x) { } printf("[ERROR] Unsupported operation between tensor with dtype %s = ||%s||\n", - NN_getDataTypeName(scalar->dtype), NN_getDataTypeName(x->dtype) + NN_get_datatype_name(scalar->dtype), NN_get_datatype_name(x->dtype) ); } diff --git a/nn/src/nn_print.c b/nn/src/nn_print.c index c3b454e..487365c 100644 --- a/nn/src/nn_print.c +++ b/nn/src/nn_print.c @@ -2,7 +2,7 @@ #include "nn_print.h" -void NN_printFloat(float v, int16_t num_digits) { +void NN_print_f32(float v, int16_t num_digits) { if (isinf(v)) { if (signbit(v)) { printf("-inf"); @@ -38,7 +38,7 @@ void NN_printFloat(float v, int16_t num_digits) { } } -void NN_printShape(Tensor *tensor) { +void NN_print_shape(Tensor *tensor) { printf("("); for (size_t i = 0; i < tensor->ndim; i += 1) { printf("%d", (int)tensor->shape[i]); @@ -69,10 +69,10 @@ void NN_printf(Tensor *tensor) { printf("%ld", (size_t)(*((int32_t *)tensor->data + i))); break; case DTYPE_F16: - NN_printFloat(NN_halfToFloat(*((float16_t *)tensor->data + i)), 3); + NN_print_f32(NN_halfToFloat(*((float16_t *)tensor->data + i)), 3); break; case DTYPE_F32: - NN_printFloat(*((float *)tensor->data + i), 4); + NN_print_f32(*((float *)tensor->data + i), 4); break; } if (i < tensor->shape[0]-1) { @@ -99,10 +99,10 @@ void NN_printf(Tensor *tensor) { printf("%ld", (size_t)(*((int32_t *)tensor->data + i*tensor->shape[1] + j))); break; case DTYPE_F16: - NN_printFloat(NN_halfToFloat(*((float16_t *)tensor->data + i*tensor->shape[1] + j)), 3); + NN_print_f32(NN_halfToFloat(*((float16_t *)tensor->data + i*tensor->shape[1] + j)), 3); break; case DTYPE_F32: - NN_printFloat(*((float *)tensor->data + i*tensor->shape[1] + j), 4); + NN_print_f32(*((float *)tensor->data + i*tensor->shape[1] + j), 4); break; } if (j < tensor->shape[1]-1) { @@ -139,10 +139,10 @@ void NN_printf(Tensor *tensor) { printf("%ld", (size_t)(*((int32_t *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k))); break; case DTYPE_F16: - NN_printFloat(NN_halfToFloat(*((float16_t *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k)), 3); + NN_print_f32(NN_halfToFloat(*((float16_t *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k)), 3); break; case DTYPE_F32: - NN_printFloat(*((float *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k), 4); + NN_print_f32(*((float *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k), 4); break; } if (k < tensor->shape[2]-1) { @@ -183,10 +183,10 @@ void NN_printf(Tensor *tensor) { printf("%ld", (size_t)(*((int32_t *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w))); break; case DTYPE_F16: - NN_printFloat(NN_halfToFloat(*((float16_t *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w)), 3); + NN_print_f32(NN_halfToFloat(*((float16_t *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w)), 3); break; case DTYPE_F32: - NN_printFloat(*((float *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w), 4); + NN_print_f32(*((float *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w), 4); break; } if (w < tensor->shape[3]-1) { diff --git a/nn/src/nn_relu.c b/nn/src/nn_relu.c index 9025728..71cb4cb 100644 --- a/nn/src/nn_relu.c +++ b/nn/src/nn_relu.c @@ -2,14 +2,14 @@ #include "nn_relu.h" -void NN_ReLU(Tensor *y, Tensor *x) { +void NN_relu(Tensor *y, Tensor *x) { assert(y->ndim == x->ndim); assert(y->dtype == x->dtype); assert(y->size == x->size); switch (y->dtype) { case DTYPE_F32: - NN__maximum1_F32(y->size, (float *)y->data, (float *)x->data, 0.0f); + NN__maximum1_f32(y->size, (float *)y->data, (float *)x->data, 0.0f); return; default: @@ -17,10 +17,10 @@ void NN_ReLU(Tensor *y, Tensor *x) { } printf("[ERROR] Unsupported operation between tensor with dtype %s = ReLU(%s)\n", - NN_getDataTypeName(y->dtype), NN_getDataTypeName(x->dtype) + NN_get_datatype_name(y->dtype), NN_get_datatype_name(x->dtype) ); } -void NN_ReLUInplace(Tensor *x) { - NN_ReLU(x, x); +void NN_relu_inplace(Tensor *x) { + NN_relu(x, x); } diff --git a/nn/src/nn_relu6.c b/nn/src/nn_relu6.c index 099729d..5e70ed4 100644 --- a/nn/src/nn_relu6.c +++ b/nn/src/nn_relu6.c @@ -2,15 +2,15 @@ #include "nn_relu6.h" -void NN_ReLU6(Tensor *y, Tensor *x) { +void NN_relu6(Tensor *y, Tensor *x) { assert(y->ndim == x->ndim); assert(y->dtype == x->dtype); assert(y->size == x->size); switch (y->dtype) { case DTYPE_F32: - NN__maximum1_F32(y->size, (float *)y->data, (float *)x->data, 0.0f); - NN__minimum1_F32(y->size, (float *)y->data, (float *)y->data, 6.0f); + NN__maximum1_f32(y->size, (float *)y->data, (float *)x->data, 0.0f); + NN__minimum1_f32(y->size, (float *)y->data, (float *)y->data, 6.0f); return; default: @@ -18,10 +18,10 @@ void NN_ReLU6(Tensor *y, Tensor *x) { } printf("[ERROR] Unsupported operation between tensor with dtype %s = ReLU(%s)\n", - NN_getDataTypeName(y->dtype), NN_getDataTypeName(x->dtype) + NN_get_datatype_name(y->dtype), NN_get_datatype_name(x->dtype) ); } -void NN_ReLU6Inplace(Tensor *x) { - NN_ReLU6(x, x); +void NN_relu6_inplace(Tensor *x) { + NN_relu6(x, x); } diff --git a/nn/src/nn_softmax.c b/nn/src/nn_softmax.c index f021b6c..74f6f24 100644 --- a/nn/src/nn_softmax.c +++ b/nn/src/nn_softmax.c @@ -2,7 +2,7 @@ #include "nn_softmax.h" -void NN_Softmax(Tensor *out, Tensor *tensor, size_t dim) { +void NN_softmax(Tensor *out, Tensor *tensor, size_t dim) { assert(out->dtype == tensor->dtype); switch (tensor->dtype) { @@ -11,7 +11,7 @@ void NN_Softmax(Tensor *out, Tensor *tensor, size_t dim) { for (size_t i = 0; i < tensor->shape[0]; i += 1) { float *x = (float *)tensor->data + i * tensor->shape[1]; float *y = (float *)out->data + i * out->shape[1]; - NN__softmax_F32(tensor->shape[1], y, x, 1); + NN__softmax_f32(tensor->shape[1], y, x, 1); } return; } @@ -19,17 +19,17 @@ void NN_Softmax(Tensor *out, Tensor *tensor, size_t dim) { for (size_t i = 0; i < tensor->shape[1]; i += 1) { float *x = (float *)tensor->data + i; float *y = (float *)out->data + i; - NN__softmax_F32(tensor->shape[0], y, x, tensor->shape[1]); + NN__softmax_f32(tensor->shape[0], y, x, tensor->shape[1]); } return; } - // NN__softmax_F32(tensor->size, (float *)out->data, (float *)tensor->data); + // NN__softmax_f32(tensor->size, (float *)out->data, (float *)tensor->data); break; default: printf("[ERROR] Unsupported operation of tensor with dtype %s = softmax(%s)\n", - NN_getDataTypeName(out->dtype), NN_getDataTypeName(tensor->dtype) + NN_get_datatype_name(out->dtype), NN_get_datatype_name(tensor->dtype) ); } } diff --git a/nn/src/nn_sub.c b/nn/src/nn_sub.c index 5cc8d04..03fc68c 100644 --- a/nn/src/nn_sub.c +++ b/nn/src/nn_sub.c @@ -8,19 +8,19 @@ void NN_sub(Tensor *out, Tensor *a, Tensor *b) { switch (out->ndim) { case 1: - NN_sub_1D(out, a, b); + NN_sub_1d(out, a, b); return; case 2: - NN_sub_2D(out, a, b); + NN_sub_2d(out, a, b); return; case 3: - NN_sub_3D(out, a, b); + NN_sub_3d(out, a, b); return; case 4: - NN_sub_4D(out, a, b); + NN_sub_4d(out, a, b); return; default: @@ -29,47 +29,47 @@ void NN_sub(Tensor *out, Tensor *a, Tensor *b) { } } -void NN_sub_1D(Tensor *out, Tensor *a, Tensor *b) { +void NN_sub_1d(Tensor *out, Tensor *a, Tensor *b) { assert(out->shape[0] == a->shape[0] || out->shape[0] == b->shape[0]); if (out->dtype == DTYPE_F32 && a->dtype == DTYPE_F32 && b->dtype == DTYPE_F32) { - NN__sub_F32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); + NN__sub_f32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); return; } if (out->dtype == DTYPE_I8 && a->dtype == DTYPE_I8 && b->dtype == DTYPE_I8) { - NN__sub_I8(out->size, (int8_t *)out->data, (int8_t *)a->data, (int8_t *)b->data); + NN__sub_i8(out->size, (int8_t *)out->data, (int8_t *)a->data, (int8_t *)b->data); return; } printf("[ERROR] Unsupported operation between tensor with dtype %s = %s - %s\n", - NN_getDataTypeName(out->dtype), NN_getDataTypeName(a->dtype), NN_getDataTypeName(b->dtype) + NN_get_datatype_name(out->dtype), NN_get_datatype_name(a->dtype), NN_get_datatype_name(b->dtype) ); } -void NN_sub_2D(Tensor *out, Tensor *a, Tensor *b) { +void NN_sub_2d(Tensor *out, Tensor *a, Tensor *b) { assert(out->shape[0] == a->shape[0] || out->shape[0] == b->shape[0]); assert(out->shape[1] == a->shape[1] || out->shape[1] == b->shape[1]); if (a->shape[0] == b->shape[0] && a->shape[1] == b->shape[1]) { if (out->dtype == DTYPE_F32 && a->dtype == DTYPE_F32 && b->dtype == DTYPE_F32) { - NN__sub_F32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); + NN__sub_f32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); return; } if (out->dtype == DTYPE_I8 && a->dtype == DTYPE_I8 && b->dtype == DTYPE_I8) { - NN__sub_I8(out->size, (int8_t *)out->data, (int8_t *)a->data, (int8_t *)b->data); + NN__sub_i8(out->size, (int8_t *)out->data, (int8_t *)a->data, (int8_t *)b->data); return; } if (out->dtype == DTYPE_I16 && a->dtype == DTYPE_I16 && b->dtype == DTYPE_I16) { - NN__sub_I16(out->size, (int16_t *)out->data, (int16_t *)a->data, (int16_t *)b->data); + NN__sub_i16(out->size, (int16_t *)out->data, (int16_t *)a->data, (int16_t *)b->data); return; } if (out->dtype == DTYPE_I32 && a->dtype == DTYPE_I32 && b->dtype == DTYPE_I32) { - NN__sub_I32(out->size, (int32_t *)out->data, (int32_t *)a->data, (int32_t *)b->data); + NN__sub_i32(out->size, (int32_t *)out->data, (int32_t *)a->data, (int32_t *)b->data); return; } if (out->dtype == DTYPE_U8 && a->dtype == DTYPE_U8 && b->dtype == DTYPE_U8) { - NN__sub_U8(out->size, (uint8_t *)out->data, (uint8_t *)a->data, (uint8_t *)b->data); + NN__sub_u8(out->size, (uint8_t *)out->data, (uint8_t *)a->data, (uint8_t *)b->data); return; } } @@ -92,11 +92,11 @@ void NN_sub_2D(Tensor *out, Tensor *a, Tensor *b) { } printf("[ERROR] Unsupported operation between tensor with dtype %s = %s - %s\n", - NN_getDataTypeName(out->dtype), NN_getDataTypeName(a->dtype), NN_getDataTypeName(b->dtype) + NN_get_datatype_name(out->dtype), NN_get_datatype_name(a->dtype), NN_get_datatype_name(b->dtype) ); } -void NN_sub_3D(Tensor *out, Tensor *a, Tensor *b) { +void NN_sub_3d(Tensor *out, Tensor *a, Tensor *b) { assert(out->shape[0] == a->shape[0] || out->shape[0] == b->shape[0]); assert(out->shape[1] == a->shape[1] || out->shape[1] == b->shape[1]); assert(out->shape[2] == a->shape[2] || out->shape[2] == b->shape[2]); @@ -122,11 +122,11 @@ void NN_sub_3D(Tensor *out, Tensor *a, Tensor *b) { } printf("[ERROR] Unsupported operation between tensor with dtype %s = %s - %s\n", - NN_getDataTypeName(out->dtype), NN_getDataTypeName(a->dtype), NN_getDataTypeName(b->dtype) + NN_get_datatype_name(out->dtype), NN_get_datatype_name(a->dtype), NN_get_datatype_name(b->dtype) ); } -void NN_sub_4D(Tensor *out, Tensor *a, Tensor *b) { +void NN_sub_4d(Tensor *out, Tensor *a, Tensor *b) { assert(out->shape[0] == a->shape[0] || out->shape[0] == b->shape[0]); assert(out->shape[1] == a->shape[1] || out->shape[1] == b->shape[1]); assert(out->shape[2] == a->shape[2] || out->shape[2] == b->shape[2]); @@ -157,7 +157,7 @@ void NN_sub_4D(Tensor *out, Tensor *a, Tensor *b) { } printf("[ERROR] Unsupported operation between tensor with dtype %s = %s - %s\n", - NN_getDataTypeName(out->dtype), NN_getDataTypeName(a->dtype), NN_getDataTypeName(b->dtype) + NN_get_datatype_name(out->dtype), NN_get_datatype_name(a->dtype), NN_get_datatype_name(b->dtype) ); } diff --git a/nn/src/nn_sum.c b/nn/src/nn_sum.c index 806a00c..e3737ab 100644 --- a/nn/src/nn_sum.c +++ b/nn/src/nn_sum.c @@ -7,7 +7,7 @@ void NN_sum(Tensor *out, Tensor *tensor) { case DTYPE_I16: switch (out->dtype) { case DTYPE_I32: - NN__sum_I16_to_I32(tensor->size, (int32_t *)out->data, (int16_t *)tensor->data); + NN__sum_i16_to_i32(tensor->size, (int32_t *)out->data, (int16_t *)tensor->data); return; } break; @@ -15,13 +15,13 @@ void NN_sum(Tensor *out, Tensor *tensor) { case DTYPE_I32: switch (out->dtype) { case DTYPE_I32: - NN__sum_I32(tensor->size, (int32_t *)out->data, (int32_t *)tensor->data); + NN__sum_i32(tensor->size, (int32_t *)out->data, (int32_t *)tensor->data); return; } break; case DTYPE_F32: - NN__sum_F32(tensor->size, (float *)out->data, (float *)tensor->data); + NN__sum_f32(tensor->size, (float *)out->data, (float *)tensor->data); return; default: @@ -29,6 +29,6 @@ void NN_sum(Tensor *out, Tensor *tensor) { } printf("[ERROR] Unsupported operation of tensor with dtype %s = sum(%s)\n", - NN_getDataTypeName(out->dtype), NN_getDataTypeName(tensor->dtype) + NN_get_datatype_name(out->dtype), NN_get_datatype_name(tensor->dtype) ); } diff --git a/nn/src/nn_tensor.c b/nn/src/nn_tensor.c index 8015384..4162f74 100644 --- a/nn/src/nn_tensor.c +++ b/nn/src/nn_tensor.c @@ -2,7 +2,7 @@ #include "nn_tensor.h" -void NN_initTensor(Tensor *tensor, const size_t ndim, const size_t *shape, DataType dtype, void *data) { +void NN_init_tensor(Tensor *tensor, const size_t ndim, const size_t *shape, DataType dtype, void *data) { tensor->dtype = dtype; tensor->ndim = ndim; @@ -32,11 +32,11 @@ void NN_initTensor(Tensor *tensor, const size_t ndim, const size_t *shape, DataT Tensor *NN_tensor(size_t ndim, const size_t *shape, DataType dtype, void *data) { Tensor *t = (Tensor *)malloc(sizeof(Tensor)); - NN_initTensor(t, ndim, shape, dtype, data); + NN_init_tensor(t, ndim, shape, dtype, data); return t; } -void NN_asType(Tensor *out, Tensor *in) { +void NN_as_type(Tensor *out, Tensor *in) { if (out->dtype == in->dtype) { NN_copy(out, in); return; @@ -133,5 +133,5 @@ void NN_asType(Tensor *out, Tensor *in) { } break; } - printf("[ERROR] Cannot convert data type from %s to %s\n", NN_getDataTypeName(in->dtype), NN_getDataTypeName(out->dtype)); + printf("[ERROR] Cannot convert data type from %s to %s\n", NN_get_datatype_name(in->dtype), NN_get_datatype_name(out->dtype)); } diff --git a/nn/src/nn_transpose.c b/nn/src/nn_transpose.c index b8e22f7..d47dae1 100644 --- a/nn/src/nn_transpose.c +++ b/nn/src/nn_transpose.c @@ -18,12 +18,12 @@ void NN_transpose(Tensor *out, Tensor *a) { assert(out->shape[1] == a->shape[0]); if (a->dtype == DTYPE_F32) { - NN__transpose_F32(a->shape[0], a->shape[1], (float *)out->data, (float *)a->data); + NN__transpose_f32(a->shape[0], a->shape[1], (float *)out->data, (float *)a->data); return; } printf("[ERROR] Unsupported operation of tensor with dtype %s = %s.T\n", - NN_getDataTypeName(out->dtype), NN_getDataTypeName(a->dtype) + NN_get_datatype_name(out->dtype), NN_get_datatype_name(a->dtype) ); } diff --git a/nn/src/nn_unfold.c b/nn/src/nn_unfold.c index fe5a8e0..a1777e7 100644 --- a/nn/src/nn_unfold.c +++ b/nn/src/nn_unfold.c @@ -11,24 +11,24 @@ // // const int32_t p1 = ((const int32_t *)(dst->op_params))[3]; // // const int32_t d0 = ((const int32_t *)(dst->op_params))[4]; // // const int32_t d1 = ((const int32_t *)(dst->op_params))[5]; -// // const bool is_2D = ((const int32_t *)(dst->op_params))[6] == 1; +// // const bool is_2d = ((const int32_t *)(dst->op_params))[6] == 1; // // const int ith = params->ith; // // const int nth = params->nth; -// // const int64_t N = is_2D ? ne13 : ne12; -// // const int64_t IC = is_2D ? ne12 : ne11; -// // const int64_t IH = is_2D ? ne11 : 1; +// // const int64_t N = is_2d ? ne13 : ne12; +// // const int64_t IC = is_2d ? ne12 : ne11; +// // const int64_t IH = is_2d ? ne11 : 1; // // const int64_t IW = ne10; -// // const int64_t KH = is_2D ? ne01 : 1; +// // const int64_t KH = is_2d ? ne01 : 1; // // const int64_t KW = ne00; -// // const int64_t OH = is_2D ? ne2 : 1; +// // const int64_t OH = is_2d ? ne2 : 1; // // const int64_t OW = ne1; -// // int ofs0 = is_2D ? nb13 : nb12; -// // int ofs1 = is_2D ? nb12 : nb11; +// // int ofs0 = is_2d ? nb13 : nb12; +// // int ofs1 = is_2d ? nb12 : nb11; // // GGML_ASSERT(nb00 == sizeof(ggml_fp16_t)); // // GGML_ASSERT(nb10 == sizeof(float)); diff --git a/tests/src/generate_test.py b/tests/src/generate_test.py index fe51bdf..ca8a86d 100644 --- a/tests/src/generate_test.py +++ b/tests/src/generate_test.py @@ -153,7 +153,7 @@ def generateTestPattern(op, function, inputs, additional_params=""): tensor_str = formatTensor(name, value) tensor_constructors.append(tensor_str) - tensor_destructors.append(" NN_deleteTensor({});\n".format(name)) + tensor_destructors.append(" NN_delete_tensor({});\n".format(name)) elif type(value) == float: tensor_str = env.from_string("float {{ name }} = {{ value }};").render(name=name, value=value) @@ -191,9 +191,9 @@ def generateTestPattern(op, function, inputs, additional_params=""): printf("%s (%lu cycles)\\n", compareTensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); {% for tensor_str in tensor_destructors %}{{ tensor_str }}{% endfor %} - NN_deleteTensor(golden); - NN_freeTensorData(actual); - NN_deleteTensor(actual); + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); } """) diff --git a/tests/src/generated.c b/tests/src/generated.c index 5143173..4d7e45b 100644 --- a/tests/src/generated.c +++ b/tests/src/generated.c @@ -31,12 +31,12 @@ int main() { cycles = readCycles() - cycles; printf("%s (%lu cycles)\n", compareTensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - NN_deleteTensor(a); - NN_deleteTensor(b); + NN_delete_tensor(a); + NN_delete_tensor(b); - NN_deleteTensor(golden); - NN_freeTensorData(actual); - NN_deleteTensor(actual); + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); } { @@ -53,16 +53,16 @@ int main() { Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F16); cycles = readCycles(); - NN_matmulT(actual, a, b); + NN_matmul_t(actual, a, b); cycles = readCycles() - cycles; printf("%s (%lu cycles)\n", compareTensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - NN_deleteTensor(a); - NN_deleteTensor(b); + NN_delete_tensor(a); + NN_delete_tensor(b); - NN_deleteTensor(golden); - NN_freeTensorData(actual); - NN_deleteTensor(actual); + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); } { @@ -83,12 +83,12 @@ int main() { cycles = readCycles() - cycles; printf("%s (%lu cycles)\n", compareTensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - NN_deleteTensor(a); - NN_deleteTensor(b); + NN_delete_tensor(a); + NN_delete_tensor(b); - NN_deleteTensor(golden); - NN_freeTensorData(actual); - NN_deleteTensor(actual); + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); } } \ No newline at end of file diff --git a/tests/src/main_avx.c b/tests/src/main_avx.c index 7a99ac0..d845a09 100644 --- a/tests/src/main_avx.c +++ b/tests/src/main_avx.c @@ -14,7 +14,7 @@ int main() { NN_sub(a, a, ones); - NN_abs_F32_AVX(a, a); + NN_abs_f32_AVX(a, a); NN_printf(a); diff --git a/tests/src/main_fp16.c b/tests/src/main_fp16.c index 3b1b414..ddb648e 100644 --- a/tests/src/main_fp16.c +++ b/tests/src/main_fp16.c @@ -34,10 +34,10 @@ uint8_t compareResult(float golden, float actual) { if (diff > 1e-2) { printf("FAILED "); printf("golden: "); - NN_printFloat(golden, 6); + NN_print_f32(golden, 6); printf("\n"); printf("actual: "); - NN_printFloat(actual, 6); + NN_print_f32(actual, 6); printf("\n"); return 1; } diff --git a/tests/src/main_matlib.c b/tests/src/main_matlib.c index 9f43b19..8c283c1 100644 --- a/tests/src/main_matlib.c +++ b/tests/src/main_matlib.c @@ -66,17 +66,17 @@ int main() { printf("%s (%lu)\n", compare_2d(golden->data, actual->data, N, M) ? "PASS" : "FAIL", cycles); - NN_freeTensorData(A); - NN_deleteTensor(A); - NN_freeTensorData(B); - NN_deleteTensor(B); - NN_freeTensorData(f); - NN_deleteTensor(f); - - NN_freeTensorData(golden); - NN_deleteTensor(golden); - NN_freeTensorData(actual); - NN_deleteTensor(actual); + NN_free_tensor_data(A); + NN_delete_tensor(A); + NN_free_tensor_data(B); + NN_delete_tensor(B); + NN_free_tensor_data(f); + NN_delete_tensor(f); + + NN_free_tensor_data(golden); + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); } // matvec @@ -107,12 +107,12 @@ int main() { cycles = READ_CSR("mcycle") - cycles; printf("%s (%lu)\n", compare_2d(golden_vect->data, actual_vect->data, N, 1) ? "PASS" : "FAIL", cycles); - NN_freeTensorData(H); - NN_deleteTensor(H); - NN_freeTensorData(V); - NN_deleteTensor(V); - NN_freeTensorData(W); - NN_deleteTensor(W); + NN_free_tensor_data(H); + NN_delete_tensor(H); + NN_free_tensor_data(V); + NN_delete_tensor(V); + NN_free_tensor_data(W); + NN_delete_tensor(W); } // max and min @@ -133,8 +133,8 @@ int main() { cycles = READ_CSR("mcycle") - cycles; printf("%s (%lu)\n", float_eq(min_cpu, min_actual, 1e-6) ? "PASS" : "FAIL", cycles); - NN_freeTensorData(A); - NN_deleteTensor(A); + NN_free_tensor_data(A); + NN_delete_tensor(A); } // matmulf @@ -150,12 +150,12 @@ int main() { cycles = READ_CSR("mcycle") - cycles; printf("%s (%lu)\n", compare_2d(C->data, D->data, M, N) ? "PASS" : "FAIL", cycles); - NN_freeTensorData(A); - NN_deleteTensor(A); - NN_freeTensorData(C); - NN_deleteTensor(C); - NN_freeTensorData(D); - NN_deleteTensor(D); + NN_free_tensor_data(A); + NN_delete_tensor(A); + NN_free_tensor_data(C); + NN_delete_tensor(C); + NN_free_tensor_data(D); + NN_delete_tensor(D); } // matsub @@ -172,15 +172,15 @@ int main() { cycles = READ_CSR("mcycle") - cycles; printf("%s (%lu)\n", compare_2d(golden->data, actual->data, N, M) ? "PASS" : "FAIL", cycles); - NN_freeTensorData(A); - NN_deleteTensor(A); - NN_freeTensorData(B); - NN_deleteTensor(B); + NN_free_tensor_data(A); + NN_delete_tensor(A); + NN_free_tensor_data(B); + NN_delete_tensor(B); - NN_freeTensorData(golden); - NN_deleteTensor(golden); - NN_freeTensorData(actual); - NN_deleteTensor(actual); + NN_free_tensor_data(golden); + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); } // matadd @@ -191,21 +191,21 @@ int main() { Tensor *actual = NN_tensor(2, (size_t[]){M, N}, DTYPE_F32, NULL); printf("matadd:\t\t"); - NN_add_F32(golden, A, B); + NN_add_f32(golden, A, B); cycles = READ_CSR("mcycle"); - NN_add_F32_RVV(actual, A, B); + NN_add_f32_RVV(actual, A, B); cycles = READ_CSR("mcycle") - cycles; printf("%s (%lu)\n", compare_2d(golden->data, actual->data, N, M) ? "PASS" : "FAIL", cycles); - NN_freeTensorData(A); - NN_deleteTensor(A); - NN_freeTensorData(B); - NN_deleteTensor(B); + NN_free_tensor_data(A); + NN_delete_tensor(A); + NN_free_tensor_data(B); + NN_delete_tensor(B); - NN_freeTensorData(golden); - NN_deleteTensor(golden); - NN_freeTensorData(actual); - NN_deleteTensor(actual); + NN_free_tensor_data(golden); + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); } // matneg @@ -221,13 +221,13 @@ int main() { cycles = READ_CSR("mcycle") - cycles; printf("%s (%lu)\n", compare_2d(golden->data, actual->data, N, M) ? "PASS" : "FAIL", cycles); - NN_freeTensorData(A); - NN_deleteTensor(A); + NN_free_tensor_data(A); + NN_delete_tensor(A); - NN_freeTensorData(golden); - NN_deleteTensor(golden); - NN_freeTensorData(actual); - NN_deleteTensor(actual); + NN_free_tensor_data(golden); + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); } // matcopy @@ -242,19 +242,19 @@ int main() { Tensor *actual = NN_tensor(2, (size_t[]){M, N}, DTYPE_F32, NULL); printf("cwiseabs:\t"); - NN_abs_F32(golden, A); + NN_abs_f32(golden, A); cycles = READ_CSR("mcycle"); - NN_abs_F32_RVV(actual, A); + NN_abs_f32_RVV(actual, A); cycles = READ_CSR("mcycle") - cycles; printf("%s (%lu)\n", compare_2d(golden->data, actual->data, N, M) ? "PASS" : "FAIL", cycles); - NN_freeTensorData(A); - NN_deleteTensor(A); + NN_free_tensor_data(A); + NN_delete_tensor(A); - NN_freeTensorData(golden); - NN_deleteTensor(golden); - NN_freeTensorData(actual); - NN_deleteTensor(actual); + NN_free_tensor_data(golden); + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); } // cwisemin @@ -271,15 +271,15 @@ int main() { cycles = READ_CSR("mcycle") - cycles; printf("%s (%lu)\n", compare_2d(golden->data, actual->data, N, M) ? "PASS" : "FAIL", cycles); - NN_freeTensorData(A); - NN_deleteTensor(A); - NN_freeTensorData(B); - NN_deleteTensor(B); + NN_free_tensor_data(A); + NN_delete_tensor(A); + NN_free_tensor_data(B); + NN_delete_tensor(B); - NN_freeTensorData(golden); - NN_deleteTensor(golden); - NN_freeTensorData(actual); - NN_deleteTensor(actual); + NN_free_tensor_data(golden); + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); } // cwisemax @@ -296,15 +296,15 @@ int main() { cycles = READ_CSR("mcycle") - cycles; printf("%s (%lu)\n", compare_2d(golden->data, actual->data, N, M) ? "PASS" : "FAIL", cycles); - NN_freeTensorData(A); - NN_deleteTensor(A); - NN_freeTensorData(B); - NN_deleteTensor(B); + NN_free_tensor_data(A); + NN_delete_tensor(A); + NN_free_tensor_data(B); + NN_delete_tensor(B); - NN_freeTensorData(golden); - NN_deleteTensor(golden); - NN_freeTensorData(actual); - NN_deleteTensor(actual); + NN_free_tensor_data(golden); + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); } // cwisemul @@ -321,15 +321,15 @@ int main() { cycles = READ_CSR("mcycle") - cycles; printf("%s (%lu)\n", compare_2d(golden->data, actual->data, N, M) ? "PASS" : "FAIL", cycles); - NN_freeTensorData(A); - NN_deleteTensor(A); - NN_freeTensorData(B); - NN_deleteTensor(B); + NN_free_tensor_data(A); + NN_delete_tensor(A); + NN_free_tensor_data(B); + NN_delete_tensor(B); - NN_freeTensorData(golden); - NN_deleteTensor(golden); - NN_freeTensorData(actual); - NN_deleteTensor(actual); + NN_free_tensor_data(golden); + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); } // matset @@ -366,10 +366,10 @@ int main() { cycles = READ_CSR("mcycle") - cycles; printf("%s (%lu)\n", (B->shape[0] == N && B->shape[1] == M) ? "PASS" : "FAIL", cycles); - NN_freeTensorData(A); - NN_deleteTensor(A); - NN_freeTensorData(B); - NN_deleteTensor(B); + NN_free_tensor_data(A); + NN_delete_tensor(A); + NN_free_tensor_data(B); + NN_delete_tensor(B); } @@ -434,9 +434,9 @@ int main() { printf("conv2d:\t\t"); - NN_Conv2d_F32(y_golden, x, w, b, (size_t[]){stride_height, stride_width}, (size_t[]){padding_height, padding_width}, 1); + NN_conv2d_F32(y_golden, x, w, b, (size_t[]){stride_height, stride_width}, (size_t[]){padding_height, padding_width}, 1); cycles = READ_CSR("mcycle"); - NN_Conv2d_F32_RVV(y_actual, x, w, b, (size_t[]){stride_height, stride_width}, (size_t[]){padding_height, padding_width}, 1); + NN_conv2d_F32_RVV(y_actual, x, w, b, (size_t[]){stride_height, stride_width}, (size_t[]){padding_height, padding_width}, 1); cycles = READ_CSR("mcycle") - cycles; printf("%s (%lu)\n", compare_2d(y_golden->data, y_actual->data, in_width - kernel_width + 1, in_height - kernel_height + 1) ? "PASS" : "FAIL", cycles); @@ -449,12 +449,12 @@ int main() { printf("output:\n"); NN_printf(y_golden); - NN_freeTensorData(x); - NN_deleteTensor(x); - NN_freeTensorData(w); - NN_deleteTensor(w); - NN_freeTensorData(b); - NN_deleteTensor(b); + NN_free_tensor_data(x); + NN_delete_tensor(x); + NN_free_tensor_data(w); + NN_delete_tensor(w); + NN_free_tensor_data(b); + NN_delete_tensor(b); } @@ -499,7 +499,7 @@ int main() { // printf("sum:\t\t"); // float sum_cpu = NN_sum_F32(A); - // NN_printFloat(sum_cpu, 4); + // NN_print_f32(sum_cpu, 4); // printf("\n"); // } From ad4dbb63c74b418c702cd954d6f800b108621950 Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Tue, 9 Jul 2024 17:38:14 -0700 Subject: [PATCH 02/21] REFACTOR: rename to match torch functional names --- nn/CMakeLists.txt | 6 +++--- nn/inc/nn.h | 2 +- nn/inc/{nn_batchnorm2d.h => nn_batch_norm2d.h} | 6 +++--- nn/inc/{nn_layernorm.h => nn_layer_norm.h} | 6 +++--- nn/inc/{nn_maxpool2d.h => nn_max_pool2d.h} | 6 +++--- nn/src/{nn_batchnorm2d.c => nn_batch_norm2d.c} | 2 +- nn/src/{nn_layernorm.c => nn_layer_norm.c} | 2 +- nn/src/{nn_maxpool2d.c => nn_max_pool2d.c} | 2 +- 8 files changed, 16 insertions(+), 16 deletions(-) rename nn/inc/{nn_batchnorm2d.h => nn_batch_norm2d.h} (91%) rename nn/inc/{nn_layernorm.h => nn_layer_norm.h} (67%) rename nn/inc/{nn_maxpool2d.h => nn_max_pool2d.h} (85%) rename nn/src/{nn_batchnorm2d.c => nn_batch_norm2d.c} (98%) rename nn/src/{nn_layernorm.c => nn_layer_norm.c} (96%) rename nn/src/{nn_maxpool2d.c => nn_max_pool2d.c} (98%) diff --git a/nn/CMakeLists.txt b/nn/CMakeLists.txt index 5d2ea17..edee89b 100644 --- a/nn/CMakeLists.txt +++ b/nn/CMakeLists.txt @@ -8,7 +8,7 @@ add_library(nn src/nn_print.c src/nn_abs.c src/nn_add.c - src/nn_batchnorm2d.c + src/nn_batch_norm2d.c src/nn_conv2d.c src/nn_clip.c src/nn_copy.c @@ -16,13 +16,13 @@ add_library(nn src/nn_elu.c src/nn_fill.c src/nn_interpolate.c - src/nn_layernorm.c + src/nn_layer_norm.c src/nn_linear.c src/nn_matmul.c src/nn_norm.c src/nn_max.c src/nn_maximum.c - src/nn_maxpool2d.c + src/nn_max_pool2d.c src/nn_min.c src/nn_minimum.c src/nn_mul.c diff --git a/nn/inc/nn.h b/nn/inc/nn.h index eba1e59..6713cad 100644 --- a/nn/inc/nn.h +++ b/nn/inc/nn.h @@ -8,7 +8,7 @@ #include "nn_print.h" #include "nn_abs.h" #include "nn_add.h" -#include "nn_batchnorm2d.h" +#include "nn_batch_norm2d.h" #include "nn_clip.h" #include "nn_conv2d.h" #include "nn_copy.h" diff --git a/nn/inc/nn_batchnorm2d.h b/nn/inc/nn_batch_norm2d.h similarity index 91% rename from nn/inc/nn_batchnorm2d.h rename to nn/inc/nn_batch_norm2d.h index 6e860a8..f38f387 100644 --- a/nn/inc/nn_batchnorm2d.h +++ b/nn/inc/nn_batch_norm2d.h @@ -1,5 +1,5 @@ -#ifndef __NN_BATCHNORM2D_H -#define __NN_BATCHNORM2D_H +#ifndef __NN_BATCH_NORM2D_H +#define __NN_BATCH_NORM2D_H #include #include @@ -25,4 +25,4 @@ void NN_batch_norm2d( ); -#endif // __NN_BATCHNORM2D_H +#endif // __NN_BATCH_NORM2D_H diff --git a/nn/inc/nn_layernorm.h b/nn/inc/nn_layer_norm.h similarity index 67% rename from nn/inc/nn_layernorm.h rename to nn/inc/nn_layer_norm.h index d432749..1d77580 100644 --- a/nn/inc/nn_layernorm.h +++ b/nn/inc/nn_layer_norm.h @@ -1,5 +1,5 @@ -#ifndef __NN_LAYERNORM_H -#define __NN_LAYERNORM_H +#ifndef __NN_LAYER_NORM_H +#define __NN_LAYER_NORM_H #include #include @@ -13,4 +13,4 @@ void NN_layer_norm( const float eps); -#endif // __NN_LAYERNORM_H +#endif // __NN_LAYER_NORM_H diff --git a/nn/inc/nn_maxpool2d.h b/nn/inc/nn_max_pool2d.h similarity index 85% rename from nn/inc/nn_maxpool2d.h rename to nn/inc/nn_max_pool2d.h index b785dfe..26a018c 100644 --- a/nn/inc/nn_maxpool2d.h +++ b/nn/inc/nn_max_pool2d.h @@ -1,5 +1,5 @@ -#ifndef __NN_MAXPOOL2D_H -#define __NN_MAXPOOL2D_H +#ifndef __NN_MAX_POOL2D_H +#define __NN_MAX_POOL2D_H #include @@ -17,4 +17,4 @@ void NN_max_pool2d(Tensor *out, Tensor *in, const size_t *kernel_size); -#endif // __NN_MAXPOOL2D_H +#endif // __NN_MAX_POOL2D_H diff --git a/nn/src/nn_batchnorm2d.c b/nn/src/nn_batch_norm2d.c similarity index 98% rename from nn/src/nn_batchnorm2d.c rename to nn/src/nn_batch_norm2d.c index 9625a62..aeb6a5c 100644 --- a/nn/src/nn_batchnorm2d.c +++ b/nn/src/nn_batch_norm2d.c @@ -1,5 +1,5 @@ -#include "nn_batchnorm2d.h" +#include "nn_batch_norm2d.h" void NN_batch_norm2d( Tensor *out, Tensor *in, diff --git a/nn/src/nn_layernorm.c b/nn/src/nn_layer_norm.c similarity index 96% rename from nn/src/nn_layernorm.c rename to nn/src/nn_layer_norm.c index 944e0c8..f690922 100644 --- a/nn/src/nn_layernorm.c +++ b/nn/src/nn_layer_norm.c @@ -1,5 +1,5 @@ -#include "nn_layernorm.h" +#include "nn_layer_norm.h" void NN_layer_norm( Tensor *out, Tensor *in, diff --git a/nn/src/nn_maxpool2d.c b/nn/src/nn_max_pool2d.c similarity index 98% rename from nn/src/nn_maxpool2d.c rename to nn/src/nn_max_pool2d.c index 7225abd..4d7eee3 100644 --- a/nn/src/nn_maxpool2d.c +++ b/nn/src/nn_max_pool2d.c @@ -1,6 +1,6 @@ -#include "nn_maxpool2d.h" +#include "nn_max_pool2d.h" void NN_max_pool2d(Tensor *out, Tensor *in, const size_t *kernel_size) { assert(in->ndim == 4); From e9be7b927ece3b2309dc143bc2ca0e4075ba363c Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Tue, 9 Jul 2024 19:17:22 -0700 Subject: [PATCH 03/21] REFACTOR: continue snaking --- CMakeLists.txt | 2 +- nn/inc/nn_float16.h | 293 ++++++++++++++++++++----------------- nn/inc/ops/abs.h | 18 ++- nn/inc/ops/add.h | 2 +- nn/inc/ops/dot.h | 4 +- nn/src/nn_fill.c | 2 +- nn/src/nn_matmul.c | 4 +- nn/src/nn_print.c | 8 +- nn/src/nn_tensor.c | 4 +- tests/CMakeLists.txt | 4 + tests/src/generate_test.py | 77 +++++----- tests/src/generated.c | 22 +-- tests/src/main_fp16.c | 4 +- tests/src/unittest.h | 12 +- 14 files changed, 251 insertions(+), 205 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 13d5e3f..087a301 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,7 +27,7 @@ set(WRAP_SPECS_FILE "htif_wrap.specs") set(SPECS_FILE "htif_nano.specs") set(LIBGLOSS_DIR "$ENV{RISCV}/riscv64-unknown-elf/lib/") -set(MARCH "rv64gcv_zfh") +set(MARCH "rv64gcv_zfh_zvfh") set(MABI "lp64d") set(MCMODEL "medany") diff --git a/nn/inc/nn_float16.h b/nn/inc/nn_float16.h index 64c509f..08d0196 100644 --- a/nn/inc/nn_float16.h +++ b/nn/inc/nn_float16.h @@ -10,150 +10,175 @@ #endif -typedef uint16_t float16_t; - -typedef union { - uint32_t i; - float f; -} float_uint32_union_t; - - -// from https://github.com/AcademySoftwareFoundation/Imath/blob/main/src/Imath/half.h - -static inline float NN_halfToFloat(float16_t h) { - // #if defined(__F16C__) - // // NB: The intel implementation does seem to treat NaN slightly - // // different than the original toFloat table does (i.e. where the - // // 1 bits are, meaning the signalling or not bits). This seems - // // benign, given that the original library didn't really deal with - // // signalling vs non-signalling NaNs - // #ifdef _MSC_VER - // /* msvc does not seem to have cvtsh_ss :( */ - // return _mm_cvtss_f32(_mm_cvtph_ps (_mm_set1_epi16 (h))); - // #else - // return _cvtsh_ss(h); - // #endif - // #else - float_uint32_union_t v; - // this code would be clearer, although it does appear to be faster - // (1.06 vs 1.08 ns/call) to avoid the constants and just do 4 - // shifts. - // - uint32_t hexpmant = ((uint32_t) (h) << 17) >> 4; - v.i = ((uint32_t) (h >> 15)) << 31; - - // the likely really does help if most of your numbers are "normal" half numbers - if ((hexpmant >= 0x00800000)) { - v.i |= hexpmant; - // either we are a normal number, in which case add in the bias difference - // otherwise make sure all exponent bits are set - if ((hexpmant < 0x0f800000)) { - v.i += 0x38000000; - } - else { - v.i |= 0x7f800000; - } - } - else if (hexpmant != 0) { - // exponent is 0 because we're denormal, don't have to extract - // the mantissa, can just use as is - // +#ifdef _Float16 + typedef _Float16 float16_t; +#else + typedef union { + uint32_t i; + float f; + } float_uint32_union_t; + + typedef uint16_t float16_t; +#endif + +static inline float NN_half_to_float(float16_t h) { + #ifdef _Float16 + return (float)h; + #else + // from https://github.com/AcademySoftwareFoundation/Imath/blob/main/src/Imath/half.h + + /// + /// Convert half to float + /// + /// Note: This only supports the "round to even" rounding mode, which + /// was the only mode supported by the original OpenEXR library + /// + + + // #if defined(__F16C__) + // // NB: The intel implementation does seem to treat NaN slightly + // // different than the original toFloat table does (i.e. where the + // // 1 bits are, meaning the signalling or not bits). This seems + // // benign, given that the original library didn't really deal with + // // signalling vs non-signalling NaNs + // #ifdef _MSC_VER + // /* msvc does not seem to have cvtsh_ss :( */ + // return _mm_cvtss_f32(_mm_cvtph_ps (_mm_set1_epi16 (h))); + // #else + // return _cvtsh_ss(h); + // #endif + // #else + float_uint32_union_t v; + // this code would be clearer, although it does appear to be faster + // (1.06 vs 1.08 ns/call) to avoid the constants and just do 4 + // shifts. // - // other compilers may provide count-leading-zeros primitives, - // but we need the community to inform us of the variants - uint32_t lc; - lc = 0; - while (0 == ((hexpmant << lc) & 0x80000000)) { - lc += 1; + uint32_t hexpmant = ((uint32_t) (h) << 17) >> 4; + v.i = ((uint32_t) (h >> 15)) << 31; + + // the likely really does help if most of your numbers are "normal" half numbers + if ((hexpmant >= 0x00800000)) { + v.i |= hexpmant; + // either we are a normal number, in which case add in the bias difference + // otherwise make sure all exponent bits are set + if ((hexpmant < 0x0f800000)) { + v.i += 0x38000000; + } + else { + v.i |= 0x7f800000; + } } - lc -= 8; - // so nominally we want to remove that extra bit we shifted - // up, but we are going to add that bit back in, then subtract - // from it with the 0x38800000 - (lc << 23).... - // - // by combining, this allows us to skip the & operation (and - // remove a constant) - // - // hexpmant &= ~0x00800000; - v.i |= 0x38800000; - // lc is now x, where the desired exponent is then - // -14 - lc - // + 127 -> new exponent - v.i |= (hexpmant << lc); - v.i -= (lc << 23); - } - return v.f; - // #endif + else if (hexpmant != 0) { + // exponent is 0 because we're denormal, don't have to extract + // the mantissa, can just use as is + // + // + // other compilers may provide count-leading-zeros primitives, + // but we need the community to inform us of the variants + uint32_t lc; + lc = 0; + while (0 == ((hexpmant << lc) & 0x80000000)) { + lc += 1; + } + lc -= 8; + // so nominally we want to remove that extra bit we shifted + // up, but we are going to add that bit back in, then subtract + // from it with the 0x38800000 - (lc << 23).... + // + // by combining, this allows us to skip the & operation (and + // remove a constant) + // + // hexpmant &= ~0x00800000; + v.i |= 0x38800000; + // lc is now x, where the desired exponent is then + // -14 - lc + // + 127 -> new exponent + v.i |= (hexpmant << lc); + v.i -= (lc << 23); + } + return v.f; + // #endif + + #endif + } -/// -/// Convert half to float -/// -/// Note: This only supports the "round to even" rounding mode, which -/// was the only mode supported by the original OpenEXR library -/// - -static inline float16_t NN_floatToHalf(float f) { - // #if defined(__F16C__) - // #ifdef _MSC_VER - // // msvc does not seem to have cvtsh_ss :( - // return _mm_extract_epi16 ( - // _mm_cvtps_ph ( - // _mm_set_ss (f), (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC)), - // 0); - // #else - // // preserve the fixed rounding mode to nearest - // return _cvtss_sh (f, (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC)); - // #endif - // #else - float_uint32_union_t v; - float16_t ret; - uint32_t e, m, ui, r, shift; - - v.f = f; - - ui = (v.i & ~0x80000000); - ret = ((v.i >> 16) & 0x8000); - - // exponent large enough to result in a normal number, round and return - if (ui >= 0x38800000) { - // inf or nan - if (ui >= 0x7f800000) { - ret |= 0x7c00; - if (ui == 0x7f800000) { - return ret; + +static inline float16_t NN_float_to_half(float f) { + #ifdef _Float16 + return (_Float16)f; + #else + // from https://github.com/AcademySoftwareFoundation/Imath/blob/main/src/Imath/half.h + + /// + /// Convert half to float + /// + /// Note: This only supports the "round to even" rounding mode, which + /// was the only mode supported by the original OpenEXR library + /// + + + // #if defined(__F16C__) + // #ifdef _MSC_VER + // // msvc does not seem to have cvtsh_ss :( + // return _mm_extract_epi16 ( + // _mm_cvtps_ph ( + // _mm_set_ss (f), (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC)), + // 0); + // #else + // // preserve the fixed rounding mode to nearest + // return _cvtss_sh (f, (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC)); + // #endif + // #else + float_uint32_union_t v; + float16_t ret; + uint32_t e, m, ui, r, shift; + + v.f = f; + + ui = (v.i & ~0x80000000); + ret = ((v.i >> 16) & 0x8000); + + // exponent large enough to result in a normal number, round and return + if (ui >= 0x38800000) { + // inf or nan + if (ui >= 0x7f800000) { + ret |= 0x7c00; + if (ui == 0x7f800000) { + return ret; + } + m = (ui & 0x7fffff) >> 13; + // make sure we have at least one bit after shift to preserve nan-ness + return ret | (uint16_t) m | (uint16_t) (m == 0); } - m = (ui & 0x7fffff) >> 13; - // make sure we have at least one bit after shift to preserve nan-ness - return ret | (uint16_t) m | (uint16_t) (m == 0); - } - // too large, round to infinity - if (ui > 0x477fefff) { - return ret | 0x7c00; + // too large, round to infinity + if (ui > 0x477fefff) { + return ret | 0x7c00; + } + + ui -= 0x38000000; + ui = ((ui + 0x00000fff + ((ui >> 13) & 1)) >> 13); + return ret | (uint16_t) ui; } - ui -= 0x38000000; - ui = ((ui + 0x00000fff + ((ui >> 13) & 1)) >> 13); - return ret | (uint16_t) ui; - } + // zero or flush to 0 + if (ui < 0x33000001) { + return ret; + } - // zero or flush to 0 - if (ui < 0x33000001) { + // produce a denormalized half + e = (ui >> 23); + shift = 0x7e - e; + m = 0x800000 | (ui & 0x7fffff); + r = m << (32 - shift); + ret |= (m >> shift); + if (r > 0x80000000 || (r == 0x80000000 && (ret & 0x1) != 0)) { + ret += 1; + } return ret; - } - - // produce a denormalized half - e = (ui >> 23); - shift = 0x7e - e; - m = 0x800000 | (ui & 0x7fffff); - r = m << (32 - shift); - ret |= (m >> shift); - if (r > 0x80000000 || (r == 0x80000000 && (ret & 0x1) != 0)) { - ret += 1; - } - return ret; -// #endif + // #endif + #endif } #endif // __NN_FLOAT16 \ No newline at end of file diff --git a/nn/inc/ops/abs.h b/nn/inc/ops/abs.h index d16ae85..7b8c8d2 100644 --- a/nn/inc/ops/abs.h +++ b/nn/inc/ops/abs.h @@ -74,9 +74,21 @@ static inline void NN__abs_i32(size_t n, int32_t *y, int32_t *x) { } static inline void NN__abs_f16(size_t n, float16_t *y, float16_t *x) { - for (size_t i = 0; i < n; i += 1) { - y[i] = NN_floatToHalf(fabsf(NN_halfToFloat(x[i]))); - } + #if defined(RVV) + // while (n > 0) { + // size_t vl = __riscv_vsetvl_e16m1(n); + // vfloat16m1_t vec_x = __riscv_vle16_v_f16m1(x, vl); + // vfloat16m1_t vec_y = __riscv_vfabs_v_f16m1(vec_x, vl); + // __riscv_vse16_v_f16m1(y, vec_y, vl); + // x += vl; + // y += vl; + // n -= vl; + // } + #else + for (size_t i = 0; i < n; i += 1) { + y[i] = NN_float_to_half(fabsf(NN_half_to_float(x[i]))); + } + #endif } static inline void NN__abs_f32(size_t n, float *y, float *x) { diff --git a/nn/inc/ops/add.h b/nn/inc/ops/add.h index 3c3880d..b352257 100644 --- a/nn/inc/ops/add.h +++ b/nn/inc/ops/add.h @@ -32,7 +32,7 @@ static inline void NN__add_i8(size_t n, int8_t *z, int8_t *x, int8_t *y) { static inline void NN__add_f16(size_t n, float16_t *z, float16_t *x, float16_t *y) { for (size_t i = 0; i < n; i += 1) { - z[i] = NN_floatToHalf(NN_halfToFloat(x[i]) + NN_halfToFloat(y[i])); + z[i] = NN_float_to_half(NN_half_to_float(x[i]) + NN_half_to_float(y[i])); } } diff --git a/nn/inc/ops/dot.h b/nn/inc/ops/dot.h index c9c68dc..dfb7831 100644 --- a/nn/inc/ops/dot.h +++ b/nn/inc/ops/dot.h @@ -34,9 +34,9 @@ static inline void NN__dot_f16(size_t n, float16_t *s, float16_t *x, float16_t * #else float sum_f32 = 0; for (size_t i = 0; i < n; i += 1) { - sum_f32 += NN_halfToFloat(x[i]) * NN_halfToFloat(y[i]); + sum_f32 += NN_half_to_float(x[i]) * NN_half_to_float(y[i]); } - sum = NN_floatToHalf(sum_f32); + sum = NN_float_to_half(sum_f32); #endif *s = sum; diff --git a/nn/src/nn_fill.c b/nn/src/nn_fill.c index 899951f..b71b56a 100644 --- a/nn/src/nn_fill.c +++ b/nn/src/nn_fill.c @@ -14,7 +14,7 @@ void NN_fill(Tensor *tensor, float value) { NN__fill_i32(tensor->size, (int32_t *)tensor->data, (int32_t)value); return; case DTYPE_F16: - NN__fill_f16(tensor->size, (float16_t *)tensor->data, NN_floatToHalf(value)); + NN__fill_f16(tensor->size, (float16_t *)tensor->data, NN_float_to_half(value)); return; case DTYPE_F32: NN__fill_f32(tensor->size, (float *)tensor->data, value); diff --git a/nn/src/nn_matmul.c b/nn/src/nn_matmul.c index 8fcebae..91bae45 100644 --- a/nn/src/nn_matmul.c +++ b/nn/src/nn_matmul.c @@ -101,9 +101,9 @@ void NN_matmul(Tensor *out, Tensor *a, Tensor *b) { for (size_t j = 0; j < out->shape[1]; j += 1) { float sum = 0; for (size_t k = 0; k < a->shape[1]; k += 1) { - sum += NN_halfToFloat(((float16_t *)a->data)[i * a->shape[1] + k]) * NN_halfToFloat(((float16_t *)b->data)[k * b->shape[1] + j]); + sum += NN_half_to_float(((float16_t *)a->data)[i * a->shape[1] + k]) * NN_half_to_float(((float16_t *)b->data)[k * b->shape[1] + j]); } - ((float16_t *)out->data)[i * out->shape[1] + j] = NN_floatToHalf(sum); + ((float16_t *)out->data)[i * out->shape[1] + j] = NN_float_to_half(sum); } } return; diff --git a/nn/src/nn_print.c b/nn/src/nn_print.c index 487365c..b11d587 100644 --- a/nn/src/nn_print.c +++ b/nn/src/nn_print.c @@ -69,7 +69,7 @@ void NN_printf(Tensor *tensor) { printf("%ld", (size_t)(*((int32_t *)tensor->data + i))); break; case DTYPE_F16: - NN_print_f32(NN_halfToFloat(*((float16_t *)tensor->data + i)), 3); + NN_print_f32(NN_half_to_float(*((float16_t *)tensor->data + i)), 3); break; case DTYPE_F32: NN_print_f32(*((float *)tensor->data + i), 4); @@ -99,7 +99,7 @@ void NN_printf(Tensor *tensor) { printf("%ld", (size_t)(*((int32_t *)tensor->data + i*tensor->shape[1] + j))); break; case DTYPE_F16: - NN_print_f32(NN_halfToFloat(*((float16_t *)tensor->data + i*tensor->shape[1] + j)), 3); + NN_print_f32(NN_half_to_float(*((float16_t *)tensor->data + i*tensor->shape[1] + j)), 3); break; case DTYPE_F32: NN_print_f32(*((float *)tensor->data + i*tensor->shape[1] + j), 4); @@ -139,7 +139,7 @@ void NN_printf(Tensor *tensor) { printf("%ld", (size_t)(*((int32_t *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k))); break; case DTYPE_F16: - NN_print_f32(NN_halfToFloat(*((float16_t *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k)), 3); + NN_print_f32(NN_half_to_float(*((float16_t *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k)), 3); break; case DTYPE_F32: NN_print_f32(*((float *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k), 4); @@ -183,7 +183,7 @@ void NN_printf(Tensor *tensor) { printf("%ld", (size_t)(*((int32_t *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w))); break; case DTYPE_F16: - NN_print_f32(NN_halfToFloat(*((float16_t *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w)), 3); + NN_print_f32(NN_half_to_float(*((float16_t *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w)), 3); break; case DTYPE_F32: NN_print_f32(*((float *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w), 4); diff --git a/nn/src/nn_tensor.c b/nn/src/nn_tensor.c index 4162f74..779a6ce 100644 --- a/nn/src/nn_tensor.c +++ b/nn/src/nn_tensor.c @@ -112,7 +112,7 @@ void NN_as_type(Tensor *out, Tensor *in) { switch (out->dtype) { case DTYPE_F32: for (size_t i = 0; i < in->size; i += 1) { - ((float *)out->data)[i] = NN_halfToFloat(((float16_t *)in->data)[i]); + ((float *)out->data)[i] = NN_half_to_float(((float16_t *)in->data)[i]); } return; } @@ -127,7 +127,7 @@ void NN_as_type(Tensor *out, Tensor *in) { return; case DTYPE_F16: for (size_t i = 0; i < in->size; i += 1) { - ((float16_t *)out->data)[i] = NN_floatToHalf(((float *)in->data)[i]); + ((float16_t *)out->data)[i] = NN_float_to_half(((float *)in->data)[i]); } return; } diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 628766c..542dab6 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -34,6 +34,10 @@ endif() add_compile_options(-O3 -Wall -Wextra) + +# add -mfp16-format=ieee +# add_compile_options(-mavx512fp16) + target_compile_options(test PRIVATE -u _printf_float) add_subdirectory(../ ./build/) diff --git a/tests/src/generate_test.py b/tests/src/generate_test.py index ca8a86d..6cf1d7a 100644 --- a/tests/src/generate_test.py +++ b/tests/src/generate_test.py @@ -3,8 +3,11 @@ import torch import jinja2 -# seed +# see if we have a GPU +device = torch.device("cuda" if torch.cuda.is_available() else "cpu") + +# seed seed = 0 random.seed(seed) @@ -20,10 +23,10 @@ def rand(shape): - return (torch.rand(shape, dtype=torch.float32) - 0.5) * 10 + return (torch.rand(shape, dtype=torch.float32, device=device) - 0.5) * 10 def rand16(shape): - return (torch.rand(shape, dtype=torch.float16) - 0.5) * 10 + return (torch.rand(shape, dtype=torch.float16, device=device) - 0.5) * 10 test_pattern = [ @@ -32,12 +35,12 @@ def rand16(shape): # ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((1, 7))) ]), # ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((6, 1))) ]), # ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((7, ))) ]), - # ("addInplace", lambda a, b: a + b, [("actual", torch.zeros((7, 7))), ("b", rand((7, 7))) ]), + # ("add_inplace", lambda a, b: a + b, [("actual", torch.zeros((7, 7))), ("b", rand((7, 7))) ]), # ("add1", lambda a, b: a + b, [("a", rand((7, 7))), ("v", random.random()) ]), # ("clip", lambda a, v_min, v_max: torch.clip(a, v_min, v_max), [("a", rand((7, 7))), ("v_min", random.random() - 1), ("v_max", random.random())]), # ("div", lambda a, b: a / b, [("a", rand((7, 7))), ("b", rand((7, 7))) ]), # ("fill", lambda a, v: a.fill_(v), [("actual", torch.zeros((7, 7))), ("v", random.random()) ]), - # ("matmulT", lambda a, b: a @ b.T, [("a", rand((6, 7))), ("b", rand((5, 7))) ]), + # ("matmul_t", lambda a, b: a @ b.T, [("a", rand((6, 7))), ("b", rand((5, 7))) ]), # ("matmul", lambda a, b: a @ b, [("a", rand((6, 7))), ("b", rand((7, 5))) ]), # ("max", lambda a: torch.max(a), [("a", rand((7, 7))) ]), # ("maximum", lambda a, b: torch.maximum(a, b), [("a", rand((7, 7))), ("b", rand((7, 7))) ]), @@ -49,41 +52,41 @@ def rand16(shape): # ("sub", lambda a, b: a - b, [("a", rand((7, 7))), ("b", rand((7, 7))) ]), # ("sum", lambda a: torch.sum(a), [("a", rand((7, 7))), ]), - # ("Linear", lambda x, w, b: torch.nn.functional.linear(x, w, b), + # ("linear", lambda x, w, b: torch.nn.functional.linear(x, w, b), # [("x", rand((6, 7))), ("w", rand((5, 7))), ("b", rand((1, 5))) ]), - # ("Linear", lambda x, w, b: torch.nn.functional.linear(x, w, b), + # ("linear", lambda x, w, b: torch.nn.functional.linear(x, w, b), # [("x", rand((6, 7))), ("w", rand((5, 7))), ("b", rand((5, ))) ]), - # ("ReLU", lambda x: torch.nn.functional.relu(x), + # ("relu", lambda x: torch.nn.functional.relu(x), # [("x", rand((7, 7))) ]), - # ("Softmax", lambda a: torch.nn.functional.softmax(a, dim=0), + # ("softmax", lambda a: torch.nn.functional.softmax(a, dim=0), # [("x", torch.ones((7, 7))) ], # ", 0" ), - # ("Softmax", lambda a: torch.nn.functional.softmax(a, dim=1), + # ("softmax", lambda a: torch.nn.functional.softmax(a, dim=1), # [("x", torch.ones((7, 7))) ], # ", 1" ), - # ("ReLU6", lambda x: torch.nn.functional.relu6(x), + # ("relu6", lambda x: torch.nn.functional.relu6(x), # [("x", rand((7, 7))) ]), - # ("Conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=0, dilation=1, groups=1).permute((0, 2, 3, 1)), + # ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=0, dilation=1, groups=1).permute((0, 2, 3, 1)), # [("x", rand((1, 16, 16, 3))), ("w", rand((3, 3, 3, 6))), ("b", rand((6, )))], # ", (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1" ), - # ("Conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=1).permute((0, 2, 3, 1)), + # ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=1).permute((0, 2, 3, 1)), # [("x", rand((1, 16, 16, 3))), ("w", rand((3, 3, 3, 71))), ("b", rand((71, )))], # ", (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 1" ), - # ("NCHWToNHWC", lambda x: x.permute((0, 2, 3, 1)), [("x", rand((1, 2, 3, 3))) ]), - # ("NHWCToNCHW", lambda x: x.permute((0, 3, 1, 2)), [("x", rand((1, 3, 3, 2))) ]), - # ("Conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=16).permute((0, 2, 3, 1)), + # ("nchw_to_nhwc", lambda x: x.permute((0, 2, 3, 1)), [("x", rand((1, 2, 3, 3))) ]), + # ("nhwc_to_nchw", lambda x: x.permute((0, 3, 1, 2)), [("x", rand((1, 3, 3, 2))) ]), + # ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=16).permute((0, 2, 3, 1)), # [("x", rand((1, 12, 12, 16))), ("w", rand((3, 3, 1, 16))), ("b", rand((16, )))], # ", (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 16" ), - # ("Conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=1).permute((0, 2, 3, 1)), + # ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=1).permute((0, 2, 3, 1)), # [("x", rand((1, 12, 12, 16))), ("w", rand((3, 3, 16, 56))), ("b", rand((56, )))], # ", (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 1" ), - # ("LayerNorm", lambda x, w, b: torch.nn.functional.layer_norm(x, x.shape, w, b, eps=1e-05), + # ("layer_norm", lambda x, w, b: torch.nn.functional.layer_norm(x, x.shape, w, b, eps=1e-05), # [("x", rand((6, 5))), ("w", rand((6, 5))), ("b", rand((6, 5))) ], # ", 1e-05" ), # ("abs", lambda a: torch.abs(a), [("a", rand16((1, 4))), ]), ("add", lambda a, b: a + b, [("a", rand16((6, 7))), ("b", rand16((6, 7))) ]), - ("matmulT", lambda a, b: a @ b.T, [("a", rand16((6, 7))), ("b", rand16((5, 7))) ]), + ("matmul_t", lambda a, b: a @ b.T, [("a", rand16((6, 7))), ("b", rand16((5, 7))) ]), ("matmul", lambda a, b: a @ b, [("a", rand16((6, 7))), ("b", rand16((7, 5))) ]), ] @@ -102,7 +105,7 @@ def rand16(shape): #include "unittest.h" int main() { - enableAcceleratorFeatures(); + enable_accelerator_features(); size_t cycles = 0; @@ -112,7 +115,7 @@ def rand16(shape): """ -def typeToStr(dtype: torch.dtype): +def type_to_str(dtype: torch.dtype): if dtype == torch.float16: return "DTYPE_F16" elif dtype == torch.float32: @@ -120,12 +123,13 @@ def typeToStr(dtype: torch.dtype): -def formatTensor(name: str, tensor: torch.Tensor): +def format_tensor(name: str, tensor: torch.Tensor): dim = len(tensor.shape) shape = ", ".join([str(s) for s in tensor.shape]) - dtype = typeToStr(tensor.dtype) - data = ",".join([hex(b) for b in tensor.contiguous().numpy().flatten().tobytes()]) - human_readable = str(tensor.contiguous().numpy()).replace("\n", " ")[:80] + dtype = type_to_str(tensor.dtype) + data_np = tensor.cpu().contiguous().numpy() + data = ",".join([hex(b) for b in data_np.flatten().tobytes()]) + human_readable = str(data_np).replace("\n", " ")[:80] tensor_str = env.from_string(""" // {{ human_readable }} Tensor *{{ name }} = NN_tensor({{ dim }}, (size_t[]){ {{ shape }} }, {{ dtype }}, (uint8_t[]){ {{ data }} });""").render( @@ -135,7 +139,7 @@ def formatTensor(name: str, tensor: torch.Tensor): -def generateTestPattern(op, function, inputs, additional_params=""): +def generate_test_pattern(op, function, inputs, additional_params=""): result = function(*[value for name, value in inputs]) @@ -146,11 +150,12 @@ def generateTestPattern(op, function, inputs, additional_params=""): if type(value) == torch.Tensor and name != "actual": dim = len(value.shape) shape = ", ".join([str(s) for s in value.shape]) - dtype = typeToStr(value.dtype) - data = ", ".join([str(b) for b in value.contiguous().numpy().flatten().tobytes()]) + dtype = type_to_str(value.dtype) + data_np = value.cpu().contiguous().numpy() + data = ", ".join([str(b) for b in data_np.flatten().tobytes()]) - human_readable = str(value.contiguous().numpy()).replace("\n", " ")[:80] - tensor_str = formatTensor(name, value) + human_readable = str(data_np).replace("\n", " ")[:80] + tensor_str = format_tensor(name, value) tensor_constructors.append(tensor_str) tensor_destructors.append(" NN_delete_tensor({});\n".format(name)) @@ -160,11 +165,11 @@ def generateTestPattern(op, function, inputs, additional_params=""): tensor_constructors.append(tensor_str) - golden_str = formatTensor("golden", result) + golden_str = format_tensor("golden", result) dim = len(result.shape) shape = ", ".join([str(s) for s in result.shape]) - dtype = typeToStr(result.dtype) + dtype = type_to_str(result.dtype) result_tensors = golden_str + env.from_string(""" Tensor *actual = NN_zeros({{ dim }}, (size_t[]){ {{ shape }} }, {{ dtype }});""").render( @@ -185,10 +190,10 @@ def generateTestPattern(op, function, inputs, additional_params=""): {{ result_tensors }} - cycles = readCycles(); + cycles = read_cycles(); {{ func_str }} - cycles = readCycles() - cycles; - printf("%s (%lu cycles)\\n", compareTensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); {% for tensor_str in tensor_destructors %}{{ tensor_str }}{% endfor %} NN_delete_tensor(golden); @@ -204,7 +209,7 @@ def generateTestPattern(op, function, inputs, additional_params=""): -result = template.render(code="\n".join([generateTestPattern(*pattern) for pattern in test_pattern])) +result = template.render(code="\n".join([generate_test_pattern(*pattern) for pattern in test_pattern])) with open("generated.c", "w") as f: f.write(result) diff --git a/tests/src/generated.c b/tests/src/generated.c index 4d7e45b..3d7bb30 100644 --- a/tests/src/generated.c +++ b/tests/src/generated.c @@ -8,7 +8,7 @@ #include "unittest.h" int main() { - enableAcceleratorFeatures(); + enable_accelerator_features(); size_t cycles = 0; @@ -26,10 +26,10 @@ int main() { Tensor *golden = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x4a,0x42,0x9f,0xbd,0x7,0x3f,0x78,0xb1,0x69,0xc1,0x74,0xb8,0xcb,0x41,0xb9,0xbc,0xcd,0x3d,0x1c,0x48,0xb6,0xc0,0x2c,0x40,0x18,0x40,0x6b,0xc4,0x3,0xc0,0x54,0x3a,0xe1,0xc5,0xa8,0xc0,0x2c,0xc5,0x11,0xc4,0x9e,0x44,0x1,0xc2,0x5c,0xc3,0x82,0xc8,0x62,0x3f,0x3b,0xc5,0x48,0xbc,0x58,0x40,0xec,0xb8,0x0,0xb4,0xeb,0x3d,0xdb,0x46,0xbf,0xc5,0xce,0xc3,0xad,0xc4,0xb0,0x35,0x0,0x48,0x58,0x44,0x44,0x44,0x29,0xc5,0xe,0xbe,0x22,0xc8 }); Tensor *actual = NN_zeros(2, (size_t[]){ 6, 7 }, DTYPE_F16); - cycles = readCycles(); + cycles = read_cycles(); NN_add(actual, a, b); - cycles = readCycles() - cycles; - printf("%s (%lu cycles)\n", compareTensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); NN_delete_tensor(a); NN_delete_tensor(b); @@ -40,7 +40,7 @@ int main() { } { - printf("matmulT: "); + printf("matmul_t: "); // [[ 1.567 4.88 4.574 -4.723 -3.578 4.25 0.581 ] [-1.196 -2.9 0. Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x45,0x3e,0xe1,0x44,0x93,0x44,0xb9,0xc4,0x28,0xc3,0x40,0x44,0xa6,0x38,0xc9,0xbc,0xcd,0xc1,0x68,0x36,0x8e,0xc4,0x60,0x44,0x1d,0xc2,0x8,0xc0,0x84,0x41,0x88,0xb8,0xa3,0xbf,0x94,0x44,0x97,0xc4,0x2,0xc4,0xd6,0xc2,0xe2,0xbc,0xb0,0xb4,0x58,0x33,0x85,0xbf,0xf1,0x44,0x1e,0x39,0x10,0xb4,0x18,0xba,0x8,0x3b,0xe2,0x44,0x22,0x44,0x96,0x39,0x72,0x42,0x6f,0x3c,0x78,0xb5,0x8d,0xbc,0xf5,0xbd,0x7e,0xb8,0x5c,0xc2,0x2a,0x44,0x88,0xc0 }); @@ -52,10 +52,10 @@ int main() { Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F16, (uint8_t[]){ 0xf3,0xcd,0x68,0x43,0x68,0xcc,0xd4,0xd4,0x95,0xcf,0x1f,0xcd,0xf0,0xc9,0x23,0xc8,0x2c,0x50,0xb6,0xcd,0x31,0x49,0x89,0xc3,0x57,0x4c,0xa5,0x4c,0x72,0x54,0x3a,0x3c,0xb1,0x40,0x92,0xca,0x32,0x4c,0x88,0xcf,0x45,0xbd,0x7c,0x51,0x5a,0x4b,0x75,0xcc,0x86,0xce,0x92,0xc6,0xd0,0x49,0xdd,0xce,0x15,0xcb,0x2a,0x4b }); Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F16); - cycles = readCycles(); + cycles = read_cycles(); NN_matmul_t(actual, a, b); - cycles = readCycles() - cycles; - printf("%s (%lu cycles)\n", compareTensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); NN_delete_tensor(a); NN_delete_tensor(b); @@ -78,10 +78,10 @@ int main() { Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F16, (uint8_t[]){ 0xdf,0x4b,0x7e,0xca,0x6f,0xd0,0x81,0xce,0x7e,0x45,0x99,0x42,0xab,0xaf,0xeb,0xcf,0x7a,0x43,0x91,0x45,0x90,0xcc,0x28,0xc0,0x5e,0x4c,0x9b,0x3a,0xf6,0x3d,0x20,0x39,0x2a,0x49,0x6b,0xb9,0x5f,0x48,0xe0,0xc4,0xa0,0x4d,0x2f,0xc3,0x79,0x41,0x4f,0x4e,0x71,0xce,0x71,0xc9,0xa5,0x4d,0xdf,0xc6,0xd9,0x3e,0x78,0x4d }); Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F16); - cycles = readCycles(); + cycles = read_cycles(); NN_matmul(actual, a, b); - cycles = readCycles() - cycles; - printf("%s (%lu cycles)\n", compareTensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-5) ? "PASS" : "FAIL", cycles); NN_delete_tensor(a); NN_delete_tensor(b); diff --git a/tests/src/main_fp16.c b/tests/src/main_fp16.c index ddb648e..dbfc6bb 100644 --- a/tests/src/main_fp16.c +++ b/tests/src/main_fp16.c @@ -51,8 +51,8 @@ int main() { float x = (float)(0x47ca9334); - float16_t x_compressed = NN_floatToHalf(x); - float x_decompressed = NN_halfToFloat(x_compressed); + float16_t x_compressed = NN_float_to_half(x); + float x_decompressed = NN_half_to_float(x_compressed); print_bits(x); print_bits_half(x_compressed); diff --git a/tests/src/unittest.h b/tests/src/unittest.h index 28cf0fe..fbcc469 100644 --- a/tests/src/unittest.h +++ b/tests/src/unittest.h @@ -15,7 +15,7 @@ #include "riscv_vector.h" #endif -static void enableAcceleratorFeatures() { +static void enable_accelerator_features() { #ifdef RVV // enable vector operation unsigned long mstatus; @@ -25,7 +25,7 @@ static void enableAcceleratorFeatures() { #endif } -static size_t readCycles() { +static size_t read_cycles() { #ifdef X86 return __rdtsc(); #elif defined(RISCV) @@ -33,22 +33,22 @@ static size_t readCycles() { #endif } -static uint8_t floatEqual(float golden, float actual, float rel_err) { +static uint8_t float_equal(float golden, float actual, float rel_err) { return (fabs(actual - golden) < rel_err) || (fabs((actual - golden) / actual) < rel_err); } -static uint8_t compareTensor(Tensor *golden, Tensor *actual, float rel_err) { +static uint8_t compare_tensor(Tensor *golden, Tensor *actual, float rel_err) { switch (golden->dtype) { case DTYPE_F16: for (size_t i = 0; i < golden->size; i += 1) { - if (!floatEqual(NN_halfToFloat(((float16_t *)golden->data)[i]), NN_halfToFloat(((float16_t *)actual->data)[i]), rel_err)) { + if (!float_equal(NN_half_to_float(((float16_t *)golden->data)[i]), NN_half_to_float(((float16_t *)actual->data)[i]), rel_err)) { return 0; } } return 1; case DTYPE_F32: for (size_t i = 0; i < golden->size; i += 1) { - if (!floatEqual(((float *)golden->data)[i], ((float *)actual->data)[i], rel_err)) { + if (!float_equal(((float *)golden->data)[i], ((float *)actual->data)[i], rel_err)) { return 0; } } From 75f5901b037e0f30a36e497f499deaff94967232 Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Tue, 9 Jul 2024 19:19:37 -0700 Subject: [PATCH 04/21] REFACTOR: continue snaking --- barstools/src/barstools/converter.py | 60 ++++++++++++++-------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/barstools/src/barstools/converter.py b/barstools/src/barstools/converter.py index 7598aa7..31a2edf 100644 --- a/barstools/src/barstools/converter.py +++ b/barstools/src/barstools/converter.py @@ -13,15 +13,15 @@ class TorchConverter(torch.fx.Interpreter): @staticmethod - def toNumpy(tensor: torch.Tensor): + def to_numpy(tensor: torch.Tensor): return tensor.cpu().detach().contiguous().numpy() @staticmethod - def toBytes(ndarray: np.ndarray): + def to_bytes(ndarray: np.ndarray): return ndarray.astype(np.float32).flatten().tobytes() @staticmethod - def dtypeToStr(dtype: torch.dtype): + def dtype_to_str(dtype: torch.dtype): if dtype == torch.float16: return "DTYPE_F16" elif dtype == torch.float32: @@ -67,12 +67,12 @@ def __init__(self, model): def print(self): self.gm.graph.print_tabular() - def getModuleInSequential(self, module, indicies): + def get_module_in_sequential(self, module, indicies): if len(indicies) == 0: return module - return self.getModuleInSequential(module[indicies[0]], indicies[1:]) + return self.get_module_in_sequential(module[indicies[0]], indicies[1:]) - def getModule(self, module_name): + def get_module(self, module_name): if "." in module_name: # if we have nn.Sequential layers target_hierarchy = module_name.split(".") @@ -82,28 +82,28 @@ def getModule(self, module_name): indicies = [int(x) for x in target_hierarchy[1:]] module = getattr(self.model, sequential_name) - return self.getModuleInSequential(module, indicies) + return self.get_module_in_sequential(module, indicies) return getattr(self.model, module_name) - def addDataTensor(self, name, tensor): + def add_data_tensor(self, name, tensor): self.model_struct += INDENT + "Tensor {name};\n".format( name=name ) - data = TorchConverter.toNumpy(tensor) + data = TorchConverter.to_numpy(tensor) self.model_init += INDENT + "NN_init_tensor(&model->{name}, {dim}, (size_t[]){{{shape}}}, {dtype}, array_pointer);\n".format( name=name, dim=len(tensor.shape), shape=", ".join(str(x) for x in tensor.shape), - dtype=TorchConverter.dtypeToStr(tensor.dtype) + dtype=TorchConverter.dtype_to_str(tensor.dtype) ) self.model_init += INDENT + "array_pointer += {increment};\n".format( increment=np.prod(tensor.shape) ) - self.weight_content += TorchConverter.toBytes(data) + self.weight_content += TorchConverter.to_bytes(data) - def addOutputTensor(self, name, shape, dtype=torch.float32): + def add_output_tensor(self, name, shape, dtype=torch.float32): self.model_struct += INDENT + "Tensor {name};\n".format( name=name ) @@ -111,7 +111,7 @@ def addOutputTensor(self, name, shape, dtype=torch.float32): name=name, dim=len(shape), shape=", ".join(str(x) for x in shape), - dtype=TorchConverter.dtypeToStr(dtype) + dtype=TorchConverter.dtype_to_str(dtype) ) def placeholder(self, target, args, kwargs): @@ -160,7 +160,7 @@ def call_function(self, target, args, kwargs): layer_name=layer_name, input_names=self.node_info[layer_name][0] ) - self.addOutputTensor(layer_name, output_shape) + self.add_output_tensor(layer_name, output_shape) elif target == torch.nn.functional.interpolate: layer_name = "interpolate_{count}".format(count=count) if count > 0 else "interpolate" @@ -170,7 +170,7 @@ def call_function(self, target, args, kwargs): input_names=self.node_info[layer_name][0], scale_factor=kwargs.get("scale_factor") ) - self.addOutputTensor(layer_name, output_shape) + self.add_output_tensor(layer_name, output_shape) elif target == torch.nn.functional.relu: layer_name = "relu_{count}".format(count=count) if count > 0 else "relu" @@ -206,7 +206,7 @@ def call_module(self, target, args, kwargs): if len(output_shape) == 4: output_shape = (output_shape[0], output_shape[2], output_shape[3], output_shape[1]) - module = self.getModule(target) + module = self.get_module(target) layer_name = target.replace(".", "_") input_names = self.node_info[layer_name][0] @@ -217,19 +217,19 @@ def call_module(self, target, args, kwargs): ) if type(module) == torch.nn.Linear: - self.addDataTensor( + self.add_data_tensor( "{layer_name}_weight".format(layer_name=layer_name), module.state_dict().get("weight") ) if module.bias is not None: - self.addDataTensor( + self.add_data_tensor( "{layer_name}_bias".format(layer_name=layer_name), module.state_dict().get("bias") ) batch_size = int(output_shape[0]) - self.addOutputTensor( + self.add_output_tensor( layer_name, (batch_size, module.out_features) ) @@ -243,28 +243,28 @@ def call_module(self, target, args, kwargs): elif type(module) == torch.nn.BatchNorm2d: if module.weight is not None: - self.addDataTensor( + self.add_data_tensor( "{layer_name}_weight".format(layer_name=layer_name), module.state_dict().get("weight") ) if module.bias is not None: - self.addDataTensor( + self.add_data_tensor( "{layer_name}_bias".format(layer_name=layer_name), module.state_dict().get("bias") ) if module.running_mean is not None: - self.addDataTensor( + self.add_data_tensor( "{layer_name}_running_mean".format(layer_name=layer_name), module.state_dict().get("running_mean") ) if module.running_var is not None: - self.addDataTensor( + self.add_data_tensor( "{layer_name}_running_var".format(layer_name=layer_name), module.state_dict().get("running_var") ) batch_size = int(output_shape[0]) - self.addOutputTensor(layer_name, output_shape) + self.add_output_tensor(layer_name, output_shape) self.model_forward += INDENT + """NN_batch_norm2d( &model->{layer_name}, &model->{input_name[0]}, @@ -282,17 +282,17 @@ def call_module(self, target, args, kwargs): elif type(module) == torch.nn.Conv2d: if module.weight is not None: # weight need to be converted from (out_ch, in_ch, kh, kw) to (kh, kw, in_ch, out_ch) - self.addDataTensor( + self.add_data_tensor( "{layer_name}_weight".format(layer_name=layer_name), module.state_dict().get("weight").permute(2, 3, 1, 0) ) if module.bias is not None: - self.addDataTensor( + self.add_data_tensor( "{layer_name}_bias".format(layer_name=layer_name), module.state_dict().get("bias") ) - self.addOutputTensor(layer_name, output_shape) + self.add_output_tensor(layer_name, output_shape) self.model_forward += INDENT + """NN_conv2d( &model->{layer_name}, &model->{input_names[0]}, @@ -313,14 +313,14 @@ def call_module(self, target, args, kwargs): layer_name=layer_name, input_names=input_names ) - self.addOutputTensor(layer_name, output_shape) + self.add_output_tensor(layer_name, output_shape) elif type(module) == torch.nn.ReLU6: self.model_forward += INDENT + "NN_relu6(&model->{layer_name}, &model->{input_names[0]});\n".format( layer_name=layer_name, input_names=input_names ) - self.addOutputTensor(layer_name, output_shape) + self.add_output_tensor(layer_name, output_shape) elif type(module) == torch.nn.ELU: self.model_forward += INDENT + "NN_elu(&model->{layer_name}, &model->{input_names[0]}, {eps});\n".format( @@ -328,7 +328,7 @@ def call_module(self, target, args, kwargs): input_names=input_names, eps=module.alpha ) - self.addOutputTensor(layer_name, output_shape) + self.add_output_tensor(layer_name, output_shape) else: print("[WARNING] Unsupported module call:", target) From e22431c3ab6e8a19227f2376a157372e8de7849f Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Wed, 10 Jul 2024 11:51:35 -0700 Subject: [PATCH 05/21] REFACTOR: stage refactor --- nn/CMakeLists.txt | 89 ++-- nn/impl/abs.h | 37 ++ nn/impl/acc.h | 19 + nn/impl/acc1.h | 13 + nn/impl/add.h | 29 ++ nn/impl/add1.h | 14 + nn/impl/avx/abs.c | 28 + nn/impl/cpu/abs.c | 32 ++ nn/impl/cpu/acc.c | 14 + nn/impl/cpu/acc1.c | 8 + nn/impl/cpu/add.c | 21 + nn/impl/cpu/add1.c | 8 + nn/impl/cpu/div.c | 8 + nn/impl/cpu/dot.c | 18 + nn/impl/cpu/fill.c | 37 ++ nn/impl/cpu/log.c | 9 + nn/impl/div.h | 15 + nn/impl/dot.h | 21 + nn/impl/fill.h | 41 ++ nn/{inc => impl}/gemmini/gemmini.h | 0 nn/{inc => impl}/gemmini/gemmini_counter.h | 0 nn/{inc => impl}/gemmini/gemmini_params.h | 0 nn/{inc => impl}/gemmini/xcustom.h | 0 nn/impl/log.h | 15 + nn/{inc/ops => impl}/max.h | 0 nn/{inc/ops => impl}/maximum.h | 0 nn/{inc/ops => impl}/maximum1.h | 0 nn/{inc/ops => impl}/min.h | 0 nn/{inc/ops => impl}/minimum.h | 0 nn/{inc/ops => impl}/minimum1.h | 0 nn/{inc/ops => impl}/mul.h | 0 nn/{inc/ops => impl}/mul1.h | 0 nn/{inc/ops => impl}/neg.h | 0 nn/{inc/ops => impl}/norm.h | 0 nn/{inc/ops => impl}/rmsnorm.h | 0 nn/impl/rvv/abs.c | 72 +++ nn/impl/rvv/acc.c | 20 + nn/impl/rvv/acc1.c | 18 + nn/impl/rvv/add.c | 35 ++ nn/impl/rvv/add1.c | 21 + nn/impl/rvv/div.c | 21 + nn/impl/rvv/dot.c | 48 ++ nn/impl/rvv/fill.c | 18 + nn/{inc => impl/rvv}/riscv_vector.h | 0 nn/{inc/ops => impl}/sgn.h | 0 nn/{inc/ops => impl}/softmax.h | 0 nn/{inc/ops => impl}/sqr.h | 0 nn/{inc/ops => impl}/sqrt.h | 0 nn/{inc/ops => impl}/sub.h | 0 nn/{inc/ops => impl}/sum.h | 0 nn/{inc/ops => impl}/transpose.h | 0 nn/inc/ops/abs.h | 130 ----- nn/inc/ops/acc.h | 36 -- nn/inc/ops/acc1.h | 28 - nn/inc/ops/add.h | 60 --- nn/inc/ops/add1.h | 29 -- nn/inc/ops/div.h | 32 -- nn/inc/ops/dot.h | 75 --- nn/inc/ops/fill.h | 72 --- nn/inc/ops/log.h | 19 - nn/{inc => op}/nn.h | 1 + nn/{src => op}/nn_abs.c | 10 +- nn/{inc => op}/nn_abs.h | 2 +- nn/{src => op}/nn_add.c | 12 +- nn/{inc => op}/nn_add.h | 8 +- nn/{src => op}/nn_attention.c | 0 nn/{src => op}/nn_batch_norm2d.c | 0 nn/{inc => op}/nn_batch_norm2d.h | 0 nn/{src/nn_tensor.c => op/nn_cast.c} | 34 -- nn/{src => op}/nn_clip.c | 0 nn/{inc => op}/nn_clip.h | 4 +- nn/{src => op}/nn_conv2d.c | 0 nn/{inc => op}/nn_conv2d.h | 0 nn/{src => op}/nn_copy.c | 0 nn/{inc => op}/nn_copy.h | 0 nn/{src => op}/nn_div.c | 2 +- nn/{inc => op}/nn_div.h | 2 +- nn/{src => op}/nn_elu.c | 0 nn/{inc => op}/nn_elu.h | 0 nn/{src => op}/nn_fill.c | 10 +- nn/{inc => op}/nn_fill.h | 2 +- nn/{inc => op}/nn_float16.h | 0 nn/{src => op}/nn_interpolate.c | 0 nn/{inc => op}/nn_interpolate.h | 0 nn/{src => op}/nn_layer_norm.c | 0 nn/{inc => op}/nn_layer_norm.h | 0 nn/{src => op}/nn_linear.c | 0 nn/{inc => op}/nn_linear.h | 0 nn/{inc => op}/nn_math.h | 0 nn/op/nn_matmul.c | 24 + nn/{inc => op}/nn_matmul.h | 2 +- nn/{src => op}/nn_max.c | 0 nn/{inc => op}/nn_max.h | 2 +- nn/{src => op}/nn_max_pool2d.c | 0 nn/{inc => op}/nn_max_pool2d.h | 0 nn/{src => op}/nn_maximum.c | 0 nn/{inc => op}/nn_maximum.h | 2 +- nn/{src => op}/nn_min.c | 0 nn/{inc => op}/nn_min.h | 2 +- nn/{src => op}/nn_minimum.c | 0 nn/{inc => op}/nn_minimum.h | 2 +- nn/{src/nn_matmul.c => op/nn_mm.c} | 90 ++-- nn/op/nn_mm.h | 37 ++ nn/{src => op}/nn_mul.c | 0 nn/{inc => op}/nn_mul.h | 4 +- nn/{src => op}/nn_neg.c | 0 nn/{inc => op}/nn_neg.h | 2 +- nn/{src => op}/nn_norm.c | 0 nn/{inc => op}/nn_norm.h | 0 nn/{src => op}/nn_print.c | 0 nn/{inc => op}/nn_print.h | 0 nn/{src => op}/nn_relu.c | 0 nn/{inc => op}/nn_relu.h | 2 +- nn/{src => op}/nn_relu6.c | 0 nn/{inc => op}/nn_relu6.h | 4 +- nn/{src => op}/nn_softmax.c | 0 nn/{inc => op}/nn_softmax.h | 2 +- nn/{src => op}/nn_sub.c | 0 nn/{inc => op}/nn_sub.h | 2 +- nn/{src => op}/nn_sum.c | 0 nn/{inc => op}/nn_sum.h | 2 +- nn/{inc => op}/nn_tensor.h | 67 --- nn/op/nn_tensor_creation.c | 37 ++ nn/op/nn_tensor_creation.h | 83 +++ nn/{src => op}/nn_transpose.c | 0 nn/{inc => op}/nn_transpose.h | 2 +- nn/{src => op}/nn_unfold.c | 0 nn/{inc => op}/nn_unfold.h | 0 nn/{inc => op}/rv.h | 0 tests/src/generate_test.py | 46 +- tests/src/generated.c | 574 ++++++++++++++++++++- 131 files changed, 1530 insertions(+), 755 deletions(-) create mode 100644 nn/impl/abs.h create mode 100644 nn/impl/acc.h create mode 100644 nn/impl/acc1.h create mode 100644 nn/impl/add.h create mode 100644 nn/impl/add1.h create mode 100644 nn/impl/avx/abs.c create mode 100644 nn/impl/cpu/abs.c create mode 100644 nn/impl/cpu/acc.c create mode 100644 nn/impl/cpu/acc1.c create mode 100644 nn/impl/cpu/add.c create mode 100644 nn/impl/cpu/add1.c create mode 100644 nn/impl/cpu/div.c create mode 100644 nn/impl/cpu/dot.c create mode 100644 nn/impl/cpu/fill.c create mode 100644 nn/impl/cpu/log.c create mode 100644 nn/impl/div.h create mode 100644 nn/impl/dot.h create mode 100644 nn/impl/fill.h rename nn/{inc => impl}/gemmini/gemmini.h (100%) rename nn/{inc => impl}/gemmini/gemmini_counter.h (100%) rename nn/{inc => impl}/gemmini/gemmini_params.h (100%) rename nn/{inc => impl}/gemmini/xcustom.h (100%) create mode 100644 nn/impl/log.h rename nn/{inc/ops => impl}/max.h (100%) rename nn/{inc/ops => impl}/maximum.h (100%) rename nn/{inc/ops => impl}/maximum1.h (100%) rename nn/{inc/ops => impl}/min.h (100%) rename nn/{inc/ops => impl}/minimum.h (100%) rename nn/{inc/ops => impl}/minimum1.h (100%) rename nn/{inc/ops => impl}/mul.h (100%) rename nn/{inc/ops => impl}/mul1.h (100%) rename nn/{inc/ops => impl}/neg.h (100%) rename nn/{inc/ops => impl}/norm.h (100%) rename nn/{inc/ops => impl}/rmsnorm.h (100%) create mode 100644 nn/impl/rvv/abs.c create mode 100644 nn/impl/rvv/acc.c create mode 100644 nn/impl/rvv/acc1.c create mode 100644 nn/impl/rvv/add.c create mode 100644 nn/impl/rvv/add1.c create mode 100644 nn/impl/rvv/div.c create mode 100644 nn/impl/rvv/dot.c create mode 100644 nn/impl/rvv/fill.c rename nn/{inc => impl/rvv}/riscv_vector.h (100%) rename nn/{inc/ops => impl}/sgn.h (100%) rename nn/{inc/ops => impl}/softmax.h (100%) rename nn/{inc/ops => impl}/sqr.h (100%) rename nn/{inc/ops => impl}/sqrt.h (100%) rename nn/{inc/ops => impl}/sub.h (100%) rename nn/{inc/ops => impl}/sum.h (100%) rename nn/{inc/ops => impl}/transpose.h (100%) delete mode 100644 nn/inc/ops/abs.h delete mode 100644 nn/inc/ops/acc.h delete mode 100644 nn/inc/ops/acc1.h delete mode 100644 nn/inc/ops/add.h delete mode 100644 nn/inc/ops/add1.h delete mode 100644 nn/inc/ops/div.h delete mode 100644 nn/inc/ops/dot.h delete mode 100644 nn/inc/ops/fill.h delete mode 100644 nn/inc/ops/log.h rename nn/{inc => op}/nn.h (98%) rename nn/{src => op}/nn_abs.c (60%) rename nn/{inc => op}/nn_abs.h (94%) rename nn/{src => op}/nn_add.c (89%) rename nn/{inc => op}/nn_add.h (93%) rename nn/{src => op}/nn_attention.c (100%) rename nn/{src => op}/nn_batch_norm2d.c (100%) rename nn/{inc => op}/nn_batch_norm2d.h (100%) rename nn/{src/nn_tensor.c => op/nn_cast.c} (76%) rename nn/{src => op}/nn_clip.c (100%) rename nn/{inc => op}/nn_clip.h (92%) rename nn/{src => op}/nn_conv2d.c (100%) rename nn/{inc => op}/nn_conv2d.h (100%) rename nn/{src => op}/nn_copy.c (100%) rename nn/{inc => op}/nn_copy.h (100%) rename nn/{src => op}/nn_div.c (85%) rename nn/{inc => op}/nn_div.h (94%) rename nn/{src => op}/nn_elu.c (100%) rename nn/{inc => op}/nn_elu.h (100%) rename nn/{src => op}/nn_fill.c (81%) rename nn/{inc => op}/nn_fill.h (95%) rename nn/{inc => op}/nn_float16.h (100%) rename nn/{src => op}/nn_interpolate.c (100%) rename nn/{inc => op}/nn_interpolate.h (100%) rename nn/{src => op}/nn_layer_norm.c (100%) rename nn/{inc => op}/nn_layer_norm.h (100%) rename nn/{src => op}/nn_linear.c (100%) rename nn/{inc => op}/nn_linear.h (100%) rename nn/{inc => op}/nn_math.h (100%) create mode 100644 nn/op/nn_matmul.c rename nn/{inc => op}/nn_matmul.h (96%) rename nn/{src => op}/nn_max.c (100%) rename nn/{inc => op}/nn_max.h (93%) rename nn/{src => op}/nn_max_pool2d.c (100%) rename nn/{inc => op}/nn_max_pool2d.h (100%) rename nn/{src => op}/nn_maximum.c (100%) rename nn/{inc => op}/nn_maximum.h (93%) rename nn/{src => op}/nn_min.c (100%) rename nn/{inc => op}/nn_min.h (93%) rename nn/{src => op}/nn_minimum.c (100%) rename nn/{inc => op}/nn_minimum.h (93%) rename nn/{src/nn_matmul.c => op/nn_mm.c} (59%) create mode 100644 nn/op/nn_mm.h rename nn/{src => op}/nn_mul.c (100%) rename nn/{inc => op}/nn_mul.h (93%) rename nn/{src => op}/nn_neg.c (100%) rename nn/{inc => op}/nn_neg.h (94%) rename nn/{src => op}/nn_norm.c (100%) rename nn/{inc => op}/nn_norm.h (100%) rename nn/{src => op}/nn_print.c (100%) rename nn/{inc => op}/nn_print.h (100%) rename nn/{src => op}/nn_relu.c (100%) rename nn/{inc => op}/nn_relu.h (92%) rename nn/{src => op}/nn_relu6.c (100%) rename nn/{inc => op}/nn_relu6.h (86%) rename nn/{src => op}/nn_softmax.c (100%) rename nn/{inc => op}/nn_softmax.h (92%) rename nn/{src => op}/nn_sub.c (100%) rename nn/{inc => op}/nn_sub.h (96%) rename nn/{src => op}/nn_sum.c (100%) rename nn/{inc => op}/nn_sum.h (93%) rename nn/{inc => op}/nn_tensor.h (64%) create mode 100644 nn/op/nn_tensor_creation.c create mode 100644 nn/op/nn_tensor_creation.h rename nn/{src => op}/nn_transpose.c (100%) rename nn/{inc => op}/nn_transpose.h (93%) rename nn/{src => op}/nn_unfold.c (100%) rename nn/{inc => op}/nn_unfold.h (100%) rename nn/{inc => op}/rv.h (100%) diff --git a/nn/CMakeLists.txt b/nn/CMakeLists.txt index edee89b..2845c97 100644 --- a/nn/CMakeLists.txt +++ b/nn/CMakeLists.txt @@ -2,40 +2,65 @@ option(AVX "Use AVX implementation" OFF) option(RVV "Use RISCV vector extension implementation" OFF) +set(cpu_impl + impl/cpu/abs.c + impl/cpu/acc.c + impl/cpu/acc1.c + impl/cpu/add.c + impl/cpu/add1.c + impl/cpu/div.c + impl/cpu/dot.c + impl/cpu/fill.c +) + +set(rvv_impl + impl/rvv/abs.c + impl/rvv/acc.c + impl/rvv/acc1.c + impl/rvv/add.c + impl/rvv/add1.c + impl/rvv/div.c +) -add_library(nn - src/nn_tensor.c - src/nn_print.c - src/nn_abs.c - src/nn_add.c - src/nn_batch_norm2d.c - src/nn_conv2d.c - src/nn_clip.c - src/nn_copy.c - src/nn_div.c - src/nn_elu.c - src/nn_fill.c - src/nn_interpolate.c - src/nn_layer_norm.c - src/nn_linear.c - src/nn_matmul.c - src/nn_norm.c - src/nn_max.c - src/nn_maximum.c - src/nn_max_pool2d.c - src/nn_min.c - src/nn_minimum.c - src/nn_mul.c - src/nn_neg.c - src/nn_relu.c - src/nn_relu6.c - src/nn_softmax.c - src/nn_sub.c - src/nn_sum.c - src/nn_transpose.c - src/nn_unfold.c + +add_library(nn + op/nn_tensor_creation.c + op/nn_print.c + op/nn_abs.c + op/nn_add.c + op/nn_batch_norm2d.c + op/nn_conv2d.c + op/nn_clip.c + op/nn_copy.c + op/nn_div.c + op/nn_elu.c + op/nn_fill.c + op/nn_interpolate.c + op/nn_layer_norm.c + op/nn_linear.c + op/nn_matmul.c + op/nn_mm.c + op/nn_norm.c + op/nn_max.c + op/nn_maximum.c + op/nn_max_pool2d.c + op/nn_min.c + op/nn_minimum.c + op/nn_mul.c + op/nn_neg.c + op/nn_relu.c + op/nn_relu6.c + op/nn_softmax.c + op/nn_sub.c + op/nn_sum.c + op/nn_transpose.c + op/nn_unfold.c + + ${cpu_impl} + ${rvv_impl} ) -target_include_directories(nn PUBLIC inc) + +target_include_directories(nn PUBLIC op impl) if (AVX) diff --git a/nn/impl/abs.h b/nn/impl/abs.h new file mode 100644 index 0000000..f707096 --- /dev/null +++ b/nn/impl/abs.h @@ -0,0 +1,37 @@ +#ifndef __NN__ABS_H +#define __NN__ABS_H + +#include +#include +#include + +#include "nn_float16.h" + + +void NN__abs_i8(size_t n, + int8_t *y, size_t incy, + int8_t *x, size_t incx + ); + +void NN__abs_i16(size_t n, + int16_t *y, size_t incy, + int16_t *x, size_t incx + ); + +void NN__abs_i32(size_t n, + int32_t *y, size_t incy, + int32_t *x, size_t incx + ); + +void NN__abs_f16(size_t n, + float16_t *y, size_t incy, + float16_t *x, size_t incx + ); + +void NN__abs_f32(size_t n, + float *y, size_t incy, + float *x, size_t incx + ); + + +#endif // __NN__ABS_H diff --git a/nn/impl/acc.h b/nn/impl/acc.h new file mode 100644 index 0000000..14bc5ee --- /dev/null +++ b/nn/impl/acc.h @@ -0,0 +1,19 @@ +#ifndef __NN__ACC_H +#define __NN__ACC_H + +#include +#include + + +void NN__acc_i8(size_t n, + int8_t *y, size_t incy, + int8_t *x, size_t incx + ); + +void NN__acc_f32(size_t n, + float *y, size_t incy, + float *x, size_t incx + ); + + +#endif // __NN__ACC_H diff --git a/nn/impl/acc1.h b/nn/impl/acc1.h new file mode 100644 index 0000000..f3c52af --- /dev/null +++ b/nn/impl/acc1.h @@ -0,0 +1,13 @@ +#ifndef __NN__ACC1_H +#define __NN__ACC1_H + +#include + + +void NN__acc1_f32(size_t n, + float *result, size_t incx, + float scalar + ); + + +#endif // __NN__ADD1_H diff --git a/nn/impl/add.h b/nn/impl/add.h new file mode 100644 index 0000000..b7ecf44 --- /dev/null +++ b/nn/impl/add.h @@ -0,0 +1,29 @@ +#ifndef __NN__ADD_H +#define __NN__ADD_H + +#include +#include + +#include "nn_float16.h" + + +void NN__add_i8(size_t n, + int8_t *z, size_t incz, + int8_t *x, size_t incx, + int8_t *y, size_t incy + ); + +void NN__add_f16(size_t n, + float16_t *z, size_t incz, + float16_t *x, size_t incx, + float16_t *y, size_t incy + ); + +void NN__add_f32(size_t n, + float *z, size_t incz, + float *x, size_t incx, + float *y, size_t incy + ); + + +#endif // __NN__ADD_H diff --git a/nn/impl/add1.h b/nn/impl/add1.h new file mode 100644 index 0000000..1726b76 --- /dev/null +++ b/nn/impl/add1.h @@ -0,0 +1,14 @@ +#ifndef __NN__ADD1_H +#define __NN__ADD1_H + +#include + + +void NN__add1_f32(size_t n, + float *z, size_t incz, + float *x, size_t incx, + float scalar + ); + + +#endif // __NN__ADD1_H diff --git a/nn/impl/avx/abs.c b/nn/impl/avx/abs.c new file mode 100644 index 0000000..704c709 --- /dev/null +++ b/nn/impl/avx/abs.c @@ -0,0 +1,28 @@ + +#include + +#include "abs.h" + +#ifdef AVX + +// void NN__abs_f32(size_t n, float *result, float *x, size_t incx) { +// // Mask to clear the sign bit +// __m256 mask = _mm256_castsi256_ps(_mm256_set1_epi32(0x7FFFFFFF)); + +// size_t vl = 8; + +// while (n > 0) { +// size_t count = n < vl ? n : vl; +// // Load input values into an AVX register +// __m256 vec_x = _mm256_loadu_ps(x); +// // Compute the absolute values +// __m256 vec_y = _mm256_and_ps(vec_x, mask); +// // Store the result +// _mm256_storeu_ps(y, vec_y); +// x += count; +// y += count; +// n -= count; +// } +// } + +#endif \ No newline at end of file diff --git a/nn/impl/cpu/abs.c b/nn/impl/cpu/abs.c new file mode 100644 index 0000000..a2e6938 --- /dev/null +++ b/nn/impl/cpu/abs.c @@ -0,0 +1,32 @@ +#include "abs.h" + + +__attribute__((weak)) void NN__abs_i8(size_t n, int8_t *y, size_t incy, int8_t *x, size_t incx) { + for (size_t i = 0; i < n; i += 1) { + y[i * incy] = x[i * incx] < 0 ? -x[i * incx] : x[i * incx]; + } +} + +__attribute__((weak)) void NN__abs_i16(size_t n, int16_t *y, size_t incy, int16_t *x, size_t incx) { + for (size_t i = 0; i < n; i += 1) { + y[i * incy] = x[i * incx] < 0 ? -x[i * incx] : x[i * incx]; + } +} + +__attribute__((weak)) void NN__abs_i32(size_t n, int32_t *y, size_t incy, int32_t *x, size_t incx) { + for (size_t i = 0; i < n; i += 1) { + y[i * incy] = x[i * incx] < 0 ? -x[i * incx] : x[i * incx]; + } +} + +__attribute__((weak)) void NN__abs_f16(size_t n, float16_t *y, size_t incy, float16_t *x, size_t incx) { + for (size_t i = 0; i < n; i += incx) { + y[i * incy] = NN_float_to_half(fabsf(NN_half_to_float(x[i * incx]))); + } +} + +__attribute__((weak)) void NN__abs_f32(size_t n, float *y, size_t incy, float *x, size_t incx) { + for (size_t i = 0; i < n; i += 1) { + y[i * incy] = fabsf(x[i * incx]); + } +} diff --git a/nn/impl/cpu/acc.c b/nn/impl/cpu/acc.c new file mode 100644 index 0000000..8366aca --- /dev/null +++ b/nn/impl/cpu/acc.c @@ -0,0 +1,14 @@ +#include "acc.h" + + +__attribute__((weak)) void NN__acc_i8(size_t n, int8_t *y, size_t incy, int8_t *x, size_t incx) { + for (size_t i = 0; i < n; i += 1) { + y[i * incy] += x[i * incx]; + } +} + +__attribute__((weak)) void NN__acc_f32(size_t n, float *y, size_t incy, float *x, size_t incx) { + for (size_t i = 0; i < n; i += 1) { + y[i * incy] += x[i * incx]; + } +} diff --git a/nn/impl/cpu/acc1.c b/nn/impl/cpu/acc1.c new file mode 100644 index 0000000..3b925a2 --- /dev/null +++ b/nn/impl/cpu/acc1.c @@ -0,0 +1,8 @@ +#include "acc1.h" + + +__attribute__((weak)) void NN__acc1_f32(size_t n, float *result, size_t incx, float scalar) { + for (size_t i = 0; i < n; i += incx) { + result[i] += scalar; + } +} \ No newline at end of file diff --git a/nn/impl/cpu/add.c b/nn/impl/cpu/add.c new file mode 100644 index 0000000..66c16c6 --- /dev/null +++ b/nn/impl/cpu/add.c @@ -0,0 +1,21 @@ +#include "add.h" + + +__attribute__((weak)) void NN__add_i8(size_t n, int8_t *z, size_t incz, int8_t *x, size_t incx, int8_t *y, size_t incy) { + for (size_t i = 0; i < n; i += 1) { + z[i * incz] = x[i * incx] + y[i * incy]; + } +} + +__attribute__((weak)) void NN__add_f16(size_t n, float16_t *z, size_t incz, float16_t *x, size_t incx, float16_t *y, size_t incy) { + for (size_t i = 0; i < n; i += 1) { + z[i * incz] = NN_float_to_half(NN_half_to_float(x[i * incx]) + NN_half_to_float(y[i * incy])); + } +} + +__attribute__((weak)) void NN__add_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float *y, size_t incy) { + for (size_t i = 0; i < n; i += 1) { + z[i * incz] = x[i * incx] + y[i * incy]; + } +} + diff --git a/nn/impl/cpu/add1.c b/nn/impl/cpu/add1.c new file mode 100644 index 0000000..e980bd1 --- /dev/null +++ b/nn/impl/cpu/add1.c @@ -0,0 +1,8 @@ +#include "add1.h" + + +__attribute__((weak)) void NN__add1_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float scalar) { + for (size_t i = 0; i < n; i += 1) { + z[i * incz] = x[i * incx] + scalar; + } +} diff --git a/nn/impl/cpu/div.c b/nn/impl/cpu/div.c new file mode 100644 index 0000000..f52ea6d --- /dev/null +++ b/nn/impl/cpu/div.c @@ -0,0 +1,8 @@ +#include "div.h" + + +__attribute__((weak)) void NN__div_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float *y, size_t incy) { + for (size_t i = 0; i < n; i += 1) { + z[i * incz] = x[i * incx] / y[i * incy]; + } +} diff --git a/nn/impl/cpu/dot.c b/nn/impl/cpu/dot.c new file mode 100644 index 0000000..33702b3 --- /dev/null +++ b/nn/impl/cpu/dot.c @@ -0,0 +1,18 @@ +#include "dot.h" + + +__attribute__((weak)) void NN__dot_f16(size_t n, float16_t *result, float16_t *x, size_t incx, float16_t *y, size_t incy) { + float sum_f32 = 0; + for (size_t i = 0; i < n; i += 1) { + sum_f32 += NN_half_to_float(x[i * incx]) * NN_half_to_float(y[i * incy]); + } + *result = NN_float_to_half(sum_f32); +} + +__attribute__((weak)) void NN__dot_f32(size_t n, float *result, float *x, size_t incx, float *y, size_t incy) { + float sum = 0.0; + for (size_t i = 0; i < n; i += 1) { + sum += x[i * incx] * y[i * incy]; + } + *result = sum; +} diff --git a/nn/impl/cpu/fill.c b/nn/impl/cpu/fill.c new file mode 100644 index 0000000..b76dec1 --- /dev/null +++ b/nn/impl/cpu/fill.c @@ -0,0 +1,37 @@ +#include "fill.h" + +__attribute__((weak)) void NN__fill_u8(size_t n, uint8_t *x, size_t incx, uint8_t scalar) { + for (size_t i = 0; i < n; i += 1) { + x[i * incx] = scalar; + } +} + +__attribute__((weak)) void NN__fill_i8(size_t n, int8_t *x, size_t incx, int8_t scalar) { + for (size_t i = 0; i < n; i += 1) { + x[i * incx] = scalar; + } +} + +__attribute__((weak)) void NN__fill_i16(size_t n, int16_t *x, size_t incx, int16_t scalar) { + for (size_t i = 0; i < n; i += 1) { + x[i * incx] = scalar; + } +} + +__attribute__((weak)) void NN__fill_i32(size_t n, int32_t *x, size_t incx, int32_t scalar) { + for (size_t i = 0; i < n; i += 1) { + x[i * incx] = scalar; + } +} + +__attribute__((weak)) void NN__fill_f16(size_t n, float16_t *x, size_t incx, float16_t scalar) { + for (size_t i = 0; i < n; i += 1) { + x[i * incx] = scalar; + } +} + +__attribute__((weak)) void NN__fill_f32(size_t n, float *x, size_t incx, float scalar) { + for (size_t i = 0; i < n; i += 1) { + x[i * incx] = scalar; + } +} diff --git a/nn/impl/cpu/log.c b/nn/impl/cpu/log.c new file mode 100644 index 0000000..1b9f775 --- /dev/null +++ b/nn/impl/cpu/log.c @@ -0,0 +1,9 @@ +#include "log.h" + + +__attribute__((weak)) void NN__log_f32(size_t n, float *y, size_t incy, float *x, size_t incx) { + for (size_t i = 0; i < n; i += 1) { + y[i * incy] = logf(x[i * incx]); + } +} + diff --git a/nn/impl/div.h b/nn/impl/div.h new file mode 100644 index 0000000..6d4bbd5 --- /dev/null +++ b/nn/impl/div.h @@ -0,0 +1,15 @@ +#ifndef __NN__DIV_H +#define __NN__DIV_H + +#include +#include + + +void NN__div_f32(size_t n, + float *z, size_t incz, + float *x, size_t incx, + float *y, size_t incy + ); + + +#endif // __NN__DIV_H diff --git a/nn/impl/dot.h b/nn/impl/dot.h new file mode 100644 index 0000000..c7b2f14 --- /dev/null +++ b/nn/impl/dot.h @@ -0,0 +1,21 @@ +#ifndef __NN__DOT_H +#define __NN__DOT_H + +#include + +#include "nn_float16.h" + + +void NN__dot_f16(size_t n, + float16_t *result, + float16_t *x, size_t incx, + float16_t *y, size_t incy + ); + +void NN__dot_f32(size_t n, + float *result, + float *x, size_t incx, + float *y, size_t incy + ); + +#endif // __NN__DOT_H diff --git a/nn/impl/fill.h b/nn/impl/fill.h new file mode 100644 index 0000000..73f550f --- /dev/null +++ b/nn/impl/fill.h @@ -0,0 +1,41 @@ +#ifndef __NN__FILL_H +#define __NN__FILL_H + +#include +#include + +#include "nn_float16.h" + + +void NN__fill_u8(size_t n, + uint8_t *x, size_t incx, + uint8_t scalar + ); + +void NN__fill_i8(size_t n, + int8_t *x, size_t incx, + int8_t scalar + ); + +void NN__fill_i16(size_t n, + int16_t *x, size_t incx, + int16_t scalar + ); + +void NN__fill_i32(size_t n, + int32_t *x, size_t incx, + int32_t scalar + ); + +void NN__fill_f16(size_t n, + float16_t *x, size_t incx, + float16_t scalar + ); + +void NN__fill_f32(size_t n, + float *x, size_t incx, + float scalar + ); + + +#endif // __NN__FILL_H diff --git a/nn/inc/gemmini/gemmini.h b/nn/impl/gemmini/gemmini.h similarity index 100% rename from nn/inc/gemmini/gemmini.h rename to nn/impl/gemmini/gemmini.h diff --git a/nn/inc/gemmini/gemmini_counter.h b/nn/impl/gemmini/gemmini_counter.h similarity index 100% rename from nn/inc/gemmini/gemmini_counter.h rename to nn/impl/gemmini/gemmini_counter.h diff --git a/nn/inc/gemmini/gemmini_params.h b/nn/impl/gemmini/gemmini_params.h similarity index 100% rename from nn/inc/gemmini/gemmini_params.h rename to nn/impl/gemmini/gemmini_params.h diff --git a/nn/inc/gemmini/xcustom.h b/nn/impl/gemmini/xcustom.h similarity index 100% rename from nn/inc/gemmini/xcustom.h rename to nn/impl/gemmini/xcustom.h diff --git a/nn/impl/log.h b/nn/impl/log.h new file mode 100644 index 0000000..d9e2fb4 --- /dev/null +++ b/nn/impl/log.h @@ -0,0 +1,15 @@ +#ifndef __NN__LOG_H +#define __NN__LOG_H + +#include +#include +#include + + +void NN__log_f32(size_t n, + float *y, size_t incy, + float *x, size_t incx + ); + + +#endif // __NN__LOG_H diff --git a/nn/inc/ops/max.h b/nn/impl/max.h similarity index 100% rename from nn/inc/ops/max.h rename to nn/impl/max.h diff --git a/nn/inc/ops/maximum.h b/nn/impl/maximum.h similarity index 100% rename from nn/inc/ops/maximum.h rename to nn/impl/maximum.h diff --git a/nn/inc/ops/maximum1.h b/nn/impl/maximum1.h similarity index 100% rename from nn/inc/ops/maximum1.h rename to nn/impl/maximum1.h diff --git a/nn/inc/ops/min.h b/nn/impl/min.h similarity index 100% rename from nn/inc/ops/min.h rename to nn/impl/min.h diff --git a/nn/inc/ops/minimum.h b/nn/impl/minimum.h similarity index 100% rename from nn/inc/ops/minimum.h rename to nn/impl/minimum.h diff --git a/nn/inc/ops/minimum1.h b/nn/impl/minimum1.h similarity index 100% rename from nn/inc/ops/minimum1.h rename to nn/impl/minimum1.h diff --git a/nn/inc/ops/mul.h b/nn/impl/mul.h similarity index 100% rename from nn/inc/ops/mul.h rename to nn/impl/mul.h diff --git a/nn/inc/ops/mul1.h b/nn/impl/mul1.h similarity index 100% rename from nn/inc/ops/mul1.h rename to nn/impl/mul1.h diff --git a/nn/inc/ops/neg.h b/nn/impl/neg.h similarity index 100% rename from nn/inc/ops/neg.h rename to nn/impl/neg.h diff --git a/nn/inc/ops/norm.h b/nn/impl/norm.h similarity index 100% rename from nn/inc/ops/norm.h rename to nn/impl/norm.h diff --git a/nn/inc/ops/rmsnorm.h b/nn/impl/rmsnorm.h similarity index 100% rename from nn/inc/ops/rmsnorm.h rename to nn/impl/rmsnorm.h diff --git a/nn/impl/rvv/abs.c b/nn/impl/rvv/abs.c new file mode 100644 index 0000000..618339f --- /dev/null +++ b/nn/impl/rvv/abs.c @@ -0,0 +1,72 @@ +#include +#include "abs.h" + +#ifdef RVV + +void NN__abs_i8(size_t n, int8_t *y, size_t incy, int8_t *x, size_t incx) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e8m1(n); + vint8m1_t vec_x = __riscv_vlse8_v_i8m1(x, incx, vl); + vint8m1_t vec_neg_x = __riscv_vneg_v_i8m1(vec_x, vl); + vbool8_t mask = __riscv_vmslt_vx_i8m1_b8(vec_x, 0, vl); + vint8m1_t vec_abs_x = __riscv_vmerge_vvm_i8m1(vec_x, vec_neg_x, mask, vl); + __riscv_vsse8_v_i8m1(y, incy, vec_abs_x, vl); + x += vl; + y += vl; + n -= vl; + } +} + +void NN__abs_i16(size_t n, int16_t *y, size_t incy, int16_t *x, size_t incx) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e16m1(n); + vint16m1_t vec_x = __riscv_vlse16_v_i16m1(x, incx, vl); + vint16m1_t vec_neg_x = __riscv_vneg_v_i16m1(vec_x, vl); + vbool16_t mask = __riscv_vmslt_vx_i16m1_b16(vec_x, 0, vl); + vint16m1_t vec_abs_x = __riscv_vmerge_vvm_i16m1(vec_x, vec_neg_x, mask, vl); + __riscv_vsse16_v_i16m1(y, incy, vec_abs_x, vl); + x += vl; + y += vl; + n -= vl; + } +} + +void NN__abs_i32(size_t n, int32_t *y, size_t incy, int32_t *x, size_t incx) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e32m1(n); + vint32m1_t vec_x = __riscv_vlse32_v_i32m1(x, incx, vl); + vint32m1_t vec_neg_x = __riscv_vneg_v_i32m1(vec_x, vl); + vbool32_t mask = __riscv_vmslt_vx_i32m1_b32(vec_x, 0, vl); + vint32m1_t vec_abs_x = __riscv_vmerge_vvm_i32m1(vec_x, vec_neg_x, mask, vl); + __riscv_vsse32_v_i32m1(y, incy, vec_abs_x, vl); + x += vl; + y += vl; + n -= vl; + } +} + +// void NN__abs_f16(size_t n, float16_t *y, size_t incy, float16_t *x, size_t incx) { +// while (n > 0) { +// size_t vl = __riscv_vsetvl_e16m1(n); +// vfloat16m1_t vec_x = __riscv_vlse16_v_f16m1(x, incx, vl); +// vfloat16m1_t vec_r = __riscv_vfabs_v_f16m1(vec_x, vl); +// __riscv_vse16_v_f16m1(y, incy, vec_r, vl); +// x += vl; +// y += vl; +// n -= vl; +// } +// } + +void NN__abs_f32(size_t n, float *y, size_t incy, float *x, size_t incx) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e32m1(n); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_r = __riscv_vfabs_v_f32m1(vec_x, vl); + __riscv_vsse32_v_f32m1(y, incy, vec_r, vl); + x += vl; + y += vl; + n -= vl; + } +} + +#endif \ No newline at end of file diff --git a/nn/impl/rvv/acc.c b/nn/impl/rvv/acc.c new file mode 100644 index 0000000..a79263d --- /dev/null +++ b/nn/impl/rvv/acc.c @@ -0,0 +1,20 @@ +#include +#include "acc.h" + +#ifdef RVV + + +void NN__acc_f32(size_t n, float *y, size_t incy, float *x, size_t incx) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e32m1(n); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, incy, vl); + vec_y = __riscv_vfadd_vv_f32m1(vec_y, vec_x, vl); + __riscv_vsse32_v_f32m1(y, incy, vec_y, vl); + x += vl; + y += vl; + n -= vl; + } +} + +#endif diff --git a/nn/impl/rvv/acc1.c b/nn/impl/rvv/acc1.c new file mode 100644 index 0000000..4406112 --- /dev/null +++ b/nn/impl/rvv/acc1.c @@ -0,0 +1,18 @@ +#include +#include "acc1.h" + +#ifdef RVV + +void NN__acc1_f32(size_t n, float *result, size_t incx, float scalar) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e32m1(n); + vfloat32m1_t vec_r = __riscv_vlse32_v_f32m1(result, incx, vl); + vfloat32m1_t vec_s = __riscv_vfmv_v_f_f32m1(scalar, vl); + vec_r = __riscv_vfadd_vv_f32m1(vec_r, vec_s, vl); + __riscv_vse32_v_f32m1(result, vec_r, vl); + result += vl; + n -= vl; + } +} + +#endif \ No newline at end of file diff --git a/nn/impl/rvv/add.c b/nn/impl/rvv/add.c new file mode 100644 index 0000000..fc502e5 --- /dev/null +++ b/nn/impl/rvv/add.c @@ -0,0 +1,35 @@ +#include +#include "add.h" + +#ifdef RVV + + +void NN__add_i8(size_t n, int8_t *z, size_t incz, int8_t *x, size_t incx, int8_t *y, size_t incy) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e8m1(n); + vint8m1_t vec_x = __riscv_vlse8_v_i8m1(x, incx, vl); + vint8m1_t vec_y = __riscv_vlse8_v_i8m1(y, incy, vl); + vint8m1_t vec_z = __riscv_vadd_vv_i8m1(vec_x, vec_y, vl); + __riscv_vsse8_v_i8m1(z, incz, vec_z, vl); + x += vl; + y += vl; + z += vl; + n -= vl; + } +} + +void NN__add_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float *y, size_t incy) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e32m1(n); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, incy, vl); + vfloat32m1_t vec_z = __riscv_vfadd_vv_f32m1(vec_x, vec_y, vl); + __riscv_vsse32_v_f32m1(z, incz, vec_z, vl); + x += vl; + y += vl; + z += vl; + n -= vl; + } +} + +#endif diff --git a/nn/impl/rvv/add1.c b/nn/impl/rvv/add1.c new file mode 100644 index 0000000..2717424 --- /dev/null +++ b/nn/impl/rvv/add1.c @@ -0,0 +1,21 @@ +#include +#include "add1.h" + +#ifdef RVV + + +void NN__add1_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float scalar) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e32m1(n); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_s = __riscv_vfmv_v_f_f32m1(scalar, vl); + vfloat32m1_t vec_z = __riscv_vfadd_vv_f32m1(vec_x, vec_s, vl); + __riscv_vsse32_v_f32m1(z, incz, vec_z, vl); + x += vl; + z += vl; + n -= vl; + } +} + + +#endif diff --git a/nn/impl/rvv/div.c b/nn/impl/rvv/div.c new file mode 100644 index 0000000..7d9ba10 --- /dev/null +++ b/nn/impl/rvv/div.c @@ -0,0 +1,21 @@ +#include +#include "div.h" + +#ifdef RVV + + +void NN__div_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float *y, size_t incy) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e32m1(n); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, incy, vl); + vfloat32m1_t vec_z = __riscv_vfdiv_vv_f32m1(vec_x, vec_y, vl); + __riscv_vsse32_v_f32m1(z, incz, vec_z, vl); + x += vl; + y += vl; + z += vl; + n -= vl; + } +} + +#endif diff --git a/nn/impl/rvv/dot.c b/nn/impl/rvv/dot.c new file mode 100644 index 0000000..540d4ac --- /dev/null +++ b/nn/impl/rvv/dot.c @@ -0,0 +1,48 @@ +#include +#include "dot.h" + +#ifdef RVV + + +// void NN__dot_f16(size_t n, float16_t *result, float16_t *x, size_t incx, float16_t *y, size_t incy) { +// size_t vlmax = __riscv_vsetvlmax_e16m1(); + +// vfloat16m1_t vec_zero = __riscv_vfmv_v_f_f16m1(0, vlmax); +// vfloat16m1_t vec_r = __riscv_vfmv_v_f_f16m1(0, vlmax); + +// while (n > 0) { +// size_t vl = __riscv_vsetvl_e16m1(n); +// vfloat16m1_t vec_x = __riscv_vlse16_v_f16m1(x, incx, vl); +// vfloat16m1_t vec_y = __riscv_vlse16_v_f16m1(y, incy, vl); +// vec_r = __riscv_vfmacc_vv_f16m1(vec_r, vec_x, vec_y, vl); + +// x += vl; +// y += vl; +// n -= vl; +// } +// vec_r = __riscv_vfredusum_vs_f16m1_f16m1(vec_r, vec_zero, vlmax); +// *result = __riscv_vfmv_f_s_f16m1_f16(vec_r); +// } + +void NN__dot_f32(size_t n, float *result, float *x, size_t incx, float *y, size_t incy) { + size_t vlmax = __riscv_vsetvlmax_e32m1(); + + vfloat32m1_t vec_zero = __riscv_vfmv_v_f_f32m1(0, vlmax); + vfloat32m1_t vec_r = __riscv_vfmv_v_f_f32m1(0, vlmax); + + while (n > 0) { + size_t vl = __riscv_vsetvl_e32m1(n); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, incy, vl); + vec_r = __riscv_vfmacc_vv_f32m1(vec_r, vec_x, vec_y, vl); + + x += vl; + y += vl; + n -= vl; + } + vec_r = __riscv_vfredusum_vs_f32m1_f32m1(vec_r, vec_zero, vlmax); + *result = __riscv_vfmv_f_s_f32m1_f32(vec_r); +} + + +#endif diff --git a/nn/impl/rvv/fill.c b/nn/impl/rvv/fill.c new file mode 100644 index 0000000..1c23485 --- /dev/null +++ b/nn/impl/rvv/fill.c @@ -0,0 +1,18 @@ +#include +#include "fill.h" + +#ifdef RVV + + +void NN__fill_f32(size_t n, float *x, size_t incx, float scalar) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e32m1(n); + vfloat32m1_t vec_x = __riscv_vfmv_v_f_f32m1(scalar, vl); + __riscv_vsse32_v_f32m1(x, incx, vec_x, vl); + x += vl; + n -= vl; + } +} + + +#endif diff --git a/nn/inc/riscv_vector.h b/nn/impl/rvv/riscv_vector.h similarity index 100% rename from nn/inc/riscv_vector.h rename to nn/impl/rvv/riscv_vector.h diff --git a/nn/inc/ops/sgn.h b/nn/impl/sgn.h similarity index 100% rename from nn/inc/ops/sgn.h rename to nn/impl/sgn.h diff --git a/nn/inc/ops/softmax.h b/nn/impl/softmax.h similarity index 100% rename from nn/inc/ops/softmax.h rename to nn/impl/softmax.h diff --git a/nn/inc/ops/sqr.h b/nn/impl/sqr.h similarity index 100% rename from nn/inc/ops/sqr.h rename to nn/impl/sqr.h diff --git a/nn/inc/ops/sqrt.h b/nn/impl/sqrt.h similarity index 100% rename from nn/inc/ops/sqrt.h rename to nn/impl/sqrt.h diff --git a/nn/inc/ops/sub.h b/nn/impl/sub.h similarity index 100% rename from nn/inc/ops/sub.h rename to nn/impl/sub.h diff --git a/nn/inc/ops/sum.h b/nn/impl/sum.h similarity index 100% rename from nn/inc/ops/sum.h rename to nn/impl/sum.h diff --git a/nn/inc/ops/transpose.h b/nn/impl/transpose.h similarity index 100% rename from nn/inc/ops/transpose.h rename to nn/impl/transpose.h diff --git a/nn/inc/ops/abs.h b/nn/inc/ops/abs.h deleted file mode 100644 index 7b8c8d2..0000000 --- a/nn/inc/ops/abs.h +++ /dev/null @@ -1,130 +0,0 @@ -#ifndef __NN__ABS_H -#define __NN__ABS_H - -#include -#include -#include - -#ifdef AVX - #include -#endif - -#ifdef RVV - #include -#endif - -static inline void NN__abs_i8(size_t n, int8_t *y, int8_t *x) { - #if defined(RVV) - while (n > 0) { - size_t vl = __riscv_vsetvl_e8m1(n); - vint8m1_t vec_x = __riscv_vle8_v_i8m1(x, vl); - vint8m1_t vec_neg_x = __riscv_vneg_v_i8m1(vec_x, vl); - vbool8_t mask = __riscv_vmslt_vx_i8m1_b8(vec_x, 0, vl); - vint8m1_t vec_abs_x = __riscv_vmerge_vvm_i8m1(vec_x, vec_neg_x, mask, vl); - __riscv_vse8_v_i8m1(y, vec_abs_x, vl); - x += vl; - y += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - y[i] = x[i] < 0 ? -x[i] : x[i]; - } - #endif -} - -static inline void NN__abs_i16(size_t n, int16_t *y, int16_t *x) { - #if defined(RVV) - while (n > 0) { - size_t vl = __riscv_vsetvl_e16m1(n); - vint16m1_t vec_x = __riscv_vle16_v_i16m1(x, vl); - vint16m1_t vec_neg_x = __riscv_vneg_v_i16m1(vec_x, vl); - vbool16_t mask = __riscv_vmslt_vx_i16m1_b16(vec_x, 0, vl); - vint16m1_t vec_abs_x = __riscv_vmerge_vvm_i16m1(vec_x, vec_neg_x, mask, vl); - __riscv_vse16_v_i16m1(y, vec_abs_x, vl); - x += vl; - y += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - y[i] = x[i] < 0 ? -x[i] : x[i]; - } - #endif -} - -static inline void NN__abs_i32(size_t n, int32_t *y, int32_t *x) { - #if defined(RVV) - while (n > 0) { - size_t vl = __riscv_vsetvl_e32m1(n); - vint32m1_t vec_x = __riscv_vle32_v_i32m1(x, vl); - vint32m1_t vec_neg_x = __riscv_vneg_v_i32m1(vec_x, vl); - vbool32_t mask = __riscv_vmslt_vx_i32m1_b32(vec_x, 0, vl); - vint32m1_t vec_abs_x = __riscv_vmerge_vvm_i32m1(vec_x, vec_neg_x, mask, vl); - __riscv_vse32_v_i32m1(y, vec_abs_x, vl); - x += vl; - y += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - y[i] = x[i] < 0 ? -x[i] : x[i]; - } - #endif -} - -static inline void NN__abs_f16(size_t n, float16_t *y, float16_t *x) { - #if defined(RVV) - // while (n > 0) { - // size_t vl = __riscv_vsetvl_e16m1(n); - // vfloat16m1_t vec_x = __riscv_vle16_v_f16m1(x, vl); - // vfloat16m1_t vec_y = __riscv_vfabs_v_f16m1(vec_x, vl); - // __riscv_vse16_v_f16m1(y, vec_y, vl); - // x += vl; - // y += vl; - // n -= vl; - // } - #else - for (size_t i = 0; i < n; i += 1) { - y[i] = NN_float_to_half(fabsf(NN_half_to_float(x[i]))); - } - #endif -} - -static inline void NN__abs_f32(size_t n, float *y, float *x) { - #if defined(AVX) - // Mask to clear the sign bit - __m256 mask = _mm256_castsi256_ps(_mm256_set1_epi32(0x7FFFFFFF)); - - size_t vl = 8; - - while (n > 0) { - size_t count = n < vl ? n : vl; - // Load input values into an AVX register - __m256 vec_x = _mm256_loadu_ps(x); - // Compute the absolute values - __m256 vec_y = _mm256_and_ps(vec_x, mask); - // Store the result - _mm256_storeu_ps(y, vec_y); - x += count; - y += count; - n -= count; - } - #elif defined(RVV) - while (n > 0) { - size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vle32_v_f32m1(x, vl); - vfloat32m1_t vec_y = __riscv_vfabs_v_f32m1(vec_x, vl); - __riscv_vse32_v_f32m1(y, vec_y, vl); - x += vl; - y += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - y[i] = fabsf(x[i]); - } - #endif -} - -#endif // __NN__ABS_H diff --git a/nn/inc/ops/acc.h b/nn/inc/ops/acc.h deleted file mode 100644 index 3a70792..0000000 --- a/nn/inc/ops/acc.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef __NN__ACC_H -#define __NN__ACC_H - -#include -#include - -#ifdef RVV - #include -#endif - -static inline void NN__acc_i8(size_t n, int8_t *y, int8_t *x) { - for (size_t i = 0; i < n; i += 1) { - y[i] += x[i]; - } -} - -static inline void NN__acc_f32(size_t n, float *y, float *x) { - #ifdef RVV - while (n > 0) { - size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vle32_v_f32m1(x, vl); - vfloat32m1_t vec_y = __riscv_vle32_v_f32m1(y, vl); - vec_y = __riscv_vfadd_vv_f32m1(vec_y, vec_x, vl); - __riscv_vse32_v_f32m1(y, vec_y, vl); - x += vl; - y += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - y[i] += x[i]; - } - #endif -} - -#endif // __NN__ACC_H diff --git a/nn/inc/ops/acc1.h b/nn/inc/ops/acc1.h deleted file mode 100644 index 5832341..0000000 --- a/nn/inc/ops/acc1.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef __NN__ACC1_H -#define __NN__ACC1_H - -#include - -#ifdef RVV - #include -#endif - -static inline void NN__acc1_f32(size_t n, float *y, float v) { - #ifdef RVV - while (n > 0) { - size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_y = __riscv_vle32_v_f32m1(y, vl); - vfloat32m1_t vec_v = __riscv_vfmv_v_f_f32m1(v, vl); - vec_y = __riscv_vfadd_vv_f32m1(vec_y, vec_v, vl); - __riscv_vse32_v_f32m1(y, vec_y, vl); - y += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - y[i] += v; - } - #endif -} - -#endif // __NN__ADD1_H diff --git a/nn/inc/ops/add.h b/nn/inc/ops/add.h deleted file mode 100644 index b352257..0000000 --- a/nn/inc/ops/add.h +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef __NN__ADD_H -#define __NN__ADD_H - -#include -#include - -#ifdef RVV - #include -#endif - -#include "nn_float16.h" - -static inline void NN__add_i8(size_t n, int8_t *z, int8_t *x, int8_t *y) { - #ifdef RVV - while (n > 0) { - size_t vl = __riscv_vsetvl_e8m1(n); - vint8m1_t vec_x = __riscv_vle8_v_i8m1(x, vl); - vint8m1_t vec_y = __riscv_vle8_v_i8m1(y, vl); - vint8m1_t vec_z = __riscv_vadd_vv_i8m1(vec_x, vec_y, vl); - __riscv_vse8_v_i8m1(z, vec_z, vl); - x += vl; - y += vl; - z += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - z[i] = x[i] + y[i]; - } - #endif -} - -static inline void NN__add_f16(size_t n, float16_t *z, float16_t *x, float16_t *y) { - for (size_t i = 0; i < n; i += 1) { - z[i] = NN_float_to_half(NN_half_to_float(x[i]) + NN_half_to_float(y[i])); - } -} - -static inline void NN__add_f32(size_t n, float *z, float *x, float *y) { - #ifdef RVV - while (n > 0) { - size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vle32_v_f32m1(x, vl); - vfloat32m1_t vec_y = __riscv_vle32_v_f32m1(y, vl); - vfloat32m1_t vec_z = __riscv_vfadd_vv_f32m1(vec_x, vec_y, vl); - __riscv_vse32_v_f32m1(z, vec_z, vl); - x += vl; - y += vl; - z += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - z[i] = x[i] + y[i]; - } - #endif -} - - -#endif // __NN__ADD_H diff --git a/nn/inc/ops/add1.h b/nn/inc/ops/add1.h deleted file mode 100644 index 09b3aeb..0000000 --- a/nn/inc/ops/add1.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef __NN__ADD1_H -#define __NN__ADD1_H - -#include - -#ifdef RVV - #include -#endif - -static inline void NN__add1_f32(size_t n, float *z, float *x, float v) { - #ifdef RVV - while (n > 0) { - size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vle32_v_f32m1(x, vl); - vfloat32m1_t vec_v = __riscv_vfmv_v_f_f32m1(v, vl); - vfloat32m1_t vec_z = __riscv_vfadd_vv_f32m1(vec_x, vec_v, vl); - __riscv_vse32_v_f32m1(z, vec_z, vl); - x += vl; - z += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - z[i] = x[i] + v; - } - #endif -} - -#endif // __NN__ADD1_H diff --git a/nn/inc/ops/div.h b/nn/inc/ops/div.h deleted file mode 100644 index ef13677..0000000 --- a/nn/inc/ops/div.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef __NN__DIV_H -#define __NN__DIV_H - -#include -#include - -#ifdef RVV - #include -#endif - -static inline void NN__div_f32(size_t n, float *z, float *x, float *y) { - #ifdef RVV - while (n > 0) { - size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vle32_v_f32m1(x, vl); - vfloat32m1_t vec_y = __riscv_vle32_v_f32m1(y, vl); - vfloat32m1_t vec_z = __riscv_vfdiv_vv_f32m1(vec_x, vec_y, vl); - __riscv_vse32_v_f32m1(z, vec_z, vl); - x += vl; - y += vl; - z += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - z[i] = x[i] / y[i]; - } - #endif -} - - -#endif // __NN__DIV_H diff --git a/nn/inc/ops/dot.h b/nn/inc/ops/dot.h deleted file mode 100644 index dfb7831..0000000 --- a/nn/inc/ops/dot.h +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef __NN__DOT_H -#define __NN__DOT_H - -#include - -#ifdef RVV - #include -#endif - -#include "nn_float16.h" - - -static inline void NN__dot_f16(size_t n, float16_t *s, float16_t *x, float16_t *y) { - float16_t sum = 0.0; - - #ifdef RVV - size_t vlmax = __riscv_vsetvlmax_e16m1(); - - vfloat16m1_t vec_zero = __riscv_vfmv_v_f_f16m1(0, vlmax); - vfloat16m1_t vec_s = __riscv_vfmv_v_f_f16m1(0, vlmax); - - while (n > 0) { - size_t vl = __riscv_vsetvl_e16m1(n); - vfloat16m1_t vec_x = __riscv_vle16_v_f16m1(x, vl); - vfloat16m1_t vec_y = __riscv_vle16_v_f16m1(y, vl); - vec_s = __riscv_vfmacc_vv_f16m1(vec_s, vec_x, vec_y, vl); - - x += vl; - y += vl; - n -= vl; - } - vec_s = __riscv_vfredusum_vs_f16m1_f16m1(vec_s, vec_zero, vlmax); - sum = __riscv_vfmv_f_s_f16m1_f16(vec_s); - #else - float sum_f32 = 0; - for (size_t i = 0; i < n; i += 1) { - sum_f32 += NN_half_to_float(x[i]) * NN_half_to_float(y[i]); - } - sum = NN_float_to_half(sum_f32); - #endif - - *s = sum; -} - -static inline void NN__dot_f32(size_t n, float *s, float *x, float *y) { - float sum = 0.0; - - #ifdef RVV - size_t vlmax = __riscv_vsetvlmax_e32m1(); - - vfloat32m1_t vec_zero = __riscv_vfmv_v_f_f32m1(0, vlmax); - vfloat32m1_t vec_s = __riscv_vfmv_v_f_f32m1(0, vlmax); - - while (n > 0) { - size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vle32_v_f32m1(x, vl); - vfloat32m1_t vec_y = __riscv_vle32_v_f32m1(y, vl); - vec_s = __riscv_vfmacc_vv_f32m1(vec_s, vec_x, vec_y, vl); - - x += vl; - y += vl; - n -= vl; - } - vec_s = __riscv_vfredusum_vs_f32m1_f32m1(vec_s, vec_zero, vlmax); - sum = __riscv_vfmv_f_s_f32m1_f32(vec_s); - #else - for (size_t i = 0; i < n; i += 1) { - sum += x[i] * y[i]; - } - #endif - - *s = sum; -} - -#endif // __NN__DOT_H diff --git a/nn/inc/ops/fill.h b/nn/inc/ops/fill.h deleted file mode 100644 index 41a845b..0000000 --- a/nn/inc/ops/fill.h +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef __NN__FILL_H -#define __NN__FILL_H - -#include -#include - -#ifdef RVV - #include -#endif - -#include "nn_float16.h" - -inline static void NN__fill_U8(size_t n, uint8_t *x, uint8_t v) { - for (size_t i = 0; i < n; i += 1) { - x[i] = v; - } -} - -inline static void NN__fill_i8(size_t n, int8_t *x, int8_t v) { - for (size_t i = 0; i < n; i += 1) { - x[i] = v; - } -} - -inline static void NN__fill_u16(size_t n, uint16_t *x, uint16_t v) { - for (size_t i = 0; i < n; i += 1) { - x[i] = v; - } -} - -inline static void NN__fill_i16(size_t n, int16_t *x, int16_t v) { - for (size_t i = 0; i < n; i += 1) { - x[i] = v; - } -} - -inline static void NN__fill_i32(size_t n, int32_t *x, int32_t v) { - for (size_t i = 0; i < n; i += 1) { - x[i] = v; - } -} - -inline static void NN__fill_f16(size_t n, float16_t *x, float16_t v) { - for (size_t i = 0; i < n; i += 1) { - x[i] = v; - } -} - -// inline static void NN__fill_BF16(size_t n, bfloat16_t * x, const bfloat16_t v) { -// for (size_t i = 0; i < n; i += 1) { -// x[i] = v; -// } -// } - -inline static void NN__fill_f32(size_t n, float *x, float v) { - #ifdef RVV - while (n > 0) { - size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vfmv_v_f_f32m1(v, vl); - __riscv_vse32_v_f32m1(x, vec_x, vl); - x += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - x[i] = v; - } - #endif -} - - -#endif // __NN__FILL_H diff --git a/nn/inc/ops/log.h b/nn/inc/ops/log.h deleted file mode 100644 index 446a78f..0000000 --- a/nn/inc/ops/log.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef __NN__LOG_H -#define __NN__LOG_H - -#include -#include -#include - -#ifdef RVV - #include -#endif - -static inline void NN__log_f32(size_t n, float *y, float *x) { - for (size_t i = 0; i < n; i += 1) { - y[i] = logf(x[i]); - } -} - - -#endif // __NN__LOG_H diff --git a/nn/inc/nn.h b/nn/op/nn.h similarity index 98% rename from nn/inc/nn.h rename to nn/op/nn.h index 6713cad..dd8d7ae 100644 --- a/nn/inc/nn.h +++ b/nn/op/nn.h @@ -5,6 +5,7 @@ #include "nn_float16.h" #include "nn_tensor.h" +#include "nn_tensor_creation.h" #include "nn_print.h" #include "nn_abs.h" #include "nn_add.h" diff --git a/nn/src/nn_abs.c b/nn/op/nn_abs.c similarity index 60% rename from nn/src/nn_abs.c rename to nn/op/nn_abs.c index abe3500..94ed2f2 100644 --- a/nn/src/nn_abs.c +++ b/nn/op/nn_abs.c @@ -9,19 +9,19 @@ void NN_abs(Tensor *out, Tensor *in) { switch (out->dtype) { case DTYPE_I8: - NN__abs_i8(out->size, (int8_t *)out->data, (int8_t *)in->data); + NN__abs_i8(out->size, (int8_t *)out->data, 1, (int8_t *)in->data, 1); return; case DTYPE_I16: - NN__abs_i16(out->size, (int16_t *)out->data, (int16_t *)in->data); + NN__abs_i16(out->size, (int16_t *)out->data, 1, (int16_t *)in->data, 1); return; case DTYPE_I32: - NN__abs_i32(out->size, (int32_t *)out->data, (int32_t *)in->data); + NN__abs_i32(out->size, (int32_t *)out->data, 1, (int32_t *)in->data, 1); return; case DTYPE_F16: - NN__abs_f16(out->size, (float16_t *)out->data, (float16_t *)in->data); + NN__abs_f16(out->size, (float16_t *)out->data, 1, (float16_t *)in->data, 1); return; case DTYPE_F32: - NN__abs_f32(out->size, (float *)out->data, (float *)in->data); + NN__abs_f32(out->size, (float *)out->data, 1, (float *)in->data, 1); return; default: diff --git a/nn/inc/nn_abs.h b/nn/op/nn_abs.h similarity index 94% rename from nn/inc/nn_abs.h rename to nn/op/nn_abs.h index f6f4853..d88b0bd 100644 --- a/nn/inc/nn_abs.h +++ b/nn/op/nn_abs.h @@ -4,7 +4,7 @@ #include #include "nn_tensor.h" -#include "ops/abs.h" +#include "abs.h" /** diff --git a/nn/src/nn_add.c b/nn/op/nn_add.c similarity index 89% rename from nn/src/nn_add.c rename to nn/op/nn_add.c index bdbae6a..eb87aa1 100644 --- a/nn/src/nn_add.c +++ b/nn/op/nn_add.c @@ -12,7 +12,7 @@ void NN_add(Tensor *out, Tensor *a, Tensor *b) { && b->shape[1] == a->shape[1] && b->shape[2] == a->shape[2] && b->shape[3] == a->shape[3]) { - NN__add_f16(out->size, (float16_t *)out->data, (float16_t *)a->data, (float16_t *)b->data); + NN__add_f16(out->size, (float16_t *)out->data, 1, (float16_t *)a->data, 1, (float16_t *)b->data, 1); return; } for (size_t i = 0; i < out->shape[0]; i += 1) { @@ -43,7 +43,7 @@ void NN_add(Tensor *out, Tensor *a, Tensor *b) { && b->shape[1] == a->shape[1] && b->shape[2] == a->shape[2] && b->shape[3] == a->shape[3]) { - NN__add_f32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); + NN__add_f32(out->size, (float *)out->data, 1, (float *)a->data, 1, (float *)b->data, 1); return; } for (size_t i = 0; i < out->shape[0]; i += 1) { @@ -102,7 +102,7 @@ void NN_add1(Tensor *out, Tensor *a, float b) { switch (out->dtype) { case DTYPE_F32: - NN__add1_f32(out->size, (float *)out->data, (float *)a->data, b); + NN__add1_f32(out->size, (float *)out->data, 1, (float *)a->data, 1, b); return; default: @@ -119,10 +119,10 @@ void NN_add_inplace(Tensor *b, Tensor *a) { switch (b->dtype) { case DTYPE_F32: - NN__acc_f32(b->size, (float *)b->data, (float *)a->data); + NN__acc_f32(b->size, (float *)b->data, 1, (float *)a->data, 1); return; case DTYPE_I8: - NN__acc_i8(b->size, (int8_t *)b->data, (int8_t *)a->data); + NN__acc_i8(b->size, (int8_t *)b->data, 1, (int8_t *)a->data, 1); return; default: break; @@ -136,7 +136,7 @@ void NN_add_inplace(Tensor *b, Tensor *a) { void NN_add_inplace1(Tensor *b, float scalar) { switch (b->dtype) { case DTYPE_F32: - NN__acc1_f32(b->size, (float *)b->data, scalar); + NN__acc1_f32(b->size, (float *)b->data, 1, scalar); return; default: break; diff --git a/nn/inc/nn_add.h b/nn/op/nn_add.h similarity index 93% rename from nn/inc/nn_add.h rename to nn/op/nn_add.h index acc43d8..9dd22b0 100644 --- a/nn/inc/nn_add.h +++ b/nn/op/nn_add.h @@ -6,10 +6,10 @@ #include "nn_tensor.h" #include "nn_print.h" -#include "ops/acc.h" -#include "ops/acc1.h" -#include "ops/add.h" -#include "ops/add1.h" +#include "acc.h" +#include "acc1.h" +#include "add.h" +#include "add1.h" /** diff --git a/nn/src/nn_attention.c b/nn/op/nn_attention.c similarity index 100% rename from nn/src/nn_attention.c rename to nn/op/nn_attention.c diff --git a/nn/src/nn_batch_norm2d.c b/nn/op/nn_batch_norm2d.c similarity index 100% rename from nn/src/nn_batch_norm2d.c rename to nn/op/nn_batch_norm2d.c diff --git a/nn/inc/nn_batch_norm2d.h b/nn/op/nn_batch_norm2d.h similarity index 100% rename from nn/inc/nn_batch_norm2d.h rename to nn/op/nn_batch_norm2d.h diff --git a/nn/src/nn_tensor.c b/nn/op/nn_cast.c similarity index 76% rename from nn/src/nn_tensor.c rename to nn/op/nn_cast.c index 779a6ce..eed5c9e 100644 --- a/nn/src/nn_tensor.c +++ b/nn/op/nn_cast.c @@ -2,40 +2,6 @@ #include "nn_tensor.h" -void NN_init_tensor(Tensor *tensor, const size_t ndim, const size_t *shape, DataType dtype, void *data) { - tensor->dtype = dtype; - tensor->ndim = ndim; - - // set shape - memcpy(tensor->shape, shape, ndim * sizeof(size_t)); - memset(tensor->shape + ndim, 0, (MAX_DIMS - ndim) * sizeof(size_t)); - - // calculate size (number of elements) - tensor->size = 1; - for (size_t i = 0; i < ndim; i += 1) { - tensor->size *= shape[i]; - } - - if (data != NULL) { - tensor->data = data; - return; - } - - // if this is a scalar tensor - if (tensor->ndim == 0) { - tensor->data = malloc(NN_sizeof(dtype)); - return; - } - - tensor->data = malloc(NN_sizeof(dtype) * tensor->size); -} - -Tensor *NN_tensor(size_t ndim, const size_t *shape, DataType dtype, void *data) { - Tensor *t = (Tensor *)malloc(sizeof(Tensor)); - NN_init_tensor(t, ndim, shape, dtype, data); - return t; -} - void NN_as_type(Tensor *out, Tensor *in) { if (out->dtype == in->dtype) { NN_copy(out, in); diff --git a/nn/src/nn_clip.c b/nn/op/nn_clip.c similarity index 100% rename from nn/src/nn_clip.c rename to nn/op/nn_clip.c diff --git a/nn/inc/nn_clip.h b/nn/op/nn_clip.h similarity index 92% rename from nn/inc/nn_clip.h rename to nn/op/nn_clip.h index 662b79e..45986ec 100644 --- a/nn/inc/nn_clip.h +++ b/nn/op/nn_clip.h @@ -4,8 +4,8 @@ #include #include "nn_tensor.h" -#include "ops/maximum1.h" -#include "ops/minimum1.h" +#include "maximum1.h" +#include "minimum1.h" /** diff --git a/nn/src/nn_conv2d.c b/nn/op/nn_conv2d.c similarity index 100% rename from nn/src/nn_conv2d.c rename to nn/op/nn_conv2d.c diff --git a/nn/inc/nn_conv2d.h b/nn/op/nn_conv2d.h similarity index 100% rename from nn/inc/nn_conv2d.h rename to nn/op/nn_conv2d.h diff --git a/nn/src/nn_copy.c b/nn/op/nn_copy.c similarity index 100% rename from nn/src/nn_copy.c rename to nn/op/nn_copy.c diff --git a/nn/inc/nn_copy.h b/nn/op/nn_copy.h similarity index 100% rename from nn/inc/nn_copy.h rename to nn/op/nn_copy.h diff --git a/nn/src/nn_div.c b/nn/op/nn_div.c similarity index 85% rename from nn/src/nn_div.c rename to nn/op/nn_div.c index ee3adb7..6aaeeb8 100644 --- a/nn/src/nn_div.c +++ b/nn/op/nn_div.c @@ -11,7 +11,7 @@ void NN_div(Tensor *out, Tensor *a, Tensor *b) { switch (out->dtype) { case DTYPE_F32: - NN__div_f32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); + NN__div_f32(out->size, (float *)out->data, 1, (float *)a->data, 1, (float *)b->data, 1); return; default: diff --git a/nn/inc/nn_div.h b/nn/op/nn_div.h similarity index 94% rename from nn/inc/nn_div.h rename to nn/op/nn_div.h index ae4554d..41b1579 100644 --- a/nn/inc/nn_div.h +++ b/nn/op/nn_div.h @@ -5,7 +5,7 @@ #include #include "nn_tensor.h" -#include "ops/div.h" +#include "div.h" /** diff --git a/nn/src/nn_elu.c b/nn/op/nn_elu.c similarity index 100% rename from nn/src/nn_elu.c rename to nn/op/nn_elu.c diff --git a/nn/inc/nn_elu.h b/nn/op/nn_elu.h similarity index 100% rename from nn/inc/nn_elu.h rename to nn/op/nn_elu.h diff --git a/nn/src/nn_fill.c b/nn/op/nn_fill.c similarity index 81% rename from nn/src/nn_fill.c rename to nn/op/nn_fill.c index b71b56a..b9753e4 100644 --- a/nn/src/nn_fill.c +++ b/nn/op/nn_fill.c @@ -5,19 +5,19 @@ void NN_fill(Tensor *tensor, float value) { switch (tensor->dtype) { case DTYPE_U8: - NN__fill_U8(tensor->size, (uint8_t *)tensor->data, (uint8_t)value); + NN__fill_u8(tensor->size, (uint8_t *)tensor->data, 1, (uint8_t)value); return; case DTYPE_I8: - NN__fill_i8(tensor->size, (int8_t *)tensor->data, (int8_t)value); + NN__fill_i8(tensor->size, (int8_t *)tensor->data, 1, (int8_t)value); return; case DTYPE_I32: - NN__fill_i32(tensor->size, (int32_t *)tensor->data, (int32_t)value); + NN__fill_i32(tensor->size, (int32_t *)tensor->data, 1, (int32_t)value); return; case DTYPE_F16: - NN__fill_f16(tensor->size, (float16_t *)tensor->data, NN_float_to_half(value)); + NN__fill_f16(tensor->size, (float16_t *)tensor->data, 1, NN_float_to_half(value)); return; case DTYPE_F32: - NN__fill_f32(tensor->size, (float *)tensor->data, value); + NN__fill_f32(tensor->size, (float *)tensor->data, 1, value); return; default: printf("[ERROR] Unsupported operation fill to tensor with dtype: %d\n", tensor->dtype); diff --git a/nn/inc/nn_fill.h b/nn/op/nn_fill.h similarity index 95% rename from nn/inc/nn_fill.h rename to nn/op/nn_fill.h index ab0f763..0ecea3c 100644 --- a/nn/inc/nn_fill.h +++ b/nn/op/nn_fill.h @@ -5,7 +5,7 @@ #include #include "nn_tensor.h" -#include "ops/fill.h" +#include "fill.h" /** * Fills the tensor with the specified value. diff --git a/nn/inc/nn_float16.h b/nn/op/nn_float16.h similarity index 100% rename from nn/inc/nn_float16.h rename to nn/op/nn_float16.h diff --git a/nn/src/nn_interpolate.c b/nn/op/nn_interpolate.c similarity index 100% rename from nn/src/nn_interpolate.c rename to nn/op/nn_interpolate.c diff --git a/nn/inc/nn_interpolate.h b/nn/op/nn_interpolate.h similarity index 100% rename from nn/inc/nn_interpolate.h rename to nn/op/nn_interpolate.h diff --git a/nn/src/nn_layer_norm.c b/nn/op/nn_layer_norm.c similarity index 100% rename from nn/src/nn_layer_norm.c rename to nn/op/nn_layer_norm.c diff --git a/nn/inc/nn_layer_norm.h b/nn/op/nn_layer_norm.h similarity index 100% rename from nn/inc/nn_layer_norm.h rename to nn/op/nn_layer_norm.h diff --git a/nn/src/nn_linear.c b/nn/op/nn_linear.c similarity index 100% rename from nn/src/nn_linear.c rename to nn/op/nn_linear.c diff --git a/nn/inc/nn_linear.h b/nn/op/nn_linear.h similarity index 100% rename from nn/inc/nn_linear.h rename to nn/op/nn_linear.h diff --git a/nn/inc/nn_math.h b/nn/op/nn_math.h similarity index 100% rename from nn/inc/nn_math.h rename to nn/op/nn_math.h diff --git a/nn/op/nn_matmul.c b/nn/op/nn_matmul.c new file mode 100644 index 0000000..ee11356 --- /dev/null +++ b/nn/op/nn_matmul.c @@ -0,0 +1,24 @@ + +#include "nn_matmul.h" + + +void NN_matmul(Tensor *out, Tensor *a, Tensor *b) { + if (a->ndim == 2 && b->ndim == 2) { + NN_mm(out, a, b); + return; + } + printf("Unsupported operation: %s = %s @ %s\n", + NN_get_datatype_name(out->dtype), NN_get_datatype_name(a->dtype), NN_get_datatype_name(b->dtype) + ); +} + +void NN_matmul_t(Tensor *out, Tensor *a, Tensor *b) { + if (a->ndim == 2 && b->ndim == 2) { + NN_mm_t(out, a, b); + return; + } + printf("Unsupported operation: %s = %s @ %s\n", + NN_get_datatype_name(out->dtype), NN_get_datatype_name(a->dtype), NN_get_datatype_name(b->dtype) + ); +} + diff --git a/nn/inc/nn_matmul.h b/nn/op/nn_matmul.h similarity index 96% rename from nn/inc/nn_matmul.h rename to nn/op/nn_matmul.h index 43497a5..a1b1235 100644 --- a/nn/inc/nn_matmul.h +++ b/nn/op/nn_matmul.h @@ -4,7 +4,7 @@ #include #include "nn_tensor.h" -#include "ops/dot.h" +#include "dot.h" /** diff --git a/nn/src/nn_max.c b/nn/op/nn_max.c similarity index 100% rename from nn/src/nn_max.c rename to nn/op/nn_max.c diff --git a/nn/inc/nn_max.h b/nn/op/nn_max.h similarity index 93% rename from nn/inc/nn_max.h rename to nn/op/nn_max.h index 9d3380a..5fb3181 100644 --- a/nn/inc/nn_max.h +++ b/nn/op/nn_max.h @@ -5,7 +5,7 @@ #include #include "nn_tensor.h" -#include "ops/max.h" +#include "max.h" /** diff --git a/nn/src/nn_max_pool2d.c b/nn/op/nn_max_pool2d.c similarity index 100% rename from nn/src/nn_max_pool2d.c rename to nn/op/nn_max_pool2d.c diff --git a/nn/inc/nn_max_pool2d.h b/nn/op/nn_max_pool2d.h similarity index 100% rename from nn/inc/nn_max_pool2d.h rename to nn/op/nn_max_pool2d.h diff --git a/nn/src/nn_maximum.c b/nn/op/nn_maximum.c similarity index 100% rename from nn/src/nn_maximum.c rename to nn/op/nn_maximum.c diff --git a/nn/inc/nn_maximum.h b/nn/op/nn_maximum.h similarity index 93% rename from nn/inc/nn_maximum.h rename to nn/op/nn_maximum.h index b4a50cf..10abefd 100644 --- a/nn/inc/nn_maximum.h +++ b/nn/op/nn_maximum.h @@ -7,7 +7,7 @@ #endif #include "nn_tensor.h" -#include "ops/maximum.h" +#include "maximum.h" /** diff --git a/nn/src/nn_min.c b/nn/op/nn_min.c similarity index 100% rename from nn/src/nn_min.c rename to nn/op/nn_min.c diff --git a/nn/inc/nn_min.h b/nn/op/nn_min.h similarity index 93% rename from nn/inc/nn_min.h rename to nn/op/nn_min.h index 17d1b88..f37f480 100644 --- a/nn/inc/nn_min.h +++ b/nn/op/nn_min.h @@ -5,7 +5,7 @@ #include #include "nn_tensor.h" -#include "ops/min.h" +#include "min.h" /** diff --git a/nn/src/nn_minimum.c b/nn/op/nn_minimum.c similarity index 100% rename from nn/src/nn_minimum.c rename to nn/op/nn_minimum.c diff --git a/nn/inc/nn_minimum.h b/nn/op/nn_minimum.h similarity index 93% rename from nn/inc/nn_minimum.h rename to nn/op/nn_minimum.h index 48a67db..019aafe 100644 --- a/nn/inc/nn_minimum.h +++ b/nn/op/nn_minimum.h @@ -7,7 +7,7 @@ #endif #include "nn_tensor.h" -#include "ops/minimum.h" +#include "minimum.h" /** diff --git a/nn/src/nn_matmul.c b/nn/op/nn_mm.c similarity index 59% rename from nn/src/nn_matmul.c rename to nn/op/nn_mm.c index 91bae45..10d239f 100644 --- a/nn/src/nn_matmul.c +++ b/nn/op/nn_mm.c @@ -1,5 +1,5 @@ -#include "nn_matmul.h" +#include "nn_mm.h" #ifdef GEMMINI #include @@ -9,7 +9,13 @@ #include "gemmini/gemmini.h" #endif -void NN_matmul(Tensor *out, Tensor *a, Tensor *b) { + +void NN_mm(Tensor *out, Tensor *a, Tensor *b) { + assert(a->ndim == 2); + assert(b->ndim == 2); + assert(a->shape[1] == b->shape[0]); + assert(out->shape[0] == a->shape[0]); + assert(out->shape[1] == b->shape[1]); #ifdef GEMMINI // // This function runs a tiled matrix multiplication, with automatically @@ -65,45 +71,25 @@ void NN_matmul(Tensor *out, Tensor *a, Tensor *b) { #endif if (a->dtype == DTYPE_F32 && b->dtype == DTYPE_F32 && out->dtype == DTYPE_F32) { - // currently only support 2D matrix multiplication - assert(a->ndim == 2); - assert(b->ndim == 2); - assert(a->dtype == DTYPE_F32); - assert(b->dtype == DTYPE_F32); - assert(out->dtype == DTYPE_F32); - assert(a->shape[1] == b->shape[0]); - assert(out->shape[0] == a->shape[0]); - assert(out->shape[1] == b->shape[1]); - for (size_t i = 0; i < out->shape[0]; i += 1) { for (size_t j = 0; j < out->shape[1]; j += 1) { - float sum = 0; - for (size_t k = 0; k < a->shape[1]; k += 1) { - sum += ((float *)a->data)[i * a->shape[1] + k] * ((float *)b->data)[k * b->shape[1] + j]; - } - ((float *)out->data)[i * out->shape[1] + j] = sum; + NN__dot_f32(a->shape[1], + (float *)out->data + i * out->shape[1] + j, + (float *)a->data + i * a->shape[1], 1, + (float *)b->data + j, b->shape[1] + ); } } return; } if (a->dtype == DTYPE_F16 && b->dtype == DTYPE_F16 && out->dtype == DTYPE_F16) { - // currently only support 2D matrix multiplication - assert(a->ndim == 2); - assert(b->ndim == 2); - assert(a->dtype == DTYPE_F16); - assert(b->dtype == DTYPE_F16); - assert(out->dtype == DTYPE_F16); - assert(a->shape[1] == b->shape[0]); - assert(out->shape[0] == a->shape[0]); - assert(out->shape[1] == b->shape[1]); - for (size_t i = 0; i < out->shape[0]; i += 1) { for (size_t j = 0; j < out->shape[1]; j += 1) { - float sum = 0; - for (size_t k = 0; k < a->shape[1]; k += 1) { - sum += NN_half_to_float(((float16_t *)a->data)[i * a->shape[1] + k]) * NN_half_to_float(((float16_t *)b->data)[k * b->shape[1] + j]); - } - ((float16_t *)out->data)[i * out->shape[1] + j] = NN_float_to_half(sum); + NN__dot_f16(a->shape[1], + (float16_t *)out->data + i * out->shape[1] + j, + (float16_t *)a->data + i * a->shape[1], 1, + (float16_t *)b->data + j, b->shape[1] + ); } } return; @@ -113,46 +99,32 @@ void NN_matmul(Tensor *out, Tensor *a, Tensor *b) { ); } -void NN_matmul_t(Tensor *out, Tensor *a, Tensor *b) { - if (a->dtype == DTYPE_F16 && b->dtype == DTYPE_F16 && out->dtype == DTYPE_F16) { - // currently only support 2D matrix multiplication - assert(a->ndim == 2); - assert(b->ndim == 2); - assert(a->dtype == DTYPE_F16); - assert(b->dtype == DTYPE_F16); - assert(out->dtype == DTYPE_F16); - assert(a->shape[1] == b->shape[1]); - assert(out->shape[0] == a->shape[0]); - assert(out->shape[1] == b->shape[0]); +void NN_mm_t(Tensor *out, Tensor *a, Tensor *b) { + assert(a->ndim == 2); + assert(b->ndim == 2); + assert(a->shape[1] == b->shape[1]); + assert(out->shape[0] == a->shape[0]); + assert(out->shape[1] == b->shape[0]); + if (a->dtype == DTYPE_F16 && b->dtype == DTYPE_F16 && out->dtype == DTYPE_F16) { for (size_t i = 0; i < out->shape[0]; i += 1) { for (size_t j = 0; j < out->shape[1]; j += 1) { - NN__dot_f16(a->shape[1], + NN__dot_f16(a->shape[1], (float16_t *)out->data + i * out->shape[1] + j, - (float16_t *)a->data + i * a->shape[1], - (float16_t *)b->data + j * b->shape[1] + (float16_t *)a->data + i * a->shape[1], 1, + (float16_t *)b->data + j * b->shape[1], 1 ); } } return; } if (a->dtype == DTYPE_F32 && b->dtype == DTYPE_F32 && out->dtype == DTYPE_F32) { - // currently only support 2D matrix multiplication - assert(a->ndim == 2); - assert(b->ndim == 2); - assert(a->dtype == DTYPE_F32); - assert(b->dtype == DTYPE_F32); - assert(out->dtype == DTYPE_F32); - assert(a->shape[1] == b->shape[1]); - assert(out->shape[0] == a->shape[0]); - assert(out->shape[1] == b->shape[0]); - for (size_t i = 0; i < out->shape[0]; i += 1) { for (size_t j = 0; j < out->shape[1]; j += 1) { NN__dot_f32(a->shape[1], - (float *)out->data + i * out->shape[1] + j, - (float *)a->data + i * a->shape[1], - (float *)b->data + j * b->shape[1] + (float *)out->data + i * out->shape[1] + j, + (float *)a->data + i * a->shape[1], 1, + (float *)b->data + j * b->shape[1], 1 ); } } diff --git a/nn/op/nn_mm.h b/nn/op/nn_mm.h new file mode 100644 index 0000000..5a45ae4 --- /dev/null +++ b/nn/op/nn_mm.h @@ -0,0 +1,37 @@ +#ifndef __NN_MATMUL_H +#define __NN_MATMUL_H + +#include + +#include "nn_tensor.h" +#include "dot.h" + + +/** + * Performs a matrix multiplication. + * + * If input is a (m×k) tensor, mat2 is a (k×n) tensor, out will be a (m×n) tensor. + * + * C = A @ B + * + * @param out: the output tensor of shape (m, n) + * @param a: the input tensor of shape (m, k) + * @param b: the input tensor of shape (k, n) + */ +void NN_mm(Tensor *out, Tensor *a, Tensor *b); + +/** + * Performs a matrix multiplication with transposed B. + * + * If input is a (m×k) tensor, mat2 is a (n×k) tensor, out will be a (m×n) tensor. + * + * C = A @ B.T + * + * @param out: the output tensor of shape (m, n) + * @param a: the input tensor of shape (m, k) + * @param b: the input tensor of shape (n, k) + */ +void NN_mm_t(Tensor *out, Tensor *a, Tensor *b); + + +#endif // __NN_MATMUL_H diff --git a/nn/src/nn_mul.c b/nn/op/nn_mul.c similarity index 100% rename from nn/src/nn_mul.c rename to nn/op/nn_mul.c diff --git a/nn/inc/nn_mul.h b/nn/op/nn_mul.h similarity index 93% rename from nn/inc/nn_mul.h rename to nn/op/nn_mul.h index 572df79..802649e 100644 --- a/nn/inc/nn_mul.h +++ b/nn/op/nn_mul.h @@ -5,8 +5,8 @@ #include #include "nn_tensor.h" -#include "ops/mul.h" -#include "ops/mul1.h" +#include "mul.h" +#include "mul1.h" /** diff --git a/nn/src/nn_neg.c b/nn/op/nn_neg.c similarity index 100% rename from nn/src/nn_neg.c rename to nn/op/nn_neg.c diff --git a/nn/inc/nn_neg.h b/nn/op/nn_neg.h similarity index 94% rename from nn/inc/nn_neg.h rename to nn/op/nn_neg.h index 5fd27a3..4e8e20f 100644 --- a/nn/inc/nn_neg.h +++ b/nn/op/nn_neg.h @@ -4,7 +4,7 @@ #include #include "nn_tensor.h" -#include "ops/neg.h" +#include "neg.h" /** diff --git a/nn/src/nn_norm.c b/nn/op/nn_norm.c similarity index 100% rename from nn/src/nn_norm.c rename to nn/op/nn_norm.c diff --git a/nn/inc/nn_norm.h b/nn/op/nn_norm.h similarity index 100% rename from nn/inc/nn_norm.h rename to nn/op/nn_norm.h diff --git a/nn/src/nn_print.c b/nn/op/nn_print.c similarity index 100% rename from nn/src/nn_print.c rename to nn/op/nn_print.c diff --git a/nn/inc/nn_print.h b/nn/op/nn_print.h similarity index 100% rename from nn/inc/nn_print.h rename to nn/op/nn_print.h diff --git a/nn/src/nn_relu.c b/nn/op/nn_relu.c similarity index 100% rename from nn/src/nn_relu.c rename to nn/op/nn_relu.c diff --git a/nn/inc/nn_relu.h b/nn/op/nn_relu.h similarity index 92% rename from nn/inc/nn_relu.h rename to nn/op/nn_relu.h index fbe5def..39d3d37 100644 --- a/nn/inc/nn_relu.h +++ b/nn/op/nn_relu.h @@ -4,7 +4,7 @@ #include #include "nn_tensor.h" -#include "ops/maximum1.h" +#include "maximum1.h" /** diff --git a/nn/src/nn_relu6.c b/nn/op/nn_relu6.c similarity index 100% rename from nn/src/nn_relu6.c rename to nn/op/nn_relu6.c diff --git a/nn/inc/nn_relu6.h b/nn/op/nn_relu6.h similarity index 86% rename from nn/inc/nn_relu6.h rename to nn/op/nn_relu6.h index 3b23934..60568e9 100644 --- a/nn/inc/nn_relu6.h +++ b/nn/op/nn_relu6.h @@ -4,8 +4,8 @@ #include #include "nn_tensor.h" -#include "ops/maximum1.h" -#include "ops/minimum1.h" +#include "maximum1.h" +#include "minimum1.h" /** diff --git a/nn/src/nn_softmax.c b/nn/op/nn_softmax.c similarity index 100% rename from nn/src/nn_softmax.c rename to nn/op/nn_softmax.c diff --git a/nn/inc/nn_softmax.h b/nn/op/nn_softmax.h similarity index 92% rename from nn/inc/nn_softmax.h rename to nn/op/nn_softmax.h index a38726c..fa6b855 100644 --- a/nn/inc/nn_softmax.h +++ b/nn/op/nn_softmax.h @@ -4,7 +4,7 @@ #include #include "nn_tensor.h" -#include "ops/softmax.h" +#include "softmax.h" /** diff --git a/nn/src/nn_sub.c b/nn/op/nn_sub.c similarity index 100% rename from nn/src/nn_sub.c rename to nn/op/nn_sub.c diff --git a/nn/inc/nn_sub.h b/nn/op/nn_sub.h similarity index 96% rename from nn/inc/nn_sub.h rename to nn/op/nn_sub.h index 63bd28c..687e5dd 100644 --- a/nn/inc/nn_sub.h +++ b/nn/op/nn_sub.h @@ -6,7 +6,7 @@ #include "nn_tensor.h" #include "nn_print.h" -#include "ops/sub.h" +#include "sub.h" /** diff --git a/nn/src/nn_sum.c b/nn/op/nn_sum.c similarity index 100% rename from nn/src/nn_sum.c rename to nn/op/nn_sum.c diff --git a/nn/inc/nn_sum.h b/nn/op/nn_sum.h similarity index 93% rename from nn/inc/nn_sum.h rename to nn/op/nn_sum.h index 67d76df..f9cbf0b 100644 --- a/nn/inc/nn_sum.h +++ b/nn/op/nn_sum.h @@ -4,7 +4,7 @@ #include #include "nn_tensor.h" -#include "ops/sum.h" +#include "sum.h" /** diff --git a/nn/inc/nn_tensor.h b/nn/op/nn_tensor.h similarity index 64% rename from nn/inc/nn_tensor.h rename to nn/op/nn_tensor.h index aa03eb1..deb3c95 100644 --- a/nn/inc/nn_tensor.h +++ b/nn/op/nn_tensor.h @@ -162,73 +162,6 @@ static inline void NN_delete_tensor(Tensor *tensor) { free(tensor); } -/** - * Initialize a given tensor - * - * The memory is initialized in C order, i.e., the last dimension is contiguous. - * - * @param ndim: number of dimensions - * @param shape: shape of tensor - * @param dtype: data type - * @param data: pointer to data, if NULL, the data will be allocated - */ -void NN_init_tensor(Tensor *tensor, const size_t ndim, const size_t *shape, DataType dtype, void *data); - -/** - * Create a new tensor - * - * @param ndim: number of dimensions - * @param shape: shape of tensor - * @param dtype: data type - * @param data: pointer to data, if NULL, the data will be allocated - * @return Tensor -*/ -Tensor *NN_tensor(size_t ndim, const size_t *shape, DataType dtype, void *data); - -/** - * Returns a tensor filled with the scalar value 0. - * - * @param ndim: number of dimensions - * @param shape: shape of tensor - * @param dtype: data type - * @return Tensor - */ -Tensor *NN_zeros(size_t ndim, const size_t *shape, DataType dtype); - -/** - * Returns a tensor filled with the scalar value 1. - * - * @param ndim: number of dimensions - * @param shape: shape of tensor - * @param dtype: data type - * @return Tensor - */ -Tensor *NN_ones(size_t ndim, const size_t *shape, DataType dtype); - -/** - * Returns a tensor filled with random numbers from a uniform distribution. - * - * The range of the random number is dependent on the data type: - * - For Float32, the range is [0, 1] - * - For Int8, the range is [0, 255] - * - For Int32, the range is [0, RAND_MAX] - * - * @param ndim: number of dimensions - * @param shape: shape of tensor - * @param dtype: data type - * @return Tensor - */ -Tensor *NN_rand(size_t ndim, const size_t *shape, DataType dtype); - -/** - * Returns this tensor cast to the type of the given tensor. - * - * This is equivalent to NN_copy() if the data types are the same. - * - * @param out: the output tensor - * @param in: the input tensor - */ -void NN_as_type(Tensor *out, Tensor *in); #endif // __NN_TENSOR \ No newline at end of file diff --git a/nn/op/nn_tensor_creation.c b/nn/op/nn_tensor_creation.c new file mode 100644 index 0000000..3302b98 --- /dev/null +++ b/nn/op/nn_tensor_creation.c @@ -0,0 +1,37 @@ + +#include "nn_tensor_creation.h" + + +void NN_init_tensor(Tensor *tensor, const size_t ndim, const size_t *shape, DataType dtype, void *data) { + tensor->dtype = dtype; + tensor->ndim = ndim; + + // set shape + memcpy(tensor->shape, shape, ndim * sizeof(size_t)); + memset(tensor->shape + ndim, 0, (MAX_DIMS - ndim) * sizeof(size_t)); + + // calculate size (number of elements) + tensor->size = 1; + for (size_t i = 0; i < ndim; i += 1) { + tensor->size *= shape[i]; + } + + if (data != NULL) { + tensor->data = data; + return; + } + + // if this is a scalar tensor + if (tensor->ndim == 0) { + tensor->data = malloc(NN_sizeof(dtype)); + return; + } + + tensor->data = malloc(NN_sizeof(dtype) * tensor->size); +} + +Tensor *NN_tensor(size_t ndim, const size_t *shape, DataType dtype, void *data) { + Tensor *t = (Tensor *)malloc(sizeof(Tensor)); + NN_init_tensor(t, ndim, shape, dtype, data); + return t; +} diff --git a/nn/op/nn_tensor_creation.h b/nn/op/nn_tensor_creation.h new file mode 100644 index 0000000..382e694 --- /dev/null +++ b/nn/op/nn_tensor_creation.h @@ -0,0 +1,83 @@ +#ifndef __NN_TENSOR_CREATION +#define __NN_TENSOR_CREATION + +#include +#include +#include +#include +#include +#include + +#include "nn_tensor.h" + + +/** + * Initialize a given tensor + * + * The memory is initialized in C order, i.e., the last dimension is contiguous. + * + * @param ndim: number of dimensions + * @param shape: shape of tensor + * @param dtype: data type + * @param data: pointer to data, if NULL, the data will be allocated + */ +void NN_init_tensor(Tensor *tensor, const size_t ndim, const size_t *shape, DataType dtype, void *data); + +/** + * Create a new tensor + * + * @param ndim: number of dimensions + * @param shape: shape of tensor + * @param dtype: data type + * @param data: pointer to data, if NULL, the data will be allocated + * @return Tensor +*/ +Tensor *NN_tensor(size_t ndim, const size_t *shape, DataType dtype, void *data); + +/** + * Returns a tensor filled with the scalar value 0. + * + * @param ndim: number of dimensions + * @param shape: shape of tensor + * @param dtype: data type + * @return Tensor + */ +Tensor *NN_zeros(size_t ndim, const size_t *shape, DataType dtype); + +/** + * Returns a tensor filled with the scalar value 1. + * + * @param ndim: number of dimensions + * @param shape: shape of tensor + * @param dtype: data type + * @return Tensor + */ +Tensor *NN_ones(size_t ndim, const size_t *shape, DataType dtype); + +/** + * Returns a tensor filled with random numbers from a uniform distribution. + * + * The range of the random number is dependent on the data type: + * - For Float32, the range is [0, 1] + * - For Int8, the range is [0, 255] + * - For Int32, the range is [0, RAND_MAX] + * + * @param ndim: number of dimensions + * @param shape: shape of tensor + * @param dtype: data type + * @return Tensor + */ +Tensor *NN_rand(size_t ndim, const size_t *shape, DataType dtype); + +/** + * Returns this tensor cast to the type of the given tensor. + * + * This is equivalent to NN_copy() if the data types are the same. + * + * @param out: the output tensor + * @param in: the input tensor + */ +void NN_as_type(Tensor *out, Tensor *in); + + +#endif // __NN_TENSOR_CREATION \ No newline at end of file diff --git a/nn/src/nn_transpose.c b/nn/op/nn_transpose.c similarity index 100% rename from nn/src/nn_transpose.c rename to nn/op/nn_transpose.c diff --git a/nn/inc/nn_transpose.h b/nn/op/nn_transpose.h similarity index 93% rename from nn/inc/nn_transpose.h rename to nn/op/nn_transpose.h index bf820c2..6019209 100644 --- a/nn/inc/nn_transpose.h +++ b/nn/op/nn_transpose.h @@ -4,7 +4,7 @@ #include #include "nn_tensor.h" -#include "ops/transpose.h" +#include "transpose.h" /** * Transpose a 2D tensor diff --git a/nn/src/nn_unfold.c b/nn/op/nn_unfold.c similarity index 100% rename from nn/src/nn_unfold.c rename to nn/op/nn_unfold.c diff --git a/nn/inc/nn_unfold.h b/nn/op/nn_unfold.h similarity index 100% rename from nn/inc/nn_unfold.h rename to nn/op/nn_unfold.h diff --git a/nn/inc/rv.h b/nn/op/rv.h similarity index 100% rename from nn/inc/rv.h rename to nn/op/rv.h diff --git a/tests/src/generate_test.py b/tests/src/generate_test.py index 6cf1d7a..873ce17 100644 --- a/tests/src/generate_test.py +++ b/tests/src/generate_test.py @@ -6,6 +6,8 @@ # see if we have a GPU device = torch.device("cuda" if torch.cuda.is_available() else "cpu") +print("Using device: {}".format(device)) + # seed seed = 0 @@ -30,27 +32,27 @@ def rand16(shape): test_pattern = [ - # ("abs", lambda a: torch.abs(a), [("a", rand((7, 7))), ]), - # ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((6, 7))) ]), - # ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((1, 7))) ]), - # ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((6, 1))) ]), - # ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((7, ))) ]), - # ("add_inplace", lambda a, b: a + b, [("actual", torch.zeros((7, 7))), ("b", rand((7, 7))) ]), - # ("add1", lambda a, b: a + b, [("a", rand((7, 7))), ("v", random.random()) ]), - # ("clip", lambda a, v_min, v_max: torch.clip(a, v_min, v_max), [("a", rand((7, 7))), ("v_min", random.random() - 1), ("v_max", random.random())]), - # ("div", lambda a, b: a / b, [("a", rand((7, 7))), ("b", rand((7, 7))) ]), - # ("fill", lambda a, v: a.fill_(v), [("actual", torch.zeros((7, 7))), ("v", random.random()) ]), - # ("matmul_t", lambda a, b: a @ b.T, [("a", rand((6, 7))), ("b", rand((5, 7))) ]), - # ("matmul", lambda a, b: a @ b, [("a", rand((6, 7))), ("b", rand((7, 5))) ]), - # ("max", lambda a: torch.max(a), [("a", rand((7, 7))) ]), - # ("maximum", lambda a, b: torch.maximum(a, b), [("a", rand((7, 7))), ("b", rand((7, 7))) ]), - # ("min", lambda a: torch.min(a), [("a", rand((7, 7))) ]), - # ("minimum", lambda a, b: torch.minimum(a, b), [("a", rand((7, 7))), ("b", rand((7, 7))) ]), - # ("mul", lambda a, b: a * b, [("a", rand((7, 7))), ("b", rand((7, 7))) ]), - # ("mul1", lambda a, b: a * b, [("a", rand((7, 7))), ("v", random.random()) ]), - # ("neg", lambda a: -a, [("a", rand((7, 7))), ]), - # ("sub", lambda a, b: a - b, [("a", rand((7, 7))), ("b", rand((7, 7))) ]), - # ("sum", lambda a: torch.sum(a), [("a", rand((7, 7))), ]), + ("abs", lambda a: torch.abs(a), [("a", rand((7, 7))), ]), + ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((6, 7))) ]), + ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((1, 7))) ]), + ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((6, 1))) ]), + ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((7, ))) ]), + ("add_inplace", lambda a, b: a + b, [("actual", torch.zeros((7, 7))), ("b", rand((7, 7))) ]), + ("add1", lambda a, b: a + b, [("a", rand((7, 7))), ("v", random.random()) ]), + ("clip", lambda a, v_min, v_max: torch.clip(a, v_min, v_max), [("a", rand((7, 7))), ("v_min", random.random() - 1), ("v_max", random.random())]), + ("div", lambda a, b: a / b, [("a", rand((7, 7))), ("b", rand((7, 7))) ]), + ("fill", lambda a, v: a.fill_(v), [("actual", torch.zeros((7, 7))), ("v", random.random()) ]), + ("matmul_t", lambda a, b: a @ b.T, [("a", rand((6, 7))), ("b", rand((5, 7))) ]), + ("matmul", lambda a, b: a @ b, [("a", rand((6, 7))), ("b", rand((7, 5))) ]), + ("max", lambda a: torch.max(a), [("a", rand((7, 7))) ]), + ("maximum", lambda a, b: torch.maximum(a, b), [("a", rand((7, 7))), ("b", rand((7, 7))) ]), + ("min", lambda a: torch.min(a), [("a", rand((7, 7))) ]), + ("minimum", lambda a, b: torch.minimum(a, b), [("a", rand((7, 7))), ("b", rand((7, 7))) ]), + ("mul", lambda a, b: a * b, [("a", rand((7, 7))), ("b", rand((7, 7))) ]), + ("mul1", lambda a, b: a * b, [("a", rand((7, 7))), ("v", random.random()) ]), + ("neg", lambda a: -a, [("a", rand((7, 7))), ]), + ("sub", lambda a, b: a - b, [("a", rand((7, 7))), ("b", rand((7, 7))) ]), + ("sum", lambda a: torch.sum(a), [("a", rand((7, 7))), ]), # ("linear", lambda x, w, b: torch.nn.functional.linear(x, w, b), # [("x", rand((6, 7))), ("w", rand((5, 7))), ("b", rand((1, 5))) ]), @@ -84,7 +86,7 @@ def rand16(shape): # [("x", rand((6, 5))), ("w", rand((6, 5))), ("b", rand((6, 5))) ], # ", 1e-05" ), - # ("abs", lambda a: torch.abs(a), [("a", rand16((1, 4))), ]), + ("abs", lambda a: torch.abs(a), [("a", rand16((1, 44))), ]), ("add", lambda a, b: a + b, [("a", rand16((6, 7))), ("b", rand16((6, 7))) ]), ("matmul_t", lambda a, b: a @ b.T, [("a", rand16((6, 7))), ("b", rand16((5, 7))) ]), ("matmul", lambda a, b: a @ b, [("a", rand16((6, 7))), ("b", rand16((7, 5))) ]), diff --git a/tests/src/generated.c b/tests/src/generated.c index 3d7bb30..6e6dcf3 100644 --- a/tests/src/generated.c +++ b/tests/src/generated.c @@ -13,17 +13,553 @@ int main() { size_t cycles = 0; + { + printf("abs: "); + + // [[-0.0374341 2.682218 -4.115226 -3.6796951 -1.9257718 1.3407868 -0.09 + Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x80,0x54,0x19,0xbd,0x76,0xa9,0x2b,0x40,0xee,0xaf,0x83,0xc0,0x20,0x80,0x6b,0xc0,0xb1,0x7f,0xf6,0xbf,0xe7,0x9e,0xab,0x3f,0x10,0xe3,0xca,0xbd,0x82,0xb9,0x7d,0x40,0x4c,0x2f,0xe3,0xbe,0x1f,0x5a,0xa9,0x3f,0x97,0x6a,0xc1,0xbf,0x8c,0x9a,0x7b,0xbf,0x13,0xdb,0x98,0xc0,0x26,0xee,0x53,0xc0,0x51,0xe9,0x3,0xc0,0xc0,0xa9,0x3d,0x3e,0xb8,0x3,0xfd,0x3f,0xde,0x1,0x40,0x40,0xef,0xf0,0x58,0xc0,0x1e,0x59,0xb,0xc0,0x7e,0x75,0xe8,0x3f,0xb1,0xdc,0x84,0x40,0x4d,0xb6,0x83,0xbf,0xb3,0x75,0x6f,0x40,0x90,0x50,0x4e,0xbf,0x2a,0x71,0x7,0x3f,0x4e,0xe0,0x90,0x40,0x61,0x6d,0x94,0xc0,0xc0,0x73,0x49,0xc0,0x98,0x6,0xa2,0xbf,0xd3,0x78,0xf9,0xbf,0x79,0x3d,0x8a,0x40,0xe0,0x6a,0x4f,0xc0,0x78,0x4e,0x13,0xc0,0xa0,0x90,0x5f,0xc0,0x8a,0xd9,0x95,0xc0,0x5,0xcc,0x3a,0xc0,0x23,0x89,0x89,0x40,0x36,0xca,0xe,0x40,0x60,0x18,0x1b,0x40,0x68,0xa2,0x86,0x3e,0x8,0xf,0x24,0xc0,0x70,0x8e,0x58,0x3f,0x23,0x64,0x95,0xc0,0xa0,0x38,0x67,0xc0,0x38,0xf8,0x24,0xc0,0x70,0xe6,0x49,0x40,0x70,0x9f,0x3b,0x40,0x1d,0xeb,0xd,0xc0 }); + + + // [[0.0374341 2.682218 4.115226 3.6796951 1.9257718 1.3407868 0.0990659 ] + Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x80,0x54,0x19,0x3d,0x76,0xa9,0x2b,0x40,0xee,0xaf,0x83,0x40,0x20,0x80,0x6b,0x40,0xb1,0x7f,0xf6,0x3f,0xe7,0x9e,0xab,0x3f,0x10,0xe3,0xca,0x3d,0x82,0xb9,0x7d,0x40,0x4c,0x2f,0xe3,0x3e,0x1f,0x5a,0xa9,0x3f,0x97,0x6a,0xc1,0x3f,0x8c,0x9a,0x7b,0x3f,0x13,0xdb,0x98,0x40,0x26,0xee,0x53,0x40,0x51,0xe9,0x3,0x40,0xc0,0xa9,0x3d,0x3e,0xb8,0x3,0xfd,0x3f,0xde,0x1,0x40,0x40,0xef,0xf0,0x58,0x40,0x1e,0x59,0xb,0x40,0x7e,0x75,0xe8,0x3f,0xb1,0xdc,0x84,0x40,0x4d,0xb6,0x83,0x3f,0xb3,0x75,0x6f,0x40,0x90,0x50,0x4e,0x3f,0x2a,0x71,0x7,0x3f,0x4e,0xe0,0x90,0x40,0x61,0x6d,0x94,0x40,0xc0,0x73,0x49,0x40,0x98,0x6,0xa2,0x3f,0xd3,0x78,0xf9,0x3f,0x79,0x3d,0x8a,0x40,0xe0,0x6a,0x4f,0x40,0x78,0x4e,0x13,0x40,0xa0,0x90,0x5f,0x40,0x8a,0xd9,0x95,0x40,0x5,0xcc,0x3a,0x40,0x23,0x89,0x89,0x40,0x36,0xca,0xe,0x40,0x60,0x18,0x1b,0x40,0x68,0xa2,0x86,0x3e,0x8,0xf,0x24,0x40,0x70,0x8e,0x58,0x3f,0x23,0x64,0x95,0x40,0xa0,0x38,0x67,0x40,0x38,0xf8,0x24,0x40,0x70,0xe6,0x49,0x40,0x70,0x9f,0x3b,0x40,0x1d,0xeb,0xd,0x40 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_abs(actual, a); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(a); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("add: "); + + // [[-0.18041193 3.1978035 4.9706655 1.9844109 0.6754643 3.3524318 -2.94 + Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0xe8,0xbd,0x38,0xbe,0xd0,0xa8,0x4c,0x40,0xb1,0xf,0x9f,0x40,0x2d,0x1,0xfe,0x3f,0x3a,0xeb,0x2c,0x3f,0x3e,0x8e,0x56,0x40,0xb0,0x6a,0x3c,0xc0,0x36,0x85,0x6e,0x3f,0x7,0x19,0x78,0xc0,0x9e,0xc9,0x5d,0xc0,0x86,0x4e,0x25,0xc0,0x98,0xca,0x10,0x40,0xfb,0xb0,0x0,0x40,0x84,0x8d,0x3d,0xc0,0x3a,0x59,0xc1,0x3f,0xca,0xab,0x2f,0x40,0xe8,0x8e,0x21,0xbf,0x50,0x7d,0x43,0x3e,0x80,0x4a,0x94,0x3f,0x40,0x85,0x46,0x40,0x8d,0xa1,0x99,0x40,0x7c,0x99,0x76,0xc0,0x67,0x8a,0xea,0xbf,0xbe,0x86,0xfb,0x3f,0x62,0x91,0x84,0x40,0xb1,0x3b,0x8b,0x40,0x55,0x2d,0x8d,0x40,0x16,0xbd,0x7e,0x3f,0x1b,0x22,0x8b,0xc0,0x34,0x80,0xeb,0x3e,0x97,0x31,0x48,0xc0,0xd8,0x1c,0x95,0xc0,0xa7,0x28,0x8e,0x40,0xac,0x50,0x73,0x40,0xbf,0x9a,0x9f,0xc0,0x8a,0x94,0x6f,0x3f,0xfa,0xa0,0x57,0xbf,0x66,0xa3,0x52,0xbf,0x72,0x7b,0x12,0xc0,0xaf,0x1d,0xf6,0x3f,0x81,0x89,0x3d,0xc0,0x53,0x9e,0xea,0x3f }); + // [[ 2.5285406 3.5793579 1.8695557 -4.948676 -3.2434845 2.496575 1.046 + Tensor *b = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0x9c,0xd3,0x21,0x40,0x33,0x14,0x65,0x40,0x9a,0x4d,0xef,0x3f,0x8e,0x5b,0x9e,0xc0,0x40,0x95,0x4f,0xc0,0xe3,0xc7,0x1f,0x40,0xef,0xf3,0x85,0x3f,0x7c,0xa0,0x79,0xc0,0x22,0x43,0x38,0xc0,0x17,0x85,0x96,0x40,0x29,0x9f,0x57,0x40,0x2e,0x87,0xb,0xc0,0x9,0x14,0xa1,0xbf,0x6b,0x6a,0x98,0xc0,0x20,0xe,0xb8,0xbd,0x96,0xfa,0x70,0xc0,0x8a,0xd5,0x76,0xc0,0x14,0xe,0x8d,0xbe,0x88,0x2f,0x40,0x3f,0xb8,0xc,0x3,0xc0,0x7e,0xe1,0x3d,0x40,0x86,0xbb,0x42,0xc0,0xe1,0x2d,0x91,0x40,0xc4,0x4b,0x5b,0x40,0xde,0xec,0x86,0xc0,0x35,0x49,0x9f,0xbf,0x20,0x7,0x67,0x3e,0xde,0xc0,0x3a,0x3f,0xa2,0xca,0x97,0x3f,0x73,0x27,0xfb,0x3f,0x2c,0x58,0x99,0x3e,0x20,0x23,0x1c,0xc0,0xa4,0x6b,0x17,0x40,0xd6,0x7a,0x99,0xc0,0x88,0xaa,0x3d,0xc0,0xb,0x36,0xa0,0xbf,0x54,0xe0,0x1b,0xc0,0xb3,0xe4,0xdf,0xbf,0xb4,0x23,0x83,0xc0,0x40,0x23,0x88,0xbf,0xdb,0xcd,0x88,0x3f,0x14,0x78,0x50,0xc0 }); + + + // [[ 2.3481288 6.7771616 6.8402214 -2.9642653 -2.5680203 5.8490067 -1.89 + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0xbe,0x47,0x16,0x40,0x82,0xde,0xd8,0x40,0x18,0xe3,0xda,0x40,0x86,0xb6,0x3d,0xc0,0x72,0x5a,0x24,0xc0,0x10,0x2b,0xbb,0x40,0x71,0xe1,0xf2,0xbf,0x2e,0xff,0x3d,0xc0,0x14,0x2e,0xd8,0xc0,0x20,0x81,0x9e,0x3f,0x8c,0x42,0x49,0x3f,0x40,0x6d,0xa8,0x3d,0xda,0x9b,0x40,0x3f,0x2d,0x31,0xf7,0xc0,0x58,0xd8,0xb5,0x3f,0x98,0x9d,0x82,0xbf,0xa2,0x9c,0x8f,0xc0,0xb0,0x3d,0xad,0xbd,0x44,0x62,0xf4,0x3f,0x10,0xf1,0x86,0x3f,0x4c,0x92,0xf8,0x40,0x81,0xaa,0xdc,0xc0,0x8e,0x16,0x2d,0x40,0x92,0x87,0xac,0x40,0x0,0xdf,0x96,0xbd,0xc8,0xd2,0x46,0x40,0x8e,0x65,0x94,0x40,0xfa,0xbe,0xdc,0x3f,0xe5,0x5e,0x4a,0xc0,0xc0,0x3,0x1b,0x40,0x92,0x6,0x35,0xc0,0x68,0x2e,0xe3,0xc0,0x79,0xde,0xd9,0x40,0x0,0x94,0x7e,0xbf,0x3,0x70,0xfe,0xc0,0x18,0xaf,0xa1,0xbe,0x92,0xc8,0x51,0xc0,0x33,0x9b,0x24,0xc0,0x6d,0x61,0xcc,0xc0,0xde,0xf4,0x5b,0x3f,0x27,0x45,0xf2,0xbf,0xd5,0x51,0xb6,0xbf }); + Tensor *actual = NN_zeros(2, (size_t[]){ 6, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_add(actual, a, b); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(a); + NN_delete_tensor(b); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("add: "); + + // [[-0.2565968 3.5792542 -0.51400125 0.13896108 -0.4313445 1.0119069 3.17 + Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0xa8,0x60,0x83,0xbe,0x80,0x12,0x65,0x40,0x96,0x95,0x3,0xbf,0xd0,0x4b,0xe,0x3e,0x30,0xd9,0xdc,0xbe,0x2a,0x86,0x81,0x3f,0xf8,0x77,0x4b,0x40,0x34,0x8f,0x97,0x40,0xc8,0x37,0x4b,0x40,0xfa,0xe7,0x97,0x40,0xb8,0x24,0xb9,0xbe,0x40,0xbb,0x8f,0xc0,0x68,0xb4,0x17,0xc0,0xc2,0xe3,0x59,0x40,0xe0,0xc2,0x4,0xbd,0xa,0xe,0x1f,0xc0,0x42,0x38,0x75,0xc0,0x80,0xbc,0x95,0xc0,0x94,0xa,0x87,0xc0,0xc6,0xd0,0x81,0xbf,0x6c,0x7d,0x2f,0x40,0x51,0x1,0x2d,0x40,0x21,0x4f,0x9a,0xc0,0x3a,0x9c,0x47,0x40,0x2c,0x67,0x7a,0xc0,0x76,0x4d,0x87,0xbf,0x52,0xc0,0x1,0xc0,0x2c,0x8c,0x76,0xbf,0x94,0x51,0x7b,0xbf,0x74,0x93,0x8f,0xc0,0x6a,0x26,0x8a,0xc0,0x32,0x4b,0x48,0xbf,0xf0,0x6c,0x84,0x3d,0x33,0x5e,0x11,0xc0,0x66,0x16,0xf1,0x3f,0x64,0x2,0x90,0xc0,0x70,0xc4,0xac,0xbe,0x5,0xb5,0x8c,0x40,0x83,0x86,0x2,0xc0,0x2,0x7b,0x90,0x40,0x46,0xc7,0xe7,0x3f,0xcd,0x64,0x90,0xc0 }); + // [[ 3.1634867 -0.57697237 -2.2320342 3.9982665 -4.040476 0.53652465 -1.0 + Tensor *b = NN_tensor(2, (size_t[]){ 1, 7 }, DTYPE_F32, (uint8_t[]){ 0x91,0x76,0x4a,0x40,0x76,0xb4,0x13,0xbf,0xa6,0xd9,0xe,0xc0,0x99,0xe3,0x7f,0x40,0x94,0x4b,0x81,0xc0,0xae,0x59,0x9,0x3f,0xf8,0xfe,0x85,0xbf }); + + + // [[ 2.90689 3.0022817 -2.7460356 4.1372275 -4.4718204 1.5484315 2.13 + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0x7c,0xa,0x3a,0x40,0x62,0x25,0x40,0x40,0xc,0xbf,0x2f,0xc0,0x2b,0x64,0x84,0x40,0x27,0x19,0x8f,0xc0,0x1,0x33,0xc6,0x3f,0x7c,0x78,0x8,0x40,0x7c,0xca,0xfc,0x40,0xaa,0x4a,0x26,0x40,0x4e,0xf6,0x20,0x40,0x2,0xbf,0x68,0x40,0x6a,0x83,0x8,0xc1,0xf9,0xbb,0xea,0xbf,0x46,0xe4,0x16,0x40,0x86,0x63,0x48,0x40,0x28,0xfb,0x43,0xc0,0xf4,0x8,0xc2,0xc0,0x9c,0x55,0x2e,0xbf,0x14,0x2b,0x4,0xc1,0xbc,0x8f,0xf4,0xbe,0xe0,0xfb,0xd8,0x3f,0xf1,0xbb,0xbb,0x40,0xb0,0xc5,0xac,0xc0,0x50,0xa,0x63,0x3f,0xa0,0x8d,0xaf,0x3d,0xf2,0x1e,0xa3,0xc0,0xcd,0xd3,0xbe,0xbf,0x87,0xa2,0x0,0xc0,0x2c,0xa2,0xb,0x40,0x3,0xa,0xa2,0xc0,0x3d,0x93,0xd1,0xc0,0xcc,0xd0,0x4d,0x40,0xc0,0x73,0x7e,0xc0,0x8f,0xf,0xde,0xbf,0xdc,0x2e,0x56,0x3f,0x6e,0x1c,0xab,0xbf,0xae,0x16,0x6a,0xbf,0x64,0x90,0xa,0x40,0x2c,0xba,0xfa,0x3f,0xe0,0xf6,0xf2,0x3e,0xe,0x3a,0x16,0x40,0x8b,0xe4,0xb1,0xc0 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 6, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_add(actual, a, b); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(a); + NN_delete_tensor(b); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("add: "); + + // [[ 3.5705633 1.3957226 2.4025269 1.7657948 -1.2023735 -1.0515273 -4.12 + Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0x1c,0x84,0x64,0x40,0xa,0xa7,0xb2,0x3f,0x0,0xc3,0x19,0x40,0x90,0x5,0xe2,0x3f,0x60,0xe7,0x99,0xbf,0x72,0x98,0x86,0xbf,0x60,0xda,0x83,0xc0,0xdf,0x63,0x2d,0x40,0xb0,0x12,0x7e,0x40,0xb3,0xf3,0x5a,0x40,0x97,0xb8,0x61,0xc0,0xf8,0x59,0x64,0x3e,0x34,0x94,0x61,0xc0,0xaa,0x27,0x30,0xc0,0x3c,0x77,0x3a,0xc0,0x81,0xb7,0xda,0x3f,0x35,0xb1,0x3e,0xc0,0x80,0x68,0xdf,0xbd,0x88,0x63,0x57,0x3e,0x85,0x47,0x4e,0x40,0xf8,0xe4,0x71,0xc0,0x15,0xaf,0x5b,0xc0,0xcb,0xcf,0x39,0xc0,0x8c,0xfa,0x5f,0x40,0xbf,0xe,0xe6,0xbf,0x4c,0xf5,0x86,0x40,0xc8,0x6d,0xe7,0x3f,0xd0,0x14,0x22,0x3f,0x20,0x74,0x18,0xbd,0x4a,0x8,0x7d,0xbf,0xd0,0x98,0x20,0x3f,0xfe,0x23,0x92,0xbf,0xc0,0xe6,0xf,0xbd,0xb0,0x51,0x23,0x3f,0x3e,0x4e,0x7a,0xc0,0xd8,0xb8,0x27,0xc0,0xe7,0x32,0x81,0x40,0xf4,0xd8,0x81,0xc0,0xe8,0xd2,0xb7,0xbe,0x38,0x47,0x9e,0x40,0x14,0x31,0xe7,0x3f,0x78,0xf6,0x10,0x3e }); + // [[-4.33305 ] [ 2.4768896] [-3.5614038] [-1.4193213] [-1.6775817] [-0.74043 + Tensor *b = NN_tensor(2, (size_t[]){ 6, 1 }, DTYPE_F32, (uint8_t[]){ 0x58,0xa8,0x8a,0xc0,0x5c,0x85,0x1e,0x40,0xa,0xee,0x63,0xc0,0x52,0xac,0xb5,0xbf,0xff,0xba,0xd6,0xbf,0x46,0x8d,0x3d,0xbf }); + + + // [[-0.76248646 -2.9373271 -1.9305229 -2.567255 -5.5354233 -5.384577 -8.453 + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0x50,0x32,0x43,0xbf,0x2b,0xfd,0x3b,0xc0,0x60,0x1b,0xf7,0xbf,0xe8,0x4d,0x24,0xc0,0x30,0x22,0xb1,0xc0,0x74,0x4e,0xac,0xc0,0x5c,0x41,0x7,0xc1,0x9e,0xf4,0xa5,0x40,0x6,0x4c,0xce,0x40,0x88,0xbc,0xbc,0x40,0x76,0x66,0x86,0xbf,0xfc,0xca,0x2c,0x40,0xb0,0x1d,0x86,0xbf,0x70,0x12,0x8d,0xbe,0xa3,0x32,0xcf,0xc0,0x93,0x24,0xed,0xbf,0xa0,0x4f,0xd1,0xc0,0x4e,0xe9,0x6a,0xc0,0xd2,0x77,0x56,0xc0,0x28,0x34,0xad,0xbe,0x81,0xe9,0xea,0xc0,0x9f,0x42,0x9b,0xc0,0xfa,0x52,0x8a,0xc0,0x63,0x24,0x5,0x40,0x88,0xdd,0x4d,0xc0,0x6f,0x14,0x33,0x40,0xd8,0x5,0xc7,0x3e,0xd4,0x43,0x49,0xbf,0xa0,0x7e,0xdb,0xbf,0x92,0x9f,0x2a,0xc0,0x97,0x6e,0x86,0xbf,0x7e,0x6f,0x34,0xc0,0x35,0x3a,0xdb,0xbf,0x27,0x12,0x85,0xbf,0xdf,0xd5,0xb2,0xc0,0x2a,0x1c,0x57,0xc0,0x7c,0x2,0x53,0x40,0x9d,0x8a,0x99,0xc0,0x5d,0xbb,0x8c,0xbf,0x8f,0x95,0x86,0x40,0x71,0x6a,0x88,0x3f,0xa8,0x4f,0x19,0xbf }); + Tensor *actual = NN_zeros(2, (size_t[]){ 6, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_add(actual, a, b); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(a); + NN_delete_tensor(b); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("add: "); + + // [[ 0.05469143 4.1240377 0.62419415 4.478464 3.0585623 -3.1610699 2.24 + Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0x20,0x4,0x60,0x3d,0x1e,0xf8,0x83,0x40,0x30,0xcb,0x1f,0x3f,0x94,0x4f,0x8f,0x40,0x7c,0xbf,0x43,0x40,0xf8,0x4e,0x4a,0xc0,0x74,0x85,0xf,0x40,0xed,0x34,0x62,0xc0,0xc2,0x9f,0x7,0xc0,0x10,0x3d,0xbc,0x3f,0xac,0x52,0xd3,0x3f,0xae,0x12,0x70,0x40,0xb2,0x6,0xce,0xbf,0x80,0x24,0x3,0x3c,0x58,0xbe,0x24,0x40,0x18,0xbc,0x9a,0xc0,0x92,0x5a,0x67,0x40,0xbe,0x4e,0x84,0xc0,0x0,0x22,0x8d,0x3d,0x18,0x9f,0x59,0xbf,0xc,0x89,0x28,0xc0,0xce,0x2d,0x29,0x3f,0x97,0x4e,0x84,0x40,0xa2,0x15,0xbb,0xbf,0x6c,0xfb,0x3d,0xc0,0x65,0xb2,0xec,0xbf,0x70,0x95,0x9e,0xc0,0x32,0x72,0x10,0x40,0x34,0xaf,0x19,0xc0,0x84,0x8c,0x55,0xc0,0x3a,0x5a,0x38,0xc0,0x66,0xfc,0x37,0x40,0xad,0x76,0x29,0x40,0x64,0x9b,0x75,0x40,0x8e,0x24,0xe8,0x3f,0xf5,0xbb,0xd5,0xbf,0xc9,0xd8,0xb2,0xbf,0x3e,0x13,0xbd,0x3f,0x8b,0x86,0x83,0x40,0xd1,0x2,0xae,0x3f,0x12,0x68,0x17,0xc0,0xbe,0x6c,0x16,0xc0 }); + // [-4.727345 1.08024 -2.8059125 -4.457879 4.3843822 -3.247056 -0.5688077] + Tensor *b = NN_tensor(1, (size_t[]){ 7 }, DTYPE_F32, (uint8_t[]){ 0x69,0x46,0x97,0xc0,0x4e,0x45,0x8a,0x3f,0x12,0x94,0x33,0xc0,0xf2,0xa6,0x8e,0xc0,0xdc,0x4c,0x8c,0x40,0xc4,0xcf,0x4f,0xc0,0x62,0x9d,0x11,0xbf }); + + + // [[-4.6726537 5.204278 -2.1817183 0.02058506 7.4429445 -6.408126 1.673 + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0x61,0x86,0x95,0xc0,0x72,0x89,0xa6,0x40,0x46,0xa1,0xb,0xc0,0x0,0xa2,0xa8,0x3c,0x9a,0x2c,0xee,0x40,0x5e,0xf,0xcd,0xc0,0x37,0x3c,0xd6,0x3f,0x70,0x30,0x4,0xc1,0x36,0xfa,0x84,0xbf,0x14,0xeb,0xaa,0xbf,0x8e,0xa4,0x33,0xc0,0x1a,0x2b,0x2,0x41,0x8e,0x69,0x9b,0xc0,0xd0,0x90,0xf,0xbf,0x7a,0xce,0x9,0xc0,0x89,0x55,0x70,0xc0,0x0,0x1a,0x4f,0x3f,0xd8,0x7a,0x9,0xc1,0x64,0x81,0x8e,0x40,0xc5,0x1b,0x83,0xc0,0x64,0xf0,0x4c,0xc0,0xaf,0x20,0x82,0xc0,0xea,0xdf,0xa6,0x40,0x72,0x8f,0x88,0xc0,0xa8,0xa4,0xed,0xc0,0x86,0x40,0x22,0x40,0xa9,0x3e,0x3,0xc1,0xb3,0x15,0xd8,0x3f,0x3,0x1e,0xe4,0xc0,0xdd,0x69,0x10,0xc0,0x26,0xf7,0xb5,0xc0,0xfc,0xa2,0xca,0xbf,0x32,0x8,0xe1,0x40,0x80,0x2e,0x17,0x3f,0xdd,0x55,0x9f,0x3f,0x66,0xb5,0xcc,0xc0,0xec,0x4d,0xa2,0xbe,0xe6,0x14,0xaa,0xbf,0x70,0x6,0xb2,0xbe,0x90,0xcd,0xb7,0x40,0xeb,0x9b,0xb3,0xc0,0x16,0xd4,0x3a,0xc0 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 6, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_add(actual, a, b); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(a); + NN_delete_tensor(b); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("add_inplace: "); + + // [[ 1.4324677 0.15929163 -3.3644085 -4.041609 3.9854121 0.8141935 4.14 + Tensor *b = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x1a,0x5b,0xb7,0x3f,0x58,0x1d,0x23,0x3e,0x78,0x52,0x57,0xc0,0xdc,0x54,0x81,0xc0,0xfe,0x10,0x7f,0x40,0xfc,0x6e,0x50,0x3f,0x6c,0xbd,0x84,0x40,0xd2,0x8d,0xd6,0xbf,0xf6,0x83,0xbc,0x3f,0x4f,0x5a,0x92,0xbf,0x38,0xb1,0x63,0xbe,0xe6,0xe4,0x42,0xc0,0xd7,0x72,0xd8,0x3f,0xa0,0x58,0xca,0x3f,0x90,0x3c,0xd3,0xbd,0xf8,0xef,0x8f,0xbf,0xee,0x41,0x45,0xc0,0x59,0x4b,0x5d,0x40,0x39,0x37,0x6e,0xc0,0xcc,0x17,0x3,0x40,0xc7,0x33,0xd7,0xbf,0xc8,0x63,0x1a,0xc0,0x18,0xf2,0x65,0x3f,0xea,0x39,0x26,0xc0,0x88,0x75,0x93,0x3f,0x14,0x5e,0x7b,0x3f,0xbc,0x98,0x6d,0xc0,0x3e,0x1e,0x55,0x3f,0x1e,0x4c,0x8,0x40,0xf3,0x54,0xfd,0x3f,0xee,0x1f,0x21,0xbf,0x80,0x2a,0x83,0xc0,0x34,0x51,0x45,0xbf,0xe4,0x46,0xde,0x3f,0x77,0x85,0xe9,0xbf,0x91,0xee,0xf2,0x3f,0xa8,0x1b,0x55,0x40,0xa8,0x16,0x27,0xc0,0x60,0xf8,0x49,0x3d,0xd6,0x51,0x4,0x40,0xb4,0xa5,0xc8,0x3e,0x34,0xd7,0xd5,0x3e,0xe6,0xd3,0x1f,0x3f,0x38,0x91,0x7b,0xc0,0x98,0x2f,0xc9,0x3e,0x21,0x97,0x5d,0x40,0x9e,0x2d,0x90,0x40,0x8e,0x14,0x3c,0x40,0x1e,0x86,0x2b,0x3f }); + + + // [[ 1.4324677 0.15929163 -3.3644085 -4.041609 3.9854121 0.8141935 4.14 + Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x1a,0x5b,0xb7,0x3f,0x58,0x1d,0x23,0x3e,0x78,0x52,0x57,0xc0,0xdc,0x54,0x81,0xc0,0xfe,0x10,0x7f,0x40,0xfc,0x6e,0x50,0x3f,0x6c,0xbd,0x84,0x40,0xd2,0x8d,0xd6,0xbf,0xf6,0x83,0xbc,0x3f,0x4f,0x5a,0x92,0xbf,0x38,0xb1,0x63,0xbe,0xe6,0xe4,0x42,0xc0,0xd7,0x72,0xd8,0x3f,0xa0,0x58,0xca,0x3f,0x90,0x3c,0xd3,0xbd,0xf8,0xef,0x8f,0xbf,0xee,0x41,0x45,0xc0,0x59,0x4b,0x5d,0x40,0x39,0x37,0x6e,0xc0,0xcc,0x17,0x3,0x40,0xc7,0x33,0xd7,0xbf,0xc8,0x63,0x1a,0xc0,0x18,0xf2,0x65,0x3f,0xea,0x39,0x26,0xc0,0x88,0x75,0x93,0x3f,0x14,0x5e,0x7b,0x3f,0xbc,0x98,0x6d,0xc0,0x3e,0x1e,0x55,0x3f,0x1e,0x4c,0x8,0x40,0xf3,0x54,0xfd,0x3f,0xee,0x1f,0x21,0xbf,0x80,0x2a,0x83,0xc0,0x34,0x51,0x45,0xbf,0xe4,0x46,0xde,0x3f,0x77,0x85,0xe9,0xbf,0x91,0xee,0xf2,0x3f,0xa8,0x1b,0x55,0x40,0xa8,0x16,0x27,0xc0,0x60,0xf8,0x49,0x3d,0xd6,0x51,0x4,0x40,0xb4,0xa5,0xc8,0x3e,0x34,0xd7,0xd5,0x3e,0xe6,0xd3,0x1f,0x3f,0x38,0x91,0x7b,0xc0,0x98,0x2f,0xc9,0x3e,0x21,0x97,0x5d,0x40,0x9e,0x2d,0x90,0x40,0x8e,0x14,0x3c,0x40,0x1e,0x86,0x2b,0x3f }); + Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_add_inplace(actual, b); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(b); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("add1: "); + + // [[ 2.335071 -2.4323983 -4.143442 -4.2996054 4.9880486 3.1739469 -3.45 + Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xce,0x71,0x15,0x40,0x6a,0xac,0x1b,0xc0,0x14,0x97,0x84,0xc0,0x5e,0x96,0x89,0xc0,0x18,0x9e,0x9f,0x40,0xf2,0x21,0x4b,0x40,0xde,0x31,0x5d,0xc0,0x31,0x65,0xfa,0x3f,0x54,0xa7,0x71,0x40,0x39,0xf0,0x9f,0x40,0x37,0xe7,0x8b,0x40,0xd5,0xeb,0x77,0x40,0xd6,0xb9,0x92,0xbf,0x48,0x9a,0xe0,0xbf,0x29,0x5e,0x83,0x40,0x4c,0x52,0x33,0x40,0xbc,0x91,0x40,0xc0,0xbf,0xd7,0x8f,0x40,0x5a,0x9c,0x1a,0x40,0x80,0x71,0x2e,0x40,0x84,0x91,0x48,0xc0,0xaa,0x9d,0xb7,0x3f,0x27,0x5c,0xe0,0xbf,0xbb,0x8,0x7a,0x40,0xee,0x52,0x66,0xbf,0xf6,0x28,0xf9,0x3f,0x20,0x5b,0x63,0x3f,0x5b,0x26,0x8,0x40,0x58,0x7d,0xd9,0xbf,0xd8,0x5,0x1c,0x40,0xbe,0x82,0x5f,0xc0,0x15,0x8c,0x90,0x3f,0x68,0x82,0x58,0xc0,0x94,0xd8,0x9d,0xc0,0x2a,0x7d,0x80,0xc0,0x64,0xa1,0x7c,0x40,0xa4,0x21,0x2d,0x40,0x51,0x1d,0x96,0x40,0xed,0x2d,0x80,0x40,0x24,0xe3,0x8e,0xc0,0xc2,0x60,0x5a,0xc0,0x62,0xd3,0x4e,0xbf,0x7e,0xd1,0x4f,0xc0,0xf6,0x34,0x5e,0x40,0x28,0xec,0x71,0xc0,0xe3,0x20,0x1c,0xc0,0x1a,0x93,0x9a,0xc0,0xb8,0xad,0x35,0xc0,0xad,0x98,0x83,0x40 });float v = 0.8444218515250481; + + + // [[ 3.179493 -1.5879765 -3.2990203 -3.4551835 5.8324704 4.0183687 -2.61 + Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xd0,0x7c,0x4b,0x40,0xd0,0x42,0xcb,0xbf,0x26,0x23,0x53,0xc0,0xba,0x21,0x5d,0xc0,0x99,0xa3,0xba,0x40,0x7a,0x96,0x80,0x40,0xdc,0x26,0x27,0xc0,0x9a,0x3d,0x33,0x40,0x2b,0xd9,0x93,0x40,0xba,0xf5,0xba,0x40,0xb8,0xec,0xa6,0x40,0x6c,0xfb,0x96,0x40,0x48,0x8f,0x9a,0xbe,0x88,0x8,0x69,0xbf,0xaa,0x63,0x9e,0x40,0x4e,0x5d,0x69,0x40,0xba,0x86,0xa,0xc0,0x40,0xdd,0xaa,0x40,0x5c,0xa7,0x50,0x40,0x82,0x7c,0x64,0x40,0x82,0x86,0x12,0xc0,0xd7,0xd9,0x11,0x40,0x46,0x8c,0x68,0xbf,0xde,0x9,0x98,0x40,0x60,0x6e,0x62,0xbd,0x7d,0x9f,0x32,0x40,0x94,0xc3,0xdd,0x3f,0x5d,0x31,0x3e,0x40,0xa8,0xce,0x5a,0xbf,0xda,0x10,0x52,0x40,0xbc,0x77,0x29,0xc0,0x19,0xa2,0xfc,0x3f,0x66,0x77,0x22,0xc0,0x13,0xd3,0x82,0xc0,0x52,0xef,0x4a,0xc0,0x33,0x56,0x99,0x40,0xa6,0x2c,0x63,0x40,0xd2,0x22,0xb1,0x40,0x6e,0x33,0x9b,0x40,0x46,0xbb,0x67,0xc0,0xc0,0x55,0x24,0xc0,0x60,0x8a,0x15,0x3d,0x7c,0xc6,0x19,0xc0,0xfc,0x1f,0x8a,0x40,0x26,0xe1,0x3b,0xc0,0xc2,0x2b,0xcc,0xbf,0x32,0x1b,0x7f,0xc0,0x6c,0x45,0xff,0xbf,0x2e,0x9e,0x9e,0x40 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_add1(actual, a, v); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(a); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("clip: "); + + // [[ 4.0938 3.5791886 3.8606362 4.4459324 -1.2803149 2.2000103 4.45 + Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x69,0x0,0x83,0x40,0x6d,0x11,0x65,0x40,0xaa,0x14,0x77,0x40,0x14,0x45,0x8e,0x40,0x5c,0xe1,0xa3,0xbf,0xf8,0xcc,0xc,0x40,0x82,0x8c,0x8e,0x40,0x59,0xb9,0xd3,0x3f,0xbe,0xf2,0x9f,0x40,0xde,0xf8,0x25,0x40,0x6e,0xed,0x46,0x40,0xb7,0xfe,0xdf,0xbf,0x78,0x8b,0x19,0x40,0x94,0x14,0x13,0x3f,0xd5,0xd7,0x98,0xbf,0x1c,0x63,0x34,0xc0,0xac,0x8e,0x33,0xc0,0xde,0x3b,0x76,0xc0,0x62,0xd3,0x56,0x40,0x7c,0x7f,0x63,0x40,0x24,0xae,0x11,0xbf,0xf5,0x2d,0x39,0xc0,0x6a,0x54,0x77,0x40,0xef,0xa2,0x4c,0x40,0x8c,0x4b,0xbe,0x3e,0x53,0x15,0x17,0xc0,0x33,0xc,0x93,0x40,0x6c,0xdc,0x2,0x40,0x30,0xed,0x72,0xc0,0x1d,0x22,0x99,0x40,0xe6,0xff,0x72,0x40,0x2f,0x46,0xe9,0xbf,0xb3,0xe3,0x33,0x40,0xc,0xd2,0x35,0xc0,0x26,0x98,0x48,0xbf,0x2f,0xdb,0x87,0x40,0xd0,0x8d,0x53,0x3e,0x50,0x4f,0x62,0xc0,0xb9,0xe8,0xd5,0xbf,0x93,0xb9,0xad,0xbf,0xe8,0xf2,0x76,0xbf,0x5c,0xfe,0xf4,0x3e,0x5,0xf9,0x93,0x40,0x34,0x10,0x89,0x3e,0xaf,0x94,0x45,0xc0,0x0,0x36,0x83,0x3e,0x97,0x6f,0x19,0x40,0x9e,0xbb,0x1e,0x40,0xec,0x3a,0x92,0xc0 });float v_min = -0.24204559705969753;float v_max = 0.420571580830845; + + + // [[ 0.4205716 0.4205716 0.4205716 0.4205716 -0.2420456 0.4205716 0.42 + Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0xcd,0xda,0x77,0xbe,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0xcd,0xda,0x77,0xbe,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0xcd,0xda,0x77,0xbe,0xcd,0xda,0x77,0xbe,0xcd,0xda,0x77,0xbe,0xcd,0xda,0x77,0xbe,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0xcd,0xda,0x77,0xbe,0xcd,0xda,0x77,0xbe,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0x8c,0x4b,0xbe,0x3e,0xcd,0xda,0x77,0xbe,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0xcd,0xda,0x77,0xbe,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0xcd,0xda,0x77,0xbe,0x29,0x55,0xd7,0x3e,0xcd,0xda,0x77,0xbe,0xcd,0xda,0x77,0xbe,0x29,0x55,0xd7,0x3e,0xd0,0x8d,0x53,0x3e,0xcd,0xda,0x77,0xbe,0xcd,0xda,0x77,0xbe,0xcd,0xda,0x77,0xbe,0xcd,0xda,0x77,0xbe,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0x34,0x10,0x89,0x3e,0xcd,0xda,0x77,0xbe,0x0,0x36,0x83,0x3e,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0xcd,0xda,0x77,0xbe }); + Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_clip(actual, a, v_min, v_max); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(a); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("div: "); + + // [[-0.8947122 -3.7157226 -2.1334279 1.801467 -3.550651 1.8586344 4.24 + Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xdc,0xb,0x65,0xbf,0x66,0xce,0x6d,0xc0,0x15,0x8a,0x8,0xc0,0x78,0x96,0xe6,0x3f,0xde,0x3d,0x63,0xc0,0xbb,0xe7,0xed,0x3f,0xf4,0xcd,0x87,0x40,0xfc,0xe7,0xa7,0x3e,0xac,0x46,0x55,0xc0,0x68,0x4d,0xe5,0xbf,0xc7,0xc0,0x8b,0x3f,0x18,0xf1,0x73,0xc0,0xb4,0xfa,0x1e,0x40,0x56,0x42,0x91,0xc0,0x93,0xce,0x99,0xc0,0x38,0x77,0x9b,0xc0,0x21,0xd5,0x81,0xbf,0xb4,0x2d,0x57,0x40,0xc7,0x6f,0x97,0xc0,0x6d,0xfd,0x84,0x40,0xe0,0x1,0x0,0xc0,0x22,0x72,0xbb,0x3f,0xa8,0x7c,0x69,0x3e,0x6a,0x46,0x90,0xc0,0x51,0xb1,0x84,0x40,0x4a,0x4d,0x2c,0x40,0x10,0xa,0x9f,0x40,0xfc,0xaa,0x21,0x40,0xda,0x38,0x53,0xc0,0x8d,0x88,0x85,0x40,0xf4,0x95,0x89,0x3e,0xd0,0xbf,0x17,0x40,0xec,0x4a,0x80,0xc0,0xba,0x14,0xb8,0xbf,0xb4,0x19,0x9d,0xc0,0x74,0x46,0xf9,0xbf,0x64,0x11,0x8a,0x3f,0x73,0x40,0x7b,0xc0,0x54,0x2,0xcc,0x3f,0x37,0xc7,0x2b,0x40,0xde,0x50,0x32,0x3f,0x4f,0x1b,0x56,0xc0,0x30,0x1a,0x78,0xc0,0x5d,0x73,0xc5,0xbf,0x74,0x77,0xc,0x40,0xcc,0xd2,0x9d,0x40,0x60,0x2,0x38,0x40,0xce,0x23,0x10,0xbf,0x0,0x65,0xe0,0x3f }); + // [[-4.9053144 -4.2705064 2.3330398 -2.832076 2.4054785 -3.5296607 -2.47 + Tensor *b = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x56,0xf8,0x9c,0xc0,0xfd,0xa7,0x88,0xc0,0x86,0x50,0x15,0x40,0xbc,0x40,0x35,0xc0,0x5c,0xf3,0x19,0x40,0xf6,0xe5,0x61,0xc0,0xde,0x7f,0x1e,0xc0,0x4d,0xca,0x83,0xc0,0x30,0xfd,0x26,0x40,0xfc,0x6c,0x2,0xbf,0xb9,0x45,0x76,0x40,0x2,0xa,0x46,0x40,0xd3,0x11,0x31,0x40,0xa8,0xa3,0x24,0x3e,0xb9,0xdf,0xc5,0xbf,0x1,0x28,0x8b,0xbf,0xde,0x1c,0x2a,0x3f,0x86,0xa0,0x1e,0x40,0x53,0x30,0x60,0xc0,0xd2,0x48,0x86,0x40,0xac,0x2c,0xb,0xbf,0x40,0x12,0x86,0xc0,0x75,0x23,0x2d,0xc0,0x22,0x92,0x8d,0x40,0x8,0x53,0x92,0x40,0x6a,0x34,0x94,0xc0,0xa,0xb2,0x61,0x40,0xf6,0x5e,0x20,0x40,0xf6,0x69,0x3d,0x40,0xd6,0x71,0x87,0x40,0xd0,0x76,0x2c,0xc0,0xb3,0x18,0xca,0x3f,0x62,0xf4,0x2,0x40,0xa2,0x1d,0xbd,0xbf,0x92,0x2d,0xd6,0x3f,0xf7,0x22,0xb8,0xbf,0xf8,0xd7,0x45,0x40,0x2a,0x92,0xb1,0xbf,0xd9,0x96,0xee,0xbf,0x90,0x1e,0xa1,0x3f,0x2,0x1,0xe3,0x3f,0xca,0x57,0x1c,0xc0,0xbc,0x4c,0xe2,0x3e,0x91,0x73,0x39,0x40,0x2c,0xb6,0xfe,0xbe,0x12,0xc6,0xc2,0x3f,0x13,0x5c,0x9a,0xbf,0xdc,0x51,0xe0,0x3f,0x60,0xce,0x67,0xc0 }); + + + // [[ 0.1823965 0.8700895 -0.9144413 -0.6360941 -1.4760685 -0.5265759 + Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x26,0xc6,0x3a,0x3e,0x2f,0xbe,0x5e,0x3f,0xd3,0x18,0x6a,0xbf,0x10,0xd7,0x22,0xbf,0xd0,0xef,0xbc,0xbf,0xae,0xcd,0x6,0xbf,0x22,0x58,0xdb,0xbf,0xc8,0x13,0xa3,0xbd,0xd6,0x7a,0xa3,0xbf,0xa6,0x9,0x61,0x40,0xf2,0x45,0x91,0x3e,0x29,0xab,0x9d,0xbf,0x84,0xd8,0x65,0x3f,0x92,0xdd,0xe1,0xc1,0xfb,0xfc,0x46,0x40,0x7c,0x0,0x8f,0x40,0x7,0x62,0xc3,0xbf,0xfd,0xa1,0xad,0x3f,0xba,0xec,0xac,0x3f,0x3b,0x88,0x7d,0x3f,0x7b,0x75,0x6b,0x40,0x21,0xf5,0xb2,0xbe,0x7a,0x9d,0xac,0xbd,0xeb,0x71,0x82,0xbf,0x9c,0x26,0x68,0x3f,0xdf,0xcf,0x14,0xbf,0xd0,0x64,0xb4,0x3f,0x1,0x9,0x81,0x3f,0xbe,0xbc,0x8e,0xbf,0x37,0x63,0x7c,0x3f,0x4c,0x3a,0xcc,0xbd,0x5e,0x39,0xc0,0x3f,0xd4,0xcb,0xfa,0xbf,0x40,0x2f,0x79,0x3f,0xe9,0xc6,0x3b,0xc0,0xbc,0x47,0xad,0x3f,0x36,0xa7,0xb2,0x3e,0xaa,0x1c,0x35,0x40,0x7b,0xe5,0x5a,0xbf,0xc2,0x77,0x8,0x40,0xc5,0x17,0xc9,0x3e,0xbc,0x4a,0xaf,0x3f,0xfd,0x54,0xc,0xc1,0x2e,0x48,0x8,0xbf,0x58,0x2d,0x8d,0xc0,0x3f,0x6f,0x4f,0x40,0x1f,0x96,0x18,0xc0,0x17,0x7f,0xa4,0xbe,0x98,0xd0,0xf7,0xbe }); + Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_div(actual, a, b); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(a); + NN_delete_tensor(b); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("fill: "); +float v = 0.25891675029296335; + + + // [[0.25891674 0.25891674 0.25891674 0.25891674 0.25891674 0.25891674 0.25891674 + Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e }); + Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_fill(actual, v); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("matmul_t: "); + + // [[-2.940144 -2.5379527 4.5950546 -1.3454205 -0.01365185 -2.4224777 4.99 + Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0x52,0x2b,0x3c,0xc0,0xd1,0x6d,0x22,0xc0,0xb0,0xa,0x93,0x40,0xbd,0x36,0xac,0xbf,0x0,0xac,0x5f,0xbc,0xe0,0x9,0x1b,0xc0,0xf6,0xb9,0x9f,0x40,0x69,0x44,0x9c,0x40,0xf8,0x56,0x71,0xc0,0xa,0xb5,0x81,0xc0,0xc9,0x8e,0x72,0xc0,0x0,0x8a,0xc5,0xbc,0x75,0x23,0xa3,0xbf,0x62,0x74,0x51,0xc0,0xd8,0x8c,0xe5,0xbf,0xde,0xd4,0x71,0x3f,0x71,0x32,0x27,0xc0,0x15,0xd0,0x8d,0x3f,0x1d,0xc3,0x92,0xbf,0x6e,0xf,0x1b,0xc0,0x7a,0xda,0x2f,0x3f,0xb2,0x8f,0x83,0x40,0x6a,0x58,0x58,0xc0,0x80,0xbe,0x6d,0x3e,0xe8,0x2,0xec,0xbf,0x4e,0x2,0x9d,0x40,0x58,0xcd,0x97,0xc0,0xc3,0x62,0x99,0xc0,0x5e,0xa9,0x9d,0x40,0xf6,0x75,0x4a,0xc0,0xe8,0x67,0x75,0x3f,0x90,0xf1,0xdc,0xbe,0xb,0xd2,0x86,0xbf,0x4d,0xf1,0x8e,0xbf,0x4b,0x57,0x4b,0x40,0x70,0xb8,0x74,0x3e,0x41,0xc7,0x9b,0xc0,0x4e,0xea,0x3c,0xc0,0x1b,0x2d,0xda,0xbf,0x7c,0x7,0x21,0x40,0x32,0x15,0x4f,0xc0,0xfd,0xdd,0x96,0x40 }); + // [[-1.1136466 -0.89780986 3.91779 2.5130386 4.2406015 2.892222 -1.516 + Tensor *b = NN_tensor(2, (size_t[]){ 5, 7 }, DTYPE_F32, (uint8_t[]){ 0xf9,0x8b,0x8e,0xbf,0xde,0xd6,0x65,0xbf,0x12,0xbd,0x7a,0x40,0xa0,0xd5,0x20,0x40,0x2,0xb3,0x87,0x40,0x2a,0x1a,0x39,0x40,0x81,0x25,0xc2,0xbf,0xa9,0x4f,0x54,0xc0,0xc8,0x78,0xbe,0xbe,0x9,0x6c,0x84,0x40,0xf3,0xcb,0xd6,0xbf,0x13,0x61,0x94,0xc0,0x56,0x2d,0x3,0x40,0x64,0xc1,0x9b,0x40,0x80,0x32,0xb6,0xbf,0xd8,0x7b,0x84,0xc0,0x2a,0x21,0x91,0xc0,0x34,0x62,0xa0,0x3f,0xac,0xd7,0xc1,0xbe,0x8e,0x98,0x21,0xc0,0x49,0x5d,0x81,0x3f,0xb0,0xb,0xf3,0x3f,0x88,0x80,0x7e,0x40,0x3b,0x71,0x78,0x40,0x5c,0x98,0x3f,0xbf,0x2f,0x15,0x8d,0xc0,0x67,0x94,0x90,0xc0,0xed,0x63,0x95,0x40,0x2a,0x75,0xd,0x40,0x88,0x7d,0xb,0x40,0x74,0x6f,0x8a,0xc0,0x9b,0x29,0x94,0x40,0x2c,0x93,0x97,0x40,0x28,0x75,0x90,0x40,0x3e,0xf9,0x86,0xc0 }); + + + // [[ 5.539131 51.363888 3.3331451 37.47694 -70.19221 ] [-26.281723 -43 + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0x90,0x40,0xb1,0x40,0x9f,0x74,0x4d,0x42,0x40,0x52,0x55,0x40,0x63,0xe8,0x15,0x42,0x69,0x62,0x8c,0xc2,0xf8,0x40,0xd2,0xc1,0xfe,0x8f,0x2e,0xc2,0x51,0xb8,0xb1,0x41,0xd8,0x47,0xe0,0xc1,0x62,0xf9,0x27,0x41,0x9c,0xb4,0x99,0xc1,0x77,0x32,0x58,0xc0,0xed,0xfd,0x98,0x41,0xdc,0x6d,0x9,0x41,0x7b,0xa7,0x97,0xc0,0x63,0x6d,0x11,0x41,0x2,0x43,0x80,0xc2,0x1f,0xe4,0x20,0x41,0xb9,0x72,0xcf,0xc1,0x47,0x8b,0x63,0x41,0x7,0xdb,0x47,0xc1,0xf,0xa9,0xf2,0x40,0xb3,0x1,0xf4,0x40,0x9f,0xbb,0xca,0x41,0x51,0xa7,0xcc,0xc1,0x28,0xaa,0x8c,0xc1,0xc8,0x1,0x6c,0xc0,0xf,0x31,0x2c,0x42,0x44,0x4c,0x63,0xc0,0xdd,0x3a,0xde,0xc1 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F32); + + cycles = read_cycles(); + NN_matmul_t(actual, a, b); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(a); + NN_delete_tensor(b); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("matmul: "); + + // [[-1.886617 -3.438819 4.734828 -2.1483998 -2.2827725 2.6195645 -2.31 + Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0xaa,0x7c,0xf1,0xbf,0x9c,0x15,0x5c,0xc0,0xb6,0x83,0x97,0x40,0x62,0x7f,0x9,0xc0,0xf2,0x18,0x12,0xc0,0xf2,0xa6,0x27,0x40,0x91,0x7,0x14,0xc0,0x6a,0x9b,0x1d,0xc0,0x50,0xed,0xdf,0xbe,0xe4,0x10,0xf6,0xbe,0xea,0x45,0x79,0xc0,0xc,0x63,0x85,0x40,0xb0,0x28,0xd,0xc0,0x7c,0x4,0xe3,0x3f,0x56,0x2a,0x8b,0x40,0x9a,0x61,0x21,0x40,0xe4,0x38,0x35,0x3f,0x1a,0x23,0x88,0x40,0xca,0x10,0x2c,0x3f,0xd4,0xc,0x14,0xc0,0x24,0x5c,0x97,0x40,0xbc,0x79,0x97,0x3f,0xe3,0x1b,0x9c,0xc0,0xde,0x33,0xb6,0xbf,0x3e,0xf9,0x59,0xc0,0xcd,0x47,0x8c,0x40,0x0,0x63,0x53,0xbf,0xf,0xd8,0x91,0xc0,0x20,0xee,0xa0,0xbe,0xd1,0xf6,0x48,0x40,0xb4,0x45,0xa6,0x3f,0xef,0x5e,0xca,0x3f,0x64,0xc1,0xed,0x3e,0x9e,0x9a,0xee,0x3f,0xf1,0xef,0x9b,0xbf,0x96,0x97,0xfe,0xbf,0xa9,0x8d,0x95,0xc0,0x5c,0x11,0x71,0xc0,0x56,0xb0,0xa,0x40,0xee,0x79,0x3d,0xc0,0x18,0xa3,0x37,0x3f,0x54,0x48,0xcc,0x3f }); + // [[ 0.3540194 -3.2417488 4.781642 -2.9074974 4.112503 ] [-3.9775414 -1. + Tensor *b = NN_tensor(2, (size_t[]){ 7, 5 }, DTYPE_F32, (uint8_t[]){ 0x8,0x42,0xb5,0x3e,0xd0,0x78,0x4f,0xc0,0x36,0x3,0x99,0x40,0x70,0x14,0x3a,0xc0,0xa0,0x99,0x83,0x40,0xa,0x90,0x7e,0xc0,0x77,0xf3,0x99,0xbf,0xec,0x11,0x2e,0x40,0xee,0xbe,0x2,0xc0,0x29,0x68,0x86,0x40,0xc8,0x35,0x5c,0xc0,0xa,0x5d,0x86,0xc0,0x4c,0x4b,0x10,0xc0,0x9c,0xe9,0x4e,0x3f,0x29,0x52,0x93,0x40,0xae,0xc4,0x18,0xc0,0xcf,0xe1,0xe4,0x3f,0xd7,0x73,0xa0,0xbf,0xb9,0xca,0x8a,0xbf,0xe,0x4c,0x6b,0x40,0xd8,0xfe,0x77,0xc0,0xfc,0xf3,0x7,0x3f,0x29,0x77,0x96,0x40,0x3a,0xe3,0x2f,0xbf,0xd0,0x75,0x78,0x40,0xa5,0x17,0xc5,0xbf,0x40,0xcb,0x80,0x40,0xda,0xc5,0x9a,0xc0,0x72,0x7a,0x38,0xbf,0xd2,0xd3,0x60,0xbf,0x16,0x6a,0xcf,0x3f,0xed,0x16,0xfb,0x3f,0x90,0xb3,0x75,0x40,0xba,0xb3,0x3e,0xbf,0xb8,0x8,0x4b,0xbe }); + + + // [[ 2.91091251e+00 -8.67680168e+00 -5.86394844e+01 2.00706692e+01 -1.90071621e + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0x64,0x4c,0x3a,0x40,0x2e,0xd4,0xa,0xc1,0xd5,0x8e,0x6a,0xc2,0xbb,0x90,0xa0,0x41,0xab,0xe,0x98,0xc1,0x87,0xe3,0xf7,0x3f,0xd1,0x9d,0xc1,0x3e,0xa5,0x9e,0xf0,0x41,0xb7,0xae,0x14,0x41,0x10,0xaa,0x2b,0xc1,0xea,0x56,0x47,0xc1,0xab,0xbc,0x42,0xc1,0xb9,0xed,0x54,0x42,0x54,0x3d,0xc1,0xc1,0x16,0x51,0x4c,0x42,0xbe,0xff,0x1b,0x41,0xde,0x48,0x0,0xc1,0x86,0x4c,0xdf,0x40,0xbc,0xbc,0x20,0x41,0x8a,0x68,0x80,0xc1,0x3,0xe8,0xdb,0xc1,0x23,0x35,0xd1,0xbc,0xf7,0x1e,0x16,0xc1,0x4a,0x72,0xdd,0xc0,0x9e,0xc5,0xc0,0x41,0x59,0x81,0x1a,0x42,0x16,0xd2,0x10,0x42,0x94,0xac,0xdd,0xc1,0x6f,0x3c,0x24,0x41,0x74,0x7e,0x46,0xc2 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F32); + + cycles = read_cycles(); + NN_matmul(actual, a, b); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(a); + NN_delete_tensor(b); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("max: "); + + // [[ 3.424056 -1.3528657 4.383168 -3.3290606 -0.54104924 -0.2685547 2.23 + Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xbc,0x23,0x5b,0x40,0xb4,0x2a,0xad,0xbf,0xea,0x42,0x8c,0x40,0x54,0xf,0x55,0xc0,0x34,0x82,0xa,0xbf,0x0,0x80,0x89,0xbe,0x84,0xc9,0xe,0x40,0xc0,0xc6,0x5a,0x40,0x84,0xe2,0x4a,0xbf,0x91,0x8e,0x84,0xc0,0xb9,0x8e,0x1e,0x40,0xbf,0x71,0xbf,0x3f,0x35,0x8b,0x0,0x40,0xcc,0x65,0x45,0xc0,0x5a,0xf3,0x4d,0x40,0x78,0x8b,0x97,0x40,0x7c,0x22,0xde,0x3e,0xa0,0x72,0x95,0xc0,0x3,0xa3,0x60,0x40,0xb0,0x43,0x6d,0xc0,0x3f,0x1e,0x93,0x3f,0xbc,0x1,0x3a,0x3f,0x8e,0xc5,0x15,0xc0,0x5c,0xd8,0xde,0x3f,0xf6,0x1b,0x8f,0xc0,0x1d,0xc4,0x91,0x3f,0x43,0xdd,0x4a,0xc0,0x3e,0x69,0xa,0xbf,0x1a,0xa5,0x24,0x3f,0xa5,0x4f,0x88,0x40,0xb2,0xad,0x18,0xc0,0xe8,0x0,0x4d,0x40,0x72,0x9a,0x22,0xbf,0x16,0xfa,0x17,0xc0,0xf4,0x53,0x8b,0xc0,0x8e,0xcd,0x92,0xc0,0xf9,0x41,0x9c,0x40,0x9f,0x9d,0x9f,0xbf,0xe8,0xbc,0x7f,0x3e,0xb,0x83,0xad,0x3f,0xaa,0x83,0x59,0x40,0x4d,0x8e,0x88,0x40,0x43,0xc3,0x81,0x40,0x25,0x15,0x6d,0xc0,0xd8,0x13,0x4d,0xbf,0x26,0x5b,0x3d,0xc0,0x23,0xd5,0x36,0xc0,0x1,0xd0,0x97,0x3f,0x6,0x2f,0x96,0x40 }); + + + // 4.8830533 + Tensor *golden = NN_tensor(0, (size_t[]){ }, DTYPE_F32, (uint8_t[]){ 0xf9,0x41,0x9c,0x40 }); + Tensor *actual = NN_zeros(0, (size_t[]){ }, DTYPE_F32); + + cycles = read_cycles(); + NN_max(actual, a); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(a); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("maximum: "); + + // [[-4.0055199e+00 3.0260224e+00 -2.5923336e+00 -9.7387135e-01 3.9688544e+00 - + Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x38,0x2d,0x80,0xc0,0x5a,0xaa,0x41,0x40,0xcb,0xe8,0x25,0xc0,0xa2,0x4f,0x79,0xbf,0xb6,0x1,0x7e,0x40,0xbe,0xbf,0x90,0xbf,0x4c,0x1a,0xe9,0x3e,0xbf,0xb0,0x5f,0xc0,0xd4,0x32,0x88,0x40,0x24,0x77,0x25,0xbf,0x82,0xb,0x6a,0xc0,0xb,0x66,0xbb,0x3f,0x8b,0x86,0x63,0xc0,0x1f,0xec,0x7d,0xc0,0xfc,0xf3,0x9b,0x3e,0xbf,0xb5,0x7d,0x40,0x1a,0x1c,0xb5,0xbf,0x8,0x9d,0x16,0x40,0xcc,0x7d,0x89,0x40,0x56,0x3e,0x54,0x40,0xa,0xdc,0x27,0xc0,0x3c,0x50,0xc,0xbf,0xf8,0x65,0xc9,0xbf,0xe0,0xa8,0x80,0xc0,0x0,0x64,0x7,0x3b,0x7c,0xc7,0x70,0x40,0x70,0xcd,0x86,0x40,0x8c,0xd9,0xee,0x3e,0xd6,0x5b,0x91,0x3f,0xf1,0x88,0xa,0xc0,0xb0,0x8c,0x71,0x40,0x9c,0x27,0x5,0xc0,0xf5,0x49,0x5e,0xc0,0x96,0x1c,0x45,0x3f,0xa6,0xcd,0x3f,0x40,0x30,0x41,0x90,0xc0,0x82,0xa2,0x90,0x40,0x57,0x3a,0xe6,0x3f,0x33,0x32,0x60,0xc0,0x5d,0xdc,0x89,0xbf,0x13,0xd0,0x8a,0x40,0xde,0x83,0x75,0xc0,0xb3,0xe,0xbb,0xbf,0x4a,0xe8,0xd1,0x3f,0x72,0x2c,0x8c,0xc0,0x66,0x6c,0x2f,0x40,0x43,0x93,0x26,0x40,0x3c,0x77,0x46,0x40,0xdc,0x3,0x4c,0xc0 }); + // [[ 4.9800053e+00 -2.9638076e+00 4.9917026e+00 -4.7984524e+00 -4.4548502e+00 + Tensor *b = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x34,0x5c,0x9f,0x40,0x6,0xaf,0x3d,0xc0,0x7,0xbc,0x9f,0x40,0xec,0x8c,0x99,0xc0,0x22,0x8e,0x8e,0xc0,0xf6,0x8a,0x44,0x40,0xcc,0xc6,0x5,0x3f,0x44,0xaf,0x93,0x3e,0xe3,0x33,0x31,0xc0,0x6e,0x3b,0x6,0xc0,0xc4,0x20,0xbb,0xbf,0x68,0xdd,0x9b,0xc0,0x34,0xa,0x85,0x3e,0x20,0x61,0x62,0x3f,0x0,0xb6,0x8a,0xbb,0xe8,0xac,0xce,0x3f,0xf0,0xd0,0x97,0x40,0x71,0x2a,0xaa,0x3f,0x4e,0x49,0xea,0xbf,0xe8,0xb1,0x3,0xc0,0xdf,0xbc,0x4c,0xc0,0x7c,0xd4,0x5d,0xc0,0xd0,0x24,0x4e,0xbf,0x50,0x63,0x62,0xbf,0x22,0x5b,0xe,0x40,0xa0,0xc7,0x8,0xc0,0xec,0x1a,0x7f,0x40,0xa4,0x89,0x60,0xc0,0x0,0xd5,0x68,0x3c,0xc3,0xd3,0x8f,0x40,0x4,0x1a,0x9f,0x40,0x2a,0x5d,0x39,0xc0,0x4c,0x1,0x64,0x3f,0x72,0x32,0x17,0x3f,0x54,0x8,0x16,0xc0,0xe1,0x1d,0xdd,0xbf,0xb8,0x58,0xad,0x3f,0x51,0x84,0x5e,0xc0,0xc8,0x31,0x53,0x3f,0xcf,0x78,0xa,0x40,0x74,0x34,0xfc,0xbf,0x10,0xe7,0x84,0x40,0x88,0x79,0xa8,0xbe,0x25,0x30,0x11,0x40,0xf3,0x72,0x9e,0x40,0xb4,0xa0,0xc3,0xbf,0xff,0xe3,0x2d,0x40,0x7,0xf,0xb7,0xbf,0x32,0xf9,0x3a,0xbf }); + + + // [[ 4.9800053 3.0260224 4.9917026 -0.97387135 3.9688544 3.0709815 0.52 + Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x34,0x5c,0x9f,0x40,0x5a,0xaa,0x41,0x40,0x7,0xbc,0x9f,0x40,0xa2,0x4f,0x79,0xbf,0xb6,0x1,0x7e,0x40,0xf6,0x8a,0x44,0x40,0xcc,0xc6,0x5,0x3f,0x44,0xaf,0x93,0x3e,0xd4,0x32,0x88,0x40,0x24,0x77,0x25,0xbf,0xc4,0x20,0xbb,0xbf,0xb,0x66,0xbb,0x3f,0x34,0xa,0x85,0x3e,0x20,0x61,0x62,0x3f,0xfc,0xf3,0x9b,0x3e,0xbf,0xb5,0x7d,0x40,0xf0,0xd0,0x97,0x40,0x8,0x9d,0x16,0x40,0xcc,0x7d,0x89,0x40,0x56,0x3e,0x54,0x40,0xa,0xdc,0x27,0xc0,0x3c,0x50,0xc,0xbf,0xd0,0x24,0x4e,0xbf,0x50,0x63,0x62,0xbf,0x22,0x5b,0xe,0x40,0x7c,0xc7,0x70,0x40,0x70,0xcd,0x86,0x40,0x8c,0xd9,0xee,0x3e,0xd6,0x5b,0x91,0x3f,0xc3,0xd3,0x8f,0x40,0x4,0x1a,0x9f,0x40,0x9c,0x27,0x5,0xc0,0x4c,0x1,0x64,0x3f,0x96,0x1c,0x45,0x3f,0xa6,0xcd,0x3f,0x40,0xe1,0x1d,0xdd,0xbf,0x82,0xa2,0x90,0x40,0x57,0x3a,0xe6,0x3f,0xc8,0x31,0x53,0x3f,0xcf,0x78,0xa,0x40,0x13,0xd0,0x8a,0x40,0x10,0xe7,0x84,0x40,0x88,0x79,0xa8,0xbe,0x25,0x30,0x11,0x40,0xf3,0x72,0x9e,0x40,0x66,0x6c,0x2f,0x40,0xff,0xe3,0x2d,0x40,0x3c,0x77,0x46,0x40,0x32,0xf9,0x3a,0xbf }); + Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_maximum(actual, a, b); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(a); + NN_delete_tensor(b); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("min: "); + + // [[-0.8473557 -0.03106296 -1.888842 1.1719346 0.18840194 3.1694489 -1.01 + Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x4e,0xec,0x58,0xbf,0xc0,0x77,0xfe,0xbc,0x93,0xc5,0xf1,0xbf,0xf4,0x1,0x96,0x3f,0x70,0xec,0x40,0x3e,0x40,0xd8,0x4a,0x40,0x17,0x8a,0x81,0xbf,0xce,0x5b,0x0,0x3f,0xe5,0x12,0xee,0xbf,0x1b,0xfe,0x85,0xc0,0x58,0x7e,0x1,0x40,0x42,0xc9,0x23,0x3f,0xa0,0x27,0x0,0xc0,0x1e,0x63,0xd8,0xbf,0xa8,0x5f,0xa7,0x3f,0x14,0x72,0x67,0xbf,0xbe,0x1c,0x51,0x40,0xa4,0x1,0x91,0x3e,0x61,0xc0,0xf1,0x3f,0x3c,0x6c,0xb,0x40,0xd2,0x8,0x9d,0xbf,0xe8,0x73,0xa,0x40,0x7e,0x23,0x6c,0x40,0x30,0x9d,0x6b,0x3e,0xa6,0x7c,0x7a,0x3f,0xc8,0x9,0x3a,0x3e,0xbe,0x8e,0x5d,0x40,0x3e,0x1a,0x7,0xc0,0x34,0x1a,0x2a,0xc0,0xef,0x70,0xb,0x40,0x11,0x40,0x8b,0xc0,0x20,0x2c,0xa4,0x3d,0x47,0x2a,0x13,0xc0,0xf4,0x35,0x53,0x40,0x5c,0xf7,0x94,0xc0,0xc3,0x6,0x42,0x40,0xe,0x4c,0x9e,0x40,0x68,0x7f,0x81,0x3f,0x74,0x90,0xaa,0xbe,0xf8,0x7e,0x9d,0x40,0xb4,0xc0,0x8,0xc0,0x54,0x24,0xcd,0xbe,0x2c,0x21,0xc,0xc0,0x5c,0xb1,0x30,0xbf,0xcf,0x18,0x8b,0x3f,0x64,0xf5,0x2a,0x3f,0x8c,0xc2,0x71,0xbf,0x79,0xf9,0x9f,0xc0,0x1c,0x15,0x83,0x3e }); + + + // -4.999203 + Tensor *golden = NN_tensor(0, (size_t[]){ }, DTYPE_F32, (uint8_t[]){ 0x79,0xf9,0x9f,0xc0 }); + Tensor *actual = NN_zeros(0, (size_t[]){ }, DTYPE_F32); + + cycles = read_cycles(); + NN_min(actual, a); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(a); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("minimum: "); + + // [[-0.1481098 0.7521838 3.8312511 4.8600473 -2.9664123 -0.31177223 -2.0 + Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x18,0xaa,0x17,0xbe,0x1e,0x8f,0x40,0x3f,0x38,0x33,0x75,0x40,0x82,0x85,0x9b,0x40,0xb3,0xd9,0x3d,0xc0,0x9c,0xa0,0x9f,0xbe,0x2f,0x37,0x0,0xc0,0x9b,0x76,0x93,0xc0,0xd6,0xd9,0x68,0xc0,0x76,0x2b,0x96,0x40,0x5e,0x94,0x3a,0x40,0x6b,0xe3,0x2b,0x40,0x7c,0xd6,0x31,0x40,0xb8,0x3b,0x7e,0xc0,0xb2,0x6c,0x6,0x3f,0x12,0xea,0x94,0x40,0x66,0x96,0x32,0xc0,0xc8,0x55,0x8e,0x40,0x75,0x37,0xa8,0x3f,0x4a,0x22,0x61,0x40,0x84,0x15,0x9,0xc0,0x92,0x86,0x13,0x40,0x8a,0xd6,0x8d,0xc0,0x6c,0x8c,0xa2,0xbe,0x6,0x79,0xd5,0x3f,0xb5,0xee,0xbf,0x3f,0xa9,0xe3,0x85,0x40,0xa2,0x39,0x9d,0x40,0xa6,0x8f,0x91,0x40,0x73,0xd8,0x56,0x40,0xd8,0xfa,0x60,0x40,0x78,0x28,0x25,0xbf,0xc2,0x55,0x78,0xc0,0xdb,0x95,0xed,0xbf,0xd6,0xb2,0xf,0xbf,0x78,0xec,0x2c,0xc0,0x1e,0x93,0x23,0x40,0x4e,0xa8,0xe0,0x3f,0xcc,0x87,0x4e,0x3f,0x4e,0x99,0x9a,0x3f,0x68,0x8d,0x8c,0x40,0xaa,0x1b,0xe9,0x3f,0x70,0x4f,0x8c,0xc0,0x26,0x48,0x68,0xc0,0x36,0xa,0xd,0x40,0xfa,0x6f,0x2e,0x3f,0xb3,0xf,0x1c,0x40,0x92,0xcb,0x9f,0xc0,0xba,0xa8,0x93,0xc0 }); + // [[ 3.066132 3.1982284 -4.523555 1.8979263 -3.904221 3.7865388 1.56 + Tensor *b = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x82,0x3b,0x44,0x40,0xc6,0xaf,0x4c,0x40,0xf6,0xc0,0x90,0xc0,0x40,0xef,0xf2,0x3f,0xc2,0xde,0x79,0xc0,0xa7,0x56,0x72,0x40,0x6d,0xd3,0xc8,0x3f,0xb6,0x34,0x9e,0x40,0x3b,0xc2,0x9d,0xc0,0x37,0x7,0x9a,0xc0,0x48,0x5a,0x58,0x40,0x3c,0xd,0x8e,0x40,0xbe,0xe,0x44,0x40,0xdc,0xbe,0x54,0x40,0x6f,0xc3,0x86,0xc0,0xd0,0x9e,0x67,0x40,0x44,0x10,0x97,0xc0,0x21,0xfa,0x8e,0x3f,0x73,0x9c,0x51,0xc0,0x81,0x34,0xfe,0xbf,0xea,0xa5,0x62,0x3f,0x9d,0xa2,0xfb,0xbf,0x7c,0x86,0x4a,0xbf,0xe3,0xa6,0x97,0xc0,0x16,0xdc,0x96,0xc0,0x91,0xe9,0xf7,0x3f,0xf8,0x72,0x7,0xc0,0x47,0xaf,0x42,0xc0,0x5c,0x88,0xfc,0xbf,0x9c,0xcf,0x82,0xc0,0xde,0xce,0x7f,0xc0,0xaa,0x7a,0x3f,0x40,0x32,0xa3,0x22,0x40,0x20,0x80,0x2a,0x3f,0x97,0xcd,0x2e,0xc0,0xba,0xed,0xd4,0x3f,0x60,0x4,0x66,0x3e,0xff,0xb1,0x64,0xc0,0xb3,0xb8,0x89,0x3f,0xe1,0xaf,0x91,0x40,0x84,0x60,0x9d,0xc0,0x4e,0x1a,0x9f,0xc0,0xfc,0xff,0x23,0x3f,0x96,0xf7,0x70,0x40,0x7b,0xb7,0x42,0xc0,0x44,0xe3,0x8c,0x3f,0x8e,0xf4,0x60,0x40,0x8d,0x52,0xc5,0x3f,0xbd,0x80,0x8a,0x3f }); + + + // [[-0.1481098 0.7521838 -4.523555 1.8979263 -3.904221 -0.31177223 -2.0 + Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x18,0xaa,0x17,0xbe,0x1e,0x8f,0x40,0x3f,0xf6,0xc0,0x90,0xc0,0x40,0xef,0xf2,0x3f,0xc2,0xde,0x79,0xc0,0x9c,0xa0,0x9f,0xbe,0x2f,0x37,0x0,0xc0,0x9b,0x76,0x93,0xc0,0x3b,0xc2,0x9d,0xc0,0x37,0x7,0x9a,0xc0,0x5e,0x94,0x3a,0x40,0x6b,0xe3,0x2b,0x40,0x7c,0xd6,0x31,0x40,0xb8,0x3b,0x7e,0xc0,0x6f,0xc3,0x86,0xc0,0xd0,0x9e,0x67,0x40,0x44,0x10,0x97,0xc0,0x21,0xfa,0x8e,0x3f,0x73,0x9c,0x51,0xc0,0x81,0x34,0xfe,0xbf,0x84,0x15,0x9,0xc0,0x9d,0xa2,0xfb,0xbf,0x8a,0xd6,0x8d,0xc0,0xe3,0xa6,0x97,0xc0,0x16,0xdc,0x96,0xc0,0xb5,0xee,0xbf,0x3f,0xf8,0x72,0x7,0xc0,0x47,0xaf,0x42,0xc0,0x5c,0x88,0xfc,0xbf,0x9c,0xcf,0x82,0xc0,0xde,0xce,0x7f,0xc0,0x78,0x28,0x25,0xbf,0xc2,0x55,0x78,0xc0,0xdb,0x95,0xed,0xbf,0x97,0xcd,0x2e,0xc0,0x78,0xec,0x2c,0xc0,0x60,0x4,0x66,0x3e,0xff,0xb1,0x64,0xc0,0xcc,0x87,0x4e,0x3f,0x4e,0x99,0x9a,0x3f,0x84,0x60,0x9d,0xc0,0x4e,0x1a,0x9f,0xc0,0x70,0x4f,0x8c,0xc0,0x26,0x48,0x68,0xc0,0x7b,0xb7,0x42,0xc0,0xfa,0x6f,0x2e,0x3f,0xb3,0xf,0x1c,0x40,0x92,0xcb,0x9f,0xc0,0xba,0xa8,0x93,0xc0 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_minimum(actual, a, b); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(a); + NN_delete_tensor(b); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("mul: "); + + // [[ 4.98863 3.2573633 -2.8121352 0.43218255 2.5543618 4.4095473 -4.97 + Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xdb,0xa2,0x9f,0x40,0xa4,0x78,0x50,0x40,0x6,0xfa,0x33,0xc0,0x8,0x47,0xdd,0x3e,0xaa,0x7a,0x23,0x40,0x3,0x1b,0x8d,0x40,0x74,0x30,0x9f,0xc0,0x1e,0x48,0x2d,0x40,0xf8,0xcf,0xb9,0xbf,0xe7,0xac,0x9c,0xc0,0x39,0x10,0x8e,0x3f,0x5e,0x36,0x2e,0xc0,0x40,0x64,0x35,0x3f,0x4f,0xc2,0x4f,0xc0,0x2e,0xcf,0x70,0xc0,0xf8,0x37,0xd9,0xbe,0x11,0xfe,0xd6,0xbf,0x1e,0x28,0x3b,0x40,0xe8,0xb7,0xdc,0x3e,0x5c,0xc7,0x79,0x40,0x34,0xe0,0x6f,0x3f,0x9c,0xcc,0xcd,0xbf,0x2b,0xbf,0x58,0x40,0x30,0xe4,0x8b,0x3e,0xd0,0x3e,0x70,0x3f,0xa6,0xd6,0xcd,0xbf,0x40,0xff,0x92,0x3c,0x10,0x1c,0x76,0xbf,0xf4,0xa4,0xd9,0xbe,0xb7,0x8f,0x79,0xc0,0x40,0xe6,0xfb,0xbc,0x9d,0xce,0x84,0xc0,0x8,0xaf,0x89,0xbf,0x6d,0x74,0x39,0x40,0x18,0x83,0x5e,0xc0,0x52,0xb2,0x57,0xc0,0xe1,0x45,0x9c,0xbf,0x1f,0x72,0xaf,0xbf,0x1c,0xb0,0x58,0x3f,0x0,0x80,0x54,0x3f,0x59,0x45,0x22,0x40,0x18,0x71,0x5c,0xc0,0x88,0xa9,0xb4,0xbe,0x24,0xf9,0x32,0x40,0x3c,0x65,0x8a,0x40,0x8c,0xbd,0xba,0xbe,0x91,0x28,0x39,0xc0,0xdf,0xf9,0xb7,0x3f,0x95,0x3b,0x36,0x40 }); + // [[-3.1237495 -2.901467 2.2099912 -0.35032988 -4.722493 -2.8829253 2.02 + Tensor *b = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x83,0xeb,0x47,0xc0,0xa3,0xb1,0x39,0xc0,0x7f,0x70,0xd,0x40,0x70,0x5e,0xb3,0xbe,0xaa,0x1e,0x97,0xc0,0xd9,0x81,0x38,0xc0,0x40,0xc5,0x1,0x40,0x8c,0x12,0xd9,0xbf,0x90,0xdf,0x5c,0x40,0x6,0xf9,0x7c,0x40,0x94,0x33,0x3a,0x3f,0x6c,0x6e,0xca,0xbe,0x44,0x27,0xcb,0xbf,0xd4,0x72,0x81,0xbe,0x9c,0xfc,0x68,0x3f,0xae,0x6e,0x74,0xc0,0xd,0xf5,0x98,0xbf,0x91,0x16,0x85,0xc0,0xcc,0x66,0x44,0x40,0xa1,0xc9,0x4b,0xc0,0xc1,0x2a,0x92,0x40,0xce,0xfa,0xa4,0xbf,0xf1,0x51,0x37,0xc0,0xb8,0xbe,0x19,0x40,0x3c,0xd2,0x3e,0x3f,0xff,0x95,0x5d,0x40,0x1f,0x97,0x5,0x40,0x62,0x22,0x9a,0xc0,0x9d,0x65,0x4a,0x40,0xae,0xa,0x71,0xbf,0x45,0x6e,0xd,0xc0,0x9d,0x37,0x4b,0x40,0xbd,0x62,0x69,0x40,0x0,0xa1,0x8c,0xc0,0xd8,0x7b,0xe7,0xbe,0x9f,0x64,0x83,0x40,0x11,0xdd,0xf7,0x3f,0x8b,0xcb,0x86,0x40,0xc1,0x53,0xdb,0xbf,0x8c,0x86,0x30,0xc0,0xe6,0x95,0x89,0x40,0x22,0x62,0x5,0x40,0xe2,0x98,0x99,0x40,0xb4,0xa9,0x5,0xc0,0x1e,0x76,0x4d,0xc0,0x52,0x8,0x16,0xbf,0x1d,0xa7,0x96,0xc0,0x36,0xdd,0xfa,0x3f,0x3e,0x7,0x6c,0x40 }); + + + // [[-15.58323 -9.451133 -6.214794 -0.15140645 -12.062956 -12.712396 + Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xe9,0x54,0x79,0xc1,0xd7,0x37,0x17,0xc1,0x98,0xdf,0xc6,0xc0,0x4b,0xa,0x1b,0xbe,0xde,0x1,0x41,0xc1,0xf9,0x65,0x4b,0xc1,0x25,0x64,0x21,0xc1,0xaf,0xee,0x92,0xc0,0xfe,0x50,0xa0,0xc0,0x9b,0xd2,0x9a,0xc1,0xd2,0xa8,0x4e,0x3f,0xb,0xc2,0x89,0x3f,0x51,0xf2,0x8f,0xbf,0x35,0x1c,0x52,0x3f,0x60,0x29,0x5b,0xc0,0x42,0x67,0xcf,0x3f,0xa6,0x74,0x0,0x40,0xae,0x98,0x42,0xc1,0x6f,0x55,0xa9,0x3f,0xd1,0xd5,0x46,0xc1,0xed,0xf5,0x88,0x40,0xb3,0xa0,0x4,0x40,0x8,0x36,0x1b,0xc1,0x31,0x7,0x28,0x3f,0xea,0x13,0x33,0x3f,0xe8,0x2a,0xb2,0xc0,0xc5,0x6a,0x19,0x3d,0xf0,0x2d,0x94,0x40,0x8c,0x12,0xac,0xbf,0xb5,0xfa,0x6a,0x40,0x52,0x2a,0x8b,0x3d,0x61,0xd9,0x52,0xc1,0xd2,0xa,0x7b,0xc0,0x9c,0xc0,0x4b,0xc1,0xef,0x33,0xc9,0x3f,0xf,0x6a,0x5d,0xc1,0x5f,0x4e,0x17,0xc0,0x76,0xc2,0xb8,0xc0,0x8c,0xa5,0xb9,0xbf,0xaf,0x87,0x12,0xc0,0x42,0x6c,0x2e,0x41,0x84,0xb6,0xe5,0xc0,0x6d,0xca,0xd8,0xbf,0x28,0xe4,0xba,0xc0,0xd8,0x25,0x5e,0xc1,0x44,0xe2,0x5a,0x3e,0x47,0xed,0x59,0x41,0xfd,0x48,0x34,0x40,0x15,0x4,0x28,0x41 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_mul(actual, a, b); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(a); + NN_delete_tensor(b); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("mul1: "); + + // [[ 1.2002844 -0.4940343 2.4790316 -3.1737566 4.8912153 -4.9717183 -4.78 + Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xeb,0xa2,0x99,0x3f,0x10,0xf2,0xfc,0xbe,0x74,0xa8,0x1e,0x40,0xd4,0x1e,0x4b,0xc0,0xd6,0x84,0x9c,0x40,0x51,0x18,0x9f,0xc0,0x70,0x45,0x99,0xc0,0xaa,0x3b,0x97,0xbf,0xf3,0xb1,0x82,0x40,0x38,0x29,0x0,0x3f,0xd,0xca,0xf5,0x3f,0xec,0x8f,0x6a,0xc0,0x1e,0x66,0xe9,0x3f,0x18,0x8,0xf,0xbf,0x78,0x43,0x0,0x40,0x64,0xff,0x61,0x40,0x1,0x19,0xb,0x40,0xa8,0xc3,0xd9,0xbe,0x9c,0xb1,0x9d,0xbe,0x9a,0xb2,0x48,0xc0,0x45,0x7d,0xe7,0xbf,0xbc,0xf2,0x4f,0x40,0xa4,0x51,0x0,0xc0,0x94,0xbb,0x46,0x40,0xcb,0xc7,0xfd,0xbf,0x25,0xe,0x95,0xbf,0x0,0xee,0xd9,0x3d,0x94,0xd3,0x92,0xc0,0x0,0x7e,0x4c,0xbd,0xc0,0x4,0x1,0xbf,0x28,0xfb,0xe5,0xbe,0x9c,0xe0,0x7f,0xbf,0xde,0x47,0x7c,0x40,0xe8,0x27,0x6c,0x40,0xe0,0xe1,0x58,0xc0,0x8,0xa6,0x14,0x40,0x9f,0x0,0x7b,0xc0,0x1f,0x36,0x88,0xc0,0xee,0xa2,0xc3,0x3f,0xf0,0x7d,0x96,0x3d,0x34,0x48,0x15,0xc0,0x13,0x52,0x9a,0xc0,0x61,0xc4,0xf7,0xbf,0x7b,0xc2,0xd5,0x3f,0xa3,0x18,0x94,0xc0,0x3a,0x6f,0x9b,0xc0,0x98,0x65,0x22,0x3f,0x82,0x87,0x66,0xc0,0x40,0x2c,0x8c,0xc0 });float v = 0.5112747213686085; + + + // [[ 0.613675 -0.25258723 1.2674661 -1.6226615 2.5007546 -2.5419137 -2.44 + Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xce,0x19,0x1d,0x3f,0x1d,0x53,0x81,0xbe,0x54,0x3c,0xa2,0x3f,0x5f,0xb3,0xcf,0xbf,0x5d,0xc,0x20,0x40,0xb7,0xae,0x22,0xc0,0x38,0xba,0x1c,0xc0,0xae,0xa4,0x1a,0xbf,0x68,0xa4,0x5,0x40,0xc,0xd,0x83,0x3e,0xe8,0x54,0x7b,0x3f,0xf7,0xd9,0xef,0xbf,0x72,0xa9,0x6e,0x3f,0xc4,0x41,0x92,0xbe,0xe3,0x27,0x83,0x3f,0xff,0x17,0xe7,0x3f,0xf7,0x3b,0x8e,0x3f,0xbb,0xac,0x5e,0xbe,0xeb,0x3f,0x21,0xbe,0x28,0x39,0xcd,0xbf,0x93,0xb5,0x6c,0xbf,0x25,0xa3,0xd4,0x3f,0x61,0x36,0x83,0xbf,0xcb,0x36,0xcb,0x3f,0x63,0xc0,0x81,0xbf,0x96,0x6a,0x18,0xbf,0x8,0xd8,0x5e,0x3d,0x28,0x23,0x16,0xc0,0x76,0x1a,0xd1,0xbc,0x87,0xed,0x83,0xbe,0xc1,0x2a,0x6b,0xbe,0xd9,0xd2,0x2,0xbf,0x19,0xfc,0x0,0x40,0x26,0x7b,0xf1,0x3f,0xdc,0xc5,0xdd,0xbf,0x20,0x0,0x98,0x3f,0xc9,0x54,0x0,0xc0,0x6c,0x48,0xb,0xc0,0x45,0xc,0x48,0x3f,0xad,0xe2,0x19,0x3d,0xf5,0xa5,0x98,0xbf,0xea,0xcc,0x1d,0xc0,0xa6,0x5a,0x7d,0xbf,0x70,0x94,0x5a,0x3f,0x8b,0x6f,0x17,0xc0,0x7f,0xf0,0x1e,0xc0,0xe,0xf,0xa6,0x3e,0x46,0xba,0xeb,0xbf,0x6b,0x55,0xf,0xc0 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_mul1(actual, a, v); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(a); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("neg: "); + + // [[-1.9264311 -0.80500424 -4.543526 -3.3386385 0.32783926 -4.7148585 -0.70 + Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x4b,0x95,0xf6,0xbf,0xc2,0x14,0x4e,0xbf,0x91,0x64,0x91,0xc0,0x41,0xac,0x55,0xc0,0x8c,0xda,0xa7,0x3e,0x1f,0xe0,0x96,0xc0,0xe0,0xe8,0x33,0xbf,0xf8,0x9f,0x4e,0xc0,0x0,0xd6,0x5d,0xc0,0x33,0x8a,0xfb,0x3f,0xfa,0x4c,0x76,0xc0,0xc7,0x81,0x72,0xc0,0x76,0x7d,0x36,0x40,0x1e,0x51,0x6f,0x3f,0xcc,0xb6,0x91,0x40,0xb1,0x11,0xab,0xbf,0x98,0x90,0x1a,0xc0,0x40,0xeb,0xec,0xbe,0x40,0x3b,0xcf,0x3c,0xd2,0xb,0x74,0x40,0x6f,0x5f,0x9f,0xc0,0x1c,0x46,0xb6,0xbe,0x7e,0x8d,0xd,0x40,0xf4,0x37,0x30,0xc0,0xe5,0x9a,0x22,0xc0,0x4c,0xa5,0x1a,0x40,0x44,0x4f,0x99,0xc0,0xd5,0xa6,0x97,0x3f,0x5c,0xbd,0x77,0xc0,0x4e,0xf,0x1f,0x40,0x75,0xce,0x88,0xc0,0xce,0xbc,0x44,0x40,0x12,0x76,0x97,0xc0,0x9d,0x7d,0x86,0xc0,0xe0,0xe7,0x96,0x3d,0x3,0x28,0x7c,0x40,0xf7,0x5,0x89,0xc0,0x36,0xbd,0xe,0xc0,0x74,0x86,0x8c,0x40,0x18,0xa7,0x56,0xbf,0x32,0x92,0x4,0x40,0x72,0xeb,0x99,0xc0,0x8d,0x44,0xc9,0xbf,0x9c,0x81,0x22,0xc0,0xca,0xe3,0x86,0x40,0x12,0xd0,0x4,0x40,0x8,0x7f,0x69,0xc0,0xdc,0x5e,0x4e,0x3f,0xc0,0x62,0x6b,0xbd }); + + + // [[ 1.9264311 0.80500424 4.543526 3.3386385 -0.32783926 4.7148585 0.70 + Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x4b,0x95,0xf6,0x3f,0xc2,0x14,0x4e,0x3f,0x91,0x64,0x91,0x40,0x41,0xac,0x55,0x40,0x8c,0xda,0xa7,0xbe,0x1f,0xe0,0x96,0x40,0xe0,0xe8,0x33,0x3f,0xf8,0x9f,0x4e,0x40,0x0,0xd6,0x5d,0x40,0x33,0x8a,0xfb,0xbf,0xfa,0x4c,0x76,0x40,0xc7,0x81,0x72,0x40,0x76,0x7d,0x36,0xc0,0x1e,0x51,0x6f,0xbf,0xcc,0xb6,0x91,0xc0,0xb1,0x11,0xab,0x3f,0x98,0x90,0x1a,0x40,0x40,0xeb,0xec,0x3e,0x40,0x3b,0xcf,0xbc,0xd2,0xb,0x74,0xc0,0x6f,0x5f,0x9f,0x40,0x1c,0x46,0xb6,0x3e,0x7e,0x8d,0xd,0xc0,0xf4,0x37,0x30,0x40,0xe5,0x9a,0x22,0x40,0x4c,0xa5,0x1a,0xc0,0x44,0x4f,0x99,0x40,0xd5,0xa6,0x97,0xbf,0x5c,0xbd,0x77,0x40,0x4e,0xf,0x1f,0xc0,0x75,0xce,0x88,0x40,0xce,0xbc,0x44,0xc0,0x12,0x76,0x97,0x40,0x9d,0x7d,0x86,0x40,0xe0,0xe7,0x96,0xbd,0x3,0x28,0x7c,0xc0,0xf7,0x5,0x89,0x40,0x36,0xbd,0xe,0x40,0x74,0x86,0x8c,0xc0,0x18,0xa7,0x56,0x3f,0x32,0x92,0x4,0xc0,0x72,0xeb,0x99,0x40,0x8d,0x44,0xc9,0x3f,0x9c,0x81,0x22,0x40,0xca,0xe3,0x86,0xc0,0x12,0xd0,0x4,0xc0,0x8,0x7f,0x69,0x40,0xdc,0x5e,0x4e,0xbf,0xc0,0x62,0x6b,0x3d }); + Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_neg(actual, a); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(a); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("sub: "); + + // [[-2.0543492 -2.8553832 -1.659193 3.9411325 -3.5842614 -3.5617166 -1.54 + Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x75,0x7a,0x3,0xc0,0x99,0xbe,0x36,0xc0,0x70,0x60,0xd4,0xbf,0x84,0x3b,0x7c,0x40,0x8a,0x64,0x65,0xc0,0x2a,0xf3,0x63,0xc0,0xc6,0x73,0xc5,0xbf,0x70,0x23,0xb2,0x3d,0x33,0x37,0xae,0x3f,0x30,0xa4,0x19,0x3e,0x7d,0x10,0x9a,0xbf,0x35,0x8,0x42,0xc0,0x7c,0xac,0x65,0xbf,0x2b,0xd1,0x0,0xc0,0xc4,0x44,0x81,0x40,0xdb,0xbe,0x9b,0xc0,0x68,0x1d,0x4c,0xc0,0xa7,0x2c,0x82,0xc0,0xbe,0xed,0x69,0xbf,0x14,0x5e,0x79,0x40,0xc,0x3f,0x8c,0x40,0xf2,0x49,0x8b,0xc0,0x60,0xd5,0x5d,0xbe,0x44,0xd4,0x3b,0x40,0x20,0xe,0xd,0x40,0x7e,0xe,0x83,0x40,0x8,0x5,0xe,0xbe,0x74,0x1,0x57,0xc0,0x94,0xb0,0x53,0x40,0x20,0x77,0xdb,0xbf,0xa,0xb1,0x25,0x40,0x27,0xb8,0x9d,0xbf,0xb6,0x7,0x8,0x40,0x7d,0xe8,0x8f,0x40,0xe1,0xc6,0x94,0x40,0x44,0x9c,0x91,0xc0,0x78,0xac,0x53,0xc0,0x34,0x4f,0x4,0xc0,0x78,0x10,0x4c,0xc0,0x20,0x85,0x99,0x40,0xa0,0x18,0xe2,0xbe,0xdc,0x44,0x54,0xc0,0x89,0x65,0xe,0xc0,0xb5,0xc1,0x30,0xc0,0x7e,0x8e,0x2,0x40,0x68,0x8f,0x8b,0xc0,0x3b,0x2f,0x95,0xc0,0xc7,0xb8,0x9d,0xc0,0x89,0xc4,0x9,0x40 }); + // [[ 2.472273 -3.1053953 1.2398928 3.6909235 0.7265067 -1.0579079 0.3694117 + Tensor *b = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xb9,0x39,0x1e,0x40,0xcc,0xbe,0x46,0xc0,0xcf,0xb4,0x9e,0x3f,0x17,0x38,0x6c,0x40,0x58,0xfc,0x39,0x3f,0x87,0x69,0x87,0xbf,0x88,0x23,0xbd,0x3e,0x5e,0x40,0x9,0xbf,0xa6,0x1e,0x21,0x40,0x9c,0x48,0x59,0xc0,0xd6,0x45,0x22,0x40,0xa,0x5c,0x34,0x40,0x40,0xe1,0x41,0xc0,0x72,0xa6,0x82,0x40,0x4a,0x26,0x9d,0x40,0x6e,0x4e,0xfc,0xbf,0xaa,0x42,0xb3,0xbf,0x48,0x79,0x1f,0x40,0xce,0xb1,0x7a,0xc0,0xd6,0x17,0xfd,0x3f,0xa6,0x50,0x95,0x3f,0x9c,0xb4,0x49,0x40,0x22,0xfa,0x8a,0xc0,0xf2,0xec,0x84,0xc0,0xa8,0xb8,0xf,0x40,0xef,0x88,0xe6,0x3f,0x2f,0xec,0x94,0xc0,0x78,0x73,0x32,0xc0,0x85,0x65,0x92,0xc0,0x5e,0x41,0x65,0xc0,0x46,0x62,0x10,0xc0,0xfa,0x67,0x84,0x40,0x0,0xc9,0x7e,0xbf,0xda,0xca,0x37,0x40,0xee,0xf2,0x97,0x40,0x96,0xd5,0x11,0x40,0xd1,0x3b,0x8f,0xc0,0x1,0x8,0x21,0x40,0x3d,0x1e,0xf4,0x3f,0x5e,0x5,0x78,0x40,0x58,0xd4,0x9d,0xc0,0x1c,0xce,0x44,0x40,0x75,0xf7,0x82,0x40,0xbd,0xdb,0x94,0xc0,0xf2,0xeb,0x5,0x3f,0x73,0x96,0x88,0x40,0x16,0xbd,0x68,0xc0,0x10,0xff,0xd1,0x3f,0x98,0x66,0xd,0x40 }); + + + // [[-4.5266223 0.25001216 -2.899086 0.2502091 -4.310768 -2.5038085 -1.91 + Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x17,0xda,0x90,0xc0,0x98,0x1,0x80,0x3e,0xa0,0x8a,0x39,0xc0,0x68,0x1b,0x80,0x3e,0xd0,0xf1,0x89,0xc0,0x66,0x3e,0x20,0xc0,0xa8,0xbc,0xf4,0xbf,0xcc,0x84,0x1f,0x3f,0x19,0x6,0x94,0xbf,0xdf,0xe2,0x62,0x40,0x14,0x4e,0x6f,0xc0,0x20,0x32,0xbb,0xc0,0x21,0x76,0x8,0x40,0x8,0xf,0xc3,0xc0,0x30,0xc,0x5f,0xbf,0x7f,0x56,0x39,0xc0,0x26,0xf8,0xe4,0xbf,0x4b,0xe9,0xd1,0xc0,0x5e,0x36,0x40,0x40,0x52,0xa4,0xf5,0x3f,0xc5,0xd5,0x4d,0x40,0x40,0x24,0xf0,0xc0,0x77,0xb,0x84,0x40,0x14,0xd7,0xe2,0x40,0x0,0xa2,0x2a,0xbd,0x84,0xd8,0x12,0x40,0x7,0x7c,0x90,0x40,0xf0,0x37,0x12,0xbf,0xcf,0x3d,0xfc,0x40,0x9c,0xb,0xef,0x3f,0xa8,0x9,0x9b,0x40,0x4,0xd6,0xab,0xc0,0xf6,0xb9,0x47,0x40,0x40,0xc,0xd0,0x3f,0x40,0x3,0xcb,0xbd,0xf,0x87,0xda,0xc0,0x54,0x96,0x95,0x3f,0x9a,0xab,0x92,0xc0,0xcb,0xf,0xa3,0xc0,0x88,0x13,0x6c,0x3f,0xce,0xb2,0x8f,0x40,0x7c,0x89,0xcc,0xc0,0x3a,0x2a,0xca,0xc0,0x8a,0xeb,0xf1,0x3f,0x3,0x27,0xc2,0x3f,0xee,0x12,0xa,0xc1,0xc0,0x42,0x83,0xbf,0x8b,0x38,0xd2,0xc0,0xc0,0x83,0x68,0xbd }); + Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_sub(actual, a, b); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(a); + NN_delete_tensor(b); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("sum: "); + + // [[ 1.3104504 4.9713793 4.093898 4.289774 -0.6232339 4.193563 -4.659 + Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xd7,0xbc,0xa7,0x3f,0x8a,0x15,0x9f,0x40,0x36,0x1,0x83,0x40,0xd4,0x45,0x89,0x40,0x42,0x8c,0x1f,0xbf,0xab,0x31,0x86,0x40,0x24,0x1b,0x95,0xc0,0x70,0xae,0x2c,0xc0,0x49,0xe2,0x88,0xbf,0xc9,0x1d,0xbe,0xbf,0x89,0xca,0x93,0x40,0xd2,0xee,0x16,0x40,0x2a,0x5,0x4e,0x40,0xc1,0xaa,0x59,0x40,0x88,0xa,0x6f,0xc0,0x3a,0x40,0x14,0xbf,0x56,0xe9,0x3a,0x3f,0x8e,0x75,0xa6,0x3f,0xf0,0x8d,0x24,0x40,0xc,0xa9,0xfe,0xbf,0x66,0xfb,0xc0,0xbf,0xed,0xe0,0x85,0x40,0x17,0xc4,0xab,0xbf,0x5,0x49,0x5e,0xc0,0x5,0xf9,0x58,0x40,0x94,0xb0,0x58,0x40,0xce,0xae,0xc8,0xbf,0xce,0xe5,0x7f,0xbf,0x21,0x1f,0x6c,0xc0,0x70,0x9d,0x85,0xc0,0xf4,0xab,0xf0,0x3f,0x9e,0xb3,0x8,0xc0,0x24,0xc0,0x7e,0x40,0x36,0x1d,0x80,0xc0,0x98,0xed,0x30,0xbf,0x90,0x19,0xdd,0x3d,0x8c,0x76,0x24,0x40,0x30,0x7e,0x81,0x40,0x98,0xb4,0x58,0x40,0xdc,0xdc,0xc,0x40,0xc6,0xe0,0x12,0xc0,0xfa,0x86,0x64,0xc0,0x57,0x23,0x8f,0xc0,0xd0,0xf9,0x7d,0x3e,0x4b,0x2e,0x9b,0x40,0x5a,0x20,0x73,0xbf,0x60,0x8b,0x57,0xbe,0xc6,0x8a,0x68,0xc0,0x78,0x7c,0xc4,0x3f }); + + + // 17.264463 + Tensor *golden = NN_tensor(0, (size_t[]){ }, DTYPE_F32, (uint8_t[]){ 0x9f,0x1d,0x8a,0x41 }); + Tensor *actual = NN_zeros(0, (size_t[]){ }, DTYPE_F32); + + cycles = read_cycles(); + NN_sum(actual, a); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(a); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("abs: "); + + // [[ 2.959 1.885 4.156 4.39 2.875 1.304 -3.062 -2.637 -4.605 0.75 + Tensor *a = NN_tensor(2, (size_t[]){ 1, 44 }, DTYPE_F16, (uint8_t[]){ 0xeb,0x41,0x8a,0x3f,0x28,0x44,0x64,0x44,0xc0,0x41,0x37,0x3d,0x20,0xc2,0x46,0xc1,0x9b,0xc4,0x4,0x3a,0xb8,0x44,0xb6,0x42,0xf5,0x41,0x34,0x41,0x79,0x44,0xa9,0x42,0x58,0x44,0xb2,0xc1,0xaa,0x39,0x4,0xc0,0xcf,0x44,0xc4,0x3c,0x6c,0xc1,0x1b,0xc4,0xfa,0x41,0xa8,0x3b,0x75,0xc4,0x6a,0x3c,0xc9,0xbc,0xda,0x44,0x87,0xc4,0xad,0xc3,0x10,0xc2,0x4c,0x44,0xe0,0x2a,0xd8,0xb0,0x3e,0x41,0x94,0x37,0xdb,0x3e,0x10,0xc3,0xe2,0xbc,0x22,0xc0,0x2e,0x44,0x30,0xc1 }); + + + // [[2.959 1.885 4.156 4.39 2.875 1.304 3.062 2.637 4.605 0.752 4.72 + Tensor *golden = NN_tensor(2, (size_t[]){ 1, 44 }, DTYPE_F16, (uint8_t[]){ 0xeb,0x41,0x8a,0x3f,0x28,0x44,0x64,0x44,0xc0,0x41,0x37,0x3d,0x20,0x42,0x46,0x41,0x9b,0x44,0x4,0x3a,0xb8,0x44,0xb6,0x42,0xf5,0x41,0x34,0x41,0x79,0x44,0xa9,0x42,0x58,0x44,0xb2,0x41,0xaa,0x39,0x4,0x40,0xcf,0x44,0xc4,0x3c,0x6c,0x41,0x1b,0x44,0xfa,0x41,0xa8,0x3b,0x75,0x44,0x6a,0x3c,0xc9,0x3c,0xda,0x44,0x87,0x44,0xad,0x43,0x10,0x42,0x4c,0x44,0xe0,0x2a,0xd8,0x30,0x3e,0x41,0x94,0x37,0xdb,0x3e,0x10,0x43,0xe2,0x3c,0x22,0x40,0x2e,0x44,0x30,0x41 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 1, 44 }, DTYPE_F16); + + cycles = read_cycles(); + NN_abs(actual, a); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(a); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + { printf("add: "); - // [[-1.66 -2.27 3.07 0.9375 -0.923 -1.274 3.453 ] [ 1.753 0. - Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0xa4,0xbe,0x8a,0xc0,0x24,0x42,0x80,0x3b,0x62,0xbb,0x19,0xbd,0xe8,0x42,0x3,0x3f,0xa0,0x29,0x10,0x43,0x4c,0xc3,0x5d,0x43,0xda,0x43,0x26,0xc0,0x78,0x35,0x9c,0x40,0x24,0xc0,0xbc,0x3f,0xef,0xc2,0x3b,0xbe,0xbf,0x40,0x9e,0xc0,0x93,0xc4,0x26,0xc4,0xdc,0x41,0xd6,0xba,0x9c,0x42,0xc2,0xc0,0xfe,0xba,0xa6,0xc4,0xd3,0xbc,0x79,0x44,0x70,0xc4,0x80,0xb3,0x41,0xbd,0xec,0x42,0xfe,0x44,0x23,0x44,0x36,0x40,0xa0,0xc1,0xcc,0xba,0x84,0xc4 }); - // [[ 4.805 0.8643 -1.313 -1.108 -1.782 0.718 -0.5566] [-2.934 1.406 4. - Tensor *b = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0xce,0x44,0xea,0x3a,0x41,0xbd,0x6f,0xbc,0x21,0xbf,0xbe,0x39,0x74,0xb8,0xde,0xc1,0xa0,0x3d,0xb1,0x44,0x2d,0x3d,0x63,0xbe,0x85,0xbf,0xb0,0xc0,0xb2,0xc0,0xe,0xbe,0x9e,0xc3,0x43,0xc4,0xd1,0xbe,0x5,0xc1,0x7c,0x40,0x8c,0xb9,0x26,0x3b,0xdd,0xc4,0x56,0xbc,0x60,0xc4,0x60,0xc4,0x8d,0x44,0x24,0x34,0x66,0x44,0x5f,0x41,0xc4,0x40,0x3c,0xbd,0x56,0xc3,0xba,0xc2,0x36,0xc2,0x6,0x42,0x90,0x32,0x51,0x40,0xb2,0xc0,0x50,0xb9,0x7e,0xc3 }); + // [[-2.314 -4.75 0.0781 4.49 3.564 -1.235 4.188 ] [-2.9 3.096 2. + Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0xa1,0xc0,0xc0,0xc4,0x0,0x2d,0x7d,0x44,0x21,0x43,0xf1,0xbc,0x30,0x44,0xcd,0xc1,0x31,0x42,0x8,0x40,0xf6,0xbc,0x67,0xbf,0x5d,0x3f,0xb9,0x44,0xb5,0xbc,0xf4,0xba,0x18,0x40,0x1f,0xc4,0x3,0x3f,0x54,0x44,0x6e,0xc3,0x81,0xbe,0xfe,0x3e,0x23,0xbd,0x4,0xb6,0x84,0x44,0x6d,0xbe,0xcb,0xbf,0x24,0xc2,0x98,0xc1,0x0,0x43,0x58,0x44,0x13,0x3e,0xdc,0x41,0xc,0xc1,0xec,0x3c,0x14,0xc1,0x15,0x44,0x92,0x38,0x60,0xc2,0x97,0x40,0x3a,0x3b }); + // [[-3.297 -2.002 -0.5713 3.506 2.9 4.81 1.152 ] [-4.984 -4. + Tensor *b = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x98,0xc2,0x1,0xc0,0x92,0xb8,0x3,0x43,0xcd,0x41,0xcf,0x44,0x9c,0x3c,0xfc,0xc4,0x32,0xc4,0xa3,0x3f,0xc8,0x43,0x18,0x36,0x9c,0x43,0x4c,0xb4,0xe4,0xc0,0xb0,0xbc,0xb0,0x34,0x99,0xbf,0x7f,0xc4,0xde,0x42,0x59,0xbe,0x5f,0xc4,0x76,0x44,0xc4,0x42,0x8c,0x3d,0xa0,0xc1,0xae,0xba,0x1c,0x43,0xb6,0x41,0xb0,0xb8,0xc6,0x44,0xb7,0x3f,0x5a,0xc1,0x5c,0xc2,0xa0,0x44,0xd6,0xba,0xb6,0xc1,0xb0,0x2c,0x5c,0xc4,0x24,0x38,0x64,0xc1,0xec,0xc3 }); - // [[ 3.145 -1.405 1.757 -0.1709 -2.705 -0.5566 2.896 ] [-1.181 1.45 8. - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x4a,0x42,0x9f,0xbd,0x7,0x3f,0x78,0xb1,0x69,0xc1,0x74,0xb8,0xcb,0x41,0xb9,0xbc,0xcd,0x3d,0x1c,0x48,0xb6,0xc0,0x2c,0x40,0x18,0x40,0x6b,0xc4,0x3,0xc0,0x54,0x3a,0xe1,0xc5,0xa8,0xc0,0x2c,0xc5,0x11,0xc4,0x9e,0x44,0x1,0xc2,0x5c,0xc3,0x82,0xc8,0x62,0x3f,0x3b,0xc5,0x48,0xbc,0x58,0x40,0xec,0xb8,0x0,0xb4,0xeb,0x3d,0xdb,0x46,0xbf,0xc5,0xce,0xc3,0xad,0xc4,0xb0,0x35,0x0,0x48,0x58,0x44,0x44,0x44,0x29,0xc5,0xe,0xbe,0x22,0xc8 }); + // [[-5.61 -6.75 -0.4932 7.992 6.465 3.574 5.34 ] [-7.883 -1.1 3. + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x9c,0xc5,0xc0,0xc6,0xe4,0xb7,0xfe,0x47,0x77,0x46,0x26,0x43,0x57,0x45,0xe2,0xc7,0x66,0xbc,0xda,0x43,0x4d,0x41,0xe1,0xbd,0xa5,0x45,0x74,0x44,0x3e,0xc3,0x15,0xc0,0xae,0x40,0x5,0xc6,0x7c,0xc1,0xc3,0x47,0x4d,0xc5,0xff,0xc5,0x36,0x46,0x32,0x40,0xb,0x3c,0xd0,0x3e,0xe2,0xc0,0x6d,0x3e,0xe0,0xb2,0xc4,0xc2,0x23,0x48,0x46,0x46,0xa1,0xbc,0x0,0xb4,0x34,0x40,0x4,0x36,0x65,0xc5,0x28,0x44,0x94,0xc3,0x57,0xc1,0x68,0xb6,0x1e,0xc2 }); Tensor *actual = NN_zeros(2, (size_t[]){ 6, 7 }, DTYPE_F16); cycles = read_cycles(); @@ -42,14 +578,14 @@ int main() { { printf("matmul_t: "); - // [[ 1.567 4.88 4.574 -4.723 -3.578 4.25 0.581 ] [-1.196 -2.9 0. - Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x45,0x3e,0xe1,0x44,0x93,0x44,0xb9,0xc4,0x28,0xc3,0x40,0x44,0xa6,0x38,0xc9,0xbc,0xcd,0xc1,0x68,0x36,0x8e,0xc4,0x60,0x44,0x1d,0xc2,0x8,0xc0,0x84,0x41,0x88,0xb8,0xa3,0xbf,0x94,0x44,0x97,0xc4,0x2,0xc4,0xd6,0xc2,0xe2,0xbc,0xb0,0xb4,0x58,0x33,0x85,0xbf,0xf1,0x44,0x1e,0x39,0x10,0xb4,0x18,0xba,0x8,0x3b,0xe2,0x44,0x22,0x44,0x96,0x39,0x72,0x42,0x6f,0x3c,0x78,0xb5,0x8d,0xbc,0xf5,0xbd,0x7e,0xb8,0x5c,0xc2,0x2a,0x44,0x88,0xc0 }); - // [[ 1.489 2.836 -4.176 3.297 2.188 0.4639 0.962 ] [ 2.959 -3.75 4. - Tensor *b = NN_tensor(2, (size_t[]){ 5, 7 }, DTYPE_F16, (uint8_t[]){ 0xf5,0x3d,0xac,0x41,0x2d,0xc4,0x98,0x42,0x60,0x40,0x6c,0x37,0xb2,0x3b,0xeb,0x41,0x80,0xc3,0x4d,0x44,0xbd,0x42,0xb4,0x3d,0x8a,0x44,0x10,0xbc,0x34,0x44,0x38,0xc2,0xf5,0x41,0x69,0x41,0xf8,0xb3,0x68,0xc2,0xe1,0x44,0x2e,0xb8,0x5,0xc4,0x42,0xc2,0x0,0x41,0x6c,0x44,0x63,0xc2,0x94,0xc0,0x78,0xb5,0x7b,0x3f,0xe3,0xc4,0xd4,0x42,0x5e,0xc4,0x52,0xc2,0x86,0xc4 }); + // [[ 1.387 4.03 3.54 2.88 -0.708 -0.9326 -0.879 ] [ 1.30 + Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x8c,0x3d,0x8,0x44,0x14,0x43,0xc3,0x41,0xaa,0xb9,0x76,0xbb,0x8,0xbb,0x37,0x3d,0x7d,0x3d,0x3,0x3f,0x9c,0x43,0x7c,0xba,0x5f,0xbd,0x15,0x40,0x61,0x44,0x0,0xa1,0x30,0xbf,0x5,0x3d,0xd8,0xc0,0xae,0xc0,0x28,0x31,0xb8,0x3a,0xbf,0x40,0x38,0xbc,0xcc,0xc2,0x0,0xc4,0x24,0x38,0x30,0xc0,0x46,0xbd,0x10,0x40,0x1a,0xb8,0xd6,0xc2,0xe,0x40,0x12,0xbf,0x0,0x35,0x3c,0x43,0x9b,0x3d,0x9d,0xc4,0x98,0xc4,0xb5,0xbc,0x1,0xbc,0xee,0x40 }); + // [[ 1.934 -1.655 0.04883 2.441 3.012 -0.8594 0.3418 ] [-4.9 3. + Tensor *b = NN_tensor(2, (size_t[]){ 5, 7 }, DTYPE_F16, (uint8_t[]){ 0xbc,0x3f,0x9f,0xbe,0x40,0x2a,0xe2,0x40,0x6,0x42,0xe0,0xba,0x78,0x35,0xe6,0xc4,0x2b,0x43,0xe8,0x42,0x90,0x3e,0x40,0x3e,0xa,0x39,0xfd,0x43,0x40,0xba,0x74,0xc2,0x40,0xa6,0x73,0xc1,0xb3,0xc2,0x63,0xbe,0xee,0x3f,0xa6,0x43,0x6a,0xb8,0x46,0x41,0x63,0x3e,0x87,0x3d,0xe4,0xc3,0xf2,0xc2,0xbc,0xbb,0xe4,0xc3,0xbf,0x44,0x60,0xc3,0x76,0x44,0x9e,0xc4,0xc2,0x44 }); - // [[-23.8 3.703 -17.62 -77.25 -30.33 ] [-20.48 -11.875 -8.27 33.38 -22 - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F16, (uint8_t[]){ 0xf3,0xcd,0x68,0x43,0x68,0xcc,0xd4,0xd4,0x95,0xcf,0x1f,0xcd,0xf0,0xc9,0x23,0xc8,0x2c,0x50,0xb6,0xcd,0x31,0x49,0x89,0xc3,0x57,0x4c,0xa5,0x4c,0x72,0x54,0x3a,0x3c,0xb1,0x40,0x92,0xca,0x32,0x4c,0x88,0xcf,0x45,0xbd,0x7c,0x51,0x5a,0x4b,0x75,0xcc,0x86,0xce,0x92,0xc6,0xd0,0x49,0xdd,0xce,0x15,0xcb,0x2a,0x4b }); + // [[ 1.583 19.39 -19.9 22.77 -14.11 ] [ 9.03 16.86 -6.9 + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F16, (uint8_t[]){ 0x55,0x3e,0xd9,0x4c,0xfa,0xcc,0xb1,0x4d,0xe,0xcb,0x84,0x48,0x37,0x4c,0xf3,0xc6,0x2,0x4a,0xb3,0xad,0x3b,0x46,0x90,0xcf,0x67,0x45,0xd6,0x4c,0x25,0xcc,0xf7,0xcd,0xc7,0xcc,0xb2,0x48,0x9a,0xc6,0x1b,0xd0,0x8d,0xc6,0xd5,0x48,0x3c,0x37,0x48,0xc4,0x88,0x4d,0x4e,0xc8,0x32,0xcf,0xdb,0x4b,0x56,0xca,0xc4,0xc1 }); Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F16); cycles = read_cycles(); @@ -68,20 +604,20 @@ int main() { { printf("matmul: "); - // [[ 2.803 -0.454 -1.416 -4.4 4.703 -2.1 4.6 ] [-1.392 0.7227 -3. - Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x9b,0x41,0x44,0xb7,0xaa,0xbd,0x66,0xc4,0xb4,0x44,0x33,0xc0,0x9a,0x44,0x91,0xbd,0xc8,0x39,0xf6,0xc3,0x83,0xc0,0x4,0x40,0xba,0xbc,0x68,0x32,0x88,0x34,0x3b,0xbe,0xa0,0x31,0xce,0xbc,0x94,0xc4,0xb8,0x32,0xf0,0xb9,0xf2,0xc4,0xf6,0xbc,0x0,0xc3,0x40,0x36,0xd8,0xc4,0x1c,0x3b,0x0,0x39,0x42,0xbc,0x50,0xc3,0xcc,0x3a,0x69,0x41,0x3f,0x3f,0x30,0x3b,0xaa,0xc1,0x3c,0xc1,0xc0,0x41,0x35,0xc3,0x78,0x3d,0x8f,0xbf,0xf6,0xbc,0x8,0x41 }); - // [[-4.54 1.104 4.273 1.313 4.297 ] [-3.555 1.602 0.0928 -2. - Tensor *b = NN_tensor(2, (size_t[]){ 7, 5 }, DTYPE_F16, (uint8_t[]){ 0x8a,0xc4,0x6a,0x3c,0x46,0x44,0x41,0x3d,0x4c,0x44,0x1c,0xc3,0x68,0x3e,0xf0,0x2d,0x12,0xc0,0x1a,0x44,0x1,0x40,0x9b,0xc1,0xd8,0x3c,0x1f,0xc4,0xd8,0xc2,0x40,0xae,0xc,0x44,0xa3,0x43,0x38,0x44,0x14,0x3d,0xb4,0x44,0x5f,0xbd,0x52,0xc4,0x0,0xa5,0x29,0xc0,0x80,0x40,0x46,0xb9,0x10,0x42,0x12,0xbb,0x68,0xbe,0x28,0x41,0xf0,0x39,0xbc,0xb7,0x46,0xc4,0x4c,0x38 }); + // [[ 3.848 2.848 3.395 1.465 -3.852 1.196 0.4443 ] [-4.785 3. + Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0xb2,0x43,0xb2,0x41,0xca,0x42,0xdc,0x3d,0xb4,0xc3,0xc9,0x3c,0x1c,0x37,0xc9,0xc4,0xa6,0x43,0xfc,0x44,0xda,0x41,0xbe,0x44,0xc0,0x41,0x5,0xc1,0x8,0x40,0xee,0x41,0x76,0xc4,0xd,0x43,0x4a,0x42,0xba,0xc0,0xe2,0x42,0xc3,0xc4,0x2c,0xb6,0xa6,0xc2,0x8e,0x41,0x8,0x43,0x68,0x32,0xa1,0x40,0x58,0x43,0x94,0x3b,0x54,0xb6,0x56,0xc3,0x40,0x2e,0xc2,0xbe,0x40,0x3e,0x4f,0x42,0xb2,0xc3,0x12,0xbf,0x9d,0xc4,0xa4,0xc4,0x54,0x3a,0xa4,0x42 }); + // [[-1.689 -0.04883 3.227 3.916 -3.18 ] [ 0.7812 -2.92 1.87 1. + Tensor *b = NN_tensor(2, (size_t[]){ 7, 5 }, DTYPE_F16, (uint8_t[]){ 0xc2,0xbe,0x40,0xaa,0x74,0x42,0xd5,0x43,0x5c,0xc2,0x40,0x3a,0xd7,0xc1,0x7b,0x3f,0xdc,0x3d,0x8,0xc0,0xe6,0x43,0x23,0xbd,0xfa,0xb9,0x82,0x44,0x74,0x43,0x8,0xc3,0x7b,0x3f,0x59,0x42,0x54,0x3e,0x55,0x3d,0xf1,0xbc,0xfc,0x41,0xeb,0x41,0x66,0xc1,0x38,0xc3,0x1,0xc0,0x34,0x42,0x2c,0x3a,0xee,0x3b,0x9b,0xc1,0xa8,0x40,0x2c,0x3e,0x5d,0xbf,0x81,0xbe,0x9e,0xc3 }); - // [[ 15.74 -12.984 -35.47 -26.02 5.492 ] [ 3.299 -0.1198 -31.67 3 - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F16, (uint8_t[]){ 0xdf,0x4b,0x7e,0xca,0x6f,0xd0,0x81,0xce,0x7e,0x45,0x99,0x42,0xab,0xaf,0xeb,0xcf,0x7a,0x43,0x91,0x45,0x90,0xcc,0x28,0xc0,0x5e,0x4c,0x9b,0x3a,0xf6,0x3d,0x20,0x39,0x2a,0x49,0x6b,0xb9,0x5f,0x48,0xe0,0xc4,0xa0,0x4d,0x2f,0xc3,0x79,0x41,0x4f,0x4e,0x71,0xce,0x71,0xc9,0xa5,0x4d,0xdf,0xc6,0xd9,0x3e,0x78,0x4d }); + // [[ 7.38 -17.25 8.56 47.72 5.484 ] [ 3.014 7.37 18.14 8 + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F16, (uint8_t[]){ 0x61,0x47,0x50,0xcc,0x48,0x48,0xf7,0x51,0x7c,0x45,0x7,0x42,0x5f,0x47,0x89,0x4c,0xc,0x48,0x2f,0x4b,0x8f,0xcd,0x7a,0x49,0xee,0x4e,0xae,0xcc,0x45,0xd1,0x41,0xcb,0x62,0x4e,0xa,0x3e,0x5b,0xd1,0x6b,0xcb,0x62,0x4a,0xeb,0xc9,0x79,0xbe,0x68,0x43,0x61,0xcd,0x64,0x4a,0x58,0xbe,0x65,0xcf,0x1c,0xb9,0x90,0xca }); Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F16); cycles = read_cycles(); NN_matmul(actual, a, b); cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-5) ? "PASS" : "FAIL", cycles); + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); NN_delete_tensor(a); NN_delete_tensor(b); From 76442f9b61d94724be833134b13b9919bf7656a1 Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Wed, 10 Jul 2024 12:05:24 -0700 Subject: [PATCH 06/21] REFACTOR: stage refactor --- nn/CMakeLists.txt | 12 ++++++++++++ nn/impl/cpu/max.c | 12 ++++++++++++ nn/impl/cpu/maximum.c | 11 +++++++++++ nn/impl/cpu/maximum1.c | 10 ++++++++++ nn/impl/cpu/min.c | 12 ++++++++++++ nn/impl/cpu/minimum.c | 11 +++++++++++ nn/impl/cpu/minimum1.c | 10 ++++++++++ nn/impl/max.h | 28 ++++------------------------ nn/impl/maximum.h | 30 ++++++------------------------ nn/impl/maximum1.h | 28 ++++++---------------------- nn/impl/min.h | 28 ++++------------------------ nn/impl/minimum.h | 30 ++++++------------------------ nn/impl/minimum1.h | 28 ++++++---------------------- nn/impl/rvv/max.c | 20 ++++++++++++++++++++ nn/impl/rvv/maximum.c | 22 ++++++++++++++++++++++ nn/impl/rvv/maximum1.c | 21 +++++++++++++++++++++ nn/impl/rvv/min.c | 20 ++++++++++++++++++++ nn/impl/rvv/minimum.c | 22 ++++++++++++++++++++++ nn/impl/rvv/minimum1.c | 21 +++++++++++++++++++++ nn/op/nn_clip.c | 4 ++-- nn/op/nn_max.c | 2 +- nn/op/nn_maximum.c | 2 +- nn/op/nn_min.c | 2 +- nn/op/nn_minimum.c | 2 +- nn/op/nn_relu.c | 2 +- nn/op/nn_relu6.c | 4 ++-- 26 files changed, 245 insertions(+), 149 deletions(-) create mode 100644 nn/impl/cpu/max.c create mode 100644 nn/impl/cpu/maximum.c create mode 100644 nn/impl/cpu/maximum1.c create mode 100644 nn/impl/cpu/min.c create mode 100644 nn/impl/cpu/minimum.c create mode 100644 nn/impl/cpu/minimum1.c create mode 100644 nn/impl/rvv/max.c create mode 100644 nn/impl/rvv/maximum.c create mode 100644 nn/impl/rvv/maximum1.c create mode 100644 nn/impl/rvv/min.c create mode 100644 nn/impl/rvv/minimum.c create mode 100644 nn/impl/rvv/minimum1.c diff --git a/nn/CMakeLists.txt b/nn/CMakeLists.txt index 2845c97..7c5863b 100644 --- a/nn/CMakeLists.txt +++ b/nn/CMakeLists.txt @@ -11,6 +11,12 @@ set(cpu_impl impl/cpu/div.c impl/cpu/dot.c impl/cpu/fill.c + impl/cpu/max.c + impl/cpu/maximum.c + impl/cpu/maximum1.c + impl/cpu/min.c + impl/cpu/minimum.c + impl/cpu/minimum1.c ) set(rvv_impl @@ -20,6 +26,12 @@ set(rvv_impl impl/rvv/add.c impl/rvv/add1.c impl/rvv/div.c + impl/rvv/max.c + impl/rvv/maximum.c + impl/rvv/maximum1.c + impl/rvv/min.c + impl/rvv/minimum.c + impl/rvv/minimum1.c ) diff --git a/nn/impl/cpu/max.c b/nn/impl/cpu/max.c new file mode 100644 index 0000000..77a07a2 --- /dev/null +++ b/nn/impl/cpu/max.c @@ -0,0 +1,12 @@ +#include "max.h" + + +__attribute__((weak)) void NN__max_f32(size_t n, float *result, float *x, size_t incx) { + float max = -FLT_MAX; + for (size_t i = 0; i < n; i += 1) { + float val = x[i * incx]; + max = val > max ? val : max; + } + *result = max; +} + diff --git a/nn/impl/cpu/maximum.c b/nn/impl/cpu/maximum.c new file mode 100644 index 0000000..62b7e95 --- /dev/null +++ b/nn/impl/cpu/maximum.c @@ -0,0 +1,11 @@ +#include "maximum.h" + + +__attribute__((weak)) void NN__maximum_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float *y, size_t incy) { + for (size_t i = 0; i < n; i += 1) { + float x_val = x[i * incx]; + float y_val = y[i * incy]; + z[i * incz] = x_val > y_val ? x_val : y_val; + } +} + diff --git a/nn/impl/cpu/maximum1.c b/nn/impl/cpu/maximum1.c new file mode 100644 index 0000000..c78d7f7 --- /dev/null +++ b/nn/impl/cpu/maximum1.c @@ -0,0 +1,10 @@ +#include "maximum1.h" + + +__attribute__((weak)) void NN__maximum1_f32(size_t n, float *y, size_t incy, float *x, size_t incx, float scalar) { + for (size_t i = 0; i < n; i += 1) { + float x_val = x[i * incx]; + y[i * incy] = x_val > scalar ? x_val : scalar; + } +} + diff --git a/nn/impl/cpu/min.c b/nn/impl/cpu/min.c new file mode 100644 index 0000000..dc18838 --- /dev/null +++ b/nn/impl/cpu/min.c @@ -0,0 +1,12 @@ +#include "min.h" + + +__attribute__((weak)) void NN__min_f32(size_t n, float *result, float *x, size_t incx) { + float min = FLT_MAX; + for (size_t i = 0; i < n; i += 1) { + float val = x[i * incx]; + min = val < min ? val : min; + } + *result = min; +} + diff --git a/nn/impl/cpu/minimum.c b/nn/impl/cpu/minimum.c new file mode 100644 index 0000000..ccb4789 --- /dev/null +++ b/nn/impl/cpu/minimum.c @@ -0,0 +1,11 @@ +#include "minimum.h" + + +__attribute__((weak)) void NN__minimum_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float *y, size_t incy) { + for (size_t i = 0; i < n; i += 1) { + float x_val = x[i * incx]; + float y_val = y[i * incy]; + z[i * incz] = x_val < y_val ? x_val : y_val; + } +} + diff --git a/nn/impl/cpu/minimum1.c b/nn/impl/cpu/minimum1.c new file mode 100644 index 0000000..f9974a9 --- /dev/null +++ b/nn/impl/cpu/minimum1.c @@ -0,0 +1,10 @@ +#include "minimum1.h" + + +__attribute__((weak)) void NN__minimum1_f32(size_t n, float *y, size_t incy, float *x, size_t incx, float scalar) { + for (size_t i = 0; i < n; i += 1) { + float x_val = x[i * incx]; + y[i * incy] = x_val < scalar ? x_val : scalar; + } +} + diff --git a/nn/impl/max.h b/nn/impl/max.h index af5f932..6d2b17d 100644 --- a/nn/impl/max.h +++ b/nn/impl/max.h @@ -5,31 +5,11 @@ #include #include -#ifdef RVV - #include -#endif -static inline void NN__max_f32(size_t n, float *s, float *x) { - float max = -FLT_MAX; - - #ifdef RVV - vfloat32m1_t vec_max = __riscv_vfmv_s_f_f32m1(max, 1); - while (n > 0) { - size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vle32_v_f32m1(x, vl); - vec_max = __riscv_vfredmax_vs_f32m1_f32m1(vec_x, vec_max, vl); - x += vl; - n -= vl; - } - max = __riscv_vfmv_f_s_f32m1_f32(vec_max); - #else - for (size_t i = 0; i < n; i += 1) { - float val = x[i]; - max = val > max ? val : max; - } - #endif +void NN__max_f32(size_t n, + float *result, + float *x, size_t incx + ); - *s = max; -} #endif // __NN__MAX_H diff --git a/nn/impl/maximum.h b/nn/impl/maximum.h index 06d3aa4..c34493e 100644 --- a/nn/impl/maximum.h +++ b/nn/impl/maximum.h @@ -4,30 +4,12 @@ #include #include -#ifdef RVV - #include -#endif -static inline void NN__maximum_f32(size_t n, float *z, float *x, float *y) { - #ifdef RVV - while (n > 0) { - size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vle32_v_f32m1(x, vl); - vfloat32m1_t vec_y = __riscv_vle32_v_f32m1(y, vl); - vfloat32m1_t vec_z = __riscv_vfmax_vv_f32m1(vec_x, vec_y, vl); - __riscv_vse32_v_f32m1(z, vec_z, vl); - x += vl; - y += vl; - z += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - float x_val = x[i]; - float y_val = y[i]; - z[i] = x_val > y_val ? x_val : y_val; - } - #endif -} +void NN__maximum_f32(size_t n, + float *z, size_t incz, + float *x, size_t incx, + float *y, size_t incy + ); + #endif // __NN__MAXIMUM_H diff --git a/nn/impl/maximum1.h b/nn/impl/maximum1.h index b78b44f..84cddec 100644 --- a/nn/impl/maximum1.h +++ b/nn/impl/maximum1.h @@ -4,28 +4,12 @@ #include #include -#ifdef RVV - #include -#endif -static inline void NN__maximum1_f32(size_t n, float *y, float *x, float v) { - #ifdef RVV - while (n > 0) { - size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vle32_v_f32m1(x, vl); - vfloat32m1_t vec_v = __riscv_vfmv_v_f_f32m1(v, vl); - vfloat32m1_t vec_y = __riscv_vfmax_vv_f32m1(vec_x, vec_v, vl); - __riscv_vse32_v_f32m1(y, vec_y, vl); - x += vl; - y += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - float x_val = x[i]; - y[i] = x_val > v ? x_val : v; - } - #endif -} +void NN__maximum1_f32(size_t n, + float *y, size_t incy, + float *x, size_t incx, + float scalar + ); + #endif // __NN__MAXIMUM1_H diff --git a/nn/impl/min.h b/nn/impl/min.h index 0febeb7..4b40630 100644 --- a/nn/impl/min.h +++ b/nn/impl/min.h @@ -5,31 +5,11 @@ #include #include -#ifdef RVV - #include -#endif -static inline void NN__min_f32(size_t n, float *s, float *x) { - float min = FLT_MAX; - - #ifdef RVV - vfloat32m1_t vec_min = __riscv_vfmv_s_f_f32m1(min, 1); - while (n > 0) { - size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vle32_v_f32m1(x, vl); - vec_min = __riscv_vfredmin_vs_f32m1_f32m1(vec_x, vec_min, vl); - x += vl; - n -= vl; - } - min = __riscv_vfmv_f_s_f32m1_f32(vec_min); - #else - for (size_t i = 0; i < n; i += 1) { - float val = x[i]; - min = val < min ? val : min; - } - #endif +void NN__min_f32(size_t n, + float *result, + float *x, size_t incx + ); - *s = min; -} #endif // __NN__MIN_H diff --git a/nn/impl/minimum.h b/nn/impl/minimum.h index 08a8253..0adde53 100644 --- a/nn/impl/minimum.h +++ b/nn/impl/minimum.h @@ -4,30 +4,12 @@ #include #include -#ifdef RVV - #include -#endif -static inline void NN__minimum_f32(size_t n, float *z, float *x, float *y) { - #ifdef RVV - while (n > 0) { - size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vle32_v_f32m1(x, vl); - vfloat32m1_t vec_y = __riscv_vle32_v_f32m1(y, vl); - vfloat32m1_t vec_z = __riscv_vfmin_vv_f32m1(vec_x, vec_y, vl); - __riscv_vse32_v_f32m1(z, vec_z, vl); - x += vl; - y += vl; - z += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - float x_val = x[i]; - float y_val = y[i]; - z[i] = x_val < y_val ? x_val : y_val; - } - #endif -} +void NN__minimum_f32(size_t n, + float *z, size_t incz, + float *x, size_t incx, + float *y, size_t incy + ); + #endif // __NN__MINIMUM_H diff --git a/nn/impl/minimum1.h b/nn/impl/minimum1.h index e4cbdb8..b867ec1 100644 --- a/nn/impl/minimum1.h +++ b/nn/impl/minimum1.h @@ -4,28 +4,12 @@ #include #include -#ifdef RVV - #include -#endif -static inline void NN__minimum1_f32(size_t n, float *y, float *x, float v) { - #ifdef RVV - while (n > 0) { - size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vle32_v_f32m1(x, vl); - vfloat32m1_t vec_v = __riscv_vfmv_v_f_f32m1(v, vl); - vfloat32m1_t vec_y = __riscv_vfmin_vv_f32m1(vec_x, vec_v, vl); - __riscv_vse32_v_f32m1(y, vec_y, vl); - x += vl; - y += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - float x_val = x[i]; - y[i] = x_val < v ? x_val : v; - } - #endif -} +void NN__minimum1_f32(size_t n, + float *y, size_t incy, + float *x, size_t incx, + float scalar + ); + #endif // __NN__MINIMUM1_H diff --git a/nn/impl/rvv/max.c b/nn/impl/rvv/max.c new file mode 100644 index 0000000..ce24fb5 --- /dev/null +++ b/nn/impl/rvv/max.c @@ -0,0 +1,20 @@ +#include +#include "max.h" + +#ifdef RVV + + +void NN__max_f32(size_t n, float *result, float *x, size_t incx) { + vfloat32m1_t vec_max = __riscv_vfmv_s_f_f32m1(-FLT_MAX, 1); + while (n > 0) { + size_t vl = __riscv_vsetvl_e32m1(n); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vec_max = __riscv_vfredmax_vs_f32m1_f32m1(vec_x, vec_max, vl); + x += vl; + n -= vl; + } + *result = __riscv_vfmv_f_s_f32m1_f32(vec_max); +} + + +#endif diff --git a/nn/impl/rvv/maximum.c b/nn/impl/rvv/maximum.c new file mode 100644 index 0000000..255dc04 --- /dev/null +++ b/nn/impl/rvv/maximum.c @@ -0,0 +1,22 @@ +#include +#include "maximum.h" + +#ifdef RVV + + +void NN__maximum_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float *y, size_t incy) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e32m1(n); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, incy, vl); + vfloat32m1_t vec_z = __riscv_vfmax_vv_f32m1(vec_x, vec_y, vl); + __riscv_vsse32_v_f32m1(z, incz, vec_z, vl); + x += vl; + y += vl; + z += vl; + n -= vl; + } +} + + +#endif diff --git a/nn/impl/rvv/maximum1.c b/nn/impl/rvv/maximum1.c new file mode 100644 index 0000000..660512b --- /dev/null +++ b/nn/impl/rvv/maximum1.c @@ -0,0 +1,21 @@ +#include +#include "maximum1.h" + +#ifdef RVV + + +void NN__maximum1_f32(size_t n, float *y, size_t incy, float *x, size_t incx, float scalar) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e32m1(n); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_s = __riscv_vfmv_v_f_f32m1(scalar, vl); + vfloat32m1_t vec_y = __riscv_vfmax_vv_f32m1(vec_x, vec_s, vl); + __riscv_vsse32_v_f32m1(y, incy, vec_y, vl); + x += vl; + y += vl; + n -= vl; + } +} + + +#endif diff --git a/nn/impl/rvv/min.c b/nn/impl/rvv/min.c new file mode 100644 index 0000000..a887bad --- /dev/null +++ b/nn/impl/rvv/min.c @@ -0,0 +1,20 @@ +#include +#include "min.h" + +#ifdef RVV + + +void NN__min_f32(size_t n, float *result, float *x, size_t incx) { + vfloat32m1_t vec_min = __riscv_vfmv_s_f_f32m1(FLT_MAX, 1); + while (n > 0) { + size_t vl = __riscv_vsetvl_e32m1(n); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vec_min = __riscv_vfredmin_vs_f32m1_f32m1(vec_x, vec_min, vl); + x += vl; + n -= vl; + } + *result = __riscv_vfmv_f_s_f32m1_f32(vec_min); +} + + +#endif diff --git a/nn/impl/rvv/minimum.c b/nn/impl/rvv/minimum.c new file mode 100644 index 0000000..498467d --- /dev/null +++ b/nn/impl/rvv/minimum.c @@ -0,0 +1,22 @@ +#include +#include "minimum.h" + +#ifdef RVV + + +void NN__minimum_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float *y, size_t incy) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e32m1(n); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, incy, vl); + vfloat32m1_t vec_z = __riscv_vfmin_vv_f32m1(vec_x, vec_y, vl); + __riscv_vsse32_v_f32m1(z, incz, vec_z, vl); + x += vl; + y += vl; + z += vl; + n -= vl; + } +} + + +#endif diff --git a/nn/impl/rvv/minimum1.c b/nn/impl/rvv/minimum1.c new file mode 100644 index 0000000..fe67e27 --- /dev/null +++ b/nn/impl/rvv/minimum1.c @@ -0,0 +1,21 @@ +#include +#include "minimum1.h" + +#ifdef RVV + + +void NN__minimum1_f32(size_t n, float *y, size_t incy, float *x, size_t incx, float scalar) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e32m1(n); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_s = __riscv_vfmv_v_f_f32m1(scalar, vl); + vfloat32m1_t vec_y = __riscv_vfmin_vv_f32m1(vec_x, vec_s, vl); + __riscv_vsse32_v_f32m1(y, incy, vec_y, vl); + x += vl; + y += vl; + n -= vl; + } +} + + +#endif diff --git a/nn/op/nn_clip.c b/nn/op/nn_clip.c index 24638c0..7b72ec5 100644 --- a/nn/op/nn_clip.c +++ b/nn/op/nn_clip.c @@ -9,8 +9,8 @@ void NN_clip(Tensor *y, Tensor *x, float min, float max) { switch (y->dtype) { case DTYPE_F32: - NN__maximum1_f32(y->size, (float *)y->data, (float *)x->data, min); - NN__minimum1_f32(y->size, (float *)y->data, (float *)y->data, max); + NN__maximum1_f32(y->size, (float *)y->data, 1, (float *)x->data, 1, min); + NN__minimum1_f32(y->size, (float *)y->data, 1, (float *)y->data, 1, max); return; default: diff --git a/nn/op/nn_max.c b/nn/op/nn_max.c index 659d212..e80a78a 100644 --- a/nn/op/nn_max.c +++ b/nn/op/nn_max.c @@ -7,7 +7,7 @@ void NN_max(Tensor *scalar, Tensor *tensor) { switch (tensor->dtype) { case DTYPE_F32: - NN__max_f32(tensor->size, (float *)scalar->data, (float *)tensor->data); + NN__max_f32(tensor->size, (float *)scalar->data, (float *)tensor->data, 1); break; default: diff --git a/nn/op/nn_maximum.c b/nn/op/nn_maximum.c index 5cd0ddd..66ce752 100644 --- a/nn/op/nn_maximum.c +++ b/nn/op/nn_maximum.c @@ -12,7 +12,7 @@ void NN_maximum(Tensor *out, Tensor *a, Tensor *b) { switch (out->dtype) { case DTYPE_F32: - NN__maximum_f32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); + NN__maximum_f32(out->size, (float *)out->data, 1, (float *)a->data, 1, (float *)b->data, 1); return; default: break; diff --git a/nn/op/nn_min.c b/nn/op/nn_min.c index 15e445f..5ef0410 100644 --- a/nn/op/nn_min.c +++ b/nn/op/nn_min.c @@ -7,7 +7,7 @@ void NN_min(Tensor *scalar, Tensor *tensor) { switch (tensor->dtype) { case DTYPE_F32: - NN__min_f32(tensor->size, (float *)scalar->data, (float *)tensor->data); + NN__min_f32(tensor->size, (float *)scalar->data, (float *)tensor->data, 1); break; default: diff --git a/nn/op/nn_minimum.c b/nn/op/nn_minimum.c index 20c4a01..363fb41 100644 --- a/nn/op/nn_minimum.c +++ b/nn/op/nn_minimum.c @@ -12,7 +12,7 @@ void NN_minimum(Tensor *out, Tensor *a, Tensor *b) { switch (out->dtype) { case DTYPE_F32: - NN__minimum_f32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); + NN__minimum_f32(out->size, (float *)out->data, 1, (float *)a->data, 1, (float *)b->data, 1); return; default: diff --git a/nn/op/nn_relu.c b/nn/op/nn_relu.c index 71cb4cb..20909c2 100644 --- a/nn/op/nn_relu.c +++ b/nn/op/nn_relu.c @@ -9,7 +9,7 @@ void NN_relu(Tensor *y, Tensor *x) { switch (y->dtype) { case DTYPE_F32: - NN__maximum1_f32(y->size, (float *)y->data, (float *)x->data, 0.0f); + NN__maximum1_f32(y->size, (float *)y->data, 1, (float *)x->data, 1, 0.0f); return; default: diff --git a/nn/op/nn_relu6.c b/nn/op/nn_relu6.c index 5e70ed4..c1c237d 100644 --- a/nn/op/nn_relu6.c +++ b/nn/op/nn_relu6.c @@ -9,8 +9,8 @@ void NN_relu6(Tensor *y, Tensor *x) { switch (y->dtype) { case DTYPE_F32: - NN__maximum1_f32(y->size, (float *)y->data, (float *)x->data, 0.0f); - NN__minimum1_f32(y->size, (float *)y->data, (float *)y->data, 6.0f); + NN__maximum1_f32(y->size, (float *)y->data, 1, (float *)x->data, 1, 0.0f); + NN__minimum1_f32(y->size, (float *)y->data, 1, (float *)y->data, 1, 6.0f); return; default: From 26ae1e9c65e9883ba6388d63930140827e613630 Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Wed, 10 Jul 2024 12:33:51 -0700 Subject: [PATCH 07/21] REFACTOR: stage refactor --- nn/CMakeLists.txt | 17 ++++++ nn/impl/cpu/mul.c | 8 +++ nn/impl/cpu/mul1.c | 8 +++ nn/impl/cpu/neg.c | 8 +++ nn/impl/cpu/norm.c | 12 +++++ nn/impl/cpu/rmsnorm.c | 18 +++++++ nn/impl/cpu/sgn.c | 9 ++++ nn/impl/cpu/softmax.c | 15 ++++++ nn/impl/cpu/sqr.c | 9 ++++ nn/impl/cpu/sqrt.c | 9 ++++ nn/impl/cpu/sub.c | 21 ++++++++ nn/impl/cpu/sum.c | 26 +++++++++ nn/impl/cpu/transpose.c | 10 ++++ nn/impl/mul.h | 27 ++-------- nn/impl/mul1.h | 26 ++------- nn/impl/neg.h | 24 ++------- nn/impl/norm.h | 20 ++++--- nn/impl/rmsnorm.h | 23 +++----- nn/impl/rvv/mul.c | 22 ++++++++ nn/impl/rvv/mul1.c | 21 ++++++++ nn/impl/rvv/neg.c | 20 +++++++ nn/impl/rvv/sub.c | 35 ++++++++++++ nn/impl/rvv/transpose.c | 22 ++++++++ nn/impl/sgn.h | 12 ++--- nn/impl/softmax.h | 19 ++----- nn/impl/sqr.h | 12 ++--- nn/impl/sqrt.h | 12 ++--- nn/impl/sub.h | 114 ++++++---------------------------------- nn/impl/sum.h | 36 ++++--------- nn/impl/transpose.h | 27 ++-------- nn/op/nn_mul.c | 4 +- nn/op/nn_neg.c | 2 +- nn/op/nn_softmax.c | 4 +- nn/op/nn_sub.c | 32 +++++------ nn/op/nn_sum.c | 6 +-- 35 files changed, 389 insertions(+), 301 deletions(-) create mode 100644 nn/impl/cpu/mul.c create mode 100644 nn/impl/cpu/mul1.c create mode 100644 nn/impl/cpu/neg.c create mode 100644 nn/impl/cpu/norm.c create mode 100644 nn/impl/cpu/rmsnorm.c create mode 100644 nn/impl/cpu/sgn.c create mode 100644 nn/impl/cpu/softmax.c create mode 100644 nn/impl/cpu/sqr.c create mode 100644 nn/impl/cpu/sqrt.c create mode 100644 nn/impl/cpu/sub.c create mode 100644 nn/impl/cpu/sum.c create mode 100644 nn/impl/cpu/transpose.c create mode 100644 nn/impl/rvv/mul.c create mode 100644 nn/impl/rvv/mul1.c create mode 100644 nn/impl/rvv/neg.c create mode 100644 nn/impl/rvv/sub.c create mode 100644 nn/impl/rvv/transpose.c diff --git a/nn/CMakeLists.txt b/nn/CMakeLists.txt index 7c5863b..7d2030e 100644 --- a/nn/CMakeLists.txt +++ b/nn/CMakeLists.txt @@ -17,6 +17,18 @@ set(cpu_impl impl/cpu/min.c impl/cpu/minimum.c impl/cpu/minimum1.c + impl/cpu/mul.c + impl/cpu/mul1.c + impl/cpu/neg.c + impl/cpu/norm.c + impl/cpu/rmsnorm.c + impl/cpu/sgn.c + impl/cpu/softmax.c + impl/cpu/sqr.c + impl/cpu/sqrt.c + impl/cpu/sub.c + impl/cpu/sum.c + impl/cpu/transpose.c ) set(rvv_impl @@ -32,6 +44,11 @@ set(rvv_impl impl/rvv/min.c impl/rvv/minimum.c impl/rvv/minimum1.c + impl/rvv/mul.c + impl/rvv/mul1.c + impl/rvv/neg.c + impl/rvv/sub.c + impl/rvv/transpose.c ) diff --git a/nn/impl/cpu/mul.c b/nn/impl/cpu/mul.c new file mode 100644 index 0000000..d17d1a8 --- /dev/null +++ b/nn/impl/cpu/mul.c @@ -0,0 +1,8 @@ +#include "mul.h" + + +__attribute__((weak)) void NN__mul_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float *y, size_t incy) { + for (size_t i = 0; i < n; i += 1) { + z[i * incz] = x[i * incx] * y[i * incy]; + } +} diff --git a/nn/impl/cpu/mul1.c b/nn/impl/cpu/mul1.c new file mode 100644 index 0000000..41a364a --- /dev/null +++ b/nn/impl/cpu/mul1.c @@ -0,0 +1,8 @@ +#include "mul1.h" + + +__attribute__((weak)) void NN__mul1_f32(size_t n, float *y, size_t incy, float *x, size_t incx, float scalar) { + for (size_t i = 0; i < n; i += 1) { + y[i * incy] = x[i * incx] * scalar; + } +} diff --git a/nn/impl/cpu/neg.c b/nn/impl/cpu/neg.c new file mode 100644 index 0000000..7fca209 --- /dev/null +++ b/nn/impl/cpu/neg.c @@ -0,0 +1,8 @@ +#include "neg.h" + + +__attribute__((weak)) void NN__neg_f32(size_t n, float *y, size_t incy, float *x, size_t incx) { + for (size_t i = 0; i < n; i += 1) { + y[i * incy] = -x[i * incx]; + } +} diff --git a/nn/impl/cpu/norm.c b/nn/impl/cpu/norm.c new file mode 100644 index 0000000..b6a83fb --- /dev/null +++ b/nn/impl/cpu/norm.c @@ -0,0 +1,12 @@ +#include "norm.h" + + +__attribute__((weak)) void NN__norm_f32(size_t n, float *result, float *x, size_t incx) { + NN__dot_f32(n, result, x, incx, x, incx); + *result = sqrtf(*result); +} + +__attribute__((weak)) void NN__norm_inv_f32(size_t n, float *result, float *x, size_t incx) { + NN__norm_f32(n, result, x, incx); + *result = 1.f/(*result); +} diff --git a/nn/impl/cpu/rmsnorm.c b/nn/impl/cpu/rmsnorm.c new file mode 100644 index 0000000..efd60fa --- /dev/null +++ b/nn/impl/cpu/rmsnorm.c @@ -0,0 +1,18 @@ +#include "rmsnorm.h" + + +__attribute__((weak)) void NN__rmsnorm_f32(size_t n, float* y, size_t incy, float* x, size_t incx, float* w, size_t incw) { + // calculate sum of squares + float ss = 0.0f; + for (size_t i = 0; i < n; i += 1) { + ss += x[i * incx] * x[i * incx]; + } + ss /= n; + ss += 1e-5f; + ss = 1.0f / sqrtf(ss); + // normalize and scale + for (size_t i = 0; i < n; i += 1) { + y[i * incy] = w[i * incw] * (ss * x[i * incx]); + } +} + diff --git a/nn/impl/cpu/sgn.c b/nn/impl/cpu/sgn.c new file mode 100644 index 0000000..e6af037 --- /dev/null +++ b/nn/impl/cpu/sgn.c @@ -0,0 +1,9 @@ +#include "sgn.h" + + +__attribute__((weak)) void NN__sgn_f32(size_t n, float *y, size_t incy, float *x, size_t incx) { + for (size_t i = 0; i < n; i += 1) { + y[i * incy] = (x[i * incx] > 0.f) ? 1.f : ((x[i * incx] < 0.f) ? -1.f : 0.f); + } +} + diff --git a/nn/impl/cpu/softmax.c b/nn/impl/cpu/softmax.c new file mode 100644 index 0000000..deefa2c --- /dev/null +++ b/nn/impl/cpu/softmax.c @@ -0,0 +1,15 @@ +#include "softmax.h" + + +__attribute__((weak)) void NN__softmax_f32(size_t n, float *y, size_t incy, float *x, size_t incx) { + // exp and sum + float sum = 0.0f; + for (size_t i = 0; i < n; i += 1) { + y[i * incy] = expf(x[i * incx]); + sum += y[i]; + } + // normalize + for (size_t i = 0; i < n; i += 1) { + y[i * incy] /= sum; + } +} diff --git a/nn/impl/cpu/sqr.c b/nn/impl/cpu/sqr.c new file mode 100644 index 0000000..9432168 --- /dev/null +++ b/nn/impl/cpu/sqr.c @@ -0,0 +1,9 @@ +#include "sqr.h" + + +__attribute__((weak)) void NN__sqr_f32(size_t n, float *y, size_t incy, float *x, size_t incx) { + for (size_t i = 0; i < n; i += 1) { + y[i * incy] = x[i * incx] * x[i * incx]; + } +} + diff --git a/nn/impl/cpu/sqrt.c b/nn/impl/cpu/sqrt.c new file mode 100644 index 0000000..98d97d5 --- /dev/null +++ b/nn/impl/cpu/sqrt.c @@ -0,0 +1,9 @@ +#include "sqrt.h" + + +__attribute__((weak)) void NN__sqrt_f32(size_t n, float *y, size_t incy, float *x, size_t incx) { + for (size_t i = 0; i < n; i += 1) { + y[i * incy] = sqrtf(x[i * incx]); + } +} + diff --git a/nn/impl/cpu/sub.c b/nn/impl/cpu/sub.c new file mode 100644 index 0000000..c3c30ce --- /dev/null +++ b/nn/impl/cpu/sub.c @@ -0,0 +1,21 @@ +#include "sub.h" + + +__attribute__((weak)) void NN__sub_i8(size_t n, int8_t *z, size_t incz, int8_t *x, size_t incx, int8_t *y, size_t incy) { + for (size_t i = 0; i < n; i += 1) { + z[i * incz] = x[i * incx] - y[i * incy]; + } +} + +__attribute__((weak)) void NN__sub_f16(size_t n, float16_t *z, size_t incz, float16_t *x, size_t incx, float16_t *y, size_t incy) { + for (size_t i = 0; i < n; i += 1) { + z[i * incz] = NN_float_to_half(NN_half_to_float(x[i * incx]) - NN_half_to_float(y[i * incy])); + } +} + +__attribute__((weak)) void NN__sub_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float *y, size_t incy) { + for (size_t i = 0; i < n; i += 1) { + z[i * incz] = x[i * incx] - y[i * incy]; + } +} + diff --git a/nn/impl/cpu/sum.c b/nn/impl/cpu/sum.c new file mode 100644 index 0000000..acde35f --- /dev/null +++ b/nn/impl/cpu/sum.c @@ -0,0 +1,26 @@ +#include "sum.h" + + +__attribute__((weak)) void NN__sum_i16_to_i32(size_t n, int32_t *result, int16_t *x, size_t incx) { + int32_t sum = 0; + for (size_t i = 0; i < n; i += 1) { + sum += (int32_t)x[i * incx]; + } + *result = sum; +} + +__attribute__((weak)) void NN__sum_i32(size_t n, int32_t *result, int32_t *x, size_t incx) { + int32_t sum = 0; + for (size_t i = 0; i < n; i += 1) { + sum += x[i * incx]; + } + *result = sum; +} + +__attribute__((weak)) void NN__sum_f32(size_t n, float *result, float *x, size_t incx) { + float sum = 0.f; + for (size_t i = 0; i < n; i += 1) { + sum += x[i * incx]; + } + *result = sum; +} diff --git a/nn/impl/cpu/transpose.c b/nn/impl/cpu/transpose.c new file mode 100644 index 0000000..f3eec6e --- /dev/null +++ b/nn/impl/cpu/transpose.c @@ -0,0 +1,10 @@ +#include "transpose.h" + + +__attribute__((weak)) void NN__transpose_f32(size_t n, size_t m, float *y, float *x) { + for (size_t i = 0; i < m; i += 1) { + for (size_t j = 0; j < n; j += 1) { + y[j * m + i] = x[i * n + j]; + } + } +}; diff --git a/nn/impl/mul.h b/nn/impl/mul.h index edcc8e6..b67896d 100644 --- a/nn/impl/mul.h +++ b/nn/impl/mul.h @@ -4,29 +4,12 @@ #include #include -#ifdef RVV - #include -#endif -static inline void NN__mul_f32(size_t n, float *z, float *x, float *y) { - #ifdef RVV - while (n > 0) { - size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vle32_v_f32m1(x, vl); - vfloat32m1_t vec_y = __riscv_vle32_v_f32m1(y, vl); - vfloat32m1_t vec_z = __riscv_vfmul_vv_f32m1(vec_x, vec_y, vl); - __riscv_vse32_v_f32m1(z, vec_z, vl); - x += vl; - y += vl; - z += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - z[i] = x[i] * y[i]; - } - #endif -} +void NN__mul_f32(size_t n, + float *z, size_t incz, + float *x, size_t incx, + float *y, size_t incy + ); #endif // __NN__MUL_H diff --git a/nn/impl/mul1.h b/nn/impl/mul1.h index 286e75b..7a84a25 100644 --- a/nn/impl/mul1.h +++ b/nn/impl/mul1.h @@ -4,28 +4,12 @@ #include #include -#ifdef RVV - #include -#endif -static inline void NN__mul1_f32(size_t n, float *y, float *x, float v) { - #ifdef RVV - while (n > 0) { - size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vle32_v_f32m1(x, vl); - vfloat32m1_t vec_v = __riscv_vfmv_v_f_f32m1(v, vl); - vfloat32m1_t vec_y = __riscv_vfmul_vv_f32m1(vec_x, vec_v, vl); - __riscv_vse32_v_f32m1(y, vec_y, vl); - x += vl; - y += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - y[i] = x[i] * v; - } - #endif -} +void NN__mul1_f32(size_t n, + float *y, size_t incy, + float *x, size_t incx, + float scalar + ); #endif // __NN__MUL1_H diff --git a/nn/impl/neg.h b/nn/impl/neg.h index 9e26ecb..277f87d 100644 --- a/nn/impl/neg.h +++ b/nn/impl/neg.h @@ -4,27 +4,11 @@ #include #include -#ifdef RVV - #include -#endif -static inline void NN__neg_f32(size_t n, float *y, float *x) { - #ifdef RVV - while (n > 0) { - size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vle32_v_f32m1(x, vl); - vfloat32m1_t vec_y = __riscv_vfneg_v_f32m1(vec_x, vl); - __riscv_vse32_v_f32m1(y, vec_y, vl); - x += vl; - y += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - y[i] = -x[i]; - } - #endif -} +void NN__neg_f32(size_t n, + float *y, size_t incy, + float *x, size_t incx + ); #endif // __NN__NEG_H diff --git a/nn/impl/norm.h b/nn/impl/norm.h index babdc80..66580ae 100644 --- a/nn/impl/norm.h +++ b/nn/impl/norm.h @@ -3,21 +3,19 @@ #include #include -#ifdef RVV - #include -#endif #include "dot.h" -static inline void NN__norm_f32(size_t n, float *s, float *x) { - NN__dot_f32(n, s, x, x); - *s = sqrtf(*s); -} -static inline void NN__norm_inv_f32(size_t n, float *s, float *x) { - NN__norm_f32(n, s, x); - *s = 1.f/(*s); -} +void NN__norm_f32(size_t n, + float *result, + float *x, size_t incx + ); + +void NN__norm_inv_f32(size_t n, + float *result, + float *x, size_t incx + ); #endif // __NN__NORM_H diff --git a/nn/impl/rmsnorm.h b/nn/impl/rmsnorm.h index 7f44a78..f52c045 100644 --- a/nn/impl/rmsnorm.h +++ b/nn/impl/rmsnorm.h @@ -4,23 +4,12 @@ #include #include -#ifdef RVV - #include -#endif -void NN__rmsnorm_f32(size_t size, float* o, float* x, float* weight) { - // calculate sum of squares - float ss = 0.0f; - for (int j = 0; j < size; j++) { - ss += x[j] * x[j]; - } - ss /= size; - ss += 1e-5f; - ss = 1.0f / sqrtf(ss); - // normalize and scale - for (int j = 0; j < size; j++) { - o[j] = weight[j] * (ss * x[j]); - } -} +void NN__rmsnorm_f32(size_t n, + float* y, size_t incy, + float* x, size_t incx, + float* w, size_t incw + ); + #endif // __NN__RMSNORM_H diff --git a/nn/impl/rvv/mul.c b/nn/impl/rvv/mul.c new file mode 100644 index 0000000..05b7bc5 --- /dev/null +++ b/nn/impl/rvv/mul.c @@ -0,0 +1,22 @@ +#include +#include "mul.h" + +#ifdef RVV + + +void NN__mul_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float *y, size_t incy) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e32m1(n); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, incy, vl); + vfloat32m1_t vec_z = __riscv_vfmul_vv_f32m1(vec_x, vec_y, vl); + __riscv_vsse32_v_f32m1(z, incz, vec_z, vl); + x += vl; + y += vl; + z += vl; + n -= vl; + } +} + + +#endif diff --git a/nn/impl/rvv/mul1.c b/nn/impl/rvv/mul1.c new file mode 100644 index 0000000..b4efb55 --- /dev/null +++ b/nn/impl/rvv/mul1.c @@ -0,0 +1,21 @@ +#include +#include "mul1.h" + +#ifdef RVV + + +void NN__mul1_f32(size_t n, float *y, size_t incy, float *x, size_t incx, float scalar) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e32m1(n); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_s = __riscv_vfmv_v_f_f32m1(scalar, vl); + vfloat32m1_t vec_y = __riscv_vfmul_vv_f32m1(vec_x, vec_s, vl); + __riscv_vsse32_v_f32m1(y, incy, vec_y, vl); + x += vl; + y += vl; + n -= vl; + } +} + + +#endif diff --git a/nn/impl/rvv/neg.c b/nn/impl/rvv/neg.c new file mode 100644 index 0000000..13d7b9e --- /dev/null +++ b/nn/impl/rvv/neg.c @@ -0,0 +1,20 @@ +#include +#include "neg.h" + +#ifdef RVV + + +void NN__neg_f32(size_t n, float *y, size_t incy, float *x, size_t incx) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e32m1(n); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_y = __riscv_vfneg_v_f32m1(vec_x, vl); + __riscv_vsse32_v_f32m1(y, incy, vec_y, vl); + x += vl; + y += vl; + n -= vl; + } +} + + +#endif diff --git a/nn/impl/rvv/sub.c b/nn/impl/rvv/sub.c new file mode 100644 index 0000000..1885e27 --- /dev/null +++ b/nn/impl/rvv/sub.c @@ -0,0 +1,35 @@ +#include +#include "sub.h" + +#ifdef RVV + + +void NN__sub_i8(size_t n, int8_t *z, size_t incz, int8_t *x, size_t incx, int8_t *y, size_t incy) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e8m1(n); + vint8m1_t vec_x = __riscv_vlse8_v_i8m1(x, incx, vl); + vint8m1_t vec_y = __riscv_vlse8_v_i8m1(y, incy, vl); + vint8m1_t vec_z = __riscv_vsub_vv_i8m1(vec_x, vec_y, vl); + __riscv_vsse8_v_i8m1(z, incz, vec_z, vl); + x += vl; + y += vl; + z += vl; + n -= vl; + } +} + +void NN__sub_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float *y, size_t incy) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e32m1(n); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, incy, vl); + vfloat32m1_t vec_z = __riscv_vfsub_vv_f32m1(vec_x, vec_y, vl); + __riscv_vsse32_v_f32m1(z, incz, vec_z, vl); + x += vl; + y += vl; + z += vl; + n -= vl; + } +} + +#endif diff --git a/nn/impl/rvv/transpose.c b/nn/impl/rvv/transpose.c new file mode 100644 index 0000000..be98a79 --- /dev/null +++ b/nn/impl/rvv/transpose.c @@ -0,0 +1,22 @@ +#include +#include "neg.h" + +#ifdef RVV + + +void NN__transpose_f32(size_t n, size_t m, float *y, float *x) { + for (size_t i = 0; i < m; i += 1) { + size_t k = n; + while (k > 0) { + size_t vl = __riscv_vsetvl_e32m1(k); + vfloat32m1_t vec_x = __riscv_vle32_v_f32m1(x, vl); + __riscv_vsse32_v_f32m1(y, sizeof(float) * m, vec_x, vl); + x += vl; + y += vl * m; + k -= vl; + } + } +} + + +#endif diff --git a/nn/impl/sgn.h b/nn/impl/sgn.h index 4407a0d..52580bc 100644 --- a/nn/impl/sgn.h +++ b/nn/impl/sgn.h @@ -5,15 +5,11 @@ #include #include -#ifdef RVV - #include -#endif -static inline void NN__sgn_f32(size_t n, float *y, float *x) { - for (size_t i = 0; i < n; i += 1) { - y[i] = (x[i] > 0.f) ? 1.f : ((x[i] < 0.f) ? -1.f : 0.f); - } -} +void NN__sgn_f32(size_t n, + float *y, size_t incy, + float *x, size_t incx + ); #endif // __NN__SGN_H diff --git a/nn/impl/softmax.h b/nn/impl/softmax.h index 4e79c59..503e46d 100644 --- a/nn/impl/softmax.h +++ b/nn/impl/softmax.h @@ -4,22 +4,11 @@ #include #include -#ifdef RVV - #include -#endif -static inline void NN__softmax_f32(size_t n, float *y, float *x, size_t stride) { - // exp and sum - float sum = 0.0f; - for (size_t i = 0; i < n * stride; i += stride) { - y[i] = expf(x[i]); - sum += y[i]; - } - // normalize - for (size_t i = 0; i < n * stride; i += stride) { - y[i] /= sum; - } -} +void NN__softmax_f32(size_t n, + float *y, size_t incy, + float *x, size_t incx + ); #endif // __NN__SOFTMAX_H diff --git a/nn/impl/sqr.h b/nn/impl/sqr.h index db7db59..1867149 100644 --- a/nn/impl/sqr.h +++ b/nn/impl/sqr.h @@ -5,15 +5,11 @@ #include #include -#ifdef RVV - #include -#endif -static inline void NN__sqr_f32(size_t n, float *y, float *x) { - for (size_t i = 0; i < n; i += 1) { - y[i] = x[i] * x[i]; - } -} +void NN__sqr_f32(size_t n, + float *y, size_t incy, + float *x, size_t incx + ); #endif // __NN__SQR_H diff --git a/nn/impl/sqrt.h b/nn/impl/sqrt.h index e43966d..06b7b2a 100644 --- a/nn/impl/sqrt.h +++ b/nn/impl/sqrt.h @@ -5,15 +5,11 @@ #include #include -#ifdef RVV - #include -#endif -static inline void NN__sqrt_f32(size_t n, float *y, float *x) { - for (size_t i = 0; i < n; i += 1) { - y[i] = sqrtf(x[i]); - } -} +void NN__sqrt_f32(size_t n, + float *y, size_t incy, + float *x, size_t incx + ); #endif // __NN__SQRT_H diff --git a/nn/impl/sub.h b/nn/impl/sub.h index f809d82..7eb68ee 100644 --- a/nn/impl/sub.h +++ b/nn/impl/sub.h @@ -4,108 +4,26 @@ #include #include -#ifdef RVV - #include -#endif +#include "nn_float16.h" -static inline void NN__sub_u8(size_t n, uint8_t *z, uint8_t *x, uint8_t *y) { - #ifdef RVV - while (n > 0) { - size_t vl = __riscv_vsetvl_e8m1(n); - vuint8m1_t vec_x = __riscv_vle8_v_u8m1(x, vl); - vuint8m1_t vec_y = __riscv_vle8_v_u8m1(y, vl); - vuint8m1_t vec_z = __riscv_vsub_vv_u8m1(vec_x, vec_y, vl); - __riscv_vse8_v_u8m1(z, vec_z, vl); - x += vl; - y += vl; - z += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - z[i] = x[i] - y[i]; - } - #endif -} -static inline void NN__sub_i8(size_t n, int8_t *z, int8_t *x, int8_t *y) { - #ifdef RVV - while (n > 0) { - size_t vl = __riscv_vsetvl_e8m1(n); - vint8m1_t vec_x = __riscv_vle8_v_i8m1(x, vl); - vint8m1_t vec_y = __riscv_vle8_v_i8m1(y, vl); - vint8m1_t vec_z = __riscv_vsub_vv_i8m1(vec_x, vec_y, vl); - __riscv_vse8_v_i8m1(z, vec_z, vl); - x += vl; - y += vl; - z += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - z[i] = x[i] - y[i]; - } - #endif -} +void NN__sub_i8(size_t n, + int8_t *z, size_t incz, + int8_t *x, size_t incx, + int8_t *y, size_t incy + ); -static inline void NN__sub_i16(size_t n, int16_t *z, int16_t *x, int16_t *y) { - #ifdef RVV - while (n > 0) { - size_t vl = __riscv_vsetvl_e16m1(n); - vint16m1_t vec_x = __riscv_vle16_v_i16m1(x, vl); - vint16m1_t vec_y = __riscv_vle16_v_i16m1(y, vl); - vint16m1_t vec_z = __riscv_vsub_vv_i16m1(vec_x, vec_y, vl); - __riscv_vse16_v_i16m1(z, vec_z, vl); - x += vl; - y += vl; - z += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - z[i] = x[i] - y[i]; - } - #endif -} +void NN__sub_f16(size_t n, + float16_t *z, size_t incz, + float16_t *x, size_t incx, + float16_t *y, size_t incy + ); -static inline void NN__sub_i32(size_t n, int32_t *z, int32_t *x, int32_t *y) { - #ifdef RVV - while (n > 0) { - size_t vl = __riscv_vsetvl_e32m1(n); - vint32m1_t vec_x = __riscv_vle32_v_i32m1(x, vl); - vint32m1_t vec_y = __riscv_vle32_v_i32m1(y, vl); - vint32m1_t vec_z = __riscv_vsub_vv_i32m1(vec_x, vec_y, vl); - __riscv_vse32_v_i32m1(z, vec_z, vl); - x += vl; - y += vl; - z += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - z[i] = x[i] - y[i]; - } - #endif -} +void NN__sub_f32(size_t n, + float *z, size_t incz, + float *x, size_t incx, + float *y, size_t incy + ); -static inline void NN__sub_f32(size_t n, float *z, float *x, float *y) { - #ifdef RVV - while (n > 0) { - size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vle32_v_f32m1(x, vl); - vfloat32m1_t vec_y = __riscv_vle32_v_f32m1(y, vl); - vfloat32m1_t vec_z = __riscv_vfsub_vv_f32m1(vec_x, vec_y, vl); - __riscv_vse32_v_f32m1(z, vec_z, vl); - x += vl; - y += vl; - z += vl; - n -= vl; - } - #else - for (size_t i = 0; i < n; i += 1) { - z[i] = x[i] - y[i]; - } - #endif -} #endif // __NN__SUB_H diff --git a/nn/impl/sum.h b/nn/impl/sum.h index d642a54..99d326b 100644 --- a/nn/impl/sum.h +++ b/nn/impl/sum.h @@ -5,34 +5,20 @@ #include #include -#ifdef RVV - #include -#endif -static inline void NN__sum_i16_to_i32(size_t n, uint32_t *s, int16_t *x) { - int32_t sum = 0; - for (size_t i = 0; i < n; i += 1) { - sum += (int32_t)x[i]; - } - *s = sum; -} +void NN__sum_i16_to_i32(size_t n, + int32_t *result, + int16_t *x, size_t incx + ); -static inline void NN__sum_i32(size_t n, uint32_t *s, int32_t *x) { - int32_t sum = 0; - for (size_t i = 0; i < n; i += 1) { - sum += x[i]; - } - *s = sum; -} - -static inline void NN__sum_f32(size_t n, float *s, float *x) { - float sum = 0.0; - for (size_t i = 0; i < n; i += 1) { - sum += (float)x[i]; - } - *s = sum; -} +void NN__sum_i32(size_t n, + int32_t *result, + int32_t *x, size_t incx + ); +void NN__sum_f32(size_t n, + float *result, + float *x, size_t incx); #endif // __NN__SUM_H diff --git a/nn/impl/transpose.h b/nn/impl/transpose.h index 5f2e51d..4000a44 100644 --- a/nn/impl/transpose.h +++ b/nn/impl/transpose.h @@ -3,31 +3,10 @@ #include -#ifdef RVV - #include -#endif -static inline void NN__transpose_f32(size_t n, size_t m, float *y, float *x) { - #ifdef RVV - for (size_t i = 0; i < m; i += 1) { - size_t k = n; - while (k > 0) { - size_t vl = __riscv_vsetvl_e32m1(k); - vfloat32m1_t vec_x = __riscv_vle32_v_f32m1(x, vl); - __riscv_vsse32_v_f32m1(y, sizeof(float) * m, vec_x, vl); - x += vl; - y += vl * m; - k -= vl; - } - } - #else - for (size_t i = 0; i < m; i += 1) { - for (size_t j = 0; j < n; j += 1) { - y[j * m + i] = x[i * n + j]; - } - } - #endif -}; +void NN__transpose_f32(size_t n, size_t m, + float *y, float *x + ); #endif // __NN__TRANSPOSE_H diff --git a/nn/op/nn_mul.c b/nn/op/nn_mul.c index 15c4dd0..cfc13dd 100644 --- a/nn/op/nn_mul.c +++ b/nn/op/nn_mul.c @@ -11,7 +11,7 @@ void NN_mul(Tensor *out, Tensor *a, Tensor *b) { switch (out->dtype) { case DTYPE_F32: - NN__mul_f32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); + NN__mul_f32(out->size, (float *)out->data, 1, (float *)a->data, 1, (float *)b->data, 1); return; default: @@ -31,7 +31,7 @@ void NN_mul1(Tensor *out, Tensor *in, float scalar) { switch (out->dtype) { case DTYPE_F32: - NN__mul1_f32(out->size, (float *)out->data, (float *)in->data, scalar); + NN__mul1_f32(out->size, (float *)out->data, 1, (float *)in->data, 1, scalar); return; default: diff --git a/nn/op/nn_neg.c b/nn/op/nn_neg.c index 5e7830e..0acfab2 100644 --- a/nn/op/nn_neg.c +++ b/nn/op/nn_neg.c @@ -10,7 +10,7 @@ void NN_neg(Tensor *out, Tensor *in) { switch (out->dtype) { case DTYPE_F32: - NN__neg_f32(out->size, (float *)out->data, (float *)in->data); + NN__neg_f32(out->size, (float *)out->data, 1, (float *)in->data, 1); return; default: diff --git a/nn/op/nn_softmax.c b/nn/op/nn_softmax.c index 74f6f24..64bd03e 100644 --- a/nn/op/nn_softmax.c +++ b/nn/op/nn_softmax.c @@ -11,7 +11,7 @@ void NN_softmax(Tensor *out, Tensor *tensor, size_t dim) { for (size_t i = 0; i < tensor->shape[0]; i += 1) { float *x = (float *)tensor->data + i * tensor->shape[1]; float *y = (float *)out->data + i * out->shape[1]; - NN__softmax_f32(tensor->shape[1], y, x, 1); + NN__softmax_f32(tensor->shape[1], y, 1, x, 1); } return; } @@ -19,7 +19,7 @@ void NN_softmax(Tensor *out, Tensor *tensor, size_t dim) { for (size_t i = 0; i < tensor->shape[1]; i += 1) { float *x = (float *)tensor->data + i; float *y = (float *)out->data + i; - NN__softmax_f32(tensor->shape[0], y, x, tensor->shape[1]); + NN__softmax_f32(tensor->shape[0], y, tensor->shape[1], x, tensor->shape[1]); } return; } diff --git a/nn/op/nn_sub.c b/nn/op/nn_sub.c index 03fc68c..595806d 100644 --- a/nn/op/nn_sub.c +++ b/nn/op/nn_sub.c @@ -33,12 +33,12 @@ void NN_sub_1d(Tensor *out, Tensor *a, Tensor *b) { assert(out->shape[0] == a->shape[0] || out->shape[0] == b->shape[0]); if (out->dtype == DTYPE_F32 && a->dtype == DTYPE_F32 && b->dtype == DTYPE_F32) { - NN__sub_f32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); + NN__sub_f32(out->size, (float *)out->data, 1, (float *)a->data, 1, (float *)b->data, 1); return; } if (out->dtype == DTYPE_I8 && a->dtype == DTYPE_I8 && b->dtype == DTYPE_I8) { - NN__sub_i8(out->size, (int8_t *)out->data, (int8_t *)a->data, (int8_t *)b->data); + NN__sub_i8(out->size, (int8_t *)out->data, 1, (int8_t *)a->data, 1, (int8_t *)b->data, 1); return; } @@ -53,25 +53,25 @@ void NN_sub_2d(Tensor *out, Tensor *a, Tensor *b) { if (a->shape[0] == b->shape[0] && a->shape[1] == b->shape[1]) { if (out->dtype == DTYPE_F32 && a->dtype == DTYPE_F32 && b->dtype == DTYPE_F32) { - NN__sub_f32(out->size, (float *)out->data, (float *)a->data, (float *)b->data); + NN__sub_f32(out->size, (float *)out->data, 1, (float *)a->data, 1, (float *)b->data, 1); return; } if (out->dtype == DTYPE_I8 && a->dtype == DTYPE_I8 && b->dtype == DTYPE_I8) { - NN__sub_i8(out->size, (int8_t *)out->data, (int8_t *)a->data, (int8_t *)b->data); - return; - } - if (out->dtype == DTYPE_I16 && a->dtype == DTYPE_I16 && b->dtype == DTYPE_I16) { - NN__sub_i16(out->size, (int16_t *)out->data, (int16_t *)a->data, (int16_t *)b->data); - return; - } - if (out->dtype == DTYPE_I32 && a->dtype == DTYPE_I32 && b->dtype == DTYPE_I32) { - NN__sub_i32(out->size, (int32_t *)out->data, (int32_t *)a->data, (int32_t *)b->data); - return; - } - if (out->dtype == DTYPE_U8 && a->dtype == DTYPE_U8 && b->dtype == DTYPE_U8) { - NN__sub_u8(out->size, (uint8_t *)out->data, (uint8_t *)a->data, (uint8_t *)b->data); + NN__sub_i8(out->size, (int8_t *)out->data, 1, (int8_t *)a->data, 1, (int8_t *)b->data, 1); return; } + // if (out->dtype == DTYPE_I16 && a->dtype == DTYPE_I16 && b->dtype == DTYPE_I16) { + // NN__sub_i16(out->size, (int16_t *)out->data, 1, (int16_t *)a->data, 1, (int16_t *)b->data, 1); + // return; + // } + // if (out->dtype == DTYPE_I32 && a->dtype == DTYPE_I32 && b->dtype == DTYPE_I32) { + // NN__sub_i32(out->size, (int32_t *)out->data, 1, (int32_t *)a->data, 1, (int32_t *)b->data, 1); + // return; + // } + // if (out->dtype == DTYPE_U8 && a->dtype == DTYPE_U8 && b->dtype == DTYPE_U8) { + // NN__sub_u8(out->size, (uint8_t *)out->data, 1, (uint8_t *)a->data, 1, (uint8_t *)b->data, 1); + // return; + // } } if (out->dtype == DTYPE_F32 && a->dtype == DTYPE_F32 && b->dtype == DTYPE_F32) { diff --git a/nn/op/nn_sum.c b/nn/op/nn_sum.c index e3737ab..73d2fd8 100644 --- a/nn/op/nn_sum.c +++ b/nn/op/nn_sum.c @@ -7,7 +7,7 @@ void NN_sum(Tensor *out, Tensor *tensor) { case DTYPE_I16: switch (out->dtype) { case DTYPE_I32: - NN__sum_i16_to_i32(tensor->size, (int32_t *)out->data, (int16_t *)tensor->data); + NN__sum_i16_to_i32(tensor->size, (int32_t *)out->data, (int16_t *)tensor->data, 1); return; } break; @@ -15,13 +15,13 @@ void NN_sum(Tensor *out, Tensor *tensor) { case DTYPE_I32: switch (out->dtype) { case DTYPE_I32: - NN__sum_i32(tensor->size, (int32_t *)out->data, (int32_t *)tensor->data); + NN__sum_i32(tensor->size, (int32_t *)out->data, (int32_t *)tensor->data, 1); return; } break; case DTYPE_F32: - NN__sum_f32(tensor->size, (float *)out->data, (float *)tensor->data); + NN__sum_f32(tensor->size, (float *)out->data, (float *)tensor->data, 1); return; default: From a418981e4ff3c32321bb26d98f7ce8bb3e111a81 Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Wed, 10 Jul 2024 12:37:00 -0700 Subject: [PATCH 08/21] REFACTOR: stage refactor --- nn/impl/cpu/sub.c | 18 ++++++++++++++++++ nn/impl/rvv/sub.c | 42 ++++++++++++++++++++++++++++++++++++++++++ nn/impl/sub.h | 18 ++++++++++++++++++ nn/op/nn_sub.c | 24 ++++++++++++------------ 4 files changed, 90 insertions(+), 12 deletions(-) diff --git a/nn/impl/cpu/sub.c b/nn/impl/cpu/sub.c index c3c30ce..a5f8558 100644 --- a/nn/impl/cpu/sub.c +++ b/nn/impl/cpu/sub.c @@ -1,12 +1,30 @@ #include "sub.h" +__attribute__((weak)) void NN__sub_u8(size_t n, uint8_t *z, size_t incz, uint8_t *x, size_t incx, uint8_t *y, size_t incy) { + for (size_t i = 0; i < n; i += 1) { + z[i * incz] = x[i * incx] - y[i * incy]; + } +} + __attribute__((weak)) void NN__sub_i8(size_t n, int8_t *z, size_t incz, int8_t *x, size_t incx, int8_t *y, size_t incy) { for (size_t i = 0; i < n; i += 1) { z[i * incz] = x[i * incx] - y[i * incy]; } } +__attribute__((weak)) void NN__sub_i16(size_t n, int16_t *z, size_t incz, int16_t *x, size_t incx, int16_t *y, size_t incy) { + for (size_t i = 0; i < n; i += 1) { + z[i * incz] = x[i * incx] - y[i * incy]; + } +} + +__attribute__((weak)) void NN__sub_i32(size_t n, int32_t *z, size_t incz, int32_t *x, size_t incx, int32_t *y, size_t incy) { + for (size_t i = 0; i < n; i += 1) { + z[i * incz] = x[i * incx] - y[i * incy]; + } +} + __attribute__((weak)) void NN__sub_f16(size_t n, float16_t *z, size_t incz, float16_t *x, size_t incx, float16_t *y, size_t incy) { for (size_t i = 0; i < n; i += 1) { z[i * incz] = NN_float_to_half(NN_half_to_float(x[i * incx]) - NN_half_to_float(y[i * incy])); diff --git a/nn/impl/rvv/sub.c b/nn/impl/rvv/sub.c index 1885e27..59b8dc5 100644 --- a/nn/impl/rvv/sub.c +++ b/nn/impl/rvv/sub.c @@ -4,6 +4,20 @@ #ifdef RVV +void NN__sub_u8(size_t n, uint8_t *z, size_t incz, uint8_t *x, size_t incx, uint8_t *y, size_t incy) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e8m1(n); + vuint8m1_t vec_x = __riscv_vlse8_v_u8m1(x, incx, vl); + vuint8m1_t vec_y = __riscv_vlse8_v_u8m1(y, incy, vl); + vuint8m1_t vec_z = __riscv_vsub_vv_u8m1(vec_x, vec_y, vl); + __riscv_vsse8_v_u8m1(z, incz, vec_z, vl); + x += vl; + y += vl; + z += vl; + n -= vl; + } +} + void NN__sub_i8(size_t n, int8_t *z, size_t incz, int8_t *x, size_t incx, int8_t *y, size_t incy) { while (n > 0) { size_t vl = __riscv_vsetvl_e8m1(n); @@ -18,6 +32,34 @@ void NN__sub_i8(size_t n, int8_t *z, size_t incz, int8_t *x, size_t incx, int8_t } } +void NN__sub_i16(size_t n, int16_t *z, size_t incz, int16_t *x, size_t incx, int16_t *y, size_t incy) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e16m1(n); + vint16m1_t vec_x = __riscv_vlse16_v_i16m1(x, incx, vl); + vint16m1_t vec_y = __riscv_vlse16_v_i16m1(y, incy, vl); + vint16m1_t vec_z = __riscv_vsub_vv_i16m1(vec_x, vec_y, vl); + __riscv_vsse16_v_i16m1(z, incz, vec_z, vl); + x += vl; + y += vl; + z += vl; + n -= vl; + } +} + +void NN__sub_i32(size_t n, int32_t *z, size_t incz, int32_t *x, size_t incx, int32_t *y, size_t incy) { + while (n > 0) { + size_t vl = __riscv_vsetvl_e32m1(n); + vint32m1_t vec_x = __riscv_vlse32_v_i32m1(x, incx, vl); + vint32m1_t vec_y = __riscv_vlse32_v_i32m1(y, incy, vl); + vint32m1_t vec_z = __riscv_vsub_vv_i32m1(vec_x, vec_y, vl); + __riscv_vsse32_v_i32m1(z, incz, vec_z, vl); + x += vl; + y += vl; + z += vl; + n -= vl; + } +} + void NN__sub_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float *y, size_t incy) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); diff --git a/nn/impl/sub.h b/nn/impl/sub.h index 7eb68ee..870efbb 100644 --- a/nn/impl/sub.h +++ b/nn/impl/sub.h @@ -7,12 +7,30 @@ #include "nn_float16.h" +void NN__sub_u8(size_t n, + uint8_t *z, size_t incz, + uint8_t *x, size_t incx, + uint8_t *y, size_t incy + ); + void NN__sub_i8(size_t n, int8_t *z, size_t incz, int8_t *x, size_t incx, int8_t *y, size_t incy ); +void NN__sub_i16(size_t n, + int16_t *z, size_t incz, + int16_t *x, size_t incx, + int16_t *y, size_t incy + ); + +void NN__sub_i32(size_t n, + int32_t *z, size_t incz, + int32_t *x, size_t incx, + int32_t *y, size_t incy + ); + void NN__sub_f16(size_t n, float16_t *z, size_t incz, float16_t *x, size_t incx, diff --git a/nn/op/nn_sub.c b/nn/op/nn_sub.c index 595806d..bc90c44 100644 --- a/nn/op/nn_sub.c +++ b/nn/op/nn_sub.c @@ -60,18 +60,18 @@ void NN_sub_2d(Tensor *out, Tensor *a, Tensor *b) { NN__sub_i8(out->size, (int8_t *)out->data, 1, (int8_t *)a->data, 1, (int8_t *)b->data, 1); return; } - // if (out->dtype == DTYPE_I16 && a->dtype == DTYPE_I16 && b->dtype == DTYPE_I16) { - // NN__sub_i16(out->size, (int16_t *)out->data, 1, (int16_t *)a->data, 1, (int16_t *)b->data, 1); - // return; - // } - // if (out->dtype == DTYPE_I32 && a->dtype == DTYPE_I32 && b->dtype == DTYPE_I32) { - // NN__sub_i32(out->size, (int32_t *)out->data, 1, (int32_t *)a->data, 1, (int32_t *)b->data, 1); - // return; - // } - // if (out->dtype == DTYPE_U8 && a->dtype == DTYPE_U8 && b->dtype == DTYPE_U8) { - // NN__sub_u8(out->size, (uint8_t *)out->data, 1, (uint8_t *)a->data, 1, (uint8_t *)b->data, 1); - // return; - // } + if (out->dtype == DTYPE_I16 && a->dtype == DTYPE_I16 && b->dtype == DTYPE_I16) { + NN__sub_i16(out->size, (int16_t *)out->data, 1, (int16_t *)a->data, 1, (int16_t *)b->data, 1); + return; + } + if (out->dtype == DTYPE_I32 && a->dtype == DTYPE_I32 && b->dtype == DTYPE_I32) { + NN__sub_i32(out->size, (int32_t *)out->data, 1, (int32_t *)a->data, 1, (int32_t *)b->data, 1); + return; + } + if (out->dtype == DTYPE_U8 && a->dtype == DTYPE_U8 && b->dtype == DTYPE_U8) { + NN__sub_u8(out->size, (uint8_t *)out->data, 1, (uint8_t *)a->data, 1, (uint8_t *)b->data, 1); + return; + } } if (out->dtype == DTYPE_F32 && a->dtype == DTYPE_F32 && b->dtype == DTYPE_F32) { From 21ff63aaf5a59eccc0c4b0d20713295938ae80fb Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Wed, 10 Jul 2024 14:36:09 -0700 Subject: [PATCH 09/21] FIX: fix softmax dimension index --- nn/op/nn_softmax.c | 24 +++++++++++++----------- nn/op/nn_softmax.h | 3 ++- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/nn/op/nn_softmax.c b/nn/op/nn_softmax.c index 64bd03e..54ac03b 100644 --- a/nn/op/nn_softmax.c +++ b/nn/op/nn_softmax.c @@ -2,20 +2,16 @@ #include "nn_softmax.h" -void NN_softmax(Tensor *out, Tensor *tensor, size_t dim) { +void NN_softmax(Tensor *out, Tensor *tensor, int dim) { assert(out->dtype == tensor->dtype); + if (dim < 0) { + dim = out->ndim + dim; + } + switch (tensor->dtype) { case DTYPE_F32: if (dim == 0) { - for (size_t i = 0; i < tensor->shape[0]; i += 1) { - float *x = (float *)tensor->data + i * tensor->shape[1]; - float *y = (float *)out->data + i * out->shape[1]; - NN__softmax_f32(tensor->shape[1], y, 1, x, 1); - } - return; - } - if (dim == 1) { for (size_t i = 0; i < tensor->shape[1]; i += 1) { float *x = (float *)tensor->data + i; float *y = (float *)out->data + i; @@ -23,8 +19,14 @@ void NN_softmax(Tensor *out, Tensor *tensor, size_t dim) { } return; } - - // NN__softmax_f32(tensor->size, (float *)out->data, (float *)tensor->data); + if (dim == 1) { + for (size_t i = 0; i < tensor->shape[0]; i += 1) { + float *x = (float *)tensor->data + i * tensor->shape[1]; + float *y = (float *)out->data + i * out->shape[1]; + NN__softmax_f32(tensor->shape[1], y, 1, x, 1); + } + return; + } break; default: diff --git a/nn/op/nn_softmax.h b/nn/op/nn_softmax.h index fa6b855..a4acfac 100644 --- a/nn/op/nn_softmax.h +++ b/nn/op/nn_softmax.h @@ -12,8 +12,9 @@ * * @param out: the output scalar tensor * @param tensor: the input tensor + * @param dim: the dimension to reduce */ -void NN_softmax(Tensor *out, Tensor *tensor, size_t dim); +void NN_softmax(Tensor *out, Tensor *tensor, int dim); #endif // __NN_SOFTMAX_H From af20334dce7feaa81043c63cfbe28a8d7f97fe2e Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Wed, 10 Jul 2024 14:36:25 -0700 Subject: [PATCH 10/21] REFACTOR: stage refactor --- nn/CMakeLists.txt | 75 +++---- nn/impl/cpu/softmax.c | 2 +- nn/impl/cpu/sum.c | 8 + nn/impl/cpu/transpose.c | 2 +- nn/impl/gemmini/mm.c | 23 +++ nn/impl/gemmini/mm.h | 19 ++ nn/impl/rvv/transpose.c | 2 +- nn/impl/sum.h | 4 + nn/impl/transpose.h | 2 +- nn/op/nn.h | 2 + nn/op/nn_fill.c | 52 ----- nn/op/nn_fill.h | 7 - nn/op/nn_float16.h | 64 ++---- nn/op/nn_matmul.h | 2 +- nn/op/nn_max_pool2d.c | 7 +- nn/op/nn_mm.c | 58 +----- nn/op/nn_print.c | 72 +++++-- nn/op/nn_print.h | 25 +++ nn/op/nn_sum.c | 37 +++- nn/op/nn_tensor_creation.c | 52 +++++ nn/op/nn_tensor_creation.h | 1 + tests/src/generate_test.py | 69 ++++--- tests/src/generated.c | 410 ++++++++++++++++++++++++++++++++++--- 23 files changed, 711 insertions(+), 284 deletions(-) create mode 100644 nn/impl/gemmini/mm.c create mode 100644 nn/impl/gemmini/mm.h diff --git a/nn/CMakeLists.txt b/nn/CMakeLists.txt index 7d2030e..b136659 100644 --- a/nn/CMakeLists.txt +++ b/nn/CMakeLists.txt @@ -31,25 +31,45 @@ set(cpu_impl impl/cpu/transpose.c ) -set(rvv_impl - impl/rvv/abs.c - impl/rvv/acc.c - impl/rvv/acc1.c - impl/rvv/add.c - impl/rvv/add1.c - impl/rvv/div.c - impl/rvv/max.c - impl/rvv/maximum.c - impl/rvv/maximum1.c - impl/rvv/min.c - impl/rvv/minimum.c - impl/rvv/minimum1.c - impl/rvv/mul.c - impl/rvv/mul1.c - impl/rvv/neg.c - impl/rvv/sub.c - impl/rvv/transpose.c -) + +if (AVX) + message(STATUS "Using AVX implementation") + add_compile_definitions(AVX) +endif () + +if (RVV) + message(STATUS "Using RVV implementation") + add_compile_definitions(RVV) + + set(rvv_impl + impl/rvv/abs.c + impl/rvv/acc.c + impl/rvv/acc1.c + impl/rvv/add.c + impl/rvv/add1.c + impl/rvv/div.c + impl/rvv/max.c + impl/rvv/maximum.c + impl/rvv/maximum1.c + impl/rvv/min.c + impl/rvv/minimum.c + impl/rvv/minimum1.c + impl/rvv/mul.c + impl/rvv/mul1.c + impl/rvv/neg.c + impl/rvv/sub.c + impl/rvv/transpose.c + ) +endif () + +if (GEMMINI) + message(STATUS "Using Gemmini implementation") + add_compile_definitions(GEMMINI) + + set(gemmini_impl + impl/gemmini/mm.c + ) +endif () add_library(nn @@ -87,26 +107,11 @@ add_library(nn ${cpu_impl} ${rvv_impl} + ${gemmini_impl} ) target_include_directories(nn PUBLIC op impl) - -if (AVX) - message(STATUS "Using AVX implementation") - add_compile_definitions(AVX) -endif () - -if (RVV) - message(STATUS "Using RVV implementation") - add_compile_definitions(RVV) -endif () - -if (GEMMINI) - message(STATUS "Using Gemmini implementation") - add_compile_definitions(GEMMINI) -endif () - if (X86) message("NN: Building for x86") target_link_libraries(nn target-x86) diff --git a/nn/impl/cpu/softmax.c b/nn/impl/cpu/softmax.c index deefa2c..84c4322 100644 --- a/nn/impl/cpu/softmax.c +++ b/nn/impl/cpu/softmax.c @@ -6,7 +6,7 @@ __attribute__((weak)) void NN__softmax_f32(size_t n, float *y, size_t incy, floa float sum = 0.0f; for (size_t i = 0; i < n; i += 1) { y[i * incy] = expf(x[i * incx]); - sum += y[i]; + sum += y[i * incy]; } // normalize for (size_t i = 0; i < n; i += 1) { diff --git a/nn/impl/cpu/sum.c b/nn/impl/cpu/sum.c index acde35f..8181b2b 100644 --- a/nn/impl/cpu/sum.c +++ b/nn/impl/cpu/sum.c @@ -1,6 +1,14 @@ #include "sum.h" +__attribute__((weak)) void NN__sum_u8_to_i32(size_t n, int32_t *result, uint8_t *x, size_t incx) { + int32_t sum = 0; + for (size_t i = 0; i < n; i += 1) { + sum += (int32_t)x[i * incx]; + } + *result = sum; +} + __attribute__((weak)) void NN__sum_i16_to_i32(size_t n, int32_t *result, int16_t *x, size_t incx) { int32_t sum = 0; for (size_t i = 0; i < n; i += 1) { diff --git a/nn/impl/cpu/transpose.c b/nn/impl/cpu/transpose.c index f3eec6e..3339ba0 100644 --- a/nn/impl/cpu/transpose.c +++ b/nn/impl/cpu/transpose.c @@ -1,7 +1,7 @@ #include "transpose.h" -__attribute__((weak)) void NN__transpose_f32(size_t n, size_t m, float *y, float *x) { +__attribute__((weak)) void NN__transpose_f32(size_t m, size_t n, float *y, float *x) { for (size_t i = 0; i < m; i += 1) { for (size_t j = 0; j < n; j += 1) { y[j * m + i] = x[i * n + j]; diff --git a/nn/impl/gemmini/mm.c b/nn/impl/gemmini/mm.c new file mode 100644 index 0000000..4b7d113 --- /dev/null +++ b/nn/impl/gemmini/mm.c @@ -0,0 +1,23 @@ +#include "mm.h" + + +void NN__mm_f32(size_t m, size_t n, float16_t *z, float16_t *x, float16_t *y) { + size_t dim_I = m; + size_t dim_J = n; + size_t dim_K = n; + + size_t stride_A = dim_K; + size_t stride_B = dim_J; + size_t stride_D = dim_J; + size_t stride_C = dim_J; + + tiled_matmul_auto(dim_I, dim_J, dim_K, + x, y, + NULL, z, + stride_A, stride_B, stride_D, stride_C, + MVIN_SCALE_IDENTITY, MVIN_SCALE_IDENTITY, MVIN_SCALE_IDENTITY, + NO_ACTIVATION, ACC_SCALE_IDENTITY, 0, + 0, 0, 0, 0, 0, 0, WS); + + return; +}; diff --git a/nn/impl/gemmini/mm.h b/nn/impl/gemmini/mm.h new file mode 100644 index 0000000..505149c --- /dev/null +++ b/nn/impl/gemmini/mm.h @@ -0,0 +1,19 @@ +#ifndef __NN__MM_H +#define __NN__MM_H + +#include +#include + +#include "nn_float16.h" + +#include "gemmini.h" + + +void NN__mm_f32(size_t m, size_t n, + float16_t *z, + float16_t *x, + float16_t *y + ); + + +#endif // __NN__MM_H diff --git a/nn/impl/rvv/transpose.c b/nn/impl/rvv/transpose.c index be98a79..a8ae1c1 100644 --- a/nn/impl/rvv/transpose.c +++ b/nn/impl/rvv/transpose.c @@ -4,7 +4,7 @@ #ifdef RVV -void NN__transpose_f32(size_t n, size_t m, float *y, float *x) { +void NN__transpose_f32(size_t m, size_t n, float *y, float *x) { for (size_t i = 0; i < m; i += 1) { size_t k = n; while (k > 0) { diff --git a/nn/impl/sum.h b/nn/impl/sum.h index 99d326b..ee97b42 100644 --- a/nn/impl/sum.h +++ b/nn/impl/sum.h @@ -6,6 +6,10 @@ #include +void NN__sum_u8_to_i32(size_t n, + int32_t *result, + uint8_t *x, size_t incx + ); void NN__sum_i16_to_i32(size_t n, int32_t *result, int16_t *x, size_t incx diff --git a/nn/impl/transpose.h b/nn/impl/transpose.h index 4000a44..d11f875 100644 --- a/nn/impl/transpose.h +++ b/nn/impl/transpose.h @@ -4,7 +4,7 @@ #include -void NN__transpose_f32(size_t n, size_t m, +void NN__transpose_f32(size_t m, size_t n, float *y, float *x ); diff --git a/nn/op/nn.h b/nn/op/nn.h index dd8d7ae..432aca8 100644 --- a/nn/op/nn.h +++ b/nn/op/nn.h @@ -17,10 +17,12 @@ #include "nn_elu.h" #include "nn_fill.h" #include "nn_interpolate.h" +#include "nn_layer_norm.h" #include "nn_linear.h" #include "nn_matmul.h" #include "nn_norm.h" #include "nn_max.h" +#include "nn_mm.h" #include "nn_maximum.h" #include "nn_min.h" #include "nn_minimum.h" diff --git a/nn/op/nn_fill.c b/nn/op/nn_fill.c index b9753e4..5d703f8 100644 --- a/nn/op/nn_fill.c +++ b/nn/op/nn_fill.c @@ -23,55 +23,3 @@ void NN_fill(Tensor *tensor, float value) { printf("[ERROR] Unsupported operation fill to tensor with dtype: %d\n", tensor->dtype); } } - -Tensor *NN_zeros(size_t ndim, const size_t *shape, DataType dtype) { - Tensor *t = NN_tensor(ndim, shape, dtype, NULL); - - NN_fill(t, 0); - - return t; -} - -Tensor *NN_ones(size_t ndim, const size_t *shape, DataType dtype) { - Tensor *t = NN_tensor(ndim, shape, dtype, NULL); - - NN_fill(t, 1); - - return t; -} - -Tensor *NN_rand(size_t ndim, const size_t *shape, DataType dtype) { - Tensor *t = NN_tensor(ndim, shape, dtype, NULL); - - switch (dtype) { - case DTYPE_U8: - for (size_t i = 0; i < t->size; i += 1) { - ((uint8_t *)t->data)[i] = rand() % 0x100; - } - break; - case DTYPE_I8: - for (size_t i = 0; i < t->size; i += 1) { - ((int8_t *)t->data)[i] = rand() % 0x100; - } - break; - case DTYPE_U16: - for (size_t i = 0; i < t->size; i += 1) { - ((uint16_t *)t->data)[i] = rand() % 0x10000; - } - break; - case DTYPE_I32: - for (size_t i = 0; i < t->size; i += 1) { - ((int32_t *)t->data)[i] = rand(); - } - break; - case DTYPE_F32: - for (size_t i = 0; i < t->size; i += 1) { - ((float *)t->data)[i] = (float)rand() / RAND_MAX; - } - break; - default: - printf("[ERROR] Unsupported data type: %d\n", dtype); - } - - return t; -} diff --git a/nn/op/nn_fill.h b/nn/op/nn_fill.h index 0ecea3c..48638f4 100644 --- a/nn/op/nn_fill.h +++ b/nn/op/nn_fill.h @@ -15,12 +15,5 @@ */ void NN_fill(Tensor *tensor, float value); -Tensor *NN_zeros(size_t ndim, const size_t *shape, DataType dtype); - -Tensor *NN_ones(size_t ndim, const size_t *shape, DataType dtype); - -Tensor *NN_rand(size_t ndim, const size_t *shape, DataType dtype); - - #endif // __NN_FILL_H diff --git a/nn/op/nn_float16.h b/nn/op/nn_float16.h index 08d0196..31beaa1 100644 --- a/nn/op/nn_float16.h +++ b/nn/op/nn_float16.h @@ -21,33 +21,20 @@ typedef uint16_t float16_t; #endif +/** + * Converts a half-precision floating-point number to a single-precision floating-point number. + * + * @param h The half-precision floating-point number to convert. + * @return The single-precision floating-point number. + */ static inline float NN_half_to_float(float16_t h) { #ifdef _Float16 return (float)h; #else // from https://github.com/AcademySoftwareFoundation/Imath/blob/main/src/Imath/half.h + // Note: This only supports the "round to even" rounding mode, which + // was the only mode supported by the original OpenEXR library - /// - /// Convert half to float - /// - /// Note: This only supports the "round to even" rounding mode, which - /// was the only mode supported by the original OpenEXR library - /// - - - // #if defined(__F16C__) - // // NB: The intel implementation does seem to treat NaN slightly - // // different than the original toFloat table does (i.e. where the - // // 1 bits are, meaning the signalling or not bits). This seems - // // benign, given that the original library didn't really deal with - // // signalling vs non-signalling NaNs - // #ifdef _MSC_VER - // /* msvc does not seem to have cvtsh_ss :( */ - // return _mm_cvtss_f32(_mm_cvtph_ps (_mm_set1_epi16 (h))); - // #else - // return _cvtsh_ss(h); - // #endif - // #else float_uint32_union_t v; // this code would be clearer, although it does appear to be faster // (1.06 vs 1.08 ns/call) to avoid the constants and just do 4 @@ -72,7 +59,6 @@ static inline float NN_half_to_float(float16_t h) { // exponent is 0 because we're denormal, don't have to extract // the mantissa, can just use as is // - // // other compilers may provide count-leading-zeros primitives, // but we need the community to inform us of the variants uint32_t lc; @@ -97,39 +83,24 @@ static inline float NN_half_to_float(float16_t h) { v.i -= (lc << 23); } return v.f; - // #endif - #endif - } +/** + * Converts a single-precision floating-point number to a half-precision floating-point number. + * + * @param f The single-precision floating-point number to convert. + * @return The half-precision floating-point number. + */ static inline float16_t NN_float_to_half(float f) { #ifdef _Float16 return (_Float16)f; #else // from https://github.com/AcademySoftwareFoundation/Imath/blob/main/src/Imath/half.h - - /// - /// Convert half to float - /// - /// Note: This only supports the "round to even" rounding mode, which - /// was the only mode supported by the original OpenEXR library - /// - - - // #if defined(__F16C__) - // #ifdef _MSC_VER - // // msvc does not seem to have cvtsh_ss :( - // return _mm_extract_epi16 ( - // _mm_cvtps_ph ( - // _mm_set_ss (f), (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC)), - // 0); - // #else - // // preserve the fixed rounding mode to nearest - // return _cvtss_sh (f, (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC)); - // #endif - // #else + // Note: This only supports the "round to even" rounding mode, which + // was the only mode supported by the original OpenEXR library + float_uint32_union_t v; float16_t ret; uint32_t e, m, ui, r, shift; @@ -177,7 +148,6 @@ static inline float16_t NN_float_to_half(float f) { ret += 1; } return ret; - // #endif #endif } diff --git a/nn/op/nn_matmul.h b/nn/op/nn_matmul.h index a1b1235..082b708 100644 --- a/nn/op/nn_matmul.h +++ b/nn/op/nn_matmul.h @@ -4,7 +4,7 @@ #include #include "nn_tensor.h" -#include "dot.h" +#include "nn_mm.h" /** diff --git a/nn/op/nn_max_pool2d.c b/nn/op/nn_max_pool2d.c index 4d7eee3..869fadb 100644 --- a/nn/op/nn_max_pool2d.c +++ b/nn/op/nn_max_pool2d.c @@ -28,8 +28,6 @@ void NN_max_pool2d(Tensor *out, Tensor *in, const size_t *kernel_size) { size_t output_height = (input_height - kernel_height) + 1; size_t output_width = (input_width - kernel_width) + 1; - size_t stride = kernel_size[0]; - for (size_t b = 0; b < batch_size; b += 1) { for (size_t c = 0; c < channels; c += 1) { for (size_t h = 0; h < output_height; h += 1) { @@ -40,10 +38,7 @@ void NN_max_pool2d(Tensor *out, Tensor *in, const size_t *kernel_size) { + h * in->shape[3] + w; - // Create a tensor for the current pooling window - Tensor *window = NN_tensor(2, (size_t[]){kernel_height, kernel_width}, DTYPE_F32, ((float *)in->data) + window_offset); - - NN_max((((float *)out->data) + window_offset), window); + NN__max_f32(kernel_height * kernel_width, ((float *)out->data) + window_offset, ((float *)out->data) + window_offset, 1); } } } diff --git a/nn/op/nn_mm.c b/nn/op/nn_mm.c index 10d239f..7fa4e50 100644 --- a/nn/op/nn_mm.c +++ b/nn/op/nn_mm.c @@ -1,14 +1,6 @@ #include "nn_mm.h" -#ifdef GEMMINI - #include - #include - #include - - #include "gemmini/gemmini.h" -#endif - void NN_mm(Tensor *out, Tensor *a, Tensor *b) { assert(a->ndim == 2); @@ -18,55 +10,7 @@ void NN_mm(Tensor *out, Tensor *a, Tensor *b) { assert(out->shape[1] == b->shape[1]); #ifdef GEMMINI - // // This function runs a tiled matrix multiplication, with automatically - // // calculated tiling factors - // static void tiled_matmul_auto(size_t dim_I, size_t dim_J, size_t dim_K, - // const elem_t* A, const elem_t* B, - // const void * D, void * C, - // size_t stride_A, size_t stride_B, size_t stride_D, size_t stride_C, - // scale_t A_scale_factor, scale_t B_scale_factor, scale_acc_t D_scale_factor, - // int act, acc_scale_t scale, acc_scale_t bert_scale, - // bool repeating_bias, - // bool transpose_A, bool transpose_B, - // bool full_C, bool low_D, - // uint8_t weightA, - // enum tiled_matmul_type_t tiled_matmul_type) { - - size_t dim_I = a->shape[0]; - size_t dim_J = b->shape[1]; - size_t dim_K = a->shape[1]; - - size_t stride_A = dim_K; - size_t stride_B = dim_J; - size_t stride_D = dim_J; - size_t stride_C = dim_J; - - scale_t A_scale_factor = 1.0; - scale_t B_scale_factor = 1.0; - scale_acc_t D_scale_factor = 1.0; - - int act = 0; - acc_scale_t scale = 1.0; - acc_scale_t bert_scale = 1.0; - - bool repeating_bias = false; - bool transpose_A = false; - bool transpose_B = false; - bool full_C = false; - bool low_D = false; - - tiled_matmul_auto(dim_I, dim_J, dim_K, - a->data, b->data, - NULL, out->data, - stride_A, stride_B, stride_D, stride_C, - MVIN_SCALE_IDENTITY, MVIN_SCALE_IDENTITY, MVIN_SCALE_IDENTITY, - NO_ACTIVATION, ACC_SCALE_IDENTITY, 0, - repeating_bias, - transpose_A, transpose_B, - full_C, low_D, - 0, - WS); - + NN__mm_f32(out->shape[0], out->shape[1], (float *)out->data, (float *)a->data, (float *)b->data); return; #endif diff --git a/nn/op/nn_print.c b/nn/op/nn_print.c index b11d587..1d7ed95 100644 --- a/nn/op/nn_print.c +++ b/nn/op/nn_print.c @@ -2,6 +2,10 @@ #include "nn_print.h" +void NN_print_f16(float16_t v, int16_t num_digits) { + NN_print_f32(NN_half_to_float(v), num_digits); +} + void NN_print_f32(float v, int16_t num_digits) { if (isinf(v)) { if (signbit(v)) { @@ -60,16 +64,25 @@ void NN_printf(Tensor *tensor) { for (size_t i=0; ishape[0]; i+=1) { switch (tensor->dtype) { case DTYPE_U8: - printf("%d", *((uint8_t *)tensor->data + i)); + NN_print_u8(*((uint8_t *)tensor->data + i)); break; case DTYPE_I8: - printf("%d", *((int8_t *)tensor->data + i)); + NN_print_i8(*((int8_t *)tensor->data + i)); + break; + case DTYPE_U16: + NN_print_u16(*((uint16_t *)tensor->data + i)); + break; + case DTYPE_I16: + NN_print_i16(*((int16_t *)tensor->data + i)); + break; + case DTYPE_U32: + NN_print_u32(*((uint32_t *)tensor->data + i)); break; case DTYPE_I32: - printf("%ld", (size_t)(*((int32_t *)tensor->data + i))); + NN_print_i32(*((int32_t *)tensor->data + i)); break; case DTYPE_F16: - NN_print_f32(NN_half_to_float(*((float16_t *)tensor->data + i)), 3); + NN_print_f16(*((float16_t *)tensor->data + i), 3); break; case DTYPE_F32: NN_print_f32(*((float *)tensor->data + i), 4); @@ -90,16 +103,25 @@ void NN_printf(Tensor *tensor) { for (size_t j=0; jshape[1]; j+=1) { switch (tensor->dtype) { case DTYPE_U8: - printf("%d", *((uint8_t *)tensor->data + i*tensor->shape[1] + j)); + NN_print_u8(*((uint8_t *)tensor->data + i*tensor->shape[1] + j)); break; case DTYPE_I8: - printf("%d", *((int8_t *)tensor->data + i*tensor->shape[1] + j)); + NN_print_i8(*((int8_t *)tensor->data + i*tensor->shape[1] + j)); + break; + case DTYPE_U16: + NN_print_u16(*((uint16_t *)tensor->data + i*tensor->shape[1] + j)); + break; + case DTYPE_I16: + NN_print_i16(*((int16_t *)tensor->data + i*tensor->shape[1] + j)); + break; + case DTYPE_U32: + NN_print_u32(*((uint32_t *)tensor->data + i*tensor->shape[1] + j)); break; case DTYPE_I32: - printf("%ld", (size_t)(*((int32_t *)tensor->data + i*tensor->shape[1] + j))); + NN_print_i32(*((int32_t *)tensor->data + i*tensor->shape[1] + j)); break; case DTYPE_F16: - NN_print_f32(NN_half_to_float(*((float16_t *)tensor->data + i*tensor->shape[1] + j)), 3); + NN_print_f16(*((float16_t *)tensor->data + i*tensor->shape[1] + j), 3); break; case DTYPE_F32: NN_print_f32(*((float *)tensor->data + i*tensor->shape[1] + j), 4); @@ -130,16 +152,25 @@ void NN_printf(Tensor *tensor) { for (size_t k=0; kshape[2]; k+=1) { switch (tensor->dtype) { case DTYPE_U8: - printf("%d", *((uint8_t *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k)); + NN_print_u8(*((uint8_t *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k)); break; case DTYPE_I8: - printf("%d", *((int8_t *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k)); + NN_print_i8(*((int8_t *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k)); + break; + case DTYPE_U16: + NN_print_u16(*((uint16_t *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k)); + break; + case DTYPE_I16: + NN_print_i16(*((int16_t *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k)); + break; + case DTYPE_U32: + NN_print_u32(*((uint32_t *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k)); break; case DTYPE_I32: - printf("%ld", (size_t)(*((int32_t *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k))); + NN_print_i32(*((int32_t *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k)); break; case DTYPE_F16: - NN_print_f32(NN_half_to_float(*((float16_t *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k)), 3); + NN_print_f16(*((float16_t *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k), 3); break; case DTYPE_F32: NN_print_f32(*((float *)tensor->data + i*tensor->shape[1]*tensor->shape[2] + j*tensor->shape[2] + k), 4); @@ -174,16 +205,25 @@ void NN_printf(Tensor *tensor) { for (size_t w = 0; w < tensor->shape[3]; w += 1) { switch (tensor->dtype) { case DTYPE_U8: - printf("%d", *((uint8_t *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w)); + NN_print_u8(*((uint8_t *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w)); break; case DTYPE_I8: - printf("%d", *((int8_t *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w)); + NN_print_i8(*((int8_t *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w)); + break; + case DTYPE_U16: + NN_print_u16(*((uint16_t *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w)); + break; + case DTYPE_I16: + NN_print_i16(*((int16_t *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w)); + break; + case DTYPE_U32: + NN_print_u32(*((uint32_t *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w)); break; case DTYPE_I32: - printf("%ld", (size_t)(*((int32_t *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w))); + NN_print_i32(*((int32_t *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w)); break; case DTYPE_F16: - NN_print_f32(NN_half_to_float(*((float16_t *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w)), 3); + NN_print_f16(*((float16_t *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w), 3); break; case DTYPE_F32: NN_print_f32(*((float *)tensor->data + n*tensor->shape[1]*tensor->shape[2]*tensor->shape[3] + c*tensor->shape[2]*tensor->shape[3] + h*tensor->shape[3] + w), 4); diff --git a/nn/op/nn_print.h b/nn/op/nn_print.h index 87b872e..aeae419 100644 --- a/nn/op/nn_print.h +++ b/nn/op/nn_print.h @@ -5,6 +5,31 @@ #include "nn_tensor.h" +static inline void NN_print_u8(uint8_t v) { + printf("%d", v); +} + +static inline void NN_print_i8(int8_t v) { + printf("%d", v); +} + +static inline void NN_print_u16(uint16_t v) { + printf("%d", v); +} + +static inline void NN_print_i16(int16_t v) { + printf("%d", v); +} + +static inline void NN_print_u32(uint32_t v) { + printf("%ld", (size_t)v); +} + +static inline void NN_print_i32(int32_t v) { + printf("%ld", (size_t)v); +} + +void NN_print_f16(float16_t v, int16_t num_digits); void NN_print_f32(float v, int16_t num_digits); diff --git a/nn/op/nn_sum.c b/nn/op/nn_sum.c index 73d2fd8..305c52e 100644 --- a/nn/op/nn_sum.c +++ b/nn/op/nn_sum.c @@ -3,12 +3,36 @@ void NN_sum(Tensor *out, Tensor *tensor) { + int32_t result_i32; switch (tensor->dtype) { + case DTYPE_U8: + NN__sum_u8_to_i32(tensor->size, &result_i32, (uint8_t *)tensor->data, 1); + switch (out->dtype) { + case DTYPE_U16: + *(uint16_t *)out->data = (uint16_t)result_i32; + return; + case DTYPE_U32: + *(uint32_t *)out->data = (uint32_t)result_i32; + return; + case DTYPE_I32: + *(int32_t *)out->data = result_i32; + return; + default: + break; + } + break; + case DTYPE_I16: + NN__sum_i16_to_i32(tensor->size, &result_i32, (int16_t *)tensor->data, 1); switch (out->dtype) { + case DTYPE_I16: + *(int16_t *)out->data = (int16_t)result_i32; + return; case DTYPE_I32: - NN__sum_i16_to_i32(tensor->size, (int32_t *)out->data, (int16_t *)tensor->data, 1); + *(int32_t *)out->data = result_i32; return; + default: + break; } break; @@ -17,12 +41,19 @@ void NN_sum(Tensor *out, Tensor *tensor) { case DTYPE_I32: NN__sum_i32(tensor->size, (int32_t *)out->data, (int32_t *)tensor->data, 1); return; + default: + break; } break; case DTYPE_F32: - NN__sum_f32(tensor->size, (float *)out->data, (float *)tensor->data, 1); - return; + switch (out->dtype) { + case DTYPE_F32: + NN__sum_f32(tensor->size, (float *)out->data, (float *)tensor->data, 1); + return; + default: + break; + } default: break; diff --git a/nn/op/nn_tensor_creation.c b/nn/op/nn_tensor_creation.c index 3302b98..0edf2db 100644 --- a/nn/op/nn_tensor_creation.c +++ b/nn/op/nn_tensor_creation.c @@ -35,3 +35,55 @@ Tensor *NN_tensor(size_t ndim, const size_t *shape, DataType dtype, void *data) NN_init_tensor(t, ndim, shape, dtype, data); return t; } + +Tensor *NN_zeros(size_t ndim, const size_t *shape, DataType dtype) { + Tensor *t = NN_tensor(ndim, shape, dtype, NULL); + + NN_fill(t, 0); + + return t; +} + +Tensor *NN_ones(size_t ndim, const size_t *shape, DataType dtype) { + Tensor *t = NN_tensor(ndim, shape, dtype, NULL); + + NN_fill(t, 1); + + return t; +} + +Tensor *NN_rand(size_t ndim, const size_t *shape, DataType dtype) { + Tensor *t = NN_tensor(ndim, shape, dtype, NULL); + + switch (dtype) { + case DTYPE_U8: + for (size_t i = 0; i < t->size; i += 1) { + ((uint8_t *)t->data)[i] = rand() % 0x100; + } + break; + case DTYPE_I8: + for (size_t i = 0; i < t->size; i += 1) { + ((int8_t *)t->data)[i] = rand() % 0x100; + } + break; + case DTYPE_U16: + for (size_t i = 0; i < t->size; i += 1) { + ((uint16_t *)t->data)[i] = rand() % 0x10000; + } + break; + case DTYPE_I32: + for (size_t i = 0; i < t->size; i += 1) { + ((int32_t *)t->data)[i] = rand(); + } + break; + case DTYPE_F32: + for (size_t i = 0; i < t->size; i += 1) { + ((float *)t->data)[i] = (float)rand() / RAND_MAX; + } + break; + default: + printf("[ERROR] Unsupported data type: %d\n", dtype); + } + + return t; +} diff --git a/nn/op/nn_tensor_creation.h b/nn/op/nn_tensor_creation.h index 382e694..daa9c7a 100644 --- a/nn/op/nn_tensor_creation.h +++ b/nn/op/nn_tensor_creation.h @@ -9,6 +9,7 @@ #include #include "nn_tensor.h" +#include "nn_fill.h" /** diff --git a/tests/src/generate_test.py b/tests/src/generate_test.py index 873ce17..20a16e3 100644 --- a/tests/src/generate_test.py +++ b/tests/src/generate_test.py @@ -54,39 +54,42 @@ def rand16(shape): ("sub", lambda a, b: a - b, [("a", rand((7, 7))), ("b", rand((7, 7))) ]), ("sum", lambda a: torch.sum(a), [("a", rand((7, 7))), ]), - # ("linear", lambda x, w, b: torch.nn.functional.linear(x, w, b), - # [("x", rand((6, 7))), ("w", rand((5, 7))), ("b", rand((1, 5))) ]), - # ("linear", lambda x, w, b: torch.nn.functional.linear(x, w, b), - # [("x", rand((6, 7))), ("w", rand((5, 7))), ("b", rand((5, ))) ]), - # ("relu", lambda x: torch.nn.functional.relu(x), - # [("x", rand((7, 7))) ]), - # ("softmax", lambda a: torch.nn.functional.softmax(a, dim=0), - # [("x", torch.ones((7, 7))) ], - # ", 0" ), - # ("softmax", lambda a: torch.nn.functional.softmax(a, dim=1), - # [("x", torch.ones((7, 7))) ], - # ", 1" ), - # ("relu6", lambda x: torch.nn.functional.relu6(x), - # [("x", rand((7, 7))) ]), - # ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=0, dilation=1, groups=1).permute((0, 2, 3, 1)), - # [("x", rand((1, 16, 16, 3))), ("w", rand((3, 3, 3, 6))), ("b", rand((6, )))], - # ", (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1" ), - # ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=1).permute((0, 2, 3, 1)), - # [("x", rand((1, 16, 16, 3))), ("w", rand((3, 3, 3, 71))), ("b", rand((71, )))], - # ", (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 1" ), - # ("nchw_to_nhwc", lambda x: x.permute((0, 2, 3, 1)), [("x", rand((1, 2, 3, 3))) ]), - # ("nhwc_to_nchw", lambda x: x.permute((0, 3, 1, 2)), [("x", rand((1, 3, 3, 2))) ]), - # ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=16).permute((0, 2, 3, 1)), - # [("x", rand((1, 12, 12, 16))), ("w", rand((3, 3, 1, 16))), ("b", rand((16, )))], - # ", (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 16" ), - # ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=1).permute((0, 2, 3, 1)), - # [("x", rand((1, 12, 12, 16))), ("w", rand((3, 3, 16, 56))), ("b", rand((56, )))], - # ", (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 1" ), - # ("layer_norm", lambda x, w, b: torch.nn.functional.layer_norm(x, x.shape, w, b, eps=1e-05), - # [("x", rand((6, 5))), ("w", rand((6, 5))), ("b", rand((6, 5))) ], - # ", 1e-05" ), - - ("abs", lambda a: torch.abs(a), [("a", rand16((1, 44))), ]), + ("linear", lambda x, w, b: torch.nn.functional.linear(x, w, b), + [("x", rand((6, 7))), ("w", rand((5, 7))), ("b", rand((1, 5))) ]), + ("linear", lambda x, w, b: torch.nn.functional.linear(x, w, b), + [("x", rand((6, 7))), ("w", rand((5, 7))), ("b", rand((5, ))) ]), + ("relu", lambda x: torch.nn.functional.relu(x), + [("x", rand((7, 7))) ]), + ("softmax", lambda a: torch.nn.functional.softmax(a, dim=0), + [("x", rand((7, 7))+1) ], + ", 0" ), + ("softmax", lambda a: torch.nn.functional.softmax(a, dim=1), + [("x", rand((7, 7))+1) ], + ", 1" ), + ("softmax", lambda a: torch.nn.functional.softmax(a, dim=-1), + [("x", rand((7, 7))+1) ], + ", -1" ), + ("relu6", lambda x: torch.nn.functional.relu6(x), + [("x", rand((7, 7))) ]), + ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=0, dilation=1, groups=1).permute((0, 2, 3, 1)), + [("x", rand((1, 16, 16, 3))), ("w", rand((3, 3, 3, 6))), ("b", rand((6, )))], + ", (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1" ), + ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=1).permute((0, 2, 3, 1)), + [("x", rand((1, 16, 16, 3))), ("w", rand((3, 3, 3, 71))), ("b", rand((71, )))], + ", (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 1" ), + ("nchw_to_nhwc", lambda x: x.permute((0, 2, 3, 1)), [("x", rand((1, 2, 3, 3))) ]), + ("nhwc_to_nchw", lambda x: x.permute((0, 3, 1, 2)), [("x", rand((1, 3, 3, 2))) ]), + ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=16).permute((0, 2, 3, 1)), + [("x", rand((1, 12, 12, 16))), ("w", rand((3, 3, 1, 16))), ("b", rand((16, )))], + ", (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 16" ), + ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=1).permute((0, 2, 3, 1)), + [("x", rand((1, 12, 12, 16))), ("w", rand((3, 3, 16, 56))), ("b", rand((56, )))], + ", (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 1" ), + ("layer_norm", lambda x, w, b: torch.nn.functional.layer_norm(x, x.shape, w, b, eps=1e-05), + [("x", rand((6, 5))), ("w", rand((6, 5))), ("b", rand((6, 5))) ], + ", 1e-05" ), + + ("abs", lambda a: torch.abs(a), [("a", rand16((1, 7))), ]), ("add", lambda a, b: a + b, [("a", rand16((6, 7))), ("b", rand16((6, 7))) ]), ("matmul_t", lambda a, b: a @ b.T, [("a", rand16((6, 7))), ("b", rand16((5, 7))) ]), ("matmul", lambda a, b: a @ b, [("a", rand16((6, 7))), ("b", rand16((7, 5))) ]), diff --git a/tests/src/generated.c b/tests/src/generated.c index 6e6dcf3..e1c8eae 100644 --- a/tests/src/generated.c +++ b/tests/src/generated.c @@ -526,16 +526,380 @@ float v = 0.25891675029296335; NN_delete_tensor(actual); } + { + printf("linear: "); + + // [[ 3.1699169 -4.9295797 -3.5206108 3.703539 1.1838228 -0.3117305 0.89 + Tensor *x = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0xeb,0xdf,0x4a,0x40,0x1e,0xbf,0x9d,0xc0,0xb0,0x51,0x61,0xc0,0xc8,0x6,0x6d,0x40,0x81,0x87,0x97,0x3f,0x24,0x9b,0x9f,0xbe,0x82,0xcf,0x64,0x3f,0x18,0x9d,0x42,0xbf,0x36,0xab,0x5f,0xc0,0x40,0x82,0x95,0xc0,0x6f,0x77,0x52,0x40,0x2a,0x3d,0x18,0xbf,0x16,0xb0,0xed,0xbf,0x97,0x31,0xa5,0xbf,0xe,0x89,0x2e,0xc0,0xae,0x8e,0xbd,0xbf,0xa8,0x58,0x89,0xc0,0x4e,0x78,0x6f,0x40,0x6a,0xab,0x2,0x40,0x4,0x62,0x21,0xc0,0xc3,0x70,0xda,0xbf,0x62,0x90,0xf,0x40,0xd7,0xfe,0xec,0xbf,0x93,0xc3,0xa8,0x3f,0xf4,0x37,0xb0,0x3f,0x16,0x70,0x49,0xc0,0x2b,0x52,0xa0,0x3f,0xa8,0xa1,0x9c,0x3e,0xce,0xbd,0x8b,0x40,0x96,0x90,0xe7,0xbf,0x1b,0x86,0xa4,0xbf,0x2a,0xdb,0x89,0x40,0x8,0xa8,0x82,0xc0,0xc0,0xf4,0xb8,0x3e,0xe,0x29,0x9a,0x40,0x4e,0x7a,0xf,0xc0,0x9f,0x63,0x99,0x40,0x79,0xf9,0x8d,0x40,0xb7,0xda,0x94,0x40,0x7c,0x48,0xf4,0xbe,0xc8,0xbd,0x90,0x40,0x22,0x6e,0xb,0xc0 }); + // [[-1.7115259 1.891163 1.056236 2.7563782 4.7515965 -3.1299453 2.65 + Tensor *w = NN_tensor(2, (size_t[]){ 5, 7 }, DTYPE_F32, (uint8_t[]){ 0x48,0x13,0xdb,0xbf,0xa1,0x11,0xf2,0x3f,0xbe,0x32,0x87,0x3f,0x80,0x68,0x30,0x40,0x14,0xd,0x98,0x40,0x6,0x51,0x48,0xc0,0x21,0xd5,0x29,0x40,0xf,0x1f,0xd6,0x3f,0x61,0xd2,0x28,0x40,0x33,0xbc,0x17,0x40,0x9e,0x67,0xef,0xbf,0xf8,0xe9,0x7c,0xc0,0xc2,0xf,0x80,0x40,0xb4,0x79,0x36,0xc0,0xae,0x95,0x4c,0x40,0x47,0x6c,0x98,0xc0,0x6a,0x71,0x5d,0xbf,0xc0,0x10,0x59,0x3d,0x5e,0x78,0x5d,0x3f,0x10,0xee,0xce,0x3e,0x3,0xab,0xc9,0x3f,0x64,0x85,0xe,0xbf,0x23,0xbd,0x9c,0x3f,0x60,0x55,0x9e,0x40,0x81,0xe,0x4f,0xc0,0x8c,0xc4,0x8b,0xbe,0x81,0x4d,0xf4,0xbf,0x84,0x63,0x8c,0x40,0x65,0xf7,0x88,0x40,0x58,0x9e,0xb,0xbe,0x49,0xd8,0xdd,0xbf,0x98,0xb7,0x45,0xc0,0x0,0xf9,0x64,0x40,0x78,0x4a,0xb0,0xbe,0x85,0xb0,0x96,0x40 }); + // [[ 2.8513098 4.376523 3.954618 -3.2492113 1.463511 ]] + Tensor *b = NN_tensor(2, (size_t[]){ 1, 5 }, DTYPE_F32, (uint8_t[]){ 0xdc,0x7b,0x36,0x40,0x7a,0xc,0x8c,0x40,0x76,0x18,0x7d,0x40,0x14,0xf3,0x4f,0xc0,0x54,0x54,0xbb,0x3f }); + + + // [[ 3.5655763 -27.072094 43.116337 -36.25897 18.915453 ] [ 1.234409 + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0x67,0x32,0x64,0x40,0xa6,0x93,0xd8,0xc1,0x21,0x77,0x2c,0x42,0x2f,0x9,0x11,0xc2,0xd9,0x52,0x97,0x41,0x23,0x1,0x9e,0x3f,0x48,0xf2,0xc5,0xc1,0x55,0xb5,0x98,0x41,0x3d,0x45,0x2b,0xc2,0x42,0xf,0x2f,0xc1,0x48,0x82,0xbc,0x41,0x83,0x3d,0xa,0xc2,0x0,0x55,0x88,0x40,0x4,0x79,0x20,0xc2,0xbe,0xdb,0x5f,0xc1,0xd6,0xed,0x8a,0xc1,0x6a,0xfe,0xa2,0x41,0x4d,0x23,0x89,0x41,0x96,0x50,0x9c,0xc0,0x47,0x1d,0xaf,0xc0,0x3c,0xcb,0xa8,0xc0,0x70,0x41,0xb3,0xbe,0x0,0x4d,0x0,0x42,0xf6,0x3e,0xd4,0xc0,0x42,0x31,0x8a,0x41,0xe,0xe5,0x30,0x41,0x5f,0x26,0x25,0x42,0xb3,0x37,0xfd,0xc1,0xea,0x3f,0xe9,0xc0,0x1a,0x7a,0x31,0xc2 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F32); + + cycles = read_cycles(); + NN_linear(actual, x, w, b); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(x); + NN_delete_tensor(w); + NN_delete_tensor(b); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("linear: "); + + // [[-2.0732946 2.5087662 -0.44954896 0.43284953 -3.458044 -4.468628 1.882 + Tensor *x = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0xdc,0xb0,0x4,0xc0,0xa0,0x8f,0x20,0x40,0x48,0x2b,0xe6,0xbe,0x74,0x9e,0xdd,0x3e,0x98,0x50,0x5d,0xc0,0x0,0xff,0x8e,0xc0,0xb7,0x1,0xf1,0x3f,0x6,0xba,0x94,0x3f,0x68,0x5e,0xde,0x3e,0x9e,0x57,0x59,0x40,0xb2,0x9f,0x5,0xc0,0xf,0x30,0xe3,0x3f,0x64,0x3e,0x30,0xc0,0xa3,0x9b,0x84,0x3f,0x6f,0x1c,0x92,0xbf,0xc3,0x1a,0x60,0x40,0xce,0xea,0x8b,0x40,0xbb,0xf6,0x8a,0x40,0xb8,0x51,0x66,0x3e,0xa8,0xb3,0x3c,0x40,0xb5,0xdc,0x9f,0xc0,0xcc,0xb5,0x3b,0xc0,0x6,0xc4,0x64,0x3f,0xc0,0x6e,0xe4,0x3c,0x2c,0x39,0x7b,0xc0,0xbe,0xa2,0xd,0xc0,0x13,0x75,0x15,0xc0,0x9e,0x85,0x9e,0xc0,0x30,0x26,0xf4,0x3e,0x60,0x24,0x5a,0x40,0x54,0xe0,0x1,0x40,0xe4,0xa,0x18,0xc0,0x25,0xec,0x92,0xc0,0x96,0x15,0x81,0xc0,0xa0,0xf1,0xbd,0x3d,0xdc,0x21,0x5c,0x40,0x5a,0x97,0x1,0xc0,0x5c,0x20,0x2e,0xc0,0xc0,0xb4,0x2a,0xc0,0xac,0x9d,0xdd,0xbe,0xdb,0xf1,0x97,0xc0,0xed,0x30,0x8d,0xc0 }); + // [[ 4.921953 -2.3845804 -0.9018183 -1.3377637 -4.392531 -0.8814657 1.53 + Tensor *w = NN_tensor(2, (size_t[]){ 5, 7 }, DTYPE_F32, (uint8_t[]){ 0xa4,0x80,0x9d,0x40,0xf7,0x9c,0x18,0xc0,0x90,0xdd,0x66,0xbf,0xd7,0x3b,0xab,0xbf,0x9d,0x8f,0x8c,0xc0,0xbc,0xa7,0x61,0xbf,0x29,0xea,0xc3,0x3f,0x3d,0xf0,0x1,0xc0,0xa8,0x36,0x5a,0xbe,0xc0,0xee,0xc3,0xbc,0xe1,0x47,0x9f,0xc0,0x9c,0x8c,0x68,0x40,0x5f,0x3e,0x81,0x40,0x82,0x2d,0x5a,0x40,0xc9,0x2c,0xd2,0xbf,0x61,0x38,0x27,0x40,0x58,0xe8,0x95,0xc0,0xd6,0x53,0x9e,0xbf,0x7b,0x2a,0x82,0xbf,0xa,0x4,0xe2,0xbf,0x68,0x66,0x6,0x40,0x7e,0xcf,0x11,0xc0,0x60,0x5b,0x14,0xbf,0x5b,0xcd,0xb8,0xbf,0xd7,0x40,0x96,0xc0,0x48,0x61,0x53,0xbf,0xa0,0x98,0x87,0xc0,0xe4,0x97,0x3a,0x40,0x34,0x7,0x2b,0x40,0x0,0xe3,0x95,0x40,0xee,0xe9,0xd6,0xbf,0x7c,0x2e,0x82,0x3e,0x74,0xbd,0x7a,0x3f,0x8,0xb7,0x9f,0x40,0x7d,0xa8,0x92,0x40 }); + // [-2.5876975 -4.2545133 -4.506441 -2.4077988 4.203933 ] + Tensor *b = NN_tensor(1, (size_t[]){ 5 }, DTYPE_F32, (uint8_t[]){ 0xd6,0x9c,0x25,0xc0,0xf9,0x24,0x88,0xc0,0xc4,0x34,0x90,0xc0,0x60,0x19,0x1a,0xc0,0x9e,0x86,0x86,0x40 }); + + + // [[ 3.062039 -26.91804 22.384441 26.758652 -5.7817802 ] [ -1.957124 + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0x72,0xf8,0x43,0x40,0x25,0x58,0xd7,0xc1,0x56,0x13,0xb3,0x41,0xb8,0x11,0xd6,0x41,0x58,0x4,0xb9,0xc0,0xe,0x83,0xfa,0xbf,0xce,0xaf,0x1d,0x40,0x27,0xf6,0x55,0xc1,0xe5,0x14,0x4d,0x41,0x42,0xb8,0x84,0xc0,0xc9,0x2a,0x16,0xc2,0xe1,0xa9,0xe5,0xc1,0xd6,0xd,0xd,0xc2,0xe8,0x22,0x5f,0xc2,0x5a,0xf3,0x56,0x40,0x78,0xb3,0x1b,0xc1,0x62,0x2,0x55,0xc1,0x6e,0xc4,0x55,0x40,0xb,0x6b,0x9b,0x41,0x61,0x14,0x14,0xc2,0x2e,0xc2,0x86,0x41,0x58,0xa7,0xd6,0xc1,0xca,0x8e,0x10,0x41,0x9f,0x47,0xbf,0x41,0x30,0xbf,0xd8,0xc0,0xf8,0x33,0xc4,0x41,0xbe,0x6,0x5,0xc2,0x0,0x95,0x22,0x3e,0xc,0xec,0x6f,0x41,0x77,0x2c,0x12,0xc2 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F32); + + cycles = read_cycles(); + NN_linear(actual, x, w, b); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(x); + NN_delete_tensor(w); + NN_delete_tensor(b); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("relu: "); + + // [[ 1.6792482 4.824266 3.7061043 0.07248819 -3.098877 4.882503 4.010 + Tensor *x = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x9b,0xf1,0xd6,0x3f,0x63,0x60,0x9a,0x40,0xd0,0x30,0x6d,0x40,0xb0,0x74,0x94,0x3d,0x0,0x54,0x46,0xc0,0x77,0x3d,0x9c,0x40,0xef,0x58,0x80,0x40,0xb0,0x8a,0xa,0x40,0xe7,0xcd,0x2e,0xc0,0xe2,0x16,0x7c,0x40,0x34,0x0,0xe9,0x3e,0x48,0x98,0x53,0x40,0xaf,0x8e,0x5,0x40,0x34,0xec,0x29,0x40,0x6a,0x65,0x8c,0xc0,0x18,0x6f,0x31,0xc0,0x48,0xed,0x3f,0x40,0xc0,0x55,0x85,0xbf,0x5f,0x32,0x8b,0xc0,0xfe,0x80,0x91,0x40,0x0,0x72,0xdd,0xbd,0xc6,0x11,0x81,0x40,0xc,0x1e,0x7a,0xc0,0x1a,0x59,0xdc,0x3f,0x66,0x11,0xf1,0xbf,0x32,0xa9,0x6,0xc0,0x12,0x7c,0x85,0xbf,0xb5,0xe4,0xec,0xbf,0xe6,0x58,0x2f,0x40,0xe8,0x32,0x73,0xbf,0x32,0xa1,0x72,0x40,0x87,0x9,0x92,0x3f,0x90,0xc7,0x45,0xbf,0xf2,0xd4,0x38,0xc0,0xf8,0x81,0x92,0xc0,0xc8,0xb3,0xba,0xbf,0x41,0x2a,0x94,0xc0,0x7e,0x25,0x6d,0xbf,0xa0,0x5d,0xa7,0x3d,0xe8,0xf9,0xa4,0xbe,0x7d,0x30,0x1d,0xc0,0xb2,0x19,0x5e,0x40,0xb2,0x37,0x34,0x40,0x6d,0xae,0x9d,0xbf,0x24,0xde,0xfc,0xbf,0x4c,0x2e,0x49,0x40,0x32,0x34,0x8b,0x40,0x8e,0x80,0x92,0xc0,0x24,0x47,0x8a,0xbf }); + + + // [[1.6792482 4.824266 3.7061043 0.07248819 0. 4.882503 4.010856 ] + Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x9b,0xf1,0xd6,0x3f,0x63,0x60,0x9a,0x40,0xd0,0x30,0x6d,0x40,0xb0,0x74,0x94,0x3d,0x0,0x0,0x0,0x0,0x77,0x3d,0x9c,0x40,0xef,0x58,0x80,0x40,0xb0,0x8a,0xa,0x40,0x0,0x0,0x0,0x0,0xe2,0x16,0x7c,0x40,0x34,0x0,0xe9,0x3e,0x48,0x98,0x53,0x40,0xaf,0x8e,0x5,0x40,0x34,0xec,0x29,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x48,0xed,0x3f,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfe,0x80,0x91,0x40,0x0,0x0,0x0,0x0,0xc6,0x11,0x81,0x40,0x0,0x0,0x0,0x0,0x1a,0x59,0xdc,0x3f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe6,0x58,0x2f,0x40,0x0,0x0,0x0,0x0,0x32,0xa1,0x72,0x40,0x87,0x9,0x92,0x3f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa0,0x5d,0xa7,0x3d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xb2,0x19,0x5e,0x40,0xb2,0x37,0x34,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4c,0x2e,0x49,0x40,0x32,0x34,0x8b,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_relu(actual, x); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(x); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("softmax: "); + + // [[ 0.53598917 -0.8103045 5.2685456 0.26144302 5.2392426 1.024718 0.457 + Tensor *x = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x96,0x36,0x9,0x3f,0x1e,0x70,0x4f,0xbf,0xed,0x97,0xa8,0x40,0xdc,0xdb,0x85,0x3e,0xe0,0xa7,0xa7,0x40,0xf6,0x29,0x83,0x3f,0x44,0x50,0xea,0x3e,0x24,0x50,0xf5,0xbf,0xb4,0x9b,0x29,0xbf,0xd,0x1d,0x27,0x40,0x4a,0x8c,0x4d,0x40,0x18,0x75,0x52,0x3f,0x71,0x74,0xb8,0x40,0x86,0x7b,0x1d,0xc0,0x3a,0xb1,0x3a,0x40,0xad,0x1b,0xb0,0x40,0xe8,0xb8,0x5,0x3e,0x84,0x6,0x9f,0x40,0xcd,0x8c,0x8a,0x3f,0x5f,0xa1,0x2f,0xc0,0x50,0x1d,0xdf,0xbf,0xe5,0x1b,0x37,0x40,0x94,0xf5,0x94,0xbf,0xaa,0xf6,0xc,0x40,0x19,0x7b,0xbd,0x40,0x9f,0xb2,0x2c,0x40,0x80,0x34,0x8,0x3f,0x4f,0xfc,0xf,0x40,0x64,0xbb,0xf0,0xbf,0x88,0xe1,0x4c,0xc0,0x3a,0x8b,0x30,0xc0,0x48,0x83,0x4c,0xc0,0x95,0xab,0x1,0x40,0x48,0xa9,0xfc,0x3f,0xc2,0xfa,0x8f,0xbf,0x18,0x2,0x79,0xc0,0x74,0x58,0x6d,0x40,0x56,0x24,0xeb,0xbf,0x48,0x3a,0x29,0x3e,0x70,0x50,0x4c,0xc0,0xae,0xf,0xe9,0xbf,0xbe,0x7d,0x45,0x40,0x12,0x27,0x6a,0xc0,0x10,0xf4,0xec,0xbf,0xf3,0xf4,0x97,0x40,0x24,0x39,0xc8,0xbf,0xfc,0x56,0x8a,0xbf,0xe4,0xc7,0xce,0xbe,0x74,0xc9,0x48,0x40 }); + + + // [[4.49509695e-02 1.54533505e-03 5.81957698e-01 2.38575833e-03 8.70493293e-01 8 + Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x82,0x1e,0x38,0x3d,0xd7,0x8c,0xca,0x3a,0x2e,0xfb,0x14,0x3f,0x62,0x5a,0x1c,0x3b,0xa6,0xd8,0x5e,0x3f,0x43,0xce,0x9,0x3c,0x90,0xd2,0xe4,0x3c,0x29,0x94,0x7d,0x3b,0x59,0xce,0xea,0x3a,0x83,0x2b,0x27,0x3d,0x12,0xc0,0x3a,0x3d,0xb,0x20,0x2c,0x3c,0xfa,0x46,0x76,0x3f,0x57,0xcb,0xc5,0x3a,0x1f,0xf1,0xf8,0x3e,0x65,0x67,0x5a,0x3f,0x3e,0xdd,0x5f,0x3b,0xd9,0x64,0x87,0x3e,0x6d,0x4e,0x5f,0x3c,0x40,0x86,0x4b,0x39,0xda,0xaf,0x4a,0x3b,0x3,0x63,0xeb,0x3e,0x9b,0x3e,0x8e,0x3a,0x7d,0x32,0xde,0x3c,0x17,0x59,0x2f,0x3f,0x89,0x7b,0x8c,0x3d,0xac,0x65,0xa8,0x3b,0x41,0xae,0x2b,0x3e,0xc7,0x68,0x83,0x3b,0x98,0x55,0x14,0x39,0x1b,0x3f,0x47,0x39,0x61,0xbb,0x9d,0x38,0xfa,0x70,0xf,0x3d,0x1e,0x5,0xb2,0x3c,0x32,0xf,0xbc,0x3b,0xa3,0xda,0xc,0x3a,0x12,0x27,0x11,0x3e,0xc7,0x58,0xfa,0x39,0xea,0x3,0xe,0x3b,0xec,0xdb,0x46,0x39,0x55,0x1d,0x0,0x3a,0x86,0xc,0xc6,0x3e,0xa1,0xa7,0x31,0x3a,0x85,0xe,0xf,0x3a,0xd5,0x29,0xb1,0x3e,0x38,0x84,0xc9,0x39,0x39,0x5d,0xcd,0x3a,0x60,0x19,0x4,0x3b,0xcb,0x83,0xd0,0x3e }); + Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_softmax(actual, x, 0); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(x); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("softmax: "); + + // [[-2.279848 1.5013269 3.0420134 0.63703394 1.9040934 -2.8142376 3.26 + Tensor *x = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x8,0xe9,0x11,0xc0,0x7b,0x2b,0xc0,0x3f,0x59,0xb0,0x42,0x40,0xa8,0x14,0x23,0x3f,0x55,0xb9,0xf3,0x3f,0x78,0x1c,0x34,0xc0,0xfc,0xab,0x50,0x40,0xeb,0x97,0x37,0x40,0xcc,0xe4,0xbe,0x3e,0x38,0x99,0x48,0xc0,0xff,0xfd,0x3f,0x40,0x1a,0x68,0x88,0x40,0xb0,0x78,0x0,0x3e,0xfc,0xd3,0x56,0x40,0x65,0x9c,0x36,0x40,0x5e,0xf5,0x7f,0xbf,0x58,0x24,0x27,0x3f,0x29,0x45,0xbf,0x40,0x7f,0x5,0x83,0x3f,0x9e,0xc1,0x3e,0xc0,0xda,0xa6,0x22,0x3f,0x9a,0x32,0x5f,0x40,0x80,0xd2,0x21,0xbf,0x50,0x28,0xcf,0xbf,0xf5,0xcd,0xa3,0x40,0xa4,0x48,0x69,0x40,0xf8,0x25,0x1a,0x3e,0x69,0xb2,0xa0,0x3f,0x58,0x3f,0xf1,0x3e,0x1,0x4b,0xa,0x40,0xcb,0xbe,0x96,0x3f,0xa8,0xa4,0x1,0xc0,0x55,0x93,0xf6,0x3f,0x32,0xbd,0x90,0x3f,0xd5,0x60,0xa9,0x3f,0xe2,0xca,0x67,0xbf,0xc2,0xfd,0x11,0x40,0x4a,0xc4,0x42,0xc0,0xc8,0xa7,0x1f,0x40,0xe8,0x67,0x6d,0x40,0x8c,0x43,0xe6,0x3e,0x78,0x93,0x38,0xc0,0xd4,0x58,0x7b,0x3f,0x94,0xe8,0x80,0x3f,0xa8,0x8b,0x54,0xc0,0x9f,0x55,0x22,0xc0,0x7d,0xfd,0xb3,0x40,0xa8,0xa6,0x97,0x40,0x50,0x58,0x71,0x40 }); + + + // [[1.69752829e-03 7.44664147e-02 3.47593874e-01 3.13763767e-02 1.11398600e-01 9 + Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x99,0x7f,0xde,0x3a,0xd9,0x81,0x98,0x3d,0xd3,0xf7,0xb1,0x3e,0x84,0x84,0x0,0x3d,0xf3,0x24,0xe4,0x3d,0xdc,0x63,0x82,0x3a,0x5,0x6d,0xdd,0x3e,0xe8,0xce,0x0,0x3e,0xda,0xe1,0x29,0x3c,0xd4,0xfb,0xa2,0x39,0xfd,0xde,0x12,0x3e,0xfc,0xcf,0x1,0x3f,0xd4,0xa6,0x4,0x3c,0x23,0xd8,0x51,0x3e,0x17,0xaf,0x29,0x3d,0xbf,0x5e,0x66,0x3a,0x37,0x5a,0x96,0x3b,0xb1,0x1b,0x71,0x3f,0x7,0xd3,0xd9,0x3b,0x48,0x45,0xfe,0x38,0xfb,0xbc,0x93,0x3b,0x27,0x81,0x9,0x3e,0x27,0x4,0xf,0x3b,0xa1,0x5a,0x55,0x3a,0xbe,0xb3,0x2f,0x3f,0xb6,0xf9,0x20,0x3e,0x51,0x68,0x9c,0x3b,0xd8,0x17,0x6c,0x3c,0xa,0xaa,0x6f,0x3d,0x7b,0x4c,0xa2,0x3e,0x7a,0xe3,0xf2,0x3d,0xa4,0xe0,0x9d,0x3b,0xde,0x60,0x80,0x3e,0x2e,0xc1,0xe7,0x3d,0x76,0x79,0xc,0x3e,0x60,0x70,0xcc,0x3b,0x4c,0xa3,0x1a,0x3e,0xf3,0xd9,0x40,0x3a,0x54,0x71,0x3f,0x3e,0xd3,0x47,0x21,0x3f,0xb5,0x2c,0xc6,0x3c,0x91,0x23,0x62,0x3a,0x9,0x95,0xc6,0x3b,0x3b,0xaa,0xcb,0x3b,0xb8,0xf4,0xab,0x38,0xd9,0x69,0x3c,0x39,0x47,0x1a,0x21,0x3f,0x23,0xe6,0x84,0x3e,0x14,0xe8,0xc9,0x3d }); + Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_softmax(actual, x, 1); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(x); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("softmax: "); + + // [[ 4.4637933 2.9248147 3.8139436 4.3116083 -0.16803825 0.36438978 4.5 + Tensor *x = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x65,0xd7,0x8e,0x40,0x2a,0x30,0x3b,0x40,0xa7,0x17,0x74,0x40,0xb2,0xf8,0x89,0x40,0x38,0x12,0x2c,0xbe,0x4c,0x91,0xba,0x3e,0x62,0x16,0x92,0x40,0xfe,0x89,0x7f,0x3f,0x3d,0x38,0x10,0xc0,0xac,0x20,0x38,0xc0,0xd7,0xf7,0x72,0x40,0xf7,0x87,0xa4,0x40,0xa,0x42,0x9c,0x40,0x18,0x82,0xea,0x3f,0xe4,0x71,0x8e,0x40,0x7a,0xcd,0x65,0xc0,0x52,0x8c,0x26,0xc0,0xec,0xe9,0x73,0xc0,0xe8,0xe8,0xa0,0x40,0xf6,0x6a,0x74,0x3f,0x8a,0xb2,0xa6,0xbf,0x8a,0x47,0x2c,0x40,0x68,0x25,0x5f,0xbf,0xea,0x3a,0xd,0xc0,0x68,0x6c,0x3b,0x40,0xe8,0x2e,0xf5,0x3f,0x6c,0x28,0x25,0xc0,0x96,0xc5,0x12,0xc0,0xce,0x9,0x56,0x40,0x9,0xa9,0x99,0x40,0xbc,0x19,0xb4,0x3f,0x60,0x76,0xc1,0xbf,0x12,0x85,0x5a,0x40,0x97,0x9e,0xef,0x3f,0x44,0x27,0x58,0xc0,0xd8,0x5f,0xf,0xc0,0x64,0xa,0x6,0x40,0x0,0x1,0x83,0x40,0xb8,0x37,0x1b,0xbf,0x10,0xbb,0x5a,0x40,0x1a,0x2e,0x6,0xc0,0x0,0x1c,0xb9,0x40,0xce,0x1,0x92,0x40,0x6b,0xe0,0xf7,0x3f,0x98,0x5d,0x4e,0x40,0x2,0x69,0x2f,0x40,0x86,0xa9,0xf9,0xbf,0xa8,0xd6,0x74,0x3f,0xd3,0x54,0x15,0x40 }); + + + // [[2.68194616e-01 5.75546138e-02 1.40030906e-01 2.30333418e-01 2.61138636e-03 4 + Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xce,0x50,0x89,0x3e,0x63,0xbe,0x6b,0x3d,0x43,0x64,0xf,0x3e,0x86,0xdc,0x6b,0x3e,0xcb,0x23,0x2b,0x3b,0x1d,0xbb,0x91,0x3b,0xcd,0xf9,0x97,0x3e,0x64,0x46,0xf9,0x3b,0x13,0x65,0x9a,0x39,0x6d,0x85,0x25,0x39,0x64,0xbc,0xff,0x3d,0xd1,0x71,0xf5,0x3e,0x1a,0x87,0xbd,0x3e,0x7d,0x79,0x8f,0x3c,0x33,0xd7,0xb5,0x3e,0xda,0x90,0xef,0x38,0x9d,0xea,0xa0,0x39,0x9d,0x29,0xc0,0x38,0xc3,0xe7,0x21,0x3f,0x56,0x4e,0x30,0x3c,0x7a,0x9c,0x93,0x3a,0x80,0x84,0xb8,0x3e,0xb3,0x53,0x27,0x3c,0xb9,0x1f,0x30,0x3b,0xc,0xc7,0xe9,0x3e,0x61,0xc8,0x29,0x3e,0x9a,0x5e,0xf2,0x3a,0xe0,0x83,0x21,0x3b,0xc,0xb2,0x17,0x3e,0x91,0xe5,0x22,0x3f,0xf6,0xdc,0xae,0x3c,0xf4,0x20,0x97,0x3a,0xcf,0xb2,0x22,0x3e,0xf2,0x30,0xb,0x3d,0x9a,0x17,0x3b,0x39,0x4c,0x69,0x83,0x39,0x2d,0xa8,0x9c,0x3c,0x88,0x9e,0x10,0x3e,0x3b,0x55,0xa8,0x3a,0x21,0x17,0x93,0x3d,0xa2,0xb6,0x97,0x39,0xaa,0x18,0x44,0x3f,0x3b,0xce,0x1c,0x3f,0x3e,0x87,0x35,0x3d,0x97,0x85,0x24,0x3e,0xf4,0xdb,0xca,0x3d,0xb,0x3d,0x6e,0x3a,0x9b,0x3d,0x88,0x3c,0x8d,0xf7,0x86,0x3d }); + Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_softmax(actual, x, -1); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(x); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("relu6: "); + + // [[-1.128571 4.794727 -1.9281822 -4.4653482 -2.3803806 -4.6404243 4.12 + Tensor *x = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x4,0x75,0x90,0xbf,0x67,0x6e,0x99,0x40,0xad,0xce,0xf6,0xbf,0x22,0xe4,0x8e,0xc0,0x28,0x58,0x18,0xc0,0x5b,0x7e,0x94,0xc0,0x3,0xd9,0x83,0x40,0xa6,0xa6,0xf,0xc0,0xb8,0x24,0x61,0xc0,0xcc,0x5d,0xa,0xbf,0x64,0x9e,0x57,0xc0,0xd5,0x28,0x27,0xc0,0xa4,0x23,0x23,0x40,0x2d,0x41,0x70,0xc0,0xd8,0xe8,0x16,0x40,0x38,0x5b,0x69,0x40,0x0,0xc0,0x37,0xbc,0x7a,0x17,0xe,0x40,0x32,0x40,0x33,0xc0,0x96,0x8a,0x79,0x40,0x3e,0x6e,0x9b,0x40,0x65,0x16,0x98,0x3f,0xdc,0xcd,0x91,0x40,0x13,0xe8,0x9e,0xc0,0x88,0x8b,0xc,0xbf,0xbc,0x53,0x7e,0x3f,0xe5,0x11,0x8b,0xc0,0xe0,0xb8,0x1b,0x40,0xcc,0xe9,0xf3,0xbf,0x11,0x7a,0xe7,0xbf,0x81,0xe4,0x7d,0xc0,0x5a,0xd2,0x2,0x40,0x35,0xd7,0x68,0xc0,0xc6,0xcf,0x87,0xbf,0x70,0x27,0xe,0x40,0x1f,0x12,0x71,0x40,0x5c,0xb8,0x90,0x3f,0x51,0xbf,0xee,0xbf,0x5d,0x30,0xb,0xc0,0x48,0x9c,0x33,0x40,0xfe,0x7c,0x6d,0x3f,0x4b,0xb0,0x86,0x40,0xd8,0x3,0xf1,0x3f,0xa5,0xe4,0x80,0x40,0xec,0xed,0x80,0xc0,0xe4,0xa0,0x80,0x40,0x7c,0x6,0x13,0xc0,0x71,0x51,0xab,0xbf,0x40,0x29,0xf5,0x3c }); + + + // [[0. 4.794727 0. 0. 0. 0. 4.1202407] [0. + Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x0,0x0,0x0,0x0,0x67,0x6e,0x99,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0xd9,0x83,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa4,0x23,0x23,0x40,0x0,0x0,0x0,0x0,0xd8,0xe8,0x16,0x40,0x38,0x5b,0x69,0x40,0x0,0x0,0x0,0x0,0x7a,0x17,0xe,0x40,0x0,0x0,0x0,0x0,0x96,0x8a,0x79,0x40,0x3e,0x6e,0x9b,0x40,0x65,0x16,0x98,0x3f,0xdc,0xcd,0x91,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xbc,0x53,0x7e,0x3f,0x0,0x0,0x0,0x0,0xe0,0xb8,0x1b,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x5a,0xd2,0x2,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x70,0x27,0xe,0x40,0x1f,0x12,0x71,0x40,0x5c,0xb8,0x90,0x3f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x48,0x9c,0x33,0x40,0xfe,0x7c,0x6d,0x3f,0x4b,0xb0,0x86,0x40,0xd8,0x3,0xf1,0x3f,0xa5,0xe4,0x80,0x40,0x0,0x0,0x0,0x0,0xe4,0xa0,0x80,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x29,0xf5,0x3c }); + Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); + + cycles = read_cycles(); + NN_relu6(actual, x); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(x); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("conv2d: "); + + // [[[[-0.93765914 0.9890288 4.4554844 ] [-2.9874258 1.5449357 -4.0185213 + Tensor *x = NN_tensor(4, (size_t[]){ 1, 16, 16, 3 }, DTYPE_F32, (uint8_t[]){ 0x6e,0xa,0x70,0xbf,0xfe,0x30,0x7d,0x3f,0x54,0x93,0x8e,0x40,0xfc,0x31,0x3f,0xc0,0x74,0xc0,0xc5,0x3f,0xba,0x97,0x80,0xc0,0xd2,0xfa,0x48,0x3f,0x51,0xcf,0x83,0x40,0x49,0xc5,0x57,0x40,0x9c,0x4,0x89,0x40,0x48,0x39,0x2d,0x40,0x2c,0xcd,0xd3,0xbe,0x11,0x1a,0xa7,0x3f,0xa8,0xb6,0x5,0xc0,0xc8,0xcf,0x87,0x40,0xbc,0x39,0x20,0x40,0xe3,0x36,0x6a,0xc0,0x54,0x58,0x8a,0x40,0x0,0xf4,0x97,0xbd,0x60,0x98,0x63,0xbe,0x96,0x28,0xaf,0xbf,0x99,0xdb,0xa8,0xbf,0x4,0x21,0x80,0x3e,0x7e,0x38,0x1c,0xc0,0x46,0xd5,0x94,0xc0,0x7b,0xd5,0x24,0xc0,0x6c,0xb7,0x7e,0xbf,0x70,0xa5,0x71,0x40,0xe2,0x68,0x6b,0x40,0x8f,0xba,0x3f,0xc0,0x20,0x98,0x44,0xbe,0xea,0xb6,0xb8,0xbf,0x9e,0x30,0x2b,0xc0,0xae,0x15,0x61,0xbf,0x7f,0x10,0xde,0xbf,0x3a,0xdd,0x32,0x40,0x3f,0xb3,0x1e,0xc0,0x7e,0xee,0x44,0x3f,0xa2,0x94,0x34,0xc0,0x4b,0xbf,0xc7,0xbf,0x60,0xe9,0x7b,0x40,0x7e,0x19,0x1d,0xc0,0x30,0xef,0x99,0xbe,0xcc,0xce,0x98,0x40,0x12,0xd,0xdb,0x3f,0x30,0xe1,0x22,0xc0,0x5,0x21,0x40,0xc0,0x74,0x6e,0xe0,0xbf,0x5e,0x6a,0xc8,0xbf,0xe5,0x52,0xb,0x40,0xb4,0x49,0x8e,0xbf,0x51,0xf1,0x86,0x40,0x0,0x94,0x2f,0xc0,0x61,0x21,0xc8,0xbf,0xeb,0x2,0xe9,0x3f,0xca,0x91,0x7f,0x40,0xd,0xe,0x99,0x40,0xc6,0xdf,0x4c,0x3f,0x48,0xd0,0x57,0x3e,0x11,0x5f,0xf,0xc0,0x56,0xce,0x34,0x40,0xda,0x7c,0x39,0xc0,0xa6,0x38,0xa8,0xbf,0x3c,0xba,0x85,0xc0,0x9e,0xd0,0x99,0xc0,0x56,0xdd,0x32,0x40,0x48,0xeb,0xad,0x3e,0x8d,0x18,0x7f,0x40,0x45,0xa2,0x7e,0x40,0xc8,0xeb,0x27,0x40,0xea,0xf,0x0,0x40,0x51,0x17,0xa6,0xbf,0xac,0xf4,0x29,0x40,0xb0,0xe0,0x19,0x40,0xd0,0x8d,0xdd,0x3f,0x68,0xcc,0x13,0xbe,0x78,0x31,0x3f,0x3f,0xc0,0xbb,0xb5,0x3c,0x70,0x3b,0x68,0xc0,0x98,0x91,0x94,0x3f,0x1b,0x3f,0x6b,0xc0,0xb2,0x43,0x1b,0x40,0xb8,0xa8,0x3e,0xc0,0x6b,0xe,0xd1,0xbf,0xd2,0xc2,0x17,0xc0,0x5f,0x94,0x7c,0x40,0x97,0x59,0x61,0xc0,0x79,0x65,0x23,0x40,0x5c,0x7d,0x20,0x40,0x89,0x43,0x62,0x40,0xc8,0x5a,0xa0,0x3f,0x96,0x72,0x2e,0x40,0xc4,0xf5,0x7c,0x40,0x28,0x21,0x7c,0x3f,0x7f,0x9c,0xd9,0x3f,0x9,0x38,0x7a,0xc0,0xc7,0xaa,0xab,0xbf,0xbc,0x1e,0xe8,0x3e,0x2c,0x15,0x1b,0x3f,0xdd,0x1c,0xe2,0xbf,0x32,0x9d,0x9e,0xc0,0x48,0x70,0xa6,0xbf,0xab,0x4,0xf5,0x3f,0x73,0xc5,0x89,0x40,0x14,0x7c,0x90,0xc0,0x70,0xc7,0x18,0x40,0xe0,0xd1,0x97,0xc0,0x1f,0x2,0x99,0xc0,0xf4,0x65,0x48,0xc0,0xe,0x11,0x29,0xbf,0x83,0xbf,0xb2,0x3f,0x13,0x5d,0x73,0xc0,0x72,0x8a,0x76,0x40,0x4b,0xb0,0x90,0x40,0xe0,0x81,0x9d,0x3e,0xc8,0x3c,0x82,0x40,0x72,0xde,0x10,0xc0,0x3d,0x2e,0xfd,0xbf,0x78,0x2d,0x25,0xbf,0x10,0xdc,0xb,0x3f,0x45,0x3a,0x5f,0xc0,0x35,0x1e,0x80,0xc0,0x44,0xd2,0xfc,0x3f,0x74,0x87,0xb8,0x3f,0xe4,0x85,0x9c,0x40,0xd8,0x77,0x2,0xc0,0x84,0x2,0xe2,0x3f,0xdf,0x21,0x1,0xc0,0xc4,0xf7,0x1d,0x40,0xc0,0xcf,0x8d,0xbe,0xf3,0x37,0x6d,0x40,0x30,0xc8,0x31,0x40,0xf6,0x2c,0x85,0x40,0x52,0x72,0x24,0x40,0x98,0x5b,0x40,0x3e,0x33,0xe2,0x89,0x40,0x52,0xf6,0x3b,0xc0,0xe8,0xe8,0x96,0x40,0x95,0x59,0x9c,0x40,0xc5,0xd7,0x98,0x40,0x8b,0x7a,0x15,0xc0,0xfc,0x8d,0x29,0xc0,0x84,0xf7,0xa1,0x3e,0x6a,0x4b,0xc7,0x3f,0x4a,0x85,0x20,0x40,0x1a,0x25,0x2,0x40,0x2,0x3d,0x88,0x40,0x7f,0x58,0xa0,0xbf,0x90,0xf7,0xd1,0xbf,0x33,0x87,0xd6,0x3f,0xd6,0x58,0xb2,0x3f,0x34,0xaa,0x3a,0xc0,0x74,0x9d,0xf7,0x3e,0xbe,0xf5,0x72,0xc0,0x9b,0xc1,0xbb,0xbf,0xcb,0x2e,0xfb,0xbf,0xda,0x40,0x8c,0x40,0x1d,0x7,0x90,0xc0,0x9e,0xef,0x3c,0xc0,0xaf,0x94,0x9c,0xc0,0x54,0x69,0xa1,0x3f,0xec,0x4c,0x76,0xc0,0xe8,0x10,0xcf,0x3f,0x8a,0x46,0x5e,0xc0,0x63,0xfc,0x4c,0xc0,0xee,0x7a,0x23,0xc0,0x9c,0x16,0x40,0x3f,0x5c,0x5,0x93,0x40,0xbc,0xdf,0x95,0x40,0x44,0x68,0xc1,0xbe,0x31,0xb8,0x9c,0xc0,0xa7,0x70,0xd3,0xbf,0x3b,0xe9,0xf3,0xbf,0x11,0x20,0x88,0xbf,0x63,0x89,0xf4,0x3f,0x2,0x9,0x21,0x40,0x42,0xe1,0xd,0x40,0xe3,0xd3,0xb6,0x3f,0x82,0x8b,0x1,0xc0,0x80,0x41,0x59,0xbd,0x2,0xe7,0x22,0x3f,0xf2,0x73,0x23,0xc0,0x18,0x2,0xe5,0xbe,0xf2,0xc7,0x1f,0xbf,0x88,0x2b,0x97,0xc0,0x6c,0xef,0x58,0x40,0x42,0x69,0x1,0xbf,0x46,0x50,0x8a,0xc0,0xf0,0x2c,0x7d,0x40,0x6,0x2f,0x2c,0xc0,0x90,0x96,0xe2,0x3f,0x8c,0xac,0x9e,0x40,0x90,0x4,0x6d,0x3e,0x5d,0x21,0xb8,0x3f,0x57,0x4a,0xfe,0x3f,0x68,0xda,0x71,0x40,0xd8,0x5d,0xc4,0xbf,0xf0,0x11,0x34,0xc0,0x68,0x56,0xc8,0xbe,0xa0,0x41,0x7a,0x40,0x10,0x1d,0xdc,0x3e,0xf2,0x56,0x5e,0x40,0x0,0x44,0x18,0xbd,0x6a,0x5d,0xc4,0x3f,0xb8,0x8,0x32,0x3e,0xc8,0xfc,0xa,0x3e,0x56,0x42,0x98,0xc0,0xa2,0xe0,0x8b,0xc0,0x28,0xd0,0xd4,0x3e,0xf8,0x60,0x1e,0x40,0xf8,0xf5,0x56,0x40,0x18,0x27,0x5e,0x3e,0xe,0xe3,0x6,0x40,0xfc,0xd5,0x5,0x40,0xd0,0x1e,0x8a,0xc0,0x1d,0xa1,0x8c,0xc0,0x59,0x1c,0x78,0xc0,0xb0,0xd,0xb0,0x3d,0x5e,0x57,0x4a,0xc0,0xf0,0xce,0xcc,0xbf,0x8c,0x81,0x3f,0xbf,0x1a,0xb4,0xf9,0x3f,0xc6,0x63,0x94,0x3f,0x9a,0x6d,0x94,0x40,0x8b,0x51,0x90,0x40,0x6a,0x25,0x4c,0xc0,0xc0,0x9,0x81,0xbc,0x4a,0x5f,0x53,0x3f,0x4,0xae,0x8b,0x40,0x76,0x59,0xc6,0xbf,0x79,0x85,0xfb,0xbf,0xbc,0xb4,0x4a,0xc0,0xaa,0xcb,0x6b,0x40,0x21,0x51,0xb5,0xbf,0x35,0xb2,0xef,0xbf,0x32,0x70,0x58,0x40,0xe7,0x39,0x93,0x40,0x78,0xc3,0x57,0xbe,0xe8,0x91,0x61,0xc0,0x99,0x5d,0x82,0x40,0x10,0xe2,0xda,0xbf,0xc6,0x76,0x13,0xc0,0xb8,0xf7,0x60,0xc0,0x34,0xe6,0x19,0xc0,0xe2,0x9c,0x7a,0xc0,0x64,0xb5,0x38,0xc0,0xd8,0xc0,0x91,0xc0,0x67,0xfe,0x80,0xbf,0x0,0xaa,0x0,0x40,0x8f,0xeb,0x72,0xc0,0x0,0xcf,0xe4,0xbb,0xee,0x1,0xec,0xbf,0x90,0xc8,0x1a,0x40,0x55,0x94,0x8a,0x40,0x3e,0xae,0x29,0xbf,0x50,0xe,0x21,0xc0,0x65,0xe0,0x75,0xc0,0xc9,0x1,0x3c,0xc0,0x65,0xc8,0xb8,0x3f,0xfe,0xd7,0x92,0x3f,0x56,0x54,0x2c,0x40,0xce,0x31,0x3e,0xbf,0x3e,0x6d,0x24,0x40,0x34,0x8c,0x8e,0xc0,0x52,0xb,0xac,0x3f,0xb5,0x53,0x9b,0x40,0xc,0x5a,0x9e,0xc0,0xec,0x1e,0x26,0xc0,0xaa,0xda,0x4c,0x40,0x58,0x20,0x48,0xbf,0xea,0x92,0x2a,0xc0,0x7e,0x38,0x43,0x40,0x18,0x9b,0xab,0x3e,0x8,0x89,0x48,0x3e,0xcf,0x63,0xc2,0xbf,0xc4,0x19,0x71,0x40,0xca,0x80,0x31,0x40,0x22,0x4d,0x65,0x3f,0xbc,0x57,0x43,0x3f,0x46,0x78,0x25,0x40,0xf9,0x5c,0x47,0x40,0xb4,0x43,0x3,0xc0,0x18,0x3d,0xc,0xbf,0xba,0x7c,0xc,0x40,0xae,0x10,0x1b,0xc0,0xa5,0x9b,0x95,0x40,0x23,0x33,0x5b,0xc0,0xbd,0xa9,0x13,0x40,0x29,0xdc,0x65,0xc0,0x89,0x7b,0xcd,0x3f,0x99,0x81,0x5f,0x40,0xae,0x4d,0x1a,0x3f,0xb2,0x4a,0x0,0xbf,0xb,0x7e,0x4b,0x40,0xec,0xc5,0x65,0xc0,0x9d,0xe4,0x57,0xc0,0x10,0x5e,0x88,0xc0,0xc8,0xf9,0x44,0xc0,0xc0,0xe2,0x4,0x3e,0x48,0x1a,0x11,0xc0,0x18,0x95,0x8e,0x3f,0x28,0xc6,0x2c,0x3e,0x42,0x29,0x85,0x40,0x2e,0xc1,0xa,0xc0,0x27,0x15,0xaf,0xbf,0x66,0xa5,0x53,0x40,0xad,0xd3,0xa1,0xbf,0xe3,0x2e,0x99,0x40,0xfc,0x31,0xfe,0xbf,0x0,0x4c,0x60,0xbd,0x4d,0xa2,0x97,0xbf,0x83,0x4b,0x15,0x40,0x2a,0x3a,0xf5,0x3f,0xb8,0x68,0x2a,0xc0,0x80,0xdc,0x52,0x40,0xc,0xab,0xa2,0xbe,0x77,0xd7,0xa1,0xbf,0xc0,0x8e,0xce,0xbd,0xe0,0xb3,0x5e,0x40,0x5a,0xf3,0x9c,0x40,0x81,0xb5,0x1b,0x40,0x48,0xfa,0x5f,0x3f,0xcc,0xd7,0x50,0x40,0x4f,0xd0,0x5,0xc0,0xa4,0x3b,0x27,0xc0,0xab,0xd2,0xb8,0xbf,0x96,0x1c,0x4f,0xc0,0xc,0x97,0x9,0x40,0x80,0x2c,0xf3,0x3e,0x4b,0xf7,0xda,0xbf,0xd6,0xf2,0x1,0xbf,0x80,0x9,0xcb,0xbd,0x5b,0x30,0x89,0x40,0x9d,0xd3,0x8e,0x40,0xf2,0x59,0x76,0xc0,0xd6,0x8e,0xea,0x3f,0x6d,0x22,0xf7,0x3f,0x1c,0xb7,0xf4,0x3f,0x20,0x81,0x2e,0xbf,0x6f,0xe,0xa0,0x3f,0x20,0xc,0xa1,0x3f,0x52,0xba,0x9b,0x40,0x34,0x59,0x99,0xc0,0x4d,0xdd,0xf2,0xbf,0xf0,0x4b,0x57,0xc0,0xf4,0x38,0x1b,0xc0,0x18,0x50,0x7b,0x3f,0xac,0x29,0x43,0x40,0xe,0xfd,0x71,0xc0,0xbd,0x21,0x50,0x40,0xfa,0xa5,0x85,0x40,0xf2,0xba,0x1d,0xc0,0xd0,0x68,0x5f,0x3f,0xe4,0x47,0x24,0xc0,0x58,0x14,0x89,0x3f,0xfb,0x5b,0x14,0xc0,0xab,0x50,0xf9,0xbf,0x9a,0x36,0x56,0xc0,0x8c,0x6c,0x85,0xc0,0x54,0x5d,0x7f,0x40,0xa0,0xa4,0x21,0xbf,0x30,0xa,0xe,0xbe,0x18,0x41,0x1f,0xc0,0x7c,0xa,0x5f,0x40,0xd4,0x28,0x37,0xc0,0x89,0x6d,0x1,0xc0,0xf3,0xcb,0x79,0xc0,0x77,0x8a,0x86,0xc0,0x5,0xc,0x8e,0x40,0x46,0x1a,0x77,0xc0,0xfc,0xb6,0x30,0xbf,0x28,0x41,0xb9,0xbf,0x94,0x6c,0xea,0x3f,0x21,0x2e,0xab,0x3f,0x22,0x4f,0x75,0xc0,0x20,0xb1,0x8f,0x40,0x95,0x61,0x9f,0xc0,0xfc,0x32,0xfd,0x3e,0x54,0xdf,0xd5,0xbe,0x61,0x50,0x94,0xbf,0xc3,0x11,0x5a,0x40,0x36,0x17,0x87,0x40,0xba,0xbc,0x26,0x3f,0x20,0xc,0xe2,0xbf,0x64,0xe7,0x6d,0x40,0xda,0xb,0x49,0x40,0xfc,0xe5,0x65,0x3f,0x1c,0xc,0xaf,0xbf,0xd8,0xdb,0x57,0x3e,0x67,0x9b,0x8e,0x40,0x1e,0xcf,0xa,0x3f,0x4c,0x3e,0x7c,0xbf,0x0,0x77,0x87,0xc0,0x80,0x7b,0x2b,0xc0,0x7a,0x1d,0x67,0x40,0x28,0x4b,0x34,0xbe,0x6c,0x7a,0xaa,0xbe,0xda,0x30,0xf9,0x3f,0x62,0x89,0x52,0xc0,0x54,0xef,0xac,0xbe,0xb9,0x0,0xb4,0xbf,0x42,0x6e,0x27,0x40,0x3a,0x36,0x82,0x40,0x32,0xee,0x48,0x40,0xeb,0x93,0x6e,0x40,0x8,0xfe,0x8e,0xc0,0xf0,0x35,0xe3,0xbf,0x8a,0x92,0x17,0x3f,0x92,0xe5,0x87,0xc0,0x50,0x9d,0xad,0x3f,0x10,0xc1,0x51,0xc0,0xbe,0x1f,0x9,0x40,0x12,0x7f,0x81,0x40,0x32,0xdf,0x88,0xc0,0x1e,0x12,0x86,0x40,0xfc,0x4f,0x15,0x40,0xc8,0x2c,0x53,0xc0,0xff,0x25,0x99,0x40,0xfb,0x92,0x8a,0xc0,0x28,0x6e,0x57,0xc0,0xc0,0x2e,0x1f,0xc0,0x68,0xa2,0x81,0xbe,0x90,0xd9,0x65,0x3f,0x3a,0xd2,0xbb,0xbf,0xd3,0xa7,0x97,0xc0,0x9c,0xc0,0x13,0xbf,0x4,0xca,0x72,0x40,0x43,0x61,0x76,0x40,0x7f,0x30,0x20,0x40,0x82,0xd7,0x39,0x3f,0x14,0x6,0x9f,0x3f,0xe9,0xb0,0x76,0xc0,0xa6,0x94,0x1,0x40,0xdc,0x3c,0x9f,0xc0,0x7d,0x26,0x4,0xc0,0xae,0x30,0xa8,0xbf,0x7e,0xfc,0x6a,0x40,0x48,0x40,0x15,0xbe,0x52,0xc3,0x11,0xc0,0x8e,0xa0,0x5f,0x3f,0x64,0xc3,0x84,0xc0,0xda,0x71,0xa9,0xbf,0xd7,0x3f,0xb1,0x3f,0x70,0x8b,0xa9,0xbe,0xda,0x6c,0x6,0xbf,0x78,0x93,0x43,0x40,0xbb,0x14,0x73,0xc0,0x82,0x93,0x21,0xc0,0x1c,0xe0,0x9a,0x40,0xb0,0xb4,0x7e,0x3f,0x0,0x3f,0x4f,0xbf,0x6e,0xc1,0x25,0x40,0xcc,0x81,0x40,0x40,0xb4,0xe3,0x55,0xbf,0x11,0x4b,0x5,0xc0,0xcc,0x39,0x51,0xbf,0xae,0x63,0xe8,0x3f,0x94,0x68,0x23,0xbf,0x7e,0x3d,0x3a,0x40,0x46,0x7a,0x82,0xc0,0x8c,0x0,0x1d,0xc0,0xde,0xf2,0x73,0x40,0x2,0xec,0x27,0x3f,0xbc,0xe0,0x80,0x3f,0x36,0x7e,0xd2,0x3f,0x47,0x3a,0x97,0xbf,0xe1,0xf0,0xff,0xbf,0x1b,0x9b,0xb7,0x3f,0xad,0x9e,0xa9,0xbf,0xfa,0x30,0x4,0xc0,0x4e,0x1c,0x29,0x3f,0xd8,0xcd,0x9a,0x3f,0x84,0x25,0xe7,0xbe,0x1c,0x6a,0x58,0xc0,0xf0,0x89,0x41,0xbf,0x52,0x5a,0x35,0xc0,0xde,0x6b,0x28,0x40,0x2a,0x8,0x54,0xc0,0xc8,0x25,0x7f,0x40,0x8c,0xe7,0xfe,0x3f,0xbf,0x2,0x89,0xc0,0xe9,0x78,0x6d,0x40,0xd4,0x3a,0x9e,0xc0,0x70,0xd7,0x94,0xbe,0x56,0xcb,0x47,0xc0,0xe0,0xa4,0x89,0xc0,0xc,0xa5,0xfd,0x3e,0xa1,0x27,0x1b,0xc0,0xb5,0x4e,0x67,0x40,0x1e,0x8e,0x7b,0xc0,0xbc,0xcd,0x84,0x40,0x17,0xe,0x41,0x40,0x38,0x23,0x8c,0x40,0x9e,0x69,0xbb,0xbf,0x46,0x25,0x44,0xc0,0xc9,0x98,0x54,0xc0,0x21,0xd,0x85,0x40,0x5,0x29,0x1f,0xc0,0x68,0x9a,0x1d,0xbf,0x76,0x4b,0x45,0xbf,0x52,0x35,0x5c,0x3f,0xee,0x4a,0x83,0xc0,0xa8,0x3,0x81,0x40,0xc3,0xc7,0x6c,0xc0,0x98,0x5e,0x9d,0x40,0x2,0x6c,0xfa,0xbf,0xe8,0xda,0xe,0xc0,0x6e,0xf0,0x2f,0xbf,0x74,0x69,0xbd,0x3f,0x1a,0x2a,0x6d,0xbf,0x10,0xb0,0x9f,0xc0,0x31,0x15,0x61,0x40,0x66,0x7a,0x9e,0x40,0xff,0x72,0x21,0x40,0x6f,0x90,0x9c,0x40,0xa6,0x6e,0xae,0x3f,0xd4,0x99,0xc8,0xbe,0xe6,0xe0,0x7e,0xc0,0x3e,0xd7,0x8b,0xc0,0xac,0x51,0x5c,0xc0,0xfb,0x61,0xa2,0xbf,0x96,0x56,0x3a,0x40,0xe0,0x6,0x4,0xc0,0x58,0xdb,0x46,0xbe,0x90,0x84,0x90,0xbd,0x60,0x2d,0x51,0xc0,0x68,0x99,0xa,0xbe,0x14,0x7d,0x9a,0x40,0xee,0xc2,0x7f,0x40,0xd8,0xb7,0x73,0x40,0xc8,0x7b,0xfc,0xbe,0x40,0x9b,0xb5,0x3d,0x92,0xf0,0x2e,0x40,0x8a,0xe1,0xd4,0xbf,0xd0,0xaf,0x1,0xc0,0xeb,0xe4,0x88,0x40,0x64,0x27,0x92,0x3e,0xee,0x10,0x58,0xc0,0x1c,0xd1,0x86,0x40,0x6c,0x73,0x54,0x3f,0xea,0x37,0x2b,0x40,0x2d,0xf6,0x8a,0xc0,0x20,0x88,0x6d,0x3f,0x68,0xba,0x43,0x40,0xc6,0xa8,0x38,0xbf,0xb4,0xe3,0x35,0xc0,0x78,0x2,0x80,0x40,0xb7,0xd6,0x14,0x40,0x8f,0x46,0xb6,0x3f,0xa8,0x5b,0x97,0x3f,0x60,0x3,0xe2,0x3d,0x66,0x82,0x37,0x40,0xb3,0xe8,0x8b,0xbf,0xc7,0x5d,0x3c,0xc0,0xfe,0x61,0xf4,0x3f,0xcc,0xbf,0xaa,0x3f,0xdb,0xad,0xf3,0x3f,0xc8,0x2b,0xe,0xbf,0x92,0xdc,0x29,0xbf,0x58,0x77,0xcb,0xbe,0xc7,0xc1,0xa8,0x3f,0x6,0x8e,0x75,0xc0,0x27,0x21,0x95,0xc0,0x43,0x7c,0xef,0x3f,0x81,0x33,0x2f,0xc0,0xb4,0x5a,0xd7,0xbe,0x22,0x6d,0xb1,0x3f,0x32,0x88,0x33,0x3f,0xb6,0x4a,0x4e,0x40,0x70,0xc9,0x27,0x3f,0xbc,0x72,0x9e,0x3f,0xe0,0x25,0xe5,0xbe,0xca,0xf0,0x3c,0x3f,0x27,0xac,0xea,0x3f,0x3,0x4f,0x5a,0x40,0x18,0x9a,0x97,0xc0,0xda,0x4c,0x5,0xc0,0xfb,0x92,0x8f,0xc0,0x12,0x2a,0xff,0xbf,0xc2,0x10,0x43,0x40,0xae,0x99,0x97,0xc0,0xe7,0x5c,0x8f,0xc0,0x90,0x49,0x39,0x40,0xcc,0xf8,0x3c,0xc0,0x8c,0xe0,0x69,0x40,0xc3,0x6a,0xc7,0x3f,0x8b,0xa6,0xa0,0x3f,0x46,0x36,0x7e,0x40,0xd,0x35,0x94,0xc0,0x9e,0x55,0x6a,0x40,0xee,0x8c,0xcf,0x3f,0x62,0x6f,0x56,0xc0,0x3d,0xb8,0x9b,0x3f,0x21,0x5e,0xb2,0xbf,0xe5,0x71,0x0,0xc0,0xde,0xa0,0xa,0xbf,0x6a,0xde,0x16,0xc0,0xee,0xe8,0x8b,0x40,0x5c,0xb6,0x89,0x40,0x22,0x8c,0x8,0xbf,0x60,0xe2,0x8d,0xc0,0xf4,0x9b,0x9c,0xbe,0xec,0x23,0xa9,0x3e,0xd,0xe5,0x55,0x40,0x40,0xbb,0x24,0x3e,0xfb,0x44,0xba,0x3f,0x85,0xd0,0xa9,0x3f,0x88,0x91,0x35,0xc0,0xe3,0x7d,0x46,0xc0,0xd3,0x0,0x8f,0xc0,0x40,0xd3,0x20,0xbd,0x13,0x3a,0xc6,0x3f,0x38,0x7,0xb6,0xbe,0x7c,0x4e,0x9b,0x40,0x10,0x2d,0x74,0xbf,0x2,0xcf,0x50,0xc0,0xb6,0x55,0x55,0x3f,0x29,0x3b,0xb4,0xbf,0x72,0x79,0x2f,0xbf,0x30,0x8,0x9b,0x40,0xd0,0xe7,0x12,0xbe,0x45,0xc4,0x8b,0x40,0x32,0xf0,0x2a,0x3f,0xd,0x18,0xee,0xbf,0x69,0x9c,0x6a,0x40,0xfe,0x47,0x36,0xc0,0xa8,0x67,0x29,0x3e,0xf9,0xda,0x8f,0x3f,0x7f,0xa0,0xf,0x40,0x22,0xa0,0x93,0xc0,0x48,0x2a,0x7b,0x3e,0x68,0xb5,0xa5,0xbf,0x2c,0x7a,0x4f,0x40,0xf8,0x52,0xd7,0x3f,0x4a,0x41,0x0,0x40,0x34,0x67,0x40,0x40,0xaa,0x48,0x8f,0xbf,0x98,0x4,0xa4,0xbe,0x4f,0x5c,0x80,0x40,0x51,0xf5,0x80,0xc0,0xb8,0x30,0x5d,0xc0,0xe4,0x46,0xbb,0x3e,0x8b,0x85,0xfd,0xbf,0x20,0x9d,0x92,0x3e,0x6d,0x56,0x8d,0x40,0xdc,0x61,0x14,0xbf,0xe9,0x6b,0x88,0xc0,0xfe,0x76,0x11,0xc0,0x4e,0xf0,0x92,0x40,0xe8,0x99,0x8c,0xbf,0x1c,0x50,0xc,0xc0,0x5e,0xa,0x10,0x40,0x8c,0x75,0x1e,0x3f,0x98,0x11,0x8d,0xc0,0xf1,0x3e,0x85,0x40,0x2e,0x33,0x34,0x40,0xd2,0x11,0x8b,0x40,0x22,0x8,0xc,0x40,0x4c,0xc7,0xd7,0xbf,0x1e,0xed,0xd0,0xbf,0x3e,0x14,0x1b,0x40,0x8,0x22,0x78,0xbf,0xd0,0xf2,0x7a,0x3f,0xc2,0x9,0x9b,0xc0,0xe2,0x2e,0x1e,0xc0,0xf8,0xb9,0xed,0x3f,0x8,0x69,0x7c,0xbe,0x18,0xd7,0x19,0xc0,0x14,0x90,0x8b,0xc0,0x12,0x61,0x4b,0x40,0x7c,0xad,0x80,0xbf,0x8d,0x34,0x9d,0xc0,0x92,0x5d,0x9a,0x40,0x74,0xb8,0x1b,0x40,0x8d,0x67,0x3f,0xc0,0xc8,0x8b,0x69,0xc0,0x2c,0x9c,0x9a,0x40,0x40,0x5,0xab,0x3c,0x86,0x74,0x40,0xc0,0x98,0x24,0x38,0x40,0xb7,0x4f,0x85,0xbf,0x24,0x5e,0xaf,0x3e,0xe2,0xb2,0x26,0xc0,0xe8,0x84,0x87,0xc0,0xee,0x84,0x54,0xc0,0x3c,0x8c,0xc,0xbf,0xca,0xa9,0x67,0xc0,0x8a,0xb2,0x9d,0x40,0x60,0xa8,0x5d,0x3d,0x2a,0x3,0xf5,0xbf,0xdf,0xf0,0xfc,0x3f,0xdc,0xd9,0x8d,0xc0,0x70,0xad,0x23,0xc0,0x7a,0x62,0xf0,0x3f,0x2f,0xf2,0x87,0xc0,0x2c,0x7d,0x1f,0x40,0x68,0x2e,0xd7,0x3e,0xbe,0x68,0x85,0xc0,0x6,0xca,0x9e,0xc0,0xbd,0x45,0xca,0x3f,0xfc,0x40,0x17,0x40,0x50,0xe1,0x7f,0xbf,0x1a,0x7b,0x8d,0xc0,0x4c,0x6e,0x38,0xc0,0xf4,0xa,0x8,0x3f,0x50,0x45,0x3a,0x3e,0x42,0xd3,0xa3,0x3f,0x6e,0x54,0x62,0x3f,0x90,0x2f,0x86,0xbe,0x5c,0xdf,0x28,0x40,0xc2,0x33,0x9b,0x40,0xd,0x40,0x85,0x40,0x5e,0x63,0x91,0x40,0x8b,0x0,0xd8,0xbf,0x4,0x71,0xda,0xbf,0xd6,0x91,0xd,0xbf,0x5b,0x28,0xbd,0x3f,0x79,0x87,0x1,0x40,0x40,0x30,0xe4,0xbe,0x47,0xb2,0x4e,0xc0,0xa4,0x70,0x71,0xc0,0xf4,0x8,0x9a,0x40,0x56,0x11,0xac,0xbf,0x1c,0x4,0x2d,0xbf,0x82,0x1d,0x44,0xc0,0xa6,0xa4,0x1e,0xc0,0xc3,0x91,0x8c,0x3f,0x98,0xc7,0x6,0x40,0xce,0x1,0xfd,0xbf,0xf6,0x90,0xeb,0xbf,0xae,0x7d,0x7d,0x40,0x2a,0xce,0x24,0xc0,0x44,0xbf,0x6e,0xc0,0x34,0xb3,0x47,0xbf,0x40,0x3f,0x98,0x40,0xc4,0x41,0x8b,0x3f,0x9a,0xdc,0x30,0x3f,0x3c,0x60,0x1f,0xbf,0xe4,0xf6,0x47,0x40,0xb8,0x9b,0x1e,0xc0,0xa8,0xf6,0x58,0x40,0x3b,0x32,0x97,0x3f,0x80,0x50,0xe,0x3f,0x82,0x36,0x30,0x3f,0x21,0x5a,0x45,0xc0,0x8a,0xaa,0x6d,0x40,0x8,0x11,0x28,0x40,0x10,0x47,0x7a,0xc0,0x1b,0xf9,0x94,0xc0,0x30,0xc1,0xa4,0xbf,0xbb,0x97,0x54,0x40,0xce,0x8b,0x1d,0xc0,0x3e,0x4b,0x94,0x40,0x64,0xe3,0x20,0xc0,0x44,0x87,0x90,0xc0,0x96,0xc3,0xc,0x40,0xdc,0x63,0x41,0xc0,0xec,0xc6,0x49,0xbf,0x58,0x9e,0xc7,0xbf,0x60,0x6a,0xcb,0xbe,0x71,0x6b,0x8b,0xc0,0x90,0xc0,0x92,0xc0,0x82,0x8f,0x9,0x40,0x36,0xb,0x11,0xbf,0xa4,0x8,0x41,0xc0,0x28,0x6e,0x2,0xbe,0x86,0x9,0x92,0xc0,0x14,0xe2,0xa9,0x3f }); + // [[[[ 2.374515 4.849083 -4.073365 -0.6062859 2.7134748 4.582304 ] + Tensor *w = NN_tensor(4, (size_t[]){ 3, 3, 3, 6 }, DTYPE_F32, (uint8_t[]){ 0xe,0xf8,0x17,0x40,0xb0,0x2b,0x9b,0x40,0x2,0x59,0x82,0xc0,0x8e,0x35,0x1b,0xbf,0x92,0xa9,0x2d,0x40,0x3c,0xa2,0x92,0x40,0xca,0xab,0x63,0xc0,0xe9,0xfc,0x7,0x40,0xd4,0x1d,0x4,0x40,0x2e,0xeb,0x40,0x40,0xf9,0x9c,0x5c,0xc0,0x76,0x5b,0x64,0x40,0x60,0x61,0xb,0xc0,0xc0,0xf9,0x44,0xc0,0x34,0x27,0x7e,0x3f,0xdd,0x8a,0x87,0x40,0x30,0xe9,0x53,0xc0,0xbe,0xd9,0x2a,0x40,0xc6,0x97,0x12,0xbf,0xd9,0x4f,0xcc,0x3f,0x5e,0x9f,0x79,0x40,0xe1,0xc5,0xad,0x3f,0x35,0xd3,0x84,0xc0,0x48,0xb0,0xc0,0xbf,0xfe,0xc,0x7e,0x3f,0x76,0xf9,0x86,0xc0,0xb8,0xcc,0x54,0x3f,0x7f,0xd4,0x2b,0xc0,0x50,0x6f,0x7e,0xbf,0x49,0xf4,0xe4,0x3f,0x6a,0xc5,0x80,0xc0,0xd2,0x71,0x4d,0xc0,0x10,0xf4,0x11,0x40,0x1a,0x3f,0x9e,0xc0,0x63,0x38,0x5c,0x40,0xce,0xbe,0x76,0xc0,0x0,0xe2,0xa4,0xbd,0xb1,0x61,0x83,0x3f,0x5,0x8a,0xfc,0x3f,0x19,0x9d,0x46,0xc0,0xd6,0x40,0x2c,0x3f,0xb6,0xc9,0x9,0x40,0xc8,0x3b,0x89,0x40,0xd9,0xd0,0x70,0xc0,0x54,0x18,0x1f,0xc0,0x42,0x71,0xba,0x3f,0xa8,0x5d,0x24,0xbe,0xd6,0xf1,0x57,0xc0,0x4,0xaa,0x86,0xc0,0x96,0x11,0x8e,0xc0,0x5e,0xeb,0x5f,0xc0,0xf7,0x3e,0x8,0xc0,0x34,0x35,0x5e,0xc0,0xa,0x5c,0x8c,0xc0,0xb8,0xd4,0xc7,0x3e,0x80,0xaa,0x3b,0x40,0x36,0xe0,0x16,0xc0,0x88,0xfe,0xff,0x3e,0x80,0x78,0x7c,0xbd,0x24,0x94,0x15,0x40,0x14,0xec,0x5d,0xc0,0x70,0x14,0x73,0x3e,0xdc,0x57,0x95,0x40,0x36,0x74,0x64,0x40,0x24,0x94,0x9e,0xc0,0xca,0xb0,0x40,0xbf,0x80,0xe8,0x3e,0x3d,0x56,0x53,0xd3,0xbf,0x4b,0x3c,0x52,0xc0,0x17,0xaa,0x5e,0xc0,0x2a,0xa1,0x54,0x40,0x9e,0x32,0xcf,0xbf,0x28,0xbf,0xa4,0xbe,0xb4,0xcb,0xbb,0x3f,0xb0,0x69,0x44,0xc0,0x70,0x2d,0xe4,0x3e,0xa,0x57,0x3e,0x40,0xa8,0x19,0x3b,0xc0,0x2b,0x33,0xba,0x3f,0x10,0xe1,0x2e,0xbe,0x8f,0xf2,0x2f,0x40,0x38,0xa2,0x54,0x40,0xad,0xcb,0xa9,0x3f,0x60,0xb4,0x1a,0x3e,0xa0,0xbb,0x89,0xc0,0x98,0xd1,0xfe,0x3f,0xd6,0x17,0x43,0x40,0xd7,0x76,0xe8,0xbf,0xee,0xde,0x9e,0xc0,0x8b,0xa8,0x81,0x40,0xda,0x39,0x96,0xbf,0xd8,0xb,0x80,0x3f,0xcc,0xe8,0xb3,0xbf,0xc6,0x12,0x4c,0x40,0x71,0xb,0x9c,0x40,0xa0,0x96,0x48,0x40,0xe,0xad,0xcb,0xbf,0xb6,0x40,0x60,0x40,0x60,0x23,0x1c,0x40,0x5c,0xc2,0xf9,0x3e,0x7e,0xe0,0x80,0xc0,0xe4,0x67,0x9,0xc0,0x47,0x4d,0x9e,0xc0,0xda,0x6,0x56,0x40,0x96,0x28,0x9e,0x40,0x8a,0x67,0x3a,0x40,0xf,0x7e,0xcc,0x3f,0x2b,0x42,0x97,0x3f,0xda,0x5,0x9a,0x40,0xb8,0x3b,0x22,0xc0,0x41,0xdd,0xd6,0xbf,0x1a,0xa9,0x8f,0xc0,0x18,0x80,0xfd,0xbe,0xc4,0x9a,0xaf,0x3e,0x92,0x31,0xaf,0x3f,0x73,0x9e,0x5e,0xc0,0xe8,0x1e,0x14,0xbf,0x14,0xd7,0x83,0xc0,0x7e,0x26,0x82,0xc0,0x4,0xd7,0x26,0x3f,0x33,0x2f,0x9c,0xc0,0x3,0x6b,0xaa,0x3f,0x4c,0x64,0x93,0xc0,0xd,0xaa,0x5e,0xc0,0x27,0xcc,0x84,0xbf,0x5d,0xaf,0x98,0xc0,0x9f,0x38,0x81,0x40,0xd6,0x18,0x83,0x40,0x30,0x25,0x27,0xc0,0x36,0x11,0x86,0x3f,0x39,0xb4,0x23,0x40,0xf2,0x5f,0xcb,0x3f,0xa6,0x76,0x2b,0xbf,0xee,0xe9,0x96,0xc0,0x38,0xaf,0x68,0x40,0xe2,0x55,0x8c,0xc0,0x40,0xe,0x6d,0xbf,0xf8,0xcc,0x9e,0x3e,0x65,0xc7,0xd2,0xbf,0x41,0x15,0xea,0xbf,0x84,0x48,0x8a,0xc0,0xd8,0xd,0x8d,0x3e,0x72,0x56,0x11,0xbf,0x7,0x7d,0x8b,0x40,0x97,0xb3,0xd2,0xbf,0x32,0x55,0x77,0x40,0x88,0x61,0x72,0x3e,0x32,0xc5,0xf,0xc0,0x33,0x34,0x98,0xbf,0x82,0x41,0x11,0xbf,0xe0,0x22,0x54,0x3d,0x22,0xe2,0x52,0xbf,0x4d,0xef,0xbd,0x3f,0x38,0xc3,0x83,0x40,0xe6,0x31,0x49,0x3f,0xf1,0xd0,0xe7,0x3f,0x44,0x9b,0x45,0x40,0x4,0xf4,0x89,0x3f,0xba,0x82,0x13,0x40,0x31,0xdb,0x27,0x40,0x1a,0xc3,0x95,0x40,0x4d,0x6,0x92,0xc0 }); + // [ 1.7109567 -0.22655725 -0.8979517 -1.9277102 3.006003 4.573937 ] + Tensor *b = NN_tensor(1, (size_t[]){ 6 }, DTYPE_F32, (uint8_t[]){ 0xa1,0x0,0xdb,0x3f,0xa0,0xfe,0x67,0xbe,0x2a,0xe0,0x65,0xbf,0x35,0xbf,0xf6,0xbf,0x5a,0x62,0x40,0x40,0xb1,0x5d,0x92,0x40 }); + + + // [[[[ -57.222538 8.81204 -19.71092 79.85186 -50.808155 5. + Tensor *golden = NN_tensor(4, (size_t[]){ 1, 14, 14, 6 }, DTYPE_F32, (uint8_t[]){ 0xe1,0xe3,0x64,0xc2,0x1e,0xfe,0xc,0x41,0xf7,0xaf,0x9d,0xc1,0x27,0xb4,0x9f,0x42,0x8d,0x3b,0x4b,0xc2,0xc3,0x3e,0xbd,0x40,0x64,0xeb,0x11,0xc1,0xf6,0x89,0x5a,0x41,0x2d,0xf0,0x2b,0x42,0x6a,0x8,0x8e,0xc2,0x6f,0x34,0x20,0x40,0x98,0x6f,0x3,0x41,0x4d,0x29,0xe3,0x41,0x9e,0xb3,0xb4,0xc1,0x50,0xed,0x9a,0x40,0x37,0xf,0xe,0x42,0xe,0x58,0x55,0xc1,0xa3,0x89,0x9b,0x41,0x6f,0xcd,0x8e,0xc1,0xc8,0x67,0x30,0xc0,0xfd,0x5a,0xe2,0x41,0x3a,0x15,0xb9,0x41,0x7b,0x17,0x5b,0x42,0xab,0xf8,0x33,0x41,0x94,0x3b,0xce,0xc2,0x88,0x26,0x83,0x40,0x30,0x86,0x24,0x42,0xb9,0x81,0xd3,0xc0,0xb7,0xb3,0x1c,0xc2,0x41,0xc9,0x44,0x42,0xac,0xbb,0x7e,0x40,0xd8,0x95,0x93,0xc1,0xe3,0x35,0x2a,0xc1,0xa7,0x94,0xcf,0xc1,0xe0,0x20,0x92,0x41,0xe6,0xb,0x3e,0x40,0x16,0x19,0x19,0x41,0x1a,0xcc,0xdd,0xbf,0x20,0x32,0x20,0x40,0xc3,0x15,0xd5,0x41,0x7e,0x90,0x52,0x41,0xce,0x2b,0x45,0xc0,0x22,0xb8,0x4d,0xc1,0xa,0xf5,0x1d,0x42,0x8,0xff,0xf9,0xc0,0x50,0xbc,0x45,0x42,0x54,0x88,0x32,0x41,0xea,0x24,0xde,0x41,0x75,0x3a,0x5a,0x41,0x5a,0x1a,0x8,0x41,0x53,0x85,0x4f,0x42,0x89,0xc9,0x54,0xc1,0x2,0x4f,0xdd,0xc1,0x51,0xab,0x48,0xc2,0xae,0xa0,0x66,0x42,0x88,0x1e,0x75,0x40,0x1c,0xad,0x35,0xc2,0x8d,0xfd,0x4,0x42,0x2f,0xa9,0xb6,0x41,0x2,0x2a,0x59,0x42,0x3a,0x2d,0x97,0x40,0x7,0x16,0xb,0x3f,0xcb,0xc4,0xbd,0xc0,0x88,0xa0,0x27,0xc2,0xdc,0xbf,0x48,0xc0,0x77,0x49,0x52,0xc2,0x13,0xf5,0x74,0x42,0x2f,0x54,0xa7,0x41,0x6b,0x20,0x60,0xc1,0x8a,0xa5,0xbf,0x41,0xf1,0x56,0x27,0x42,0xe2,0x26,0x17,0xc1,0x6c,0xdb,0xc2,0xc0,0x40,0x9e,0x33,0x41,0xa,0x16,0xb,0x40,0xec,0x18,0xf0,0x41,0xd0,0xfe,0x72,0xc2,0xf8,0xaa,0xd,0x42,0x30,0x2d,0x21,0xbe,0x49,0xc,0x16,0x40,0xf3,0x12,0x28,0x41,0xc3,0x26,0x47,0xc2,0x64,0x8f,0x85,0x40,0x52,0x17,0x54,0xc0,0xfb,0xb3,0x4c,0xc1,0xe8,0x1f,0x90,0xc1,0x29,0x98,0x81,0xc2,0xe0,0x2e,0x4d,0xc2,0x1e,0x7b,0xa0,0xc2,0xf7,0x1a,0x8a,0xc2,0xd9,0x61,0x9e,0x42,0xd9,0xcc,0xda,0xc1,0x9,0x76,0xa9,0xc2,0xf6,0xe1,0xed,0xc1,0xda,0x99,0xfa,0x42,0xa0,0x4f,0xd0,0xbe,0x5a,0xc0,0x3f,0xc2,0x34,0x77,0x65,0x42,0xee,0x1d,0xb9,0x41,0x46,0x9c,0xa2,0x41,0x18,0xc6,0x86,0xc2,0x3a,0x3f,0xe1,0x41,0xf7,0xd9,0xc9,0xc1,0x80,0xa2,0xcd,0x42,0x6a,0xc1,0xbd,0x41,0x58,0x28,0x80,0x42,0x1a,0xf1,0x7,0xc2,0x7a,0x28,0x3,0x42,0xea,0xbe,0x5f,0x40,0x85,0xc,0xf7,0xc1,0x9f,0x46,0xff,0x40,0xc1,0x5b,0x85,0xc2,0xc6,0x6a,0x7,0xc1,0xe2,0xbf,0x4,0xc2,0xd9,0xeb,0xd,0x42,0x18,0x22,0x84,0xc2,0xf1,0x22,0xa0,0x42,0xa6,0xd,0x26,0x42,0xab,0x87,0x61,0x42,0xd6,0x7e,0x94,0xc2,0x7e,0xbd,0x49,0xc2,0x57,0x21,0xe8,0xc1,0xe8,0xd2,0x25,0x42,0x9d,0x9d,0xb5,0x41,0xc5,0x9a,0xcb,0xc2,0xa4,0x3b,0xa7,0x42,0xe,0x75,0x8c,0xc1,0x44,0x52,0x32,0x42,0xe7,0x77,0x95,0xc0,0xc1,0x42,0x33,0xc2,0x50,0xd9,0x1,0xc2,0x63,0xb4,0x96,0xc1,0x7f,0x80,0xa0,0x42,0xc2,0x93,0x11,0xc0,0x9b,0xc4,0x6b,0x41,0xc8,0x43,0x5b,0x42,0x1b,0xf4,0xad,0x42,0xe7,0xfe,0x1a,0x42,0xdc,0xd4,0x33,0xc2,0xfa,0x62,0x8b,0x42,0x71,0xff,0x2f,0x42,0xc6,0xff,0xc7,0x41,0x74,0xb9,0x10,0xc2,0x75,0x8c,0x82,0x42,0x4f,0x30,0xe8,0x41,0x3a,0x4f,0x2f,0x42,0x80,0x1d,0x8c,0xc1,0x38,0x26,0xc2,0x40,0x31,0x9a,0x8e,0x40,0x70,0xdc,0x32,0xc1,0xaf,0x51,0xb3,0x41,0xb8,0xc0,0x5d,0x41,0x88,0xb7,0x26,0xc2,0x8e,0xc3,0x85,0x41,0x1b,0xdf,0x9d,0x42,0x72,0xc4,0x51,0xc1,0x7e,0xa8,0x57,0xc2,0xcc,0xcd,0xfd,0x41,0xbc,0xf8,0xae,0xc1,0x34,0x96,0x56,0xc0,0x3c,0x14,0x94,0xc1,0xe2,0xa9,0xc,0xc2,0xc3,0x94,0x37,0x41,0xd0,0x1,0x4,0x42,0xb,0x66,0x24,0xc2,0xd1,0x6,0x4f,0x42,0x14,0x70,0xd0,0x42,0x4a,0x6f,0x3d,0xc1,0xd7,0x3,0x11,0x42,0xe,0xdd,0x11,0x42,0x69,0xde,0x94,0xc1,0x1,0x46,0x5,0x42,0xce,0x45,0x1c,0x42,0xe5,0xdb,0x96,0x41,0x4b,0xaf,0x9b,0x42,0x48,0xf7,0xdd,0xc0,0x4d,0xc8,0xc7,0x41,0xc2,0x34,0x96,0xc2,0x9c,0x99,0x42,0x41,0xc2,0x4e,0xe6,0x41,0x3d,0xfc,0x18,0x42,0x92,0x98,0xfb,0x41,0xb0,0xf4,0xc3,0xc2,0xcb,0x64,0x82,0x3f,0x76,0x60,0x59,0xc0,0xa9,0x96,0x94,0x42,0x31,0x5,0xb7,0x42,0xba,0x80,0x77,0xc2,0x8c,0xef,0xb3,0xc2,0xdd,0x4d,0x9c,0xc2,0x3e,0x57,0x37,0x42,0x13,0x52,0x10,0xc3,0x86,0x66,0x88,0x42,0x28,0x3e,0xc6,0xc2,0xd9,0x63,0x2f,0xc0,0x8d,0x37,0x82,0xc1,0x38,0xac,0x6e,0x42,0x62,0x11,0xcb,0x41,0x89,0xa0,0xa3,0xc2,0x9b,0x63,0x32,0xc0,0xac,0xd0,0x95,0x41,0x13,0xe0,0xf2,0x41,0x76,0xd1,0xa7,0xc2,0xe3,0xfb,0x0,0x41,0xb1,0x4e,0xad,0x3f,0xb5,0x3b,0xf7,0x41,0x32,0x6d,0x47,0xc2,0xfb,0x3,0x3e,0xc1,0x5e,0x9,0x1f,0xc1,0x74,0x5e,0x47,0x42,0xe3,0x72,0x86,0x42,0x76,0xe2,0x5d,0xc2,0xcd,0xbd,0xac,0xc0,0x50,0xbc,0x4b,0x41,0xa5,0x84,0xca,0x42,0x65,0x3b,0x9f,0xc2,0x78,0x2c,0x79,0xc1,0x36,0x55,0xa5,0xc0,0xfa,0x2b,0x67,0x42,0x3e,0xcf,0x85,0x42,0x8,0x60,0x68,0xc1,0x1b,0xcb,0xb8,0x41,0x3e,0xf5,0xfc,0xc1,0x8d,0xe8,0xee,0xc1,0x7e,0x12,0x95,0xc1,0x8c,0xda,0x9a,0xbf,0xd8,0xc5,0x62,0x41,0x23,0xf8,0x91,0x40,0xbc,0xa3,0x3,0xc2,0xc3,0xff,0x4c,0xc2,0x3d,0x23,0x39,0xc2,0x30,0xe1,0xc9,0xc2,0xdc,0xbd,0xbd,0xc1,0x37,0x71,0xd9,0xc0,0x5a,0xe3,0x4b,0xc2,0xdc,0xcb,0xe4,0x40,0xee,0xc7,0xca,0x40,0x5e,0xaa,0xc0,0x41,0x3f,0x65,0xaf,0xc0,0x5e,0xa7,0x23,0x42,0xd2,0xc2,0x82,0x41,0x28,0x68,0x8,0xc1,0x54,0x41,0x75,0x42,0x15,0xbc,0xd2,0xc1,0xb8,0x29,0x38,0x42,0x1b,0xa,0xcb,0x41,0x36,0x20,0xa4,0xc1,0x1c,0x8e,0xe4,0xc1,0xe8,0xe1,0x21,0x3e,0x2d,0x73,0x26,0xc2,0x5b,0x18,0x26,0xc2,0x9b,0xad,0xfb,0x41,0x46,0xbd,0x90,0xc1,0x39,0x67,0x2,0x42,0x26,0xfe,0x8c,0x41,0xb6,0x5b,0x78,0x42,0x53,0xcd,0x6,0x42,0xda,0xfc,0xf,0xc1,0x6,0xf6,0xd5,0xc1,0x34,0x4a,0x57,0x41,0x37,0x92,0x2,0x42,0x87,0x7a,0xc1,0x42,0xed,0x8d,0xd4,0x41,0x96,0x7b,0x3a,0x42,0x4,0x50,0x7,0xc2,0x9f,0xb3,0x29,0x42,0x89,0x60,0x1,0x41,0xf3,0x96,0xd2,0x40,0x1c,0xa5,0x21,0x41,0xaa,0x87,0x9e,0x41,0xb,0x2d,0x14,0x42,0x4d,0xe9,0x97,0x41,0x94,0x69,0xb2,0x41,0xe1,0x79,0x5,0x42,0xe5,0xb2,0xd9,0xc0,0x1d,0x50,0x2,0xc2,0xe5,0x7d,0x52,0x42,0x88,0xbd,0x82,0x42,0xe,0xb1,0x9b,0x41,0xac,0xe9,0xaf,0xbe,0x19,0xf1,0xe6,0x41,0xa1,0x49,0x97,0x42,0xaa,0xd1,0x6e,0xc1,0xbf,0x55,0x26,0xc2,0x97,0x2d,0x25,0xc2,0x1d,0xe7,0xf8,0x41,0xf1,0x42,0x82,0xc0,0x20,0x75,0x34,0xc0,0x3f,0x8e,0x22,0x42,0x78,0xfb,0x3c,0xc1,0x78,0xd0,0x6,0xc2,0x80,0xff,0xf2,0xc2,0xf0,0xde,0x42,0x42,0x1b,0x74,0xce,0xc1,0x4b,0x44,0x58,0x42,0x10,0xac,0xb2,0xc1,0x1d,0x51,0xaf,0x42,0xcd,0xea,0x85,0x42,0x99,0x0,0x3d,0xc2,0xc0,0x13,0x5b,0x42,0xd5,0x16,0x98,0x41,0x7b,0x22,0xec,0xc0,0xdd,0x53,0x6a,0x42,0x2a,0x3f,0x22,0xc1,0xfa,0xe8,0x8d,0xc1,0xcc,0x71,0x9,0x42,0x1,0x63,0xd7,0xc1,0x2b,0x7,0x1a,0xc2,0x88,0xff,0x9b,0x42,0xc,0x44,0x5e,0xc2,0x46,0x1a,0x5f,0xc1,0x1e,0xe0,0xd0,0xc1,0x7d,0x16,0x3c,0xc2,0x6b,0x3b,0xcd,0x41,0x99,0x42,0x10,0xc1,0x5f,0x4d,0xe2,0x41,0x94,0x1d,0x8c,0xc1,0xc2,0x5c,0x84,0x42,0x39,0x1,0xd,0xc2,0x76,0xb0,0xe,0x42,0xe,0x8,0x44,0xc2,0xb6,0x57,0xb,0xc2,0xee,0xb2,0x21,0xc1,0xb6,0xac,0x3b,0xc2,0x0,0x95,0xf1,0xc1,0x36,0xbd,0xaf,0x41,0xb,0x91,0xe3,0x41,0xf7,0x4d,0xf3,0xc1,0x88,0xd7,0xa7,0xbf,0xd,0x5a,0xde,0xc0,0xc8,0xd1,0x1e,0xc2,0xdd,0x14,0x5a,0xc2,0xc1,0xcd,0x84,0x42,0xff,0x52,0xe3,0xc1,0x7f,0x42,0xfa,0xc1,0x6e,0x2f,0x4b,0xc2,0xa4,0xad,0x6e,0xc1,0x3e,0x10,0x7e,0xc1,0x9c,0x80,0x1c,0xc2,0x93,0xdb,0x10,0x41,0x53,0x7b,0x93,0xc2,0x4c,0xfb,0x85,0x40,0x55,0xc5,0x6b,0x41,0x78,0x1b,0x6d,0xc1,0xef,0x72,0x52,0xc1,0x6e,0x2,0xa0,0xc2,0x9c,0x33,0xc2,0xc1,0x2c,0x6c,0x55,0xc0,0xca,0x92,0x7e,0x40,0x17,0x24,0xf3,0x41,0x89,0x6d,0xd8,0x42,0xae,0x3f,0x82,0x42,0x37,0x39,0xe9,0x41,0xe0,0x5c,0xda,0xbf,0xf,0x5,0x5f,0x42,0xb5,0xb5,0xce,0xc1,0x4c,0x40,0x32,0xc2,0x7a,0x9,0x88,0x42,0x70,0xa,0x3,0x41,0x2a,0xed,0x83,0x41,0x6f,0x87,0x68,0xc2,0x82,0xf0,0x25,0xc1,0x72,0x79,0xff,0xc1,0x34,0x64,0xf3,0xc1,0x85,0x74,0x11,0x41,0x1e,0xea,0xb3,0x3f,0xa,0x3f,0xfc,0xc1,0xf2,0xf4,0xc7,0xbf,0x6f,0x6,0xa1,0x42,0x96,0x4b,0x9,0xc2,0x4e,0x21,0xa4,0xc1,0x47,0x38,0xcd,0xc1,0x47,0xa6,0x9e,0x42,0x99,0x29,0x34,0x42,0x51,0x4f,0x26,0xc2,0x15,0xa9,0x62,0x42,0xb,0xf4,0xe8,0xc0,0xc2,0x57,0x13,0x41,0x8,0x9c,0x3a,0x42,0x36,0xa5,0xb,0x42,0xcd,0x14,0x80,0xc2,0x50,0x40,0xb7,0x41,0xe7,0x7d,0xb8,0x41,0x22,0x9c,0x13,0xc2,0x32,0x94,0xdc,0xc1,0x48,0x57,0xe,0xc1,0xf3,0xf5,0x23,0x42,0xdc,0xb9,0xcf,0x41,0xab,0x34,0x37,0xc2,0x6f,0x49,0xaa,0xc2,0xd9,0x99,0x46,0xc2,0x4,0xa3,0x84,0xc2,0x4f,0x25,0x8f,0x42,0x6b,0xd5,0xf9,0x40,0x64,0x35,0x6c,0xc1,0x78,0x24,0xab,0x41,0xb,0x1e,0x48,0xc2,0x8d,0x63,0xab,0xc1,0x5f,0x92,0x7,0x42,0x47,0x16,0x41,0xc2,0x81,0xde,0x69,0xc2,0xbf,0x29,0x98,0x42,0xbb,0x49,0xe7,0x41,0x2,0x78,0x37,0xc1,0xc,0x29,0x3e,0x40,0xef,0x72,0x6e,0x41,0x9f,0xf9,0x0,0xc2,0xfa,0x87,0xff,0xc1,0x71,0xfd,0x94,0x42,0xa6,0x45,0x16,0xc0,0xa4,0x8e,0x3e,0xc2,0x99,0xc9,0xd1,0x41,0x7f,0xe4,0x5c,0x42,0xaa,0x76,0xb,0xc2,0x83,0x23,0x75,0xc2,0x9e,0x67,0xf6,0xc1,0x22,0x46,0x82,0x41,0xbd,0xee,0x88,0xc1,0xd7,0xe1,0x9b,0x41,0x5b,0x7b,0x89,0x41,0xdc,0x30,0xe2,0x41,0x5b,0xf8,0x8e,0xc2,0xb4,0xab,0xa1,0xc2,0x59,0x7a,0x62,0xc2,0x47,0x6c,0xee,0xc1,0xda,0xdf,0xe3,0x3f,0x78,0x8,0x8,0x42,0xf4,0xd4,0x5f,0xc2,0x69,0x1f,0x39,0xc2,0xc,0x1f,0x80,0xc2,0x83,0x7c,0x42,0x42,0x5f,0x72,0xdb,0xc2,0x1d,0xcc,0x64,0x41,0x5c,0x8,0x68,0xc2,0x3d,0x4b,0x6b,0x42,0x6a,0x98,0xc4,0x42,0xde,0x9d,0x3f,0x42,0x8c,0x99,0x49,0x41,0xe5,0xbe,0xac,0xc2,0x75,0x1f,0x11,0xc2,0xf9,0x32,0x88,0x42,0xb6,0xe,0xa1,0xc1,0x58,0xd7,0x7b,0xc2,0x2d,0x29,0x2,0x42,0x2f,0xde,0x7e,0xc2,0x82,0x19,0x13,0x42,0x2d,0xf5,0x0,0xc2,0x10,0xd5,0x3e,0xc2,0xaa,0x0,0xa3,0xc2,0x4b,0x4a,0xc5,0xc0,0xfa,0x12,0x94,0x42,0xa8,0x41,0x71,0xc1,0xad,0x94,0x25,0x42,0x6d,0x72,0x42,0x41,0x67,0x3b,0xc8,0x42,0xae,0x19,0x64,0xc2,0xb0,0xfb,0xf6,0x3f,0x4a,0x44,0x5c,0x41,0x96,0xbd,0x87,0x41,0xb6,0xd1,0xb5,0x42,0x27,0xbd,0xe5,0xc1,0xff,0x5a,0xd3,0x42,0xf3,0x69,0xad,0xc1,0x5b,0xad,0x3a,0x42,0x7e,0xea,0xc,0xc2,0x3,0x7b,0xa4,0xc1,0xfc,0xe0,0x95,0xc1,0xec,0x27,0x79,0xc1,0x3e,0xa6,0x4c,0x42,0x6,0x37,0x51,0x42,0x23,0xc7,0xf8,0xc1,0x5,0x1c,0xaf,0x41,0xb7,0x18,0x8a,0x42,0xc6,0x78,0x62,0xc0,0xcf,0x89,0xc8,0xc1,0xcf,0xc,0x24,0xc2,0x32,0xe7,0xb9,0xc1,0xc1,0xda,0x1d,0x41,0x37,0x84,0x86,0xc1,0xdf,0x27,0xad,0x41,0x56,0x0,0xae,0xc2,0x42,0x57,0x13,0xc1,0xba,0x82,0x3f,0x41,0x8a,0xec,0x70,0x40,0xa6,0x26,0xdb,0xc1,0xd0,0x22,0x4f,0xc2,0x8c,0x23,0x93,0x41,0x8c,0x9e,0x9b,0x41,0xe3,0x97,0x36,0x42,0x4,0xba,0xa0,0x41,0x4,0xae,0x32,0xc1,0x7c,0x39,0x47,0xc1,0x86,0xbb,0xa9,0x42,0x39,0x77,0x51,0x42,0x83,0xbf,0x16,0x41,0x97,0xa2,0x8c,0x42,0x9f,0x3c,0x16,0x42,0xa5,0x1e,0xc,0x42,0xab,0x36,0x35,0xc2,0x84,0xeb,0x79,0x42,0x1d,0x9d,0x9c,0xc1,0xf9,0xee,0x2f,0xc1,0x9c,0xd8,0xad,0x40,0xb8,0xe9,0xe5,0x42,0xd3,0x74,0x1d,0xc2,0xc2,0x87,0x2f,0xc2,0x5d,0x8,0x64,0x41,0xee,0x55,0x42,0xc2,0x31,0x6d,0xc1,0xc2,0x97,0x27,0x4a,0x42,0x56,0x7,0xbb,0x40,0x32,0x7f,0xbf,0x41,0x40,0x45,0x9f,0xc1,0xa1,0x8a,0x4b,0x42,0x8a,0xe,0x13,0x41,0x24,0x3b,0x1d,0xc1,0x16,0x8b,0x9d,0xc1,0x3d,0x42,0x4a,0xc2,0xd1,0x8e,0x95,0x42,0x38,0xbd,0xa,0xc2,0x7a,0xd3,0x52,0xc2,0x3a,0x8,0xb,0xc0,0xdc,0xfb,0xe,0xc2,0xa6,0x2,0x66,0xc2,0x39,0xc9,0x85,0x42,0xc8,0xf4,0x7b,0xc2,0x48,0x27,0x37,0xc2,0x50,0xc5,0x89,0xc2,0x21,0xf6,0x20,0x42,0xc5,0xa4,0x69,0xc2,0xa2,0x0,0xbc,0xbf,0xfc,0x3b,0x19,0x42,0x84,0x86,0x31,0x42,0xc8,0xbc,0x8,0xc0,0xa2,0xa7,0x6d,0xc1,0x45,0x9f,0x83,0xc2,0x7e,0x28,0x5c,0xc1,0x22,0x26,0xf9,0xbf,0x7d,0x5a,0x87,0xc0,0xaa,0x17,0xd6,0x40,0xb9,0x61,0x83,0xc2,0xd5,0x23,0x2e,0xc2,0x45,0x2e,0xb2,0xc1,0x3e,0x56,0xaf,0xc2,0xb7,0xf4,0xaa,0xc2,0xcf,0x8f,0xd5,0x41,0xc5,0xff,0x2a,0xc2,0xf8,0x4b,0x15,0xc2,0xa3,0x49,0xa3,0xc0,0xed,0x53,0x2f,0xc1,0xbe,0xdf,0x59,0x42,0x88,0x87,0x73,0xc1,0x5e,0x9,0x96,0x40,0x57,0xcc,0x8a,0xc1,0x41,0x75,0xa0,0x41,0x6e,0xeb,0x4b,0xbf,0xfd,0x6d,0xb6,0x3f,0xcd,0x80,0x93,0xc0,0xfe,0xf,0x72,0x42,0x6d,0x5c,0x91,0xc1,0xe1,0x7b,0xef,0x41,0x33,0x35,0xeb,0xc2,0xf9,0x3d,0x95,0xc2,0x1d,0x7c,0x30,0x42,0xec,0x7,0xe5,0x42,0xb2,0xa0,0x32,0x41,0x16,0xa8,0xb,0xc2,0x3e,0x9b,0x34,0x41,0x3c,0x20,0xe1,0x41,0x6a,0x64,0x88,0x42,0xcc,0x58,0x71,0x42,0xb7,0x66,0x1c,0xc0,0xc2,0x9e,0xcc,0xc1,0x28,0x5b,0xde,0x41,0x64,0x8c,0xa9,0x42,0x80,0x9f,0x3c,0x42,0xbd,0x7b,0x4b,0xc2,0x50,0x34,0x44,0x42,0xf2,0xcd,0x20,0xc0,0xfc,0xb6,0x16,0x42,0xb4,0x8d,0x57,0xc1,0x3c,0xd6,0x4f,0xc2,0x96,0x6d,0x29,0xc2,0x93,0x6,0x25,0x42,0x98,0xe3,0x11,0xc2,0xd2,0x60,0x7e,0xc2,0x19,0xe0,0x5f,0x42,0xd1,0xdd,0xa9,0x42,0x16,0x40,0xa9,0xc1,0x18,0xd9,0x58,0xc1,0x91,0x81,0x5,0x42,0x8a,0x69,0x87,0xc1,0x42,0xc5,0x89,0xc1,0xda,0x53,0x80,0x42,0x12,0xf7,0xe2,0x40,0xea,0x2d,0x3a,0xc2,0xe5,0xee,0xfc,0xc1,0x11,0xf8,0x50,0x41,0xa4,0xfb,0xd1,0xc1,0x85,0xb2,0x14,0xc2,0x7a,0x89,0x11,0x41,0x60,0xe4,0xba,0xc2,0xa5,0x5,0xb1,0x41,0xa0,0x97,0xc,0xc0,0x18,0x90,0x7,0xc2,0xde,0xf6,0xee,0xc1,0xc,0xea,0x2e,0xc1,0x36,0x4c,0xa3,0xc2,0x90,0x80,0xa8,0x42,0x39,0xcc,0x20,0x42,0xd7,0x11,0xec,0x41,0x80,0x8a,0xa7,0xc1,0x92,0xe8,0x46,0xc2,0xb9,0xef,0x9a,0xc1,0x8f,0x29,0xed,0x42,0xa3,0x2b,0x84,0x42,0x31,0x4d,0x47,0xc2,0xde,0xcb,0xa3,0x42,0x52,0xb,0x5e,0xc2,0xd6,0x6e,0xc1,0xc1,0x27,0x25,0x7c,0xc1,0xa5,0x28,0x48,0xc2,0x2b,0x59,0x53,0xc2,0x3c,0x2d,0x94,0xc1,0x4c,0x2a,0x9d,0x40,0x4e,0xb,0xb8,0x41,0xbc,0xce,0xc5,0xc1,0x53,0x1,0x7e,0xc2,0xed,0xcf,0x9c,0x40,0x76,0x0,0x46,0xc2,0xdb,0x82,0x6a,0x42,0xab,0x3d,0xe3,0xc1,0x93,0xae,0x93,0x40,0x98,0xbe,0xec,0x41,0x9c,0xe9,0x13,0x42,0x8a,0xf,0xd8,0x3f,0x8,0x90,0xcc,0xc1,0x21,0x4f,0xdc,0x3f,0xd,0x3f,0xf4,0xc1,0x68,0x5,0x3a,0x42,0x34,0xaa,0x7,0xc1,0xde,0xdf,0x61,0xc2,0xa8,0xf0,0xe1,0xc0,0xfd,0xcb,0xe3,0x41,0x55,0xc2,0x8a,0xc2,0x78,0x17,0x11,0x42,0xe6,0x1c,0xe5,0x42,0x60,0x6f,0xfd,0xc1,0xe9,0x66,0xa4,0x41,0x1e,0xb5,0x33,0xc1,0x24,0xc3,0x6,0xc2,0xe1,0x30,0x83,0x41,0x18,0x3f,0xbe,0x40,0x98,0xfd,0xa2,0xc1,0xf5,0xc4,0x8b,0xc1,0xa3,0x15,0xdf,0x41,0x78,0xb5,0x2a,0xc1,0x96,0xb1,0xb6,0xc1,0x44,0xc,0xbe,0xc1,0x53,0xc0,0x71,0x42,0x23,0x1e,0x1a,0xc2,0xc3,0xe6,0x9f,0x42,0x87,0xba,0x6f,0x41,0x13,0xf2,0xc5,0x40,0x63,0x47,0xa4,0x41,0x99,0x8a,0x5f,0xc2,0x20,0xf8,0x9b,0x42,0x3c,0xcb,0x8d,0xc0,0xb3,0x44,0x9,0xc2,0x56,0xa6,0x94,0xc0,0x18,0x11,0xb9,0x42,0x82,0x60,0xf1,0x41,0x66,0xf6,0x85,0x42,0x62,0xbe,0x20,0x42,0x4e,0x84,0x2,0x42,0x2c,0x70,0xb4,0x40,0xcc,0x5b,0x32,0x42,0x73,0x7c,0xe3,0x41,0xed,0x28,0x63,0x42,0x69,0x38,0xfe,0xc1,0xaf,0x2a,0x89,0x41,0xbe,0xa7,0x15,0x43,0x94,0x81,0x12,0xc1,0x50,0xba,0x68,0x41,0xfe,0xc9,0x5f,0xbf,0xfe,0x2b,0x90,0xc1,0x26,0x9,0x72,0xc0,0x4e,0x56,0x82,0xc2,0x13,0xdc,0xf0,0xc1,0x0,0x4e,0x8f,0xbe,0xcb,0x57,0x98,0xc1,0x90,0xc,0xe3,0x40,0x7c,0xdb,0x9c,0x41,0xe4,0x5c,0x4e,0x42,0x1c,0x13,0x78,0xc2,0x96,0xa1,0x9a,0xc1,0x58,0x59,0x50,0xc1,0x79,0x77,0x4,0xc2,0x59,0x34,0xda,0x42,0xe2,0x98,0x7d,0xc1,0x18,0x15,0xf,0xc2,0xf2,0xc7,0xbb,0xc1,0xff,0x37,0x40,0xc2,0x47,0x13,0x9f,0xc2,0x8f,0xe6,0x7b,0x42,0xb9,0xc2,0xe4,0x41,0xbe,0xd1,0x88,0xc2,0x1f,0x56,0xf8,0x41,0x0,0xc2,0x47,0xc2,0x2c,0xff,0x4d,0x41,0x43,0x9e,0x79,0x41,0xec,0x78,0x8c,0x3e,0x3e,0xde,0xc6,0x40,0x47,0x57,0xc4,0x41,0x12,0xc9,0x67,0x42,0xee,0x7d,0x64,0x40,0x2,0x90,0xd5,0x41,0xdd,0x22,0xfb,0x41,0x8,0xeb,0x44,0x41,0xbe,0xee,0x19,0x42,0x83,0x6e,0x81,0x42,0xbd,0xcb,0x98,0xc1,0xec,0xe3,0x8f,0x42,0xc9,0x78,0xad,0x40,0x8a,0x9b,0x9c,0x3f,0xbc,0xa9,0x1c,0x42,0x28,0x7,0x92,0xc1,0x6,0x1b,0x5d,0x41,0x89,0xf0,0x51,0x42,0xfd,0x8e,0x1,0xc2,0x74,0x75,0x1,0x40,0xce,0x3c,0xa4,0x42,0x6,0xa7,0x46,0xc2,0xde,0xdf,0x46,0x42,0xfd,0x60,0x2d,0xc2,0x28,0x49,0x23,0xc2,0xac,0x11,0x7e,0xc2,0x5a,0x11,0xb3,0x41,0x2e,0x98,0x87,0x42,0xcc,0xda,0x56,0x41,0xed,0x9c,0x7f,0xc2,0x5e,0x6b,0x9c,0xc2,0x40,0xbd,0x7f,0x42,0xe0,0x68,0x82,0xc1,0x6f,0x1e,0x2c,0x41,0x2a,0x51,0x29,0xc2,0x1,0xfd,0x70,0xc1,0xcc,0xd7,0x2c,0x42,0x41,0x39,0x58,0x42,0xc6,0xcf,0x42,0xc1,0x27,0x5b,0x84,0xc1,0xd8,0x2c,0x49,0x41,0xfe,0xd9,0x8e,0x42,0xd3,0xb6,0xaf,0xc0,0xd0,0x76,0x40,0xc1,0xb7,0x12,0x49,0xc2,0x9c,0xaf,0x90,0x42,0xf5,0x93,0x4d,0xc2,0xef,0x70,0xb,0x42,0x44,0xb7,0xae,0xc0,0x82,0x46,0xc,0x42,0xf,0x56,0xd8,0x40,0xae,0x60,0x8c,0xc0,0xa6,0xcf,0x9b,0xc1,0x20,0xac,0x5f,0x42,0x5e,0xb7,0x99,0x41,0xeb,0xf0,0x96,0xc2,0xb0,0x58,0x33,0x42,0xc6,0x1a,0xcb,0x41,0x99,0xbd,0x33,0xc2,0xe,0x1b,0xbc,0x40,0xec,0x1d,0x88,0xc2,0xcf,0xde,0x80,0x41,0xa7,0x4c,0x94,0x41,0x6d,0x12,0x88,0x41,0x90,0x5f,0xeb,0xc0,0x3f,0xe5,0x75,0xc2,0x76,0x28,0x53,0x41,0xb7,0x10,0x89,0xc2,0x99,0x4a,0x54,0xc2,0xd9,0x86,0x1a,0x42,0xf5,0x7e,0x81,0x41,0x6d,0x6c,0xa1,0xc0,0x93,0x39,0xe8,0x40,0xae,0x27,0x13,0x42,0xd8,0x7a,0x57,0xc1,0x30,0x3d,0x9b,0x40,0xc8,0xad,0xa9,0xc1,0xa6,0x1,0x96,0x42,0xf7,0x88,0xd,0xc1,0xdd,0x8e,0x80,0xc2,0x67,0xf4,0x11,0x40,0x39,0x8c,0xdc,0x41,0x26,0x74,0x49,0xc2,0x40,0x64,0x39,0xc2,0x60,0x81,0x97,0xbe,0xe0,0x87,0x95,0x41,0x83,0x4c,0xac,0x41,0xc8,0x29,0x5f,0xc2,0x92,0xe,0x4f,0xc1,0x9,0xa2,0xa6,0xc1,0xdc,0x83,0xa2,0x3e,0x2f,0x2e,0xeb,0xc1,0xae,0x87,0xa0,0xc2,0x71,0x6c,0x7,0xc2,0xf,0xf0,0xf0,0x41,0x23,0x8d,0x1f,0x41,0xf,0xa2,0xee,0x3f,0x61,0xc6,0xb4,0x41,0x64,0x1a,0xbc,0xc1,0xf9,0x4d,0x3a,0xc2,0xac,0xaf,0x29,0xc2,0x45,0x8a,0x98,0x42,0xc0,0x42,0x7b,0x40,0xae,0xb2,0x84,0xc2,0xae,0x5a,0xd9,0x40,0x3a,0x64,0xc3,0xc1,0x55,0xee,0x23,0xc2,0x2,0xa4,0xeb,0xc1,0x7b,0xfd,0xa6,0x41,0xc8,0xd3,0xaf,0x41,0x52,0x37,0xbc,0xc1,0x97,0xe5,0x37,0xc2,0xfa,0x5a,0xc6,0x41,0x4,0xe,0xba,0x41,0xf8,0xc7,0x48,0x42,0xe,0x31,0xe8,0x41,0x9e,0xdc,0xa3,0xc1,0x42,0x59,0xbd,0xc1,0x60,0xe0,0xb2,0x40,0x71,0xdc,0x76,0x41,0x4,0x87,0x81,0xc1,0xad,0x89,0x47,0xc2,0x5b,0x35,0x85,0x41,0x70,0xf7,0x72,0xc1,0xde,0x46,0xb7,0xc1,0x26,0x38,0xd0,0xc1,0x6,0xa9,0x33,0xc2,0xaf,0xc8,0xbd,0xc0,0x9a,0xe8,0xb9,0xc1,0xe6,0xae,0xb8,0xc0,0x97,0x75,0xf9,0x42,0x3c,0x85,0x24,0x42,0x3,0x7a,0xa3,0x42,0x88,0x28,0x73,0xc1,0xf5,0x89,0x6a,0xc2,0xd8,0xb4,0x39,0x42,0x18,0x70,0x89,0x41,0x3a,0x33,0xa5,0x41,0x7b,0x53,0x31,0x42,0xe2,0xc4,0xab,0x41,0xf0,0xd4,0x77,0xc2,0x79,0xa9,0x9b,0xc0,0x4d,0xe7,0x73,0xc2,0xde,0xc8,0xbc,0x41,0x27,0x3c,0x3f,0x41,0x9f,0x1b,0x7f,0x42,0xbd,0x94,0x82,0x42,0x12,0xb8,0x20,0xc2,0xf3,0x59,0x96,0xc2,0x5c,0x4e,0x16,0x41,0x81,0x45,0xfc,0x41,0xb3,0x8a,0xb0,0xc2,0x88,0x23,0x5e,0xc1,0x0,0xd0,0x33,0x40,0xe4,0xef,0xce,0x40,0x7a,0x59,0x94,0xc2,0x27,0xc1,0xa,0xc2,0x5,0xff,0x5a,0x42,0x31,0x34,0xa3,0x41,0xd,0xc5,0xb4,0xc1,0x5,0xf0,0x2d,0x42,0xdd,0xeb,0x55,0x42,0xdb,0xf9,0x94,0x42,0x4a,0x7d,0xbd,0x40,0x42,0xfb,0xc6,0x3f,0x61,0x5c,0xcc,0x41,0x45,0xfd,0xaf,0x3f,0x1d,0x8b,0xe3,0x41,0xd1,0x99,0x91,0x40,0x35,0xef,0xc3,0x41,0x6a,0x56,0xb6,0x42,0x7c,0xee,0x51,0xc0,0xf6,0x8a,0x98,0xbf,0x9c,0xd3,0xd4,0x41,0xed,0x87,0xa,0xc2,0x6c,0x29,0x8d,0xc2,0x2e,0xe8,0x58,0xc1,0x97,0x48,0x2a,0x41,0x25,0xbf,0x92,0x40,0x7f,0x17,0xc3,0xc2,0xe7,0xb8,0x92,0xc1,0x46,0x4,0xf5,0x41,0xa8,0x3a,0x73,0xc1,0xa5,0x22,0xb4,0x41,0x5f,0xe0,0x7c,0xc2,0x83,0x3c,0xf6,0xc0,0x1f,0x18,0x2b,0xc2,0x6e,0x73,0xe5,0x41,0xe0,0x9f,0xf5,0xc1,0x13,0x62,0x5a,0xc2,0x48,0x4d,0x44,0xc2,0xd3,0x6a,0xd4,0x42,0x92,0xb9,0x9e,0x41,0xea,0xf0,0x79,0xc2,0x99,0xfc,0x93,0x42,0x41,0x2c,0x3e,0xc2,0xb2,0x45,0x26,0x41,0x8f,0xd5,0xa9,0xc0,0xaf,0xcd,0xd7,0x41,0xda,0x9a,0x7,0xc2,0x63,0xf,0xf3,0x41,0x34,0x7a,0x1e,0x41,0xc5,0xd9,0x53,0xc2,0xed,0xe0,0x4e,0x41,0x48,0xd,0xc,0xc2,0xb1,0x8f,0x4a,0x42,0x22,0x79,0xf0,0xc1,0x46,0xa,0x55,0xc2,0x2a,0x85,0x6e,0xc2,0x3c,0x6a,0x3,0x40,0x79,0xa1,0x26,0xc1,0xf2,0x4f,0x89,0xc2,0x16,0x0,0xea,0xc1,0xaf,0x91,0x87,0x42,0x38,0x1d,0x15,0x41,0x8c,0x58,0x1f,0xc2,0x6b,0x33,0xed,0x40,0x36,0xfc,0xb3,0x42,0xce,0x9f,0x82,0xc1,0xc1,0x47,0xb0,0x41,0xaf,0x44,0x9c,0x40,0x90,0xe2,0x3e,0xc1,0x31,0x62,0xac,0x41,0x9a,0x82,0x33,0x41,0xfd,0xb5,0x51,0x42,0xb4,0x6,0x55,0xc2,0x44,0xe8,0x50,0x41,0x7d,0xbe,0xde,0x40,0x6,0x8f,0x64,0xc2,0x39,0x7b,0xad,0xc0,0x2,0x6c,0x55,0x41,0xb2,0x5f,0xd0,0xc1,0x7a,0xab,0x3b,0xc1,0xab,0xb9,0xec,0x41,0x36,0x41,0xb1,0xc1,0x76,0xc2,0x76,0xc2,0x9b,0x33,0x42,0x41,0x3a,0xe5,0xa2,0x41,0xc8,0x62,0xb8,0xc1,0x66,0x38,0xbb,0xc0,0xe8,0xd2,0x4a,0x41,0xdc,0xd8,0x5d,0xc1,0xa6,0xd,0x72,0xc2,0x2a,0xb,0x51,0xc2,0x42,0x8c,0xc,0x41,0x9e,0xd5,0x9f,0xc0,0xd2,0x7b,0xa4,0xc0,0x5,0x33,0xf8,0xc0,0xc4,0x87,0xfa,0xbf,0x87,0xe6,0x75,0xc2,0xfa,0x63,0x6e,0x42,0xf2,0x8b,0x65,0xc1,0xb,0x41,0x2c,0xc1,0xda,0x48,0xb0,0xc1,0x2a,0x64,0x9,0xc2,0x6b,0x80,0x95,0xc1,0xa1,0x29,0x72,0x42,0xfb,0xca,0xad,0x41,0x54,0xc0,0x71,0x42,0x97,0xe9,0x5b,0x40,0x86,0x3c,0x82,0x42,0x5e,0x24,0x84,0x42,0xcf,0x82,0xec,0xc1,0xb4,0x8d,0x40,0x41,0x4d,0x6d,0x39,0xc1,0x6f,0x4c,0x18,0x42,0x4f,0x50,0x15,0xc2,0x39,0x1d,0xbe,0x40,0x9e,0x1,0x2,0x41,0x9d,0x23,0x7,0xc2,0x7c,0x5b,0x22,0xc2,0xc0,0x64,0x62,0xc0,0xd4,0x7f,0x1a,0x42,0xd2,0x11,0x2,0xc0,0xb7,0x7b,0xd5,0x41,0xfa,0xf6,0x6,0xc2,0xe4,0x66,0x29,0xc2,0x5d,0x4b,0xf4,0xc1,0x9c,0x4,0xe8,0xc1,0xca,0xfa,0x8a,0x42,0xe7,0x53,0xa7,0xc2,0x52,0xf4,0x4a,0xc0,0x8a,0x16,0x31,0xc0,0xc5,0xb3,0x15,0x42,0xda,0xf5,0x79,0xc2,0x73,0xc,0x5b,0xc2,0x14,0x1d,0x22,0xc2,0x4d,0x2b,0x1d,0x42,0x8b,0x9,0x56,0xc1,0xf3,0xd0,0xc0,0xc2,0x82,0x8c,0x60,0xc0,0xb5,0xcc,0xa7,0xc1,0x81,0x7e,0x71,0x42,0xd3,0x59,0x1a,0x42,0x7b,0x6,0x71,0x42,0xfc,0xd4,0xb8,0x40,0x8d,0xf9,0xab,0x41,0x40,0xd3,0x34,0x42,0x3,0x11,0x37,0xc2,0x88,0x43,0xaf,0x40,0xc2,0x9e,0x90,0xc1,0x40,0x10,0x98,0x41,0x50,0xaa,0x44,0xbf,0x53,0xc5,0x97,0xc2,0xd,0xc2,0xef,0x40,0xf6,0x7d,0x8,0x42,0xcb,0xa3,0x86,0xc2,0xe1,0x52,0x5e,0xc2,0x4e,0x59,0x9b,0xc1,0x4a,0x80,0xa1,0xc1,0x77,0x35,0xea,0xc1,0xa0,0x16,0x77,0xc0,0x70,0xf,0x7e,0x40,0xdc,0xa1,0x57,0x3f,0x7f,0x13,0x8c,0xc1,0x7,0xb1,0x60,0xc1,0x90,0xa6,0xc8,0xc1,0xd,0x89,0x0,0x42,0xe,0xe7,0x20,0xc1,0xd2,0x8c,0xab,0xc1,0xc,0x36,0x32,0x42,0x4,0xa4,0xa9,0xc1,0xc6,0xdd,0xa9,0x41,0xa7,0xd0,0x23,0x42,0xd2,0xaa,0x22,0x41,0xf2,0x4e,0x83,0xc1,0xf6,0x0,0x25,0x42,0xdf,0x88,0xad,0x42,0x18,0xb3,0x2e,0xc1,0x9e,0xb,0x91,0xc1,0xff,0x5d,0x28,0xc2,0xc8,0xb1,0x88,0x41,0x28,0x89,0x7,0x3f,0xd7,0x12,0xa8,0x41,0x6,0xf7,0x48,0xc1,0xe4,0xbc,0x89,0xc2,0xe6,0x85,0x42,0xc1,0xf0,0x1a,0x9c,0x41,0x3b,0xe4,0x3b,0x41,0xb8,0x63,0xf2,0x41,0xb5,0xb9,0x75,0x42,0x4a,0x81,0xb3,0xc2,0x44,0x9f,0x4c,0xc0,0xd8,0x88,0x93,0x42,0xdc,0xf,0x8b,0xbf,0x54,0x9,0x64,0x41,0xe7,0x34,0x0,0x42,0xda,0x70,0x9c,0x42,0x4a,0x9f,0x7f,0x42,0xf4,0x4,0x86,0x42,0x5f,0xd9,0x8b,0x41,0xb2,0x12,0x2b,0x3f,0x2d,0xf7,0xc9,0x41,0xdd,0x2f,0xb6,0xc1,0x4e,0x56,0x7d,0x42,0xc5,0x76,0x13,0xc2,0xdf,0xe1,0x1a,0x42,0x60,0x3f,0x96,0x41,0xe,0x90,0xb,0x41,0x38,0x13,0x33,0xc2,0x92,0xec,0xd3,0x41,0xe,0xf3,0xef,0x42,0x84,0xdf,0x21,0xc2,0x5a,0x93,0x89,0xc1,0x3e,0xd9,0x55,0xc2,0xf9,0x37,0x90,0xbf,0x58,0x2a,0x83,0xc1,0x1e,0x95,0x39,0xc2,0x47,0x8e,0xd9,0x41,0x96,0x3d,0x18,0x42,0x9a,0x4a,0x20,0xc2,0x67,0x79,0x56,0xc2,0xd8,0x42,0x52,0xc2,0x3c,0xe0,0xac,0xc1,0x23,0x70,0x21,0x41,0xbc,0x62,0x85,0x42,0x9b,0x10,0xbe,0xc2,0x6c,0x10,0x2b,0xc2,0x72,0x4c,0xba,0xc2,0x38,0xf6,0x18,0x41,0x1b,0xad,0x9d,0x41,0xa9,0xe7,0x89,0x41,0x93,0x5f,0x6,0x42,0x42,0x30,0x87,0x41,0x19,0x2,0x11,0x42,0x7c,0xc4,0xb1,0xc2,0xb8,0x8,0x1c,0x42,0x9b,0x55,0x22,0x41,0xa0,0xba,0x33,0xc2,0x28,0x71,0x8,0x42,0x16,0x61,0xbf,0x40,0xcc,0xfb,0xf8,0x40,0x1c,0x70,0x4,0xc1,0x6f,0x5e,0xe9,0x41,0xcc,0x29,0xee,0xc2,0xd9,0xbb,0xfe,0x41,0xa,0x9b,0xa,0xc2,0x9d,0x98,0xb3,0xc1,0xa0,0x16,0xa4,0xc2,0x1e,0xa5,0xe2,0xc1,0x66,0x9a,0x1b,0xc2,0xf0,0xf3,0x78,0xc1,0x11,0x7f,0xac,0x41,0xf2,0xd5,0xa8,0x40,0x99,0xd1,0x80,0x42,0xec,0x7d,0xf,0xc2,0x31,0x42,0x93,0xc1,0xdd,0x64,0x89,0xc2,0xd5,0xbb,0x93,0x41,0xd2,0x42,0x2f,0x42,0xdc,0x20,0x96,0xc2,0x87,0xd8,0xae,0xc0,0xb4,0x41,0xed,0x40,0xee,0x7c,0xfc,0xc1,0x53,0xc4,0x2f,0xc1,0x32,0x9,0x9c,0x42,0xad,0x8,0xa0,0x41,0x7f,0xd2,0x12,0x42,0x89,0x7d,0x44,0x3f,0xc7,0x5c,0x58,0xc2,0xaa,0x7,0x4a,0x40,0xf7,0x85,0xec,0x41,0x7f,0x43,0x1b,0x42,0x56,0xc3,0x7a,0x42,0x23,0x8d,0x9e,0xc1,0xb4,0x36,0x3c,0xc2,0xed,0x11,0x87,0xc2,0x52,0x77,0x1e,0x42,0x12,0x0,0x49,0xc1,0x78,0xa5,0x10,0x42,0xdf,0x86,0x18,0x42,0x88,0xbe,0x33,0xc2,0x7b,0x1,0x54,0xc1,0x9c,0x8e,0xf,0xc1,0xe,0xab,0x30,0xc2,0x7a,0x4,0xba,0xc1,0x56,0x89,0x8a,0x42,0x27,0x8e,0xef,0x41,0xf5,0x49,0x89,0x40,0x1b,0xc7,0xd2,0x41,0xa8,0xd,0xfd,0x41,0x85,0xc3,0x5b,0xc2,0x57,0xe,0x2d,0x42,0xc0,0xe4,0x99,0xc1,0xd5,0x53,0xd2,0x41,0x71,0x73,0x95,0xc1,0x90,0xa8,0xff,0x41,0x83,0x86,0xa9,0xc2,0xa0,0xab,0x4e,0x42,0xb4,0x8b,0x6b,0xbe,0xc1,0x6a,0xd8,0xbf,0xa2,0x22,0x6,0xc2,0x61,0xe3,0xfc,0xc0,0x48,0x64,0x50,0xc0,0x94,0x36,0x87,0x42,0xa,0x66,0x26,0x40,0xb,0xfa,0xf6,0x41,0x44,0xdc,0x95,0x42,0x50,0x8c,0xc0,0x3f,0x9c,0xd5,0x51,0x42,0x48,0xb8,0x5f,0x42,0x6a,0x44,0x6f,0x42,0x76,0x11,0x89,0x42,0x74,0xd5,0xeb,0xbf,0xcf,0x65,0x25,0x42 }); + Tensor *actual = NN_zeros(4, (size_t[]){ 1, 14, 14, 6 }, DTYPE_F32); + + cycles = read_cycles(); + NN_conv2d(actual, x, w, b, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(x); + NN_delete_tensor(w); + NN_delete_tensor(b); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("conv2d: "); + + // [[[[-4.08044910e+00 2.70139980e+00 3.44774842e+00] [ 8.73869658e-01 5.8898 + Tensor *x = NN_tensor(4, (size_t[]){ 1, 16, 16, 3 }, DTYPE_F32, (uint8_t[]){ 0xa,0x93,0x82,0xc0,0xbc,0xe3,0x2c,0x40,0xe9,0xa7,0x5c,0x40,0xec,0xb5,0x5f,0x3f,0x0,0x40,0x71,0x3d,0x90,0x3f,0x76,0x40,0xf0,0xcc,0x17,0x3e,0xaf,0xa1,0x9f,0xbf,0xc4,0xa,0xbd,0xbe,0x9b,0x55,0xcd,0x3f,0x91,0x37,0xa0,0x3f,0xc0,0x1e,0x8a,0xbe,0xcf,0x6,0xca,0x3f,0x82,0x5d,0xac,0x3f,0x4,0x9c,0x81,0xc0,0x1e,0x79,0x9f,0x3f,0x46,0xca,0x43,0x40,0xf2,0xca,0x12,0x3f,0x24,0xab,0xe9,0xbe,0x4a,0x21,0x75,0x40,0xfb,0xc9,0x8b,0xc0,0x48,0xf,0x12,0xc0,0x14,0xa3,0x10,0xc0,0x94,0x3f,0x8a,0x40,0x67,0xc1,0x9a,0xc0,0x1c,0xe5,0xfd,0x3e,0x81,0xfd,0x9a,0xc0,0x68,0x5d,0x28,0xbe,0x4c,0x8d,0xee,0x3f,0xba,0xaa,0x95,0xbf,0x52,0x51,0x9b,0x40,0x0,0x64,0x82,0x3c,0x48,0x25,0x23,0xc0,0xbb,0x8,0xa5,0x3f,0xa4,0x6b,0x26,0x40,0x0,0xc1,0x22,0xbc,0x36,0xe0,0x88,0x40,0x7c,0x88,0x4a,0xc0,0x7f,0x89,0x8,0x40,0x1a,0xb5,0x35,0x40,0xf2,0xf0,0x1e,0x40,0x0,0x64,0xf0,0xba,0x73,0xb2,0xb6,0x3f,0x2b,0xb,0x7b,0xc0,0x30,0x1f,0x7b,0xc0,0xec,0x1e,0x9f,0xbe,0x24,0x6d,0x20,0xbf,0xb4,0x9b,0x6d,0x40,0x4e,0x5c,0x68,0x40,0xaa,0xf9,0x58,0x40,0x10,0x92,0x12,0xc0,0x3c,0x36,0x7b,0xc0,0x6f,0x14,0x96,0xc0,0x78,0x9f,0xe7,0x3f,0x54,0x2c,0x90,0xc0,0xab,0xb8,0x9f,0xc0,0xbe,0xb8,0x21,0xc0,0xb0,0x16,0x87,0xc0,0x58,0x37,0xfc,0xbf,0x74,0x74,0x49,0xc0,0xce,0x2b,0x24,0xc0,0xac,0x1d,0x98,0x40,0x3c,0x36,0x71,0xbf,0xe6,0xb9,0x84,0x40,0x20,0x33,0xe3,0x3d,0x94,0x99,0x24,0xbf,0x6f,0x61,0xbb,0xbf,0xa4,0xbe,0x64,0xc0,0x3a,0x8d,0x80,0xc0,0x32,0x93,0x5d,0x40,0xde,0x38,0xc5,0xbf,0x2a,0xff,0x9b,0xc0,0x34,0xd6,0x92,0x40,0x90,0xf2,0xbd,0x3d,0xce,0x20,0x56,0xc0,0x82,0x89,0x7b,0xc0,0x99,0x5d,0x86,0xc0,0xfc,0x4b,0x8c,0xc0,0x94,0xc9,0x90,0x40,0x50,0xa3,0x5c,0x40,0xf4,0x61,0xd1,0x3e,0x28,0x5d,0x88,0xc0,0xa3,0x64,0xa7,0xbf,0x9c,0x4d,0x96,0xc0,0x8f,0x8e,0xdc,0x3f,0xbc,0xee,0xa9,0xbf,0xdc,0xf4,0x88,0xbf,0x4b,0xb0,0xc7,0xbf,0x50,0x8,0x16,0x40,0x6e,0x36,0x2d,0x40,0xb9,0x32,0x8c,0x3f,0xb6,0x49,0x20,0xbf,0x50,0xfd,0xfc,0xbe,0x40,0xee,0xb2,0xbd,0xe2,0x4a,0x6e,0xc0,0x89,0x1f,0x9c,0x40,0xaa,0x2,0xa,0xc0,0x9c,0x2d,0x3a,0x40,0x2e,0x64,0x33,0xc0,0x40,0x7c,0x9,0x3d,0xea,0x16,0xdb,0x3f,0xac,0xe8,0x92,0xc0,0xb0,0xc8,0x12,0x40,0x3c,0xf1,0x74,0xc0,0x86,0x9e,0x32,0x3f,0xb6,0xd2,0x7d,0xbf,0x72,0x6e,0x37,0x40,0x11,0x81,0x9b,0x40,0xed,0x3b,0x90,0x3f,0x68,0x32,0x12,0xbe,0xd6,0x8a,0x1e,0xc0,0x78,0x9d,0xee,0x3f,0xf1,0x5,0x1a,0xc0,0x72,0x2e,0x4,0x40,0x63,0xb2,0xa,0xc0,0x7e,0xf,0x59,0x40,0x96,0x73,0x75,0x40,0x1c,0x38,0x44,0x40,0x20,0x26,0x4d,0x3d,0xe2,0x65,0x14,0x40,0x16,0xcc,0x91,0xc0,0x75,0xc1,0x81,0x40,0xa3,0x47,0xa6,0xbf,0xf2,0x50,0xe9,0x3f,0xde,0xc0,0x58,0xbf,0x55,0xe7,0xd6,0xbf,0x14,0x46,0x16,0xc0,0x46,0x68,0x4e,0x40,0x84,0x18,0x2e,0xc0,0xe2,0xb8,0x61,0xbf,0x8d,0x6c,0x21,0x40,0xd2,0x1,0x1,0x3f,0xb8,0x9f,0x86,0xc0,0x97,0x19,0x9f,0xc0,0x4c,0x93,0x1b,0xc0,0x15,0x92,0x93,0x40,0x3c,0x87,0x63,0xc0,0x1,0x5d,0x30,0x40,0x9e,0xf,0x65,0x40,0xa0,0xa3,0x4,0xc0,0x6d,0x50,0xd,0xc0,0x38,0x38,0x66,0xc0,0x12,0xa8,0x47,0x3f,0x8e,0xf0,0x32,0xbf,0x18,0xc1,0x78,0x3e,0xac,0xcd,0xa,0x40,0x48,0x59,0x6,0x40,0x9,0xeb,0xc9,0xbf,0xdc,0xd2,0xaf,0x3e,0x9c,0x7,0x98,0x3f,0xa0,0xf8,0xd9,0x3d,0xe,0x12,0x80,0x3f,0xf4,0xa0,0x1,0xc0,0xd5,0x25,0x83,0x40,0x3c,0x4a,0x3,0xbf,0x1e,0xc5,0x23,0xbf,0x1e,0x9a,0x8f,0xc0,0x34,0xf5,0x67,0xc0,0x30,0x44,0x1f,0x3e,0xd6,0xf4,0x45,0xbf,0xba,0xe3,0x20,0xc0,0x13,0x81,0x27,0x40,0x90,0x2f,0xe5,0xbe,0x96,0x14,0xe1,0x3f,0x3a,0xc3,0x86,0x40,0x78,0x1e,0x13,0xc0,0xc0,0x7e,0x1d,0xc0,0x2f,0x9b,0x80,0xbf,0x90,0xc8,0xd8,0xbe,0x52,0xd,0x20,0xc0,0x64,0xa7,0x99,0xbf,0x28,0x94,0x13,0xbe,0x20,0x8a,0xf,0x40,0xac,0x6,0x94,0x40,0x7b,0xf6,0x6c,0x40,0x0,0x78,0x7,0x3f,0xac,0x52,0xa1,0xbe,0x11,0xf0,0xa3,0x3f,0xc8,0x1,0x51,0xbe,0xac,0xfb,0x27,0xbf,0xba,0x13,0xdc,0x3f,0x10,0x2d,0x82,0xc0,0xe3,0x11,0x88,0xc0,0xc0,0xe9,0xa5,0x3c,0x97,0xfb,0xc1,0xbf,0x62,0x47,0x1e,0xc0,0x6a,0xf3,0x94,0xc0,0xec,0x5a,0x56,0x40,0x38,0x0,0x4c,0xbe,0x96,0xed,0x2b,0xc0,0xa1,0x59,0x2,0xc0,0xb,0x42,0xa8,0x3f,0x3e,0x13,0x68,0xc0,0x2c,0x6b,0xa4,0x3e,0x60,0x8e,0x7c,0xbd,0x2e,0x6,0xda,0x3f,0xa1,0xe2,0xfd,0x3f,0xd6,0x14,0x51,0xc0,0x4e,0x2c,0xa,0x40,0x44,0xa3,0x71,0x40,0xb8,0xcf,0xa4,0x3e,0x80,0x6,0x23,0x40,0xc6,0x4b,0xf2,0xbf,0xd6,0x3e,0x7e,0x3f,0xca,0x1,0xbb,0x3f,0x64,0xcd,0x13,0xc0,0xd6,0x92,0x45,0x40,0x92,0x47,0x97,0xc0,0x38,0x68,0xf0,0xbf,0xb9,0x48,0x3c,0xc0,0xc0,0xf6,0x3d,0xc0,0x8a,0xe7,0x41,0xc0,0x3b,0xc4,0x96,0xc0,0x64,0xab,0x5b,0x3f,0x96,0x34,0x7d,0xbf,0xc2,0xb8,0x86,0xc0,0x0,0xc4,0x6,0xbb,0x64,0x39,0x55,0xbf,0x2e,0x2,0x4,0x40,0xcc,0xa6,0x7a,0xc0,0x58,0xc,0xb4,0xbf,0xe8,0xbb,0x83,0x3f,0xce,0xa4,0x7,0x40,0xe4,0xa9,0xc1,0x3e,0x5a,0x70,0xad,0x3f,0x2,0xf1,0x9f,0x40,0x27,0xb4,0xdd,0xbf,0x28,0x18,0x5a,0x40,0x77,0xd2,0x89,0x40,0xe2,0x89,0x8d,0xc0,0xf4,0xcf,0x9a,0x3f,0x89,0x43,0x35,0x40,0xde,0xa9,0x47,0xbf,0x84,0x9b,0x30,0x40,0xa8,0x26,0x2e,0x3e,0x51,0x9c,0x73,0x40,0x70,0x7b,0xdc,0x3d,0x6,0xdf,0x4c,0xc0,0x34,0x5,0x73,0x40,0xb8,0x56,0xbe,0x3f,0x84,0x1f,0x88,0x40,0x30,0xe0,0x9e,0x3f,0x1c,0xec,0x29,0x40,0xe,0x86,0x47,0x40,0xf4,0x88,0x57,0x3f,0x35,0xc7,0x94,0xbf,0x9d,0x2e,0x84,0x3f,0xb8,0x1e,0x5f,0xc0,0x70,0xea,0x2e,0x3e,0x8c,0xb4,0xcd,0xbf,0xb0,0xda,0xa1,0x3e,0xde,0x5c,0x7d,0xc0,0xfb,0x86,0x43,0x40,0x36,0x9e,0x93,0xc0,0x88,0x9,0x9,0x40,0x44,0xbd,0x52,0x40,0xac,0xa3,0x92,0xc0,0xc6,0x8f,0x90,0x40,0x4,0xe2,0x6d,0xc0,0x5a,0x59,0x7b,0xbf,0xc6,0xd2,0x25,0x40,0x1f,0xf2,0xca,0xbf,0xf0,0x96,0x8e,0x40,0x3a,0x2b,0xd,0xc0,0x36,0x5f,0x2b,0xbf,0xe4,0x2d,0x51,0xc0,0x16,0x75,0x14,0xc0,0xa6,0x22,0x9c,0x40,0xb,0xa9,0x70,0x40,0x88,0x7e,0xbc,0x3e,0x50,0x7d,0xd2,0x3e,0x76,0xc6,0x87,0xc0,0x50,0x95,0x71,0x40,0x8e,0xe8,0x3f,0xbf,0x54,0x78,0x5,0xc0,0xc8,0xa9,0x7e,0xc0,0x8b,0x8c,0x83,0x40,0x70,0xbd,0x17,0x40,0xc8,0xbe,0x40,0x40,0xc4,0x89,0x4,0x3f,0x7c,0x24,0x59,0xc0,0x42,0x15,0x3,0x40,0xe,0x9f,0x13,0x3f,0x91,0xc4,0xd6,0x3f,0x8a,0x5d,0x9f,0xbf,0x4c,0x3,0x17,0xc0,0x5e,0x59,0x83,0x40,0xe5,0x89,0xd6,0x3f,0xfd,0xdf,0x1,0xc0,0xf8,0x9a,0xe4,0x3e,0xc9,0x1e,0x8b,0xbf,0x38,0xec,0xda,0xbe,0x67,0x71,0x33,0x40,0xa2,0xb1,0x7e,0xc0,0x28,0xce,0x90,0x40,0xbd,0x60,0x57,0x40,0x0,0xc8,0x8c,0x3b,0x11,0xe4,0x2,0xc0,0x96,0x7d,0x82,0x3f,0x89,0xcf,0x53,0xc0,0x34,0xdb,0x4f,0x40,0x44,0x3c,0x29,0xc0,0x5e,0x93,0x74,0x3f,0xb7,0x69,0x9d,0xc0,0x6a,0x3d,0x19,0x40,0x9e,0x9f,0x58,0x40,0x8a,0x2f,0x70,0x40,0xd4,0xf5,0xd0,0x3e,0xa2,0xf0,0x3c,0x40,0x11,0x37,0xda,0x3f,0xde,0x98,0x56,0x40,0x18,0x94,0x34,0x40,0xe,0xfd,0x8b,0xc0,0x56,0xf0,0x6,0x3f,0xe1,0x2f,0xda,0xbf,0x7c,0xcc,0x18,0xc0,0xe1,0xfc,0x5f,0x40,0xfc,0x32,0x37,0xbf,0xda,0xd6,0x46,0x3f,0x3d,0x7b,0x49,0x40,0x2e,0x66,0x57,0x40,0x6b,0xc6,0x2a,0x40,0x56,0x79,0x5f,0xbf,0x87,0x9f,0x8e,0xc0,0xfa,0x98,0x99,0xc0,0xbf,0x2b,0xc9,0x3f,0x20,0xa,0x73,0xbd,0xa,0x2e,0x4a,0xc0,0x26,0xc1,0xb,0x40,0xfb,0x3a,0x91,0x40,0x78,0x14,0x39,0x40,0x5a,0x91,0x34,0xbf,0xc6,0xf5,0x2c,0x3f,0xdc,0x1d,0x4c,0xc0,0xa8,0x9,0x17,0x40,0xcc,0xfb,0x77,0xc0,0xf2,0xec,0x5c,0x40,0xe5,0x28,0x12,0xc0,0x18,0xd5,0xfd,0xbf,0x92,0x4,0x86,0xc0,0xe7,0xc3,0x9a,0xbf,0x6c,0xa0,0xf7,0xbe,0x76,0x7f,0x13,0xc0,0xa6,0xca,0x63,0x40,0x33,0xa6,0x37,0x40,0xd0,0x35,0x8d,0xc0,0x16,0xa,0x0,0xbf,0x28,0x2d,0xd7,0x3f,0x18,0x5e,0x9a,0x40,0x3b,0x8,0x99,0xbf,0x25,0x75,0x44,0x40,0x28,0x6b,0x8f,0xbe,0xb0,0x77,0xf5,0xbf,0xd8,0xd3,0x43,0x40,0xe,0x93,0x8e,0xc0,0x4e,0xc,0x86,0x40,0x7,0xd0,0x9f,0x40,0x4e,0xbc,0xae,0xbf,0x64,0xd0,0xfc,0x3f,0x7d,0x8d,0x9f,0x40,0x46,0xf3,0xc0,0x3f,0x58,0x48,0xfa,0x3f,0x4,0x1,0xeb,0x3f,0x8e,0xeb,0x2,0xc0,0x11,0x39,0x9c,0x3f,0x34,0x8d,0x2a,0xc0,0x52,0xa0,0x88,0x40,0xe3,0x1f,0x9,0xc0,0xa6,0x4e,0x92,0x3f,0xf5,0x64,0xb9,0xbf,0x0,0x8,0x20,0x40,0x0,0xca,0xa8,0x3d,0xfa,0xf3,0x2f,0x40,0x23,0x4d,0xad,0xbf,0x9c,0xc7,0x3b,0xc0,0x1e,0x5f,0xf5,0x3f,0xa,0x17,0x34,0xc0,0x6a,0x5d,0x83,0xc0,0x45,0x45,0xf7,0x3f,0x44,0x75,0x40,0xc0,0x4d,0x8f,0xf0,0xbf,0x14,0xce,0x9f,0xbf,0x78,0xc7,0xb5,0x3e,0x38,0xa8,0xdd,0xbf,0x54,0x56,0xe6,0xbf,0x4c,0xdb,0xa0,0xbf,0xde,0x40,0x60,0x40,0x2f,0xa2,0xbf,0x3f,0x65,0xf,0x1a,0xc0,0x94,0x31,0x5d,0xc0,0x60,0x43,0xed,0x3d,0xa2,0x8,0xcd,0x3f,0x40,0x48,0xd6,0xbd,0x2d,0x53,0x3b,0x40,0xe0,0x93,0x86,0x40,0x5,0x94,0xbb,0x3f,0x24,0x12,0xd3,0x3f,0x0,0xa7,0x39,0x40,0x3e,0x40,0xdb,0xbf,0x60,0xc,0x63,0x3f,0x86,0x5b,0x81,0x40,0x8c,0x3c,0x19,0xc0,0x18,0x3e,0xc7,0x3e,0xbf,0x36,0xfa,0xbf,0x3c,0xe,0x76,0xc0,0xa8,0x7e,0x29,0x40,0x86,0xb2,0x7f,0x40,0x16,0xe0,0x2c,0xc0,0x19,0xdd,0xef,0x3f,0x82,0x40,0xc4,0x3f,0xbb,0xe5,0xf9,0x3f,0x4,0x26,0x30,0x40,0xe6,0x5f,0x95,0x40,0x50,0xe1,0x72,0x40,0x6d,0x0,0x8c,0xc0,0xbf,0xe5,0xfa,0xbf,0xf0,0xf3,0x29,0x40,0xc8,0xad,0x36,0xc0,0x30,0x56,0x7b,0x3f,0x6f,0x2f,0x9,0xc0,0xaa,0x38,0x7e,0x3f,0x17,0x24,0x1c,0x40,0xdb,0x28,0xc9,0x3f,0x9e,0x75,0x68,0x40,0x68,0x7,0x1a,0xbf,0x0,0xb8,0x2d,0x40,0xa3,0xe7,0xce,0x3f,0x7e,0xb2,0xc9,0xbf,0x56,0x1,0x62,0xc0,0x75,0x61,0x92,0x40,0x29,0xd1,0xbe,0xbf,0x36,0x8,0x71,0x40,0x2b,0xb5,0x49,0x40,0x78,0x2c,0x4e,0xbe,0x4d,0x29,0x84,0xc0,0x74,0x17,0xce,0x3e,0xcc,0xb1,0x1a,0xc0,0xa2,0x89,0xa6,0x3f,0x79,0x64,0xfe,0xbf,0xf,0xa4,0x76,0x40,0x97,0x5b,0x90,0xc0,0x77,0x4a,0xac,0xbf,0xa6,0xda,0x49,0x3f,0x60,0x37,0xf4,0x3e,0x20,0x72,0x83,0x40,0x99,0x37,0xca,0xbf,0x4,0x71,0x7f,0xc0,0xdc,0xdd,0x53,0x40,0xd1,0xd5,0xb2,0x3f,0x3a,0xcc,0x52,0x40,0xce,0x64,0x3d,0xc0,0x58,0xf3,0x3b,0xc0,0x56,0x43,0x1,0xc0,0x60,0x2,0xb6,0x3e,0xb1,0xde,0xd8,0x3f,0xb6,0xe3,0x37,0xc0,0xd0,0x6,0xf1,0xbe,0x1a,0x3a,0x5d,0xbf,0x67,0xfd,0x91,0x40,0x53,0xcf,0xe6,0xbf,0x20,0xd,0x9b,0x40,0x1,0x44,0x44,0xc0,0x10,0xdc,0x3,0xc0,0x8e,0xaf,0x70,0xc0,0x7d,0xbe,0x6b,0x40,0xa1,0xe,0x5c,0xc0,0x68,0x75,0x4,0x40,0x14,0x2d,0xeb,0xbf,0x6,0x71,0x9f,0x40,0x72,0x8d,0x34,0x3f,0x5a,0xf2,0x8a,0xc0,0xec,0x4a,0x5c,0x3f,0x1a,0x9f,0x1b,0x3f,0xda,0xc0,0x9a,0xc0,0x27,0x71,0x80,0x3f,0xc4,0xa7,0x98,0x40,0x42,0x2d,0xb8,0x3f,0xc0,0xd3,0xd9,0xbc,0x65,0xac,0x84,0xbf,0xde,0x12,0xaa,0x3f,0xa2,0x90,0xe,0xc0,0xfe,0x8f,0x9d,0x40,0x35,0x50,0x8a,0x40,0x4e,0x7e,0x15,0x40,0xe5,0x62,0xee,0xbf,0x97,0x3b,0x96,0xc0,0x1f,0x37,0x38,0xc0,0x31,0x91,0x9b,0x40,0x4e,0xdc,0x92,0xc0,0x22,0xc5,0x98,0xc0,0x38,0x82,0xb8,0xbe,0xbe,0x9d,0xcb,0x3f,0x2b,0x3f,0x9f,0xc0,0x26,0x8c,0x94,0xc0,0xc0,0xb0,0xde,0x3c,0x85,0xad,0xd6,0xbf,0x6,0xf0,0x5e,0x40,0x41,0xc0,0xb7,0x3f,0x34,0xe2,0x8a,0xc0,0xa0,0x35,0x90,0xc0,0xb4,0xc2,0x5b,0x40,0x92,0xf8,0x62,0xbf,0x7e,0xfc,0xb,0xc0,0x77,0x96,0xc9,0x3f,0xa0,0x90,0x7b,0xbf,0x7,0xa,0x19,0x40,0x34,0x4c,0xa2,0x3f,0x33,0x8d,0xa,0xc0,0x2,0x3d,0x80,0xc0,0xc0,0x3a,0x2d,0x40,0x6b,0x42,0x40,0xc0,0xbc,0x92,0xd,0xbf,0x20,0x3,0x2f,0x3f,0xba,0x3a,0x3a,0xc0,0xd6,0x4f,0x2e,0x40,0x84,0x15,0x61,0xc0,0x28,0x30,0x9d,0x3f,0xaa,0xe5,0x8,0x3f,0xb0,0xd2,0xea,0x3f,0xd9,0x6,0x9d,0xc0,0x30,0xe1,0x93,0x3e,0x7e,0x0,0x1c,0x40,0x95,0xde,0x4c,0xc0,0x67,0x5e,0x9e,0x3f,0x40,0x7e,0xa0,0x3c,0x6a,0xbc,0x87,0x40,0x99,0x84,0x87,0xbf,0xc0,0xea,0xb,0x3d,0x12,0x2e,0xb,0xc0,0xd9,0xba,0x9d,0xbf,0xa2,0x37,0xb7,0x3f,0xaa,0x4f,0x9a,0xc0,0x1e,0xc1,0x72,0x40,0xc2,0x1c,0x66,0x40,0xc4,0x84,0x7,0x40,0x19,0x8d,0x6f,0x40,0x31,0x39,0xc7,0xbf,0xb1,0xc6,0x91,0x3f,0x40,0x3d,0x82,0x3e,0x3c,0x47,0x5d,0xc0,0x94,0xb,0xf6,0xbf,0xe2,0x34,0xe3,0xbf,0x0,0x3e,0x9e,0xbf,0xf7,0x11,0x8e,0xc0,0x82,0xd,0x61,0xc0,0xc4,0x1a,0xf3,0xbe,0xb2,0xb7,0x42,0xbf,0x4a,0x3d,0x91,0xc0,0x44,0xbf,0x88,0x3f,0xfe,0x3c,0x2e,0x40,0xd,0x40,0x85,0x40,0x17,0xa8,0x86,0x40,0xec,0x9a,0x5f,0xc0,0xcb,0x1b,0xcd,0xbf,0x99,0xce,0x17,0xc0,0xf6,0xc3,0x6a,0x3f,0xe8,0x7f,0xab,0x3f,0x2b,0x64,0x8e,0x3f,0x9f,0xff,0x3a,0x40,0x29,0xd3,0x28,0x40,0x4e,0xc2,0x2b,0xc0,0x9a,0xac,0x5b,0x40,0xaa,0xdc,0x57,0x40,0x8e,0x63,0x29,0x3f,0x30,0x34,0x8b,0xc0,0xa0,0x43,0x44,0xc0,0x4d,0x5a,0xb2,0x3f,0x68,0x46,0xdd,0x3f,0x28,0x31,0x95,0x40,0x6b,0xdd,0x22,0x40,0xbc,0xf6,0xe7,0x3f,0xb0,0xa0,0x2e,0xbe,0xc8,0x32,0x5a,0x40,0x78,0xf3,0xe8,0xbf,0x28,0x4b,0x2,0x40,0x74,0x69,0x18,0xc0,0x0,0x27,0x3f,0xbd,0x4a,0x1e,0x3d,0x40,0x8,0xd5,0x12,0x40,0x77,0x9e,0x8f,0xbf,0x20,0xa9,0x81,0xbd,0x84,0xa4,0x31,0xc0,0x3a,0x39,0x14,0x40,0x74,0x52,0x57,0x40,0x62,0x4d,0xdc,0x3f,0x73,0xd3,0x9a,0xc0,0xb4,0x12,0x65,0xc0,0xd4,0x39,0x56,0x40,0xac,0x46,0x37,0xbf,0x6f,0x85,0x44,0x40,0xcf,0xdf,0x6b,0x40,0x48,0x79,0xbb,0xbf,0x42,0xc0,0x3b,0xc0,0xeb,0x86,0x96,0xc0,0xdb,0xcf,0xf4,0x3f,0x78,0x1f,0x24,0x40,0x8e,0xe8,0x5d,0xbf,0x0,0x55,0x9b,0xc0,0x87,0x1d,0x4e,0xc0,0x2c,0xef,0x89,0xbe,0x8e,0xc,0x12,0x40,0xec,0x73,0xd6,0xbf,0x12,0x94,0x4e,0xc0,0xaa,0xc6,0x5e,0xc0,0x1f,0x28,0x8f,0x40,0x32,0xc2,0xe7,0x3f,0x1c,0xe8,0x81,0xc0,0x8e,0x9f,0x45,0xc0,0xbd,0xd2,0x87,0xc0,0x60,0x31,0x39,0x3f,0xe0,0xf0,0x1,0xc0,0x40,0xa8,0x8a,0xbc,0x66,0x7e,0x4a,0xbf,0x1,0xe,0x8c,0xc0,0xe9,0xfa,0x8e,0xc0,0x80,0x33,0x78,0xc0,0xf4,0x4,0x6,0xc0,0xa0,0x15,0x47,0x3f,0x14,0x7d,0x16,0xc0,0x50,0x80,0x36,0xbe,0x8c,0x52,0x19,0xbf,0x8e,0x53,0x92,0x40,0xdd,0xe0,0x11,0xc0,0x4d,0x53,0x96,0x40,0xe3,0xa8,0x75,0xc0,0x5b,0x7e,0x85,0xc0,0xba,0x1f,0xd0,0x3f,0xa,0x3d,0x3a,0xc0,0xc0,0x22,0x24,0x40,0x6,0xa,0x31,0xc0,0x1c,0xfd,0x7b,0x40,0x3e,0xed,0x9a,0x40,0xdc,0xe3,0xa3,0x3e,0xdc,0xc7,0x88,0x3f,0xd6,0x2b,0x95,0x40,0x84,0xb3,0x3d,0x40,0x96,0xad,0x8b,0xc0,0x80,0xe5,0x23,0xbe,0xac,0x6d,0x90,0xc0,0x99,0x71,0x74,0x40,0xce,0x73,0x6a,0xbf,0xa0,0xc1,0xe,0xbd,0xca,0x9a,0x44,0xc0,0x58,0x0,0x2e,0xc0,0x7c,0x1e,0x26,0x3f,0xec,0x2,0x84,0x40,0x53,0xd9,0x20,0xc0,0x58,0xe7,0xf1,0x3e,0x44,0xd5,0x90,0x40,0xe7,0x64,0x8f,0x40,0x5c,0x3f,0x7a,0xbf,0x3b,0xf6,0x95,0x40,0x69,0x11,0xe9,0x3f,0xd9,0xb8,0x91,0x40,0x98,0xe8,0x17,0x3e,0x64,0x99,0x87,0xc0,0xe4,0x35,0xae,0xbf,0x9b,0xf4,0xbf,0x3f,0xd0,0xa5,0x2a,0x40,0xae,0x64,0x9f,0xc0,0x70,0xe9,0x78,0x40,0x39,0x88,0x8f,0xc0,0x9d,0x7e,0x3b,0x40,0xd8,0xdd,0x9d,0x40,0xc3,0xb7,0x9d,0x3f,0x7a,0x93,0x71,0xbf,0x98,0x31,0x30,0x40,0x1b,0xf4,0xbd,0xbf,0xd2,0x8,0x6d,0xc0,0x9e,0x19,0x63,0xc0,0x4e,0x75,0x16,0x40,0x47,0x64,0x74,0x40,0xb0,0x52,0x4f,0x3e,0x68,0x22,0x9b,0xc0,0x9f,0x37,0x9d,0xc0,0x4a,0x84,0x90,0xbf,0xfe,0xbd,0x2c,0x40,0x18,0x3f,0x55,0xc0,0x90,0x81,0xac,0x3f,0x5,0xe7,0x2e,0xc0,0xa8,0x2d,0x82,0x40,0x2c,0xb3,0xa7,0xbf,0x1f,0x60,0x85,0xbf,0x37,0x55,0x8c,0xc0,0x88,0x4f,0x8f,0xc0,0x58,0x4,0xad,0x3e,0xf8,0xf6,0x4e,0x3f,0xb4,0xe2,0x2c,0x40,0x9e,0xe8,0x8b,0xc0,0x4a,0x48,0x60,0x3f,0x7c,0xe8,0x38,0xbf,0xed,0xb5,0x3b,0x40,0xb1,0x80,0x11,0xc0,0x58,0xac,0xbe,0x3f,0x45,0xf3,0x0,0x40,0x81,0xbf,0x20,0x40,0x5a,0x83,0xdb,0xbf,0x7d,0xf5,0xcd,0x3f,0x7e,0xdb,0x7a,0xbf,0xbb,0x56,0xac,0x3f,0xdc,0xc4,0x44,0xc0,0x65,0x46,0x7e,0xc0,0xb9,0xe0,0x82,0xc0,0x24,0x29,0x49,0xc0,0xd0,0x6e,0x7,0xc0,0xd2,0x87,0x3e,0x3f,0xe9,0xfd,0x8b,0xbf,0x14,0x2b,0x36,0xc0,0x20,0xb,0x2c,0x3d,0x23,0x1c,0xca,0xbf,0xfa,0x41,0x45,0x40,0xe1,0xc6,0x83,0xc0,0xc4,0x3a,0xec,0xbf,0x7e,0xa4,0x4d,0xc0,0xbc,0xf0,0x1d,0x3f,0xac,0xa9,0x8b,0x3e,0x3c,0x44,0x93,0xbe,0x5b,0xc0,0x9e,0x40,0x4e,0x26,0xf4,0xbf,0x30,0xf9,0x37,0xbf,0x42,0x59,0xa5,0x3f,0xb4,0x89,0x85,0x40,0x6e,0x8d,0x72,0x40,0xac,0x39,0x12,0x3f,0xa,0x21,0xf2,0xbf,0x79,0x40,0xd2,0x3f,0xdf,0x56,0x49,0x40,0x0,0x89,0xda,0xbd,0xd6,0xb0,0x2f,0x40,0x88,0xf2,0x82,0x40,0x28,0x72,0x2b,0xc0,0x22,0x7d,0x8d,0xbf,0xeb,0xc,0x90,0xc0,0x5,0xea,0x92,0x3f,0x96,0xf,0x64,0x40,0x8a,0x90,0x78,0xbf,0x8a,0x3f,0x4c,0x3f,0x71,0x80,0xcc,0x3f,0x70,0x69,0xda,0xbd,0xf3,0xc7,0x78,0x40,0x0,0x86,0x3a,0x3f,0x74,0x45,0x9d,0xc0,0x33,0x20,0x84,0xc0,0xc0,0x85,0x9e,0xc0,0x20,0x7,0x53,0x3e,0x52,0xfb,0x2c,0x40,0xfa,0xde,0x28,0xbf,0xaa,0xdb,0x8f,0x40,0x96,0x46,0x66,0xbf,0x26,0xd9,0x82,0x3f,0x4c,0x47,0x90,0x40,0xb,0xf3,0x21,0x40,0xc8,0x57,0x23,0xbe,0x9d,0x1d,0x9a,0x40,0x4a,0x30,0x3f,0xc0,0x68,0x62,0xee,0x3f,0x82,0x17,0x4a,0x40,0x2e,0x24,0x46,0xc0,0x83,0x4b,0x96,0xc0,0x36,0xb6,0xcc,0x3f,0x10,0xcf,0xf2,0xbf,0x3e,0x7c,0x21,0xc0,0x4e,0x99,0x7e,0x3f,0x14,0x23,0x68,0xc0,0x94,0xe7,0x8f,0x40,0xfc,0xcc,0xe5,0xbe,0x28,0xf6,0xcc,0xbf,0xcb,0xc1,0x85,0x40 }); + // [[[[ 1.3922077 0.95261157 -2.3906546 ... -4.186278 2.5229187 -2.577996 + Tensor *w = NN_tensor(4, (size_t[]){ 3, 3, 3, 71 }, DTYPE_F32, (uint8_t[]){ 0xdd,0x33,0xb2,0x3f,0x5a,0xde,0x73,0x3f,0x7c,0x0,0x19,0xc0,0xf0,0x7d,0x98,0x40,0x87,0xec,0xc2,0xbf,0xaa,0x13,0x85,0x40,0x88,0x2e,0xbc,0xbe,0x26,0x86,0x20,0x40,0xd0,0xff,0x60,0x40,0xa4,0x3d,0x6e,0xc0,0xf1,0x47,0x55,0xc0,0x78,0x37,0x9e,0xc0,0xd4,0xcd,0x66,0x40,0x4,0x99,0x89,0x40,0x89,0xe6,0xe9,0xbf,0xb7,0xba,0x1c,0xc0,0x6e,0x42,0x56,0x3f,0x8,0x48,0x2c,0x40,0x86,0xf9,0x9d,0x3f,0xe1,0x61,0x85,0xbf,0x3f,0x8b,0x4b,0xc0,0xc6,0xd7,0x88,0x40,0x82,0x3c,0x4f,0xc0,0x9c,0x9b,0x9a,0xc0,0xd1,0x88,0xff,0xbf,0x8,0x3e,0x7f,0x3f,0xd5,0xe1,0xed,0x3f,0x90,0x77,0xf7,0x3f,0x27,0x60,0x39,0xc0,0x23,0xa0,0xf5,0xbf,0x2a,0x4c,0xe,0xc0,0x8a,0xf6,0x1a,0xc0,0x84,0xc3,0x86,0xc0,0xfd,0x1,0x83,0x3f,0x85,0x1f,0xba,0xbf,0x40,0x0,0x9a,0xc0,0x80,0xda,0x3a,0xc0,0xba,0x2c,0x40,0xc0,0x3c,0x9,0xa,0xc0,0xb6,0xba,0x45,0xc0,0x4,0xfa,0x5d,0xbf,0x29,0x5a,0xe5,0x3f,0x7f,0x7d,0x81,0xc0,0x2c,0x4d,0xdb,0xbe,0x77,0x2f,0xb8,0xbf,0x46,0x9a,0x23,0xc0,0x64,0x1c,0x8e,0xbf,0x41,0xa0,0x7,0xc0,0xb8,0x98,0x24,0x3e,0xf4,0xfd,0x66,0xc0,0xdc,0xbc,0x72,0x3f,0xb3,0xe6,0x92,0x40,0xea,0x93,0x84,0x40,0x94,0x79,0xf,0xc0,0x1e,0x44,0xc5,0x3f,0x90,0x3b,0x97,0xc0,0x0,0xb6,0x86,0x40,0x4b,0x73,0x9f,0xc0,0xee,0xfa,0x8e,0xc0,0xe4,0x9e,0x8f,0xc0,0xaa,0x95,0x94,0xc0,0xa8,0x59,0x2d,0x3f,0xa6,0x3c,0xa9,0xbf,0xb0,0x2e,0x99,0x3f,0xd8,0x65,0x9e,0xbe,0x90,0xf7,0xdb,0xbd,0x58,0x38,0xe7,0xbf,0xb4,0xda,0x3d,0xc0,0xfd,0xf5,0x85,0xc0,0x80,0x77,0x21,0x40,0xe6,0xfd,0x24,0xc0,0x95,0x29,0x82,0xbf,0x1e,0x6c,0x1b,0x40,0xea,0x80,0x9e,0xbf,0xbf,0x5d,0xa1,0xbf,0x9a,0x53,0x55,0xc0,0x66,0xe5,0x88,0xc0,0xe3,0x96,0x19,0x40,0x46,0x65,0x90,0xbf,0xb3,0x37,0x49,0x40,0x84,0x7d,0xa8,0x3e,0x0,0x1b,0xd0,0xbb,0xbb,0x72,0x90,0xc0,0x40,0x14,0xe2,0x3d,0x4e,0xa3,0x90,0xbf,0x5e,0x9a,0x36,0xc0,0xc5,0x1e,0x94,0xbf,0x68,0xd5,0x85,0x3e,0x46,0x1d,0x71,0xc0,0xd0,0xd7,0x54,0x3f,0x2a,0xa9,0x5e,0x40,0x44,0xdc,0x7c,0x3f,0x7b,0xba,0x98,0x40,0x53,0x53,0x15,0x40,0x20,0x5e,0x7c,0xc0,0xc4,0xe9,0xfb,0xbf,0xef,0x2,0x9a,0xbf,0x86,0x73,0xbf,0x3f,0xc0,0x7,0x12,0xbe,0x60,0xc0,0x80,0x40,0x5a,0xb1,0x14,0x3f,0xcd,0xa8,0x4a,0xc0,0x54,0xa2,0xea,0xbf,0x21,0x1d,0x85,0xc0,0x87,0x77,0xb0,0xbf,0x88,0x54,0x1d,0x40,0x20,0xc4,0x45,0x3d,0xa2,0x93,0x98,0xc0,0x99,0x72,0x8a,0xc0,0x8d,0x7,0xe8,0x3f,0xb3,0x6e,0x8c,0xc0,0x4,0x3d,0x7f,0xc0,0xec,0xc9,0x3e,0xc0,0xba,0x7f,0x98,0x40,0x35,0xfb,0xb5,0xbf,0xb9,0xef,0x3,0xc0,0x70,0x11,0x58,0xc0,0xce,0xb4,0x4c,0x40,0x14,0xae,0x4e,0xbf,0x20,0xd4,0x76,0x3f,0xba,0xe3,0x98,0x3f,0x3f,0x7f,0xb4,0x3f,0xe,0xd4,0x4c,0x40,0xe8,0xd8,0x84,0x3e,0x6a,0x66,0x4,0x3f,0x24,0x3f,0xa6,0xbe,0x5a,0xa9,0x78,0xc0,0x83,0x76,0x92,0xbf,0xda,0x47,0x98,0x40,0x89,0xca,0x62,0xc0,0x76,0xf4,0x49,0xc0,0x2d,0xc5,0x9e,0xc0,0x88,0x3b,0x9b,0x3e,0xce,0xa6,0x95,0xc0,0xf2,0xe6,0x23,0xc0,0x3a,0x6e,0x93,0x40,0x64,0x88,0x4,0x40,0xa6,0x7c,0x2a,0x40,0x6,0x2d,0x5b,0x3f,0xfa,0xf6,0x87,0xc0,0xfe,0xe6,0x14,0xc0,0x84,0x87,0x81,0xc0,0xf5,0xdf,0x45,0xc0,0xc4,0xf2,0xd9,0x3f,0xb3,0x81,0xb1,0xbf,0xb4,0x5c,0x9c,0x40,0x2a,0x44,0x69,0xc0,0xac,0x8b,0x88,0xc0,0x1,0xfc,0x9d,0x40,0x8a,0x37,0x8a,0xc0,0x25,0x26,0x88,0x40,0x7a,0x56,0xac,0x3f,0xc,0xd5,0x91,0xc0,0x50,0x5b,0x8b,0x40,0x7e,0x3c,0xae,0xbf,0xae,0xf2,0x3,0xc0,0xb9,0xa1,0x79,0xc0,0xda,0x55,0x87,0xc0,0xa2,0x7e,0x8e,0x3f,0x62,0x29,0x9d,0xc0,0xe,0x7f,0x3,0x40,0x5e,0x26,0x9e,0xbf,0xfc,0x9a,0xe0,0x3f,0xbf,0xb2,0x9c,0xbf,0xe8,0x52,0xdd,0x3f,0xc0,0xdb,0xb,0xbe,0x5a,0x1b,0xbc,0x3f,0x96,0x30,0x2,0xc0,0x57,0x1c,0x5c,0xc0,0xb8,0x3,0x23,0x3f,0xcb,0x3f,0x4c,0xc0,0x4,0x5f,0x46,0xc0,0xd3,0xd9,0x99,0xc0,0xa2,0xff,0xcb,0xbf,0xfd,0xd1,0x55,0xc0,0x73,0x33,0x79,0x40,0x87,0x9b,0x66,0x40,0x7a,0xd9,0x97,0x3f,0x36,0x0,0x82,0x40,0xa2,0x15,0x1a,0x40,0x3e,0xb9,0x96,0xc0,0xe,0x12,0x0,0xbf,0xc4,0xc5,0x4f,0xbf,0xd2,0x4a,0x42,0xc0,0x6b,0x47,0xb6,0x3f,0xa4,0xc0,0xc7,0xbf,0x6a,0x4,0x19,0xc0,0x20,0xbe,0x6e,0xbd,0x2a,0xc2,0x54,0xc0,0x9a,0x6c,0x84,0x40,0x62,0x7d,0x4a,0x40,0x7a,0x74,0x97,0x40,0xac,0xb6,0x62,0xbf,0x56,0x5,0xd1,0x3f,0xd8,0xef,0x4d,0xbe,0x90,0x65,0x84,0xc0,0x3,0xc6,0x10,0x40,0x78,0x84,0x5f,0xc0,0x2a,0x7,0xe7,0xbf,0xc3,0x4d,0xf,0xc0,0x50,0x17,0x9c,0xc0,0x70,0xa5,0x37,0x3e,0xcc,0xb1,0x51,0x3f,0x44,0x52,0xbe,0xbe,0x5a,0x58,0x6b,0x40,0xc8,0x7d,0x75,0x3e,0x5e,0x26,0x69,0xbf,0xb0,0x8a,0x2e,0xc0,0xb7,0xc,0x3e,0xc0,0x7c,0xfa,0x35,0xbf,0x33,0xcf,0x3b,0xc0,0x69,0x18,0x53,0xc0,0xc4,0x4b,0x29,0xbf,0x1c,0x1,0x62,0xbf,0xd4,0x55,0x43,0xc0,0x2,0xf9,0x3a,0x40,0x3b,0xb1,0x87,0x40,0x5f,0x2f,0x5a,0xc0,0xb8,0x29,0xc,0x40,0xba,0x7b,0x14,0xc0,0x56,0xe8,0x4,0xbf,0x58,0x5c,0x95,0x40,0xec,0xc9,0x23,0x3f,0x48,0x8e,0x98,0xc0,0x11,0x16,0x93,0x40,0xc8,0x9f,0x58,0xbe,0x20,0x3c,0x20,0xc0,0xc6,0xfe,0x28,0xc0,0x8c,0x34,0x89,0x40,0xd0,0xd2,0xac,0x3d,0x46,0xbf,0x30,0x40,0x20,0x50,0x52,0x40,0x77,0x67,0xf8,0xbf,0x78,0x49,0xd9,0x3e,0x64,0xfe,0x4e,0xc0,0xcc,0x9b,0x85,0x40,0xd2,0x36,0x29,0xc0,0xec,0x8c,0x54,0x40,0xf9,0x27,0xa2,0x3f,0xcc,0x65,0x45,0x40,0x5c,0x76,0x61,0xc0,0xe0,0x39,0x1f,0xbe,0xa6,0xcf,0x25,0x40,0xd0,0x5d,0x4c,0xbe,0x70,0xed,0x92,0xbd,0x0,0xf0,0x1b,0x40,0x28,0x2b,0x6f,0xc0,0x1b,0x50,0x80,0xbf,0xe3,0xc1,0x11,0x40,0x8f,0xf1,0x1c,0x40,0xee,0x9a,0x94,0x40,0x64,0x34,0x7d,0xbf,0xf,0xa4,0x97,0x3f,0xd6,0x72,0x1d,0xc0,0xe,0xd4,0x56,0xbf,0x3c,0xa5,0x20,0xc0,0x6e,0x24,0x6d,0x40,0xc0,0x81,0xf9,0x3c,0x1d,0x2e,0x2,0x40,0xc6,0x3,0x30,0x40,0x9e,0x86,0x6e,0x3f,0x54,0x37,0x8,0x3f,0xcc,0x5e,0xbb,0xbe,0x30,0x88,0x87,0xc0,0xf6,0x3a,0x4e,0x3f,0xcb,0xc9,0x8d,0xbf,0xb,0x7c,0x86,0xc0,0xc4,0x11,0x95,0x40,0x70,0x75,0x8,0xbf,0x30,0xb5,0x1f,0xc0,0x44,0xc3,0x9b,0xc0,0x10,0x5e,0x93,0xc0,0xd2,0xb6,0xf3,0x3f,0xd8,0x14,0x12,0xc0,0x3c,0x3b,0xa,0xc0,0xaa,0x28,0x39,0xc0,0x33,0x27,0x81,0x40,0x46,0xd9,0x99,0xbf,0x15,0x6b,0x4f,0x40,0xba,0xa,0x7e,0x40,0xb7,0x18,0x78,0xc0,0x2,0xbc,0x6e,0x40,0xc,0x6d,0x74,0xbf,0x37,0x3e,0x99,0x40,0x52,0x73,0x23,0x40,0x3f,0xfd,0x9a,0xc0,0xfa,0xcb,0x6d,0x3f,0xf7,0xf9,0xe0,0x3f,0xa4,0x2c,0xe8,0xbf,0xca,0xa8,0x72,0x40,0x1,0x80,0x84,0xc0,0x67,0x13,0xcb,0xbf,0xe8,0x73,0x98,0x40,0x79,0x43,0x9c,0x40,0x7e,0xda,0x1f,0x40,0xd6,0x5,0x3f,0xc0,0x9,0xaa,0x89,0xc0,0x4c,0x17,0x82,0xc0,0xee,0xfd,0x9f,0xbf,0x5d,0x47,0x35,0x40,0xc7,0x9f,0xca,0x3f,0xc0,0x71,0x1b,0xbf,0x66,0xe5,0x8f,0x40,0x26,0x49,0x7b,0x40,0xf3,0x8f,0x15,0xc0,0xf8,0x93,0xa,0xc0,0xe0,0x47,0x70,0xbd,0xba,0xcf,0x84,0x3f,0x80,0x9c,0x12,0xbd,0xad,0x14,0xf7,0x3f,0x87,0xc8,0x5c,0x40,0xb0,0xcc,0x66,0xbf,0x3e,0x26,0x1d,0x40,0x4a,0x16,0x2e,0x3f,0x55,0xaa,0xf5,0x3f,0xda,0xbc,0x3,0x40,0x95,0xf,0xab,0xbf,0xd8,0xac,0xe,0xc0,0x7a,0xc7,0x8,0x40,0x65,0xe1,0x4c,0xc0,0x32,0x0,0x28,0x40,0x95,0x51,0x4d,0xc0,0xfb,0x87,0x5b,0x40,0x88,0x65,0x0,0x40,0x52,0xca,0x9c,0xbf,0xf4,0xe8,0x36,0x40,0xc7,0xc4,0xd2,0xbf,0x2d,0x59,0x88,0x3f,0x66,0x6e,0xbc,0x3f,0x78,0xb9,0x2,0x3f,0xb8,0x85,0x80,0x3f,0xf0,0x48,0xcb,0xbd,0xb7,0xe4,0xb8,0xbf,0xf7,0x87,0x32,0x40,0x98,0x6f,0xfc,0x3f,0x86,0xb7,0xee,0x3f,0x70,0x9,0x58,0x40,0x2e,0x6e,0x27,0xc0,0x4a,0xb2,0x94,0xbf,0x60,0xef,0x11,0xbe,0x16,0x1e,0x81,0x40,0xc8,0xd1,0x7e,0xc0,0x42,0x8d,0x37,0xc0,0xb3,0x72,0x98,0xbf,0x11,0xac,0x88,0xc0,0x80,0xd2,0x7c,0xc0,0xec,0x34,0x5b,0x40,0x70,0xd7,0x6e,0x3e,0x5d,0xb7,0x80,0xc0,0x36,0x5a,0x53,0xbf,0x58,0x54,0x28,0xbe,0xc1,0x87,0xe3,0xbf,0xef,0xd4,0x85,0xc0,0xd9,0x27,0x2e,0x40,0x44,0x18,0x1e,0xbf,0x98,0x36,0x9c,0x40,0xd8,0x13,0x75,0xc0,0xe,0xad,0x2f,0xc0,0xe4,0xff,0x84,0xbe,0x21,0xd7,0x5e,0xc0,0xc,0x35,0x69,0x40,0xd2,0x76,0x77,0x40,0x13,0xf3,0x90,0x40,0xf3,0x0,0x4a,0xc0,0x20,0xae,0x63,0x40,0xc9,0x2f,0x5e,0x40,0x22,0xa7,0xfe,0xbf,0x7c,0x74,0xc,0x3f,0x95,0x7c,0x18,0x40,0x1a,0xfd,0x64,0x40,0x84,0x70,0x95,0xc0,0xbf,0x4a,0x9f,0x40,0xfd,0xe8,0xa0,0xbf,0xe4,0x61,0x2,0x40,0x9c,0xbf,0x46,0xc0,0xfc,0x40,0x76,0xc0,0x15,0xb7,0x58,0xc0,0xf4,0x97,0x3c,0x40,0x66,0xd8,0x1d,0xc0,0xf5,0x4,0x3a,0x40,0x27,0x7b,0xc1,0x3f,0xbd,0x93,0xfe,0x3f,0xf9,0x59,0x8e,0xbf,0x68,0x72,0xca,0xbf,0xc2,0xb8,0x15,0xc0,0xaf,0xde,0x32,0xc0,0x67,0x86,0x93,0x40,0x40,0x20,0x8b,0xbe,0x34,0x3a,0x9,0xc0,0x62,0xdd,0x94,0xc0,0x78,0xbc,0x5e,0x3e,0x70,0xd2,0x9e,0xc0,0xe0,0x28,0x71,0xbd,0xea,0xc,0x4a,0x40,0x5e,0x4f,0x38,0xc0,0x1e,0xd2,0x2f,0x40,0x5c,0x27,0xcc,0xbf,0x84,0x1d,0x76,0xc0,0x61,0x78,0x9e,0xc0,0x2c,0xf8,0x1e,0x40,0x63,0xd4,0x74,0xc0,0xa4,0x3f,0x1c,0x40,0xd6,0x44,0x37,0x3f,0xe,0xeb,0x2d,0x40,0x8c,0x8a,0x70,0xc0,0x47,0xeb,0x8b,0x40,0x71,0x5d,0x9f,0xc0,0x2a,0xe4,0x72,0xc0,0x6a,0xe6,0x3f,0x40,0x18,0x2,0x2e,0x3e,0xf2,0xb0,0x33,0xc0,0xd5,0x3f,0x86,0xbf,0xbc,0x63,0x8e,0xc0,0xdb,0x3f,0x8b,0xc0,0x3b,0x4f,0x89,0xbf,0xdc,0x1c,0x74,0x40,0x0,0x22,0xbf,0x3f,0xe6,0x5e,0x71,0x3f,0x3f,0x9e,0xa9,0xbf,0xaa,0xa0,0x91,0x40,0x80,0x24,0x44,0x3d,0x9,0x19,0xd8,0x3f,0xa0,0xc1,0xa2,0x3d,0x20,0xbd,0x47,0x3f,0x41,0x6b,0xd5,0x3f,0xd4,0x8f,0x75,0x40,0xcf,0x31,0x38,0x40,0xe,0xd0,0x23,0x3f,0x39,0xdf,0xff,0x3f,0xd1,0x77,0xc0,0xbf,0x64,0xbb,0x5a,0x40,0x2,0xa9,0xb3,0x3f,0x6b,0x7f,0x71,0x40,0x8,0xda,0x47,0xbf,0xd9,0xa2,0x82,0xc0,0xc2,0xdb,0x7c,0x3f,0x48,0x26,0x2,0x40,0x88,0x48,0x81,0x40,0xf3,0xe,0xf8,0x3f,0xf6,0x76,0xec,0x3f,0x5d,0xa8,0x7e,0x40,0x6e,0xf1,0xdb,0xbf,0xba,0x44,0x8d,0x40,0xea,0xf,0x24,0x40,0xe7,0xb5,0x55,0x40,0x88,0x38,0x64,0x40,0xce,0xb7,0x82,0xc0,0xb8,0xac,0x26,0x40,0x96,0x3,0x95,0x40,0x87,0xce,0x60,0xc0,0xd4,0x68,0xdb,0xbe,0x41,0x4b,0x43,0xc0,0x8f,0x8a,0x9a,0xbf,0x70,0xc1,0x3e,0x3f,0xba,0x2b,0x2b,0x40,0x55,0xcd,0xb9,0xbf,0xf0,0x81,0x97,0xc0,0xc8,0xc9,0x2c,0x40,0xa1,0x87,0x33,0x40,0x38,0xc,0x68,0xbf,0xeb,0xf8,0x88,0x40,0xb6,0xaf,0x76,0x40,0x4a,0xf,0x8d,0xbf,0x28,0xb7,0x45,0x3e,0xf0,0x78,0x61,0x3f,0xcc,0xd3,0x7a,0xbf,0x38,0xac,0x9d,0xbf,0xaa,0x72,0x10,0xc0,0xcc,0xfa,0x35,0xc0,0xf2,0xcf,0x1f,0x40,0xb4,0xa,0xbe,0xbf,0x2a,0x84,0x19,0xc0,0x73,0xf1,0x8c,0x40,0xbe,0xa6,0x4c,0x3f,0x17,0xe3,0x66,0x40,0x94,0xce,0x91,0x40,0x5a,0x50,0x34,0xbf,0xc,0xee,0x3e,0x3f,0x9f,0x57,0x94,0x40,0xd6,0x2b,0x5c,0xc0,0xb6,0xe3,0xbf,0xbf,0x66,0x24,0x36,0x3f,0xa4,0xad,0xad,0xbe,0x78,0x64,0xaa,0x3f,0xd2,0x43,0x28,0x40,0x68,0xa7,0x3,0xc0,0x88,0x55,0xc7,0x3e,0x1a,0xc1,0x90,0x40,0xb0,0x12,0x35,0xc0,0x2b,0x0,0x59,0xc0,0x97,0x68,0x75,0xc0,0x66,0x48,0x3f,0x40,0xd2,0xc1,0x92,0xc0,0xc6,0x9d,0x1b,0xc0,0x4d,0x20,0x58,0x40,0x76,0xd5,0x3f,0xc0,0x44,0x1d,0x82,0x40,0xa8,0x96,0x15,0xc0,0x6,0x7f,0x4a,0x3f,0xde,0x8d,0x27,0x3f,0xb0,0x2b,0xfb,0xbd,0x68,0x4f,0x47,0x40,0x39,0xe4,0x87,0x40,0xc4,0xcb,0x47,0xc0,0x78,0x77,0x33,0x40,0xe6,0xff,0xaa,0x3f,0x60,0xd1,0xbe,0xbd,0x1c,0xbf,0x5f,0xc0,0x36,0xd9,0xbd,0x3f,0x9b,0x44,0x68,0x40,0x93,0x55,0x89,0xc0,0xc6,0xc4,0x93,0xc0,0x1e,0x4b,0x9d,0xc0,0x12,0xe1,0x93,0x3f,0xea,0xe4,0xb7,0xbf,0x39,0xcd,0xc6,0xbf,0x40,0xfc,0x94,0x40,0xec,0x3d,0xa3,0xbf,0x16,0x37,0x4b,0xc0,0x78,0x46,0xe6,0x3e,0xba,0xa2,0x2f,0xc0,0x33,0x84,0xbb,0xbf,0x88,0x8,0x29,0x40,0x43,0xb5,0x93,0x3f,0x32,0x97,0x5b,0xc0,0x7d,0x53,0x98,0x40,0x4,0x80,0x58,0x40,0xa0,0x23,0x5a,0xc0,0xee,0x62,0xb,0x40,0x80,0x7e,0x3,0x40,0xc7,0x9d,0x65,0xc0,0xd8,0xe4,0x60,0xc0,0xde,0x7b,0x84,0xc0,0x40,0x8b,0xe,0x40,0x0,0x2,0x5f,0x3f,0xf0,0x3c,0x7,0x40,0x5e,0x8d,0xc,0xc0,0x9c,0x9d,0x70,0x40,0x22,0x71,0x23,0x3f,0x34,0x56,0x7f,0xc0,0xa7,0x16,0xa1,0xbf,0xce,0x4e,0x23,0x40,0x96,0xb9,0x8c,0x3f,0x4c,0xd1,0x43,0xbf,0xf7,0x91,0x5f,0xc0,0xd8,0xf,0x47,0xc0,0x55,0x1,0x8a,0x40,0xb6,0x4e,0x37,0xc0,0xfc,0xc3,0x62,0x40,0xd3,0x37,0xd6,0xbf,0xa0,0xb5,0x4c,0x3d,0x70,0xce,0x9b,0xc0,0x84,0xa,0xd0,0xbf,0x70,0xe0,0x86,0x40,0xdf,0xa5,0x8f,0xc0,0x6,0x3,0x21,0x40,0x4c,0xa7,0x86,0xc0,0x2,0xb1,0x3a,0x3f,0xd3,0xf,0x91,0xc0,0xaf,0x52,0x7d,0xc0,0xe9,0x2a,0x81,0xc0,0x90,0xeb,0xdd,0xbf,0xe,0x48,0x2e,0x3f,0x74,0x9d,0x6a,0xc0,0xfd,0x32,0xa2,0x3f,0x92,0xbb,0x40,0x40,0x8b,0x6e,0x82,0x40,0xdf,0xab,0x8d,0x40,0x3c,0xaf,0x52,0x40,0xe7,0x74,0xbc,0xbf,0x58,0xed,0xeb,0xbe,0x5f,0x90,0x8d,0x40,0xd4,0x2f,0x1f,0x40,0x29,0xb9,0xa9,0xbf,0x86,0x99,0x71,0x40,0xf6,0xd3,0x8b,0xc0,0x5a,0xf0,0x88,0x40,0xba,0xa,0x33,0x40,0x26,0xb5,0x6a,0xc0,0x82,0x7f,0x82,0xc0,0x8e,0x3f,0x7a,0x40,0x8f,0xd7,0x9d,0x40,0xc0,0x64,0xdf,0x3e,0x16,0x12,0xfa,0xbf,0x4c,0x36,0x36,0x40,0xb2,0x5d,0x10,0x40,0x28,0xbf,0x1f,0xbf,0x47,0x19,0x80,0x40,0x75,0x6a,0x4f,0x40,0x73,0x8d,0x9f,0x3f,0x30,0x27,0x26,0x40,0x16,0xdf,0x95,0xc0,0xa,0xe4,0x15,0xc0,0xc4,0x4f,0xc,0x3f,0x1e,0xb,0xae,0x3f,0x58,0xfd,0x2e,0xbf,0xed,0xa7,0xf1,0x3f,0x78,0xf6,0xc2,0x3f,0x65,0xdf,0x93,0xc0,0x20,0xde,0xc9,0x3f,0x38,0x24,0xd0,0xbe,0xdf,0x34,0x5c,0xc0,0x38,0xca,0x2c,0x3e,0xb0,0x66,0x9d,0xbf,0xcb,0xee,0x29,0xc0,0x44,0xcc,0x91,0xc0,0x9c,0xd9,0x85,0x40,0xba,0x55,0x42,0xc0,0x18,0xeb,0x2b,0x3f,0xd,0x2d,0x80,0x40,0xf4,0x41,0x21,0xbf,0x84,0xbb,0x51,0xc0,0x11,0xcb,0x9a,0xc0,0x32,0xad,0x54,0x3f,0x5b,0x90,0x20,0xc0,0xbc,0xb0,0xba,0x3e,0xf7,0x6d,0xcc,0x3f,0x81,0x55,0xb5,0xbf,0xc0,0xf9,0x58,0x40,0x22,0x91,0x26,0xbf,0x68,0x6a,0xff,0xbf,0x52,0x95,0x53,0xc0,0x56,0x2d,0xc2,0x3f,0x74,0xd7,0x45,0xc0,0x91,0x88,0x86,0x3f,0x72,0x8c,0x21,0xbf,0xee,0xeb,0x5b,0x40,0xbc,0xe0,0x1c,0xc0,0x9e,0xa3,0x1d,0xc0,0x9e,0x6b,0x25,0xbf,0x3c,0x73,0x43,0xc0,0x2,0xff,0xf3,0x3f,0x74,0x6e,0xea,0xbf,0xc2,0x49,0x3,0x40,0x22,0xb8,0x39,0x40,0xf2,0xdb,0x3a,0x40,0xe6,0xfb,0x6a,0xbf,0xb6,0xa2,0x2e,0x40,0xf0,0x72,0x29,0xc0,0x78,0x6a,0x9f,0xc0,0x8c,0xa2,0xf3,0xbe,0x76,0x5,0x68,0xc0,0xb9,0xe9,0x77,0xc0,0x80,0xaf,0xa2,0x3f,0x4e,0xb9,0x88,0x40,0x81,0xdc,0xfb,0xbf,0x44,0xd0,0x90,0xbe,0x96,0xd6,0x67,0xc0,0x4,0xb7,0x5f,0x3f,0x4b,0x76,0xb6,0x3f,0x96,0x7c,0x44,0xbf,0x26,0x77,0x73,0x40,0xbc,0xc5,0x80,0xc0,0x60,0xbc,0x2b,0xbf,0x5e,0x9f,0x31,0xc0,0x58,0x7d,0x8c,0x40,0xb6,0x85,0x87,0x40,0x77,0x62,0x9d,0x40,0x2,0x35,0x93,0x40,0xec,0x79,0xfd,0x3f,0x56,0x7,0x75,0xc0,0xa3,0xf,0x59,0xc0,0x45,0x6c,0x99,0x3f,0x38,0xd9,0x8e,0xc0,0x32,0x96,0x4a,0x40,0x1f,0x1e,0xb,0x40,0x54,0xb3,0x98,0x3f,0xca,0xa6,0x8b,0xc0,0x8a,0xc8,0x68,0x40,0x32,0x78,0x7,0xbf,0xba,0x48,0x6,0xc0,0x3e,0x13,0x27,0x40,0xa4,0x55,0xd8,0x3e,0x52,0x59,0xe,0xc0,0x3f,0xcb,0x95,0x3f,0x1,0x65,0x55,0xc0,0xcc,0xb4,0x94,0x40,0x54,0x3d,0x8c,0x40,0x5,0x94,0x13,0x40,0xf3,0x49,0x29,0x40,0x94,0xc,0x9f,0xc0,0x4d,0xe2,0x31,0xc0,0x76,0xf6,0x99,0xc0,0x30,0xc9,0x26,0xc0,0xdf,0xa6,0x84,0xc0,0xfa,0x8a,0x6b,0x40,0xd8,0xa4,0x2c,0x40,0xc2,0x73,0x3c,0x40,0x26,0xf,0xe,0xc0,0x5e,0xe6,0x73,0x40,0xb0,0xf5,0x38,0xbf,0x15,0xd1,0xa5,0xbf,0x64,0x4c,0x2c,0x40,0x0,0xea,0x53,0x40,0x68,0xfe,0x65,0xc0,0x20,0x53,0x98,0x40,0x94,0x30,0x1,0xbf,0x2b,0x75,0xaa,0x3f,0x5f,0x51,0x9f,0xc0,0x24,0x7f,0xe,0x3f,0x89,0x5f,0x1e,0xc0,0x72,0x5d,0x48,0xc0,0xbe,0x9b,0x5,0xc0,0xc0,0xcb,0xbe,0xbc,0xf1,0x52,0xb6,0xbf,0x78,0xfd,0x4c,0xc0,0x75,0x1d,0x65,0x40,0x44,0x66,0xbe,0x3f,0x33,0xe7,0x94,0xc0,0x52,0x40,0x86,0x3f,0x26,0x37,0x9d,0x3f,0x20,0x23,0x3c,0x3e,0x8d,0x68,0x9b,0x3f,0x9c,0x55,0xd6,0xbe,0x1c,0xf3,0xb,0x40,0x2,0x46,0x61,0xc0,0x30,0x71,0x8,0xc0,0xc7,0xb6,0x6f,0x40,0xc4,0x40,0x46,0xc0,0x88,0x0,0x1d,0x40,0x28,0xb,0x94,0x40,0x43,0x4e,0x92,0xc0,0x88,0x31,0xc,0xc0,0x36,0x8a,0x88,0x40,0xa8,0xcb,0x9a,0xbe,0x7a,0xb0,0x7c,0x3f,0x46,0x2b,0x36,0x3f,0x29,0xdf,0x3,0x40,0xa2,0xd9,0x3,0xc0,0x28,0x2c,0x26,0x3f,0x58,0xfa,0x59,0x40,0xe4,0xf7,0xd7,0xbe,0x1,0xcb,0x92,0xc0,0x2b,0x38,0xdd,0x3f,0xe,0x62,0xa3,0xbf,0x14,0x5,0x87,0xbf,0x2c,0xe4,0x26,0x40,0x12,0x53,0x60,0x3f,0xad,0x95,0x41,0xc0,0xa7,0xab,0x13,0xc0,0x82,0x92,0x42,0xbf,0x29,0x1f,0x9e,0xbf,0xe2,0x7c,0x87,0xbf,0xe,0xb9,0x5a,0xc0,0x0,0xd1,0x67,0x40,0x80,0xf5,0x25,0x40,0x54,0x9a,0x7c,0x3f,0xe0,0xe8,0x90,0x3f,0xe6,0xd8,0x15,0x3f,0x60,0x46,0x6f,0x40,0xe3,0xd1,0x90,0x3f,0x2c,0xfc,0x42,0x3f,0x53,0xe8,0x2f,0xc0,0xa0,0x7f,0xd5,0x3f,0xfe,0xaf,0x95,0xc0,0x3e,0xd9,0xc9,0x3f,0xb1,0xaf,0x8a,0xc0,0x60,0x70,0x4,0xc0,0xbb,0xf0,0x28,0x40,0x8a,0x98,0x3e,0xc0,0xb4,0xce,0x7e,0x40,0x78,0xce,0x30,0xc0,0xf0,0x8c,0x97,0x40,0x76,0x41,0xc5,0x3f,0x5f,0xac,0xa,0xc0,0x48,0x29,0x43,0x40,0xe0,0xb1,0x8d,0xc0,0x91,0xb7,0x4a,0xc0,0xb1,0x7b,0x48,0xc0,0xc8,0x7f,0x28,0x3f,0x88,0x80,0xfb,0x3e,0xfe,0x9d,0x89,0xc0,0xca,0x64,0x9a,0x40,0x0,0x95,0x9c,0xbb,0x2,0xe1,0x2a,0xc0,0x40,0x98,0xf4,0x3d,0x6f,0x5c,0x9,0xc0,0x26,0x92,0xb0,0x3f,0x9a,0xaf,0xe7,0x3f,0xa,0x8b,0xb5,0xbf,0x40,0x3e,0x95,0x3e,0xe,0x67,0x3e,0x40,0x54,0x23,0x50,0xc0,0x5b,0xb6,0x8e,0xbf,0xdc,0xd4,0x3c,0xbf,0x54,0xb7,0x53,0xc0,0x44,0x81,0xd0,0x3e,0x58,0x2c,0x3c,0x3e,0x91,0x3c,0x81,0xc0,0xa1,0x49,0x83,0x3f,0xf2,0xb6,0x98,0x40,0xbc,0x34,0x2a,0x40,0x86,0x94,0x2d,0xc0,0x6b,0x75,0x92,0x40,0x52,0xf7,0x5b,0xc0,0xe0,0xb3,0x22,0xc0,0x58,0x26,0xd,0x40,0xc0,0x92,0x7e,0x40,0x8f,0xaf,0x98,0x40,0x78,0xbf,0x89,0x40,0xe6,0x34,0x30,0xc0,0xf5,0x72,0x92,0x3f,0xb8,0xee,0x48,0xc0,0x0,0x22,0xe2,0x3d,0x90,0x8f,0x84,0x40,0xba,0x90,0x1d,0x40,0x64,0xbd,0x93,0xc0,0x20,0xb8,0x9,0xc0,0xa2,0xff,0x86,0xc0,0x2a,0xbe,0x16,0x40,0x58,0x7d,0x22,0xbf,0x66,0xed,0x69,0xc0,0x15,0x82,0xcc,0xbf,0x72,0x6,0xd2,0x3f,0xf8,0x0,0xed,0x3e,0x11,0x21,0x96,0x40,0x70,0xf3,0x87,0xbd,0xfe,0x50,0xc9,0x3f,0x90,0xdf,0xc1,0xbf,0x68,0xbd,0x18,0x3f,0x88,0x6a,0x37,0x3e,0xdf,0x6f,0x89,0x40,0x58,0x15,0x6,0x40,0x8e,0x5d,0x36,0xc0,0x50,0x2b,0x8e,0xc0,0xf0,0x3a,0x98,0xc0,0xd8,0x6b,0xe8,0xbf,0x9e,0x75,0x25,0x3f,0xc8,0x85,0x96,0x40,0x1c,0x88,0xfb,0xbe,0xec,0x3b,0xfa,0x3f,0xd2,0xa1,0x22,0x40,0xc0,0x1e,0x75,0xc0,0xc0,0x5a,0x84,0xc0,0x9a,0x81,0xf2,0x3f,0xac,0x27,0x15,0x40,0xd6,0x0,0x15,0xc0,0x1e,0x96,0x48,0x3f,0x62,0xa8,0x9c,0xc0,0x80,0x12,0x81,0x3d,0xeb,0xe0,0x9c,0x3f,0xe0,0xda,0x41,0x3d,0x9e,0x2c,0x4b,0xbf,0x88,0x31,0x5,0x40,0x24,0xea,0xaf,0xbf,0xbc,0x34,0x6e,0x40,0xe,0xd0,0x89,0xc0,0x6,0xe1,0x36,0xc0,0xc2,0x92,0x85,0xc0,0x54,0xb4,0x90,0xc0,0xac,0x3b,0x6d,0x40,0xf5,0x61,0x9e,0xbf,0x5c,0x5e,0x7b,0xc0,0xfe,0xbd,0x84,0x3f,0x65,0x52,0x72,0xc0,0xbc,0x55,0x84,0x3e,0x4d,0x1f,0x18,0x40,0xf,0x55,0x87,0xbf,0x1b,0x81,0x24,0x40,0x49,0x5b,0x83,0x3f,0xf4,0x63,0x80,0xc0,0x52,0xed,0x7b,0x3f,0x6,0x49,0x4e,0x40,0x59,0x5d,0x94,0xbf,0x94,0xf1,0xf1,0x3e,0x7a,0x4b,0x23,0x3f,0xc8,0x23,0xdc,0x3e,0x5,0x5e,0xa6,0x3f,0x88,0x31,0x99,0xc0,0xf4,0xc9,0x72,0x40,0xfe,0x90,0xb,0x40,0x64,0x11,0x1e,0x3f,0xb0,0xe8,0x68,0x3f,0xed,0x8,0x81,0xc0,0xbf,0xbb,0xb6,0xbf,0x8,0xb4,0x5e,0xbe,0x4a,0x22,0x98,0x3f,0xf3,0x89,0x2f,0xc0,0x48,0xd0,0x7,0x3f,0x5d,0x9f,0xc6,0xbf,0xe4,0xeb,0x68,0x40,0x7a,0x56,0x89,0xc0,0x52,0xcd,0x5,0x3f,0x5c,0xcc,0x58,0x40,0xcd,0x89,0x78,0xc0,0x8,0xbf,0x12,0xbe,0xa1,0xde,0x13,0x40,0xca,0x20,0x1,0x40,0x3c,0x87,0x16,0x3f,0x0,0x5b,0x1,0x40,0x2c,0x12,0x5f,0xc0,0xfb,0x42,0x85,0x40,0x90,0x62,0xe4,0x3d,0xb4,0xd9,0x4e,0x40,0xab,0x94,0x8d,0x3f,0x8e,0x65,0xe,0xbf,0x68,0x11,0x9,0x40,0x5a,0xe3,0x97,0x40,0xa2,0xd3,0x9d,0x40,0xed,0xad,0x86,0xc0,0x30,0x43,0x9b,0x3e,0x62,0xe1,0x65,0xc0,0x8e,0x72,0x3a,0x40,0xea,0xb9,0x65,0x40,0x6,0xb4,0x60,0xc0,0xf4,0xf4,0x93,0xbe,0xe2,0x6e,0x5d,0x40,0x40,0x9e,0x53,0x40,0x28,0x99,0x70,0xc0,0x90,0xdb,0x56,0x40,0x4e,0x9c,0x62,0xbf,0x58,0x13,0x88,0xc0,0x8e,0xf9,0x7e,0x3f,0x6e,0x13,0x15,0x40,0x24,0xe9,0x3f,0x40,0x4a,0x93,0x59,0xc0,0x3c,0xc5,0x67,0xc0,0x54,0x1,0x57,0xc0,0x12,0x59,0x35,0x40,0x44,0xd6,0x8b,0xc0,0xa0,0xb2,0x2c,0xbd,0x27,0x12,0xbc,0xbf,0xa6,0xb6,0xb,0x40,0x18,0x5f,0x7b,0x3f,0x99,0x97,0x21,0xc0,0xc4,0x92,0x5f,0x3f,0x2a,0x3e,0x93,0x40,0x6e,0xbe,0x52,0x3f,0xf8,0x92,0x1e,0xc0,0xd0,0x6a,0x2b,0x3e,0x74,0xc2,0x92,0xc0,0x8d,0x4f,0x4d,0xc0,0xe6,0xc1,0x6d,0xbf,0x96,0x68,0x47,0xc0,0x8b,0x7d,0x87,0x40,0xe,0x76,0x78,0x3f,0x87,0xda,0x77,0x40,0xd5,0xbb,0x91,0xbf,0x26,0x4,0x32,0xbf,0xdf,0x6f,0xa1,0x3f,0x1d,0x4c,0xbe,0xbf,0x9d,0x28,0xda,0xbf,0xc2,0xf4,0x9c,0xc0,0x2c,0x12,0x71,0x40,0xfe,0xcd,0x90,0x40,0x69,0x6b,0x9e,0xc0,0xda,0xbf,0xd3,0xbf,0x4d,0xb,0x72,0xc0,0x6b,0xe5,0x1,0xc0,0x92,0x9e,0x73,0x40,0xb9,0x2c,0x2b,0x40,0xb4,0xa2,0xc6,0xbe,0x2c,0xac,0x8,0x40,0x4c,0x21,0xbf,0x3f,0xf3,0xc1,0x2e,0x40,0x78,0x93,0x80,0xc0,0x1f,0xd4,0xc5,0x3f,0xef,0x88,0x97,0xc0,0xf5,0x73,0x52,0xc0,0xa5,0x7f,0xee,0xbf,0x54,0x6b,0xf9,0xbe,0x25,0xfe,0x96,0xc0,0x50,0xd8,0xfe,0x3d,0x40,0x5c,0x4c,0x3f,0x8a,0xfe,0xfd,0xbf,0x8,0x96,0xcf,0x3f,0xcd,0xcf,0x8b,0x40,0x8a,0xa4,0x5a,0xbf,0xd6,0x6c,0x2a,0xc0,0x88,0xbb,0x8d,0xc0,0x36,0xaa,0x69,0xc0,0xed,0xfc,0x30,0xc0,0x59,0x91,0x6c,0xc0,0xc0,0x9d,0xfb,0xbf,0x7c,0x48,0x30,0x40,0x29,0x45,0xc8,0x3f,0x3c,0x36,0x90,0x40,0x2,0xdb,0x9e,0x40,0xe7,0x77,0xe6,0xbf,0xdf,0xa2,0xfa,0xbf,0x5e,0x29,0x2f,0x3f,0x70,0xcf,0x7e,0xc0,0xd8,0xd,0x2e,0x40,0x28,0x5f,0x66,0xbf,0xfe,0xf8,0x85,0xc0,0x18,0x98,0x71,0xc0,0x7a,0x80,0x5c,0xc0,0xc7,0xe7,0xaf,0x3f,0x74,0x4d,0x75,0x40,0x56,0x85,0x7d,0x40,0x29,0x3a,0xb0,0xbf,0xb8,0xdf,0x39,0xc0,0xf4,0x6,0xe,0xc0,0x24,0x99,0x5a,0xc0,0x81,0x1,0xa5,0xbf,0xb4,0x80,0x90,0xc0,0x9,0xa,0x2b,0x40,0x5c,0x97,0x96,0xc0,0xb6,0xe,0x47,0xc0,0x88,0xc0,0x56,0x40,0xea,0x5c,0x6f,0xc0,0x5c,0x0,0x99,0x3f,0x5,0xb0,0x6f,0x40,0xd6,0xb6,0x9d,0x40,0xac,0xea,0x21,0x40,0x15,0xc1,0xab,0xbf,0xfe,0xdb,0x36,0x40,0x58,0xf9,0x28,0xbe,0x75,0x56,0xc5,0xbf,0x0,0x66,0x85,0x3c,0xcd,0x8e,0x8f,0x3f,0xfc,0x90,0x56,0x40,0x14,0x53,0x6,0x40,0x4,0xcc,0x18,0x40,0x1e,0x7c,0x3f,0x3f,0x50,0xd9,0x80,0xbe,0xf3,0x5d,0x6,0x40,0x30,0xef,0x99,0x3f,0x39,0x1a,0x99,0xc0,0xbc,0xf1,0x4e,0x3f,0x2,0x1c,0xe,0xc0,0x0,0xb2,0x29,0xc0,0xe5,0x81,0xf7,0x3f,0x6b,0xdf,0x82,0x3f,0x6e,0xc2,0x58,0x3f,0x7e,0xcd,0x17,0xc0,0x1b,0xdd,0x13,0x40,0x2a,0x26,0x96,0x40,0x6c,0x97,0x1c,0x3f,0x48,0x87,0x3,0x40,0x5b,0x5f,0x8c,0xc0,0xc,0x3d,0x3e,0x40,0xe,0x54,0xde,0x3f,0x42,0x2b,0x10,0x40,0xa6,0x71,0x5,0x40,0xf2,0x55,0xa8,0xbf,0xc,0xaa,0x99,0xbe,0x48,0xc3,0x9a,0x40,0xcf,0x27,0x6a,0x40,0x4e,0x5f,0x65,0xc0,0x44,0xe5,0x7d,0x40,0xaf,0x3c,0x9f,0x40,0xa2,0x55,0x28,0x3f,0x85,0xa8,0x79,0xc0,0xb2,0x1d,0x78,0x3f,0x42,0x41,0x81,0xbf,0x68,0x13,0x66,0x40,0xb7,0xb9,0x99,0xc0,0x3a,0xc7,0xa3,0x3f,0x20,0x35,0x70,0xbd,0xcc,0x87,0xc9,0x3e,0x1c,0x20,0x5c,0x40,0xa0,0xfb,0xb8,0x3d,0x1c,0xd0,0x80,0xc0,0x0,0xab,0x3a,0xc0,0x16,0x21,0x0,0xc0,0x30,0x83,0x8,0x3f,0xd7,0xf9,0xf6,0x3f,0xb6,0xeb,0x6e,0xbf,0x10,0x98,0xfc,0xbf,0x3,0x6b,0xc,0x40,0xbc,0x91,0x9b,0xc0,0x29,0x9c,0x5f,0x40,0xe0,0xcb,0x14,0xbf,0x56,0xaa,0x5e,0x40,0xe4,0xcb,0x71,0x40,0xa,0xbd,0x8,0x3f,0x12,0x73,0xca,0x3f,0x7c,0xfe,0x34,0xc0,0x60,0x46,0x65,0x40,0x60,0x4b,0x3b,0x40,0xa,0x9,0x49,0xbf,0x18,0x75,0xf9,0x3f,0xd4,0x64,0x8f,0xbe,0x48,0x3,0x7a,0x40,0xf4,0xb9,0x3,0x40,0x86,0x4b,0x69,0x40,0xc7,0x6f,0x91,0xc0,0x6c,0xe4,0x9b,0x40,0xbb,0x73,0xee,0x3f,0x7,0x94,0x1b,0x40,0x57,0x9c,0x8e,0x3f,0xfe,0x2b,0x52,0x40,0xa0,0xa0,0x96,0x40,0x64,0x16,0xda,0xbe,0x83,0x48,0x83,0xc0,0x11,0xec,0x92,0x40,0x76,0xf8,0x86,0xbf,0x11,0x54,0x1a,0xc0,0xc8,0xfc,0x44,0x40,0xcb,0x95,0x32,0x40,0x82,0x5e,0x2b,0x3f,0x70,0xb2,0xa0,0xbe,0x78,0xdd,0x74,0xbf,0x9e,0xb4,0x92,0x40,0x9c,0xf8,0x42,0x40,0x4c,0x92,0x3e,0x40,0x98,0xe,0x4c,0x40,0x98,0x79,0x27,0xc0,0x1,0xa1,0x85,0x3f,0x12,0x6a,0x8a,0xc0,0xd4,0xe9,0x39,0x40,0xde,0x97,0x9e,0xc0,0x98,0xe7,0x9f,0xc0,0x39,0x28,0x9e,0xc0,0x67,0x55,0x45,0x40,0xa4,0x35,0x5,0x3f,0x0,0x4a,0x3a,0x3c,0x10,0x97,0x4b,0x3f,0x73,0x35,0xf2,0xbf,0x35,0x58,0xc2,0xbf,0xaa,0x8c,0x57,0xc0,0x80,0x4c,0x9c,0xbf,0x5e,0xe8,0x44,0xc0,0xc8,0xb5,0x6,0x3e,0xf,0x6d,0x7b,0x40,0x50,0x45,0x84,0xc0,0xe8,0x5d,0x1d,0x40,0xef,0x3,0x6e,0xc0,0x6a,0x95,0x4,0xc0,0xfa,0x4b,0x7a,0x3f,0xf8,0x3e,0x5c,0x3f,0x50,0x36,0x83,0x40,0x0,0x28,0xf5,0xba,0x7c,0xc1,0xf3,0xbf,0x83,0x57,0x4,0xc0,0xa8,0x1b,0x16,0x3e,0xfa,0xf1,0x6f,0xc0,0xf,0xe6,0x7a,0xc0,0x8e,0xea,0x8,0xc0,0x28,0x86,0x3,0x3e,0xf2,0x1b,0x58,0xc0,0xa8,0xaa,0x36,0xc0,0x7d,0x7a,0x64,0x40,0xe9,0xdb,0x93,0x40,0x78,0x78,0xc8,0xbf,0x20,0x45,0x89,0xc0,0xb8,0x6,0xf5,0xbf,0x18,0x27,0x1,0x40,0x70,0xb5,0xcf,0x3f,0x5a,0x66,0xc6,0xbf,0x44,0xea,0x8c,0xc0,0xba,0x70,0xc0,0xbf,0xc5,0x19,0x8f,0xbf,0xae,0x46,0x38,0x40,0xac,0xad,0x1e,0xc0,0x82,0xd,0x40,0x40,0x46,0x8f,0x31,0x3f,0x98,0x86,0x56,0xbf,0xbc,0x96,0x8e,0xc0,0x78,0xf6,0x9d,0x40,0xdc,0x3e,0x64,0xbf,0xf2,0x57,0x49,0x40,0xa1,0x86,0x25,0xc0,0x1b,0xd0,0x9b,0xc0,0x98,0x12,0x7f,0xc0,0xcb,0xfe,0x23,0xc0,0xd5,0xd1,0xcb,0xbf,0xd0,0xc0,0x34,0xbf,0x3a,0x71,0x85,0x40,0xb5,0x8f,0x93,0xc0,0xa3,0xb7,0x1f,0x40,0xeb,0xa0,0x86,0x40,0x60,0xd0,0x3,0x3d,0xc2,0x90,0x47,0xc0,0x58,0xc2,0x23,0x3e,0x38,0xd5,0x97,0x3f,0x63,0x96,0xd,0x40,0x4e,0x8a,0xc2,0xbf,0x32,0xa1,0xdb,0xbf,0x76,0xf7,0x16,0xc0,0x17,0xc1,0x9a,0xc0,0xd,0xc6,0xe0,0x3f,0xbc,0xec,0x71,0xc0,0x7e,0xba,0x19,0xc0,0x20,0xc1,0x52,0xbd,0x76,0xb0,0x76,0x40,0x2,0x43,0x8e,0x40,0x58,0xc1,0x68,0xc0,0x14,0xc4,0x8a,0x40,0x31,0x53,0x8f,0x40,0xf7,0x40,0x81,0x40,0x8,0xe1,0xde,0x3e,0xdb,0x80,0x80,0x40,0x24,0x7a,0x1b,0x40,0x7b,0x9e,0x65,0xc0,0x2a,0xaa,0x28,0xc0,0xa0,0x94,0xc0,0x3d,0x8,0xc7,0x62,0xc0,0x8d,0xbd,0xd2,0xbf,0xa8,0xff,0x80,0x40,0x46,0xfc,0x14,0x40,0x37,0x57,0x8b,0x40,0x20,0x1,0x1d,0x3d,0x13,0x2b,0x23,0xc0,0x96,0xca,0x53,0x40,0x9c,0xba,0xbc,0x3e,0x8a,0x8e,0x57,0x3f,0x56,0x95,0x7,0xc0,0x5a,0x72,0x3,0x40,0xb6,0x55,0x6c,0xc0,0x3c,0x5a,0x7f,0x40,0x8f,0xf9,0x8b,0x40,0x17,0xed,0xe6,0x3f,0x3e,0x31,0x79,0x40,0xd5,0x3a,0x42,0x40,0x57,0x6d,0xf4,0xbf,0xfa,0xc5,0x8a,0xc0,0x74,0x6f,0x28,0x3f,0x9e,0xeb,0x48,0x40,0x26,0xf2,0x2,0xbf,0xd0,0x66,0xd7,0x3e,0x8c,0x2e,0x6d,0x40,0x26,0x20,0x4,0x40,0x8f,0x3a,0x6f,0x40,0xaa,0xf3,0x3b,0x3f,0x36,0x7b,0xf,0x3f,0x1e,0x16,0x99,0xbf,0x8c,0xff,0x57,0xbf,0xaa,0x11,0x2a,0xc0,0xce,0xf1,0x55,0x40,0x88,0xed,0x91,0x40,0x7a,0x83,0xed,0x3f,0x80,0x7a,0x11,0x3e,0x6a,0x44,0xd3,0xbf,0x1d,0xf9,0x9d,0xc0,0xa,0x3,0x6d,0xbf,0x84,0x2b,0x63,0xc0,0x70,0x3e,0x6c,0xc0,0x4,0x76,0x7d,0xbf,0x86,0xcd,0x7b,0xbf,0xbe,0x1a,0x81,0x3f,0x38,0xf1,0x67,0xc0,0x85,0xf8,0x65,0x40,0x18,0xac,0x91,0xc0,0xc2,0x8c,0x17,0xc0,0x26,0xfa,0xf2,0xbf,0x0,0xd5,0x9d,0x3e,0x26,0x48,0x4,0x40,0x12,0xa9,0xa8,0xbf,0xaa,0xc4,0x47,0x3f,0xae,0x82,0x97,0xbf,0xec,0xb7,0xfb,0xbf,0xd8,0xa,0x33,0xbf,0xda,0xdb,0x80,0x3f,0x8a,0x6a,0x9b,0xc0,0xdd,0xbb,0x5e,0xc0,0x19,0x0,0x7a,0x40,0xfd,0xb2,0x10,0x40,0x78,0xe5,0x8,0xbe,0xf8,0xb0,0x21,0x3e,0x54,0xaf,0x30,0x3f,0xf,0xc0,0x94,0x3f,0xec,0x79,0x5a,0xc0,0xbe,0x74,0xae,0xbf,0x1a,0xd8,0x92,0xc0,0x56,0x94,0x7b,0xc0,0xba,0xd6,0x70,0xbf,0xdc,0x1,0x29,0xbf,0x68,0x49,0x7a,0x40,0x5e,0x79,0x5c,0x3f,0xea,0x8b,0x4f,0xbf,0xd0,0xd8,0xd,0xbe,0xb0,0xb7,0x32,0x40,0x31,0xdf,0xc1,0xbf,0xbc,0x49,0x6f,0xbf,0x71,0x63,0x80,0xbf,0x8,0x5,0x81,0xc0,0x6c,0xe5,0x32,0xbf,0x22,0xe9,0x93,0xc0,0x84,0x1,0x2c,0xc0,0x36,0xaf,0x4b,0xc0,0x54,0x60,0x6e,0x40,0xb4,0x63,0x93,0xc0,0x44,0x2a,0x9a,0x40,0x63,0xf7,0xef,0x3f,0xfc,0x40,0x58,0xc0,0xee,0x8e,0x84,0x40,0xb6,0x7,0x8d,0xbf,0x82,0x84,0x87,0xc0,0xa0,0xc1,0x31,0xbf,0xb2,0x25,0x1e,0x40,0xf4,0x90,0x9b,0xc0,0x7c,0xd7,0xbf,0xbe,0xde,0x33,0x2,0x40,0x99,0x6c,0xf9,0xbf,0xc0,0x28,0xe9,0x3e,0xa3,0xd4,0xfa,0xbf,0xf4,0xaf,0x56,0xc0,0xe2,0x9a,0x7a,0x40,0x1c,0x37,0x63,0xc0,0x40,0x1a,0x70,0xbd,0x84,0x28,0xd5,0x3f,0xd4,0xd4,0x32,0xc0,0x62,0x82,0x1a,0x40,0x98,0xdf,0x84,0xc0,0xe3,0xce,0x98,0x40,0xcc,0x83,0xe,0x40,0xf0,0x36,0x35,0xbf,0x24,0x18,0x85,0xc0,0x18,0xe5,0x1d,0x3e,0x91,0x3,0xe3,0x3f,0x86,0xcb,0x2d,0xc0,0xcc,0x32,0x21,0xbf,0xc5,0x73,0x9f,0xc0,0xd5,0xf3,0x9f,0xc0,0x8a,0x3,0xb,0xbf,0x1a,0xe1,0x85,0x40,0xb0,0xf9,0x70,0xbe,0xcd,0xa5,0xc8,0x3f,0x6f,0xd1,0xff,0xbf,0x20,0xfa,0xd0,0xbf,0x16,0xb2,0xc,0xbf,0x2a,0xc5,0x21,0xc0,0x2,0xd0,0x43,0x40,0x3e,0x8d,0x47,0x40,0xa6,0xc4,0x78,0xc0,0xdf,0x4c,0xc4,0x3f,0x90,0x31,0x4,0xc0,0x9c,0x3,0x38,0xc0,0x72,0x28,0x1c,0xbf,0xfe,0x80,0xc6,0xbf,0x74,0x34,0x36,0xc0,0x30,0xa4,0x3c,0x3f,0xc6,0xa5,0x36,0x40,0x3e,0x83,0x45,0xbf,0x34,0x13,0xb3,0xbe,0x68,0xa4,0xc0,0x3e,0x74,0x87,0x9,0xc0,0x62,0x69,0x29,0x40,0xea,0xa0,0x93,0x40,0x58,0xf9,0xe9,0xbe,0x14,0x6,0xae,0x3e,0xf4,0xea,0x80,0x40,0xa8,0xc,0x83,0x40,0x4b,0xc,0x6e,0xc0,0x5d,0x31,0x14,0xc0,0xdc,0xf2,0x9c,0xc0,0x4b,0xff,0x43,0x40,0xd6,0xc2,0x79,0x40,0x72,0xef,0xe8,0xbf,0x87,0x4b,0xcd,0x3f,0xa3,0x7,0x9b,0x3f,0x41,0xa8,0x89,0xc0,0xd1,0x92,0xff,0x3f,0x9a,0x4,0x1d,0x40,0xe0,0x33,0xe1,0x3d,0x98,0x43,0x3,0x3f,0x35,0xb8,0x94,0x3f,0xd4,0x87,0x66,0x40,0xd,0x5f,0x8d,0x40,0x72,0xf8,0x37,0x3f,0xf2,0x66,0x8,0x40,0xbf,0x70,0xa7,0xbf,0x10,0xc9,0x3e,0x40,0xb8,0xbe,0xfb,0xbf,0xe2,0xe2,0x83,0xc0,0xc6,0x22,0x16,0x40,0xe,0x5e,0xed,0x3f,0x76,0xde,0x8c,0x3f,0x62,0x26,0x8,0x40,0xd0,0x50,0x18,0x3f,0x22,0xd1,0xd9,0x3f,0x2,0x65,0x2,0x40,0x72,0x9f,0x2c,0xc0,0x4c,0x2a,0x89,0xbe,0xea,0xe5,0x40,0x3f,0x56,0x55,0x42,0xbf,0x83,0x86,0x86,0xc0,0xf4,0xd6,0xf2,0x3e,0x9a,0x90,0x43,0x40,0xb2,0x22,0x2b,0xc0,0xe2,0x16,0x9d,0x40,0xdd,0xf4,0x91,0x3f,0x20,0x19,0x8,0x40,0xe,0x22,0xf7,0xbf,0xd0,0xe1,0x82,0xc0,0xbf,0x2e,0xee,0xbf,0xd8,0x6c,0x1c,0x3e,0xca,0xd0,0x11,0xc0,0x9a,0x7d,0x8e,0x40,0x8e,0xcf,0x4c,0xc0,0x30,0x87,0x57,0xc0,0xfb,0x2,0xe3,0xbf,0x58,0x8b,0x8f,0x40,0x54,0x52,0x12,0xc0,0x65,0x5,0x94,0x40,0x2f,0xc8,0x19,0x40,0xac,0x7c,0x42,0xbf,0xab,0x81,0x25,0x40,0x73,0x21,0x18,0x40,0x9f,0xe0,0x22,0xc0,0x82,0xc2,0x83,0xbf,0xdd,0xfa,0x9a,0x40,0x6a,0x76,0x37,0x40,0x68,0x4b,0x1c,0xc0,0xc4,0x16,0xac,0xbf,0x82,0x5b,0x33,0x40,0xf6,0x73,0x22,0x40,0x10,0xed,0xca,0x3e,0xde,0xe6,0x4d,0xc0,0x68,0x5,0x6c,0xc0,0x90,0x15,0x87,0xbf,0x93,0x4e,0xeb,0x3f,0x6,0x76,0x8,0xbf,0xf0,0xc5,0x85,0xc0,0xd4,0xd9,0x9c,0xbf,0xe0,0xb4,0x9f,0x40,0x3a,0x3e,0x84,0xc0,0xba,0x59,0x78,0xc0,0x56,0x29,0x49,0x40,0x7d,0x33,0x9f,0x40,0x0,0xea,0x99,0xc0,0xcd,0xb5,0x90,0xc0,0x6e,0x1e,0xc8,0xbf,0x8d,0x86,0x9f,0x40,0x3a,0x9e,0x35,0xc0,0xf8,0xe0,0xda,0x3e,0xc0,0x9c,0x82,0x40,0xd2,0x90,0xe2,0xbf,0x10,0x44,0xc4,0xbf,0x6e,0xcb,0x56,0xc0,0xc8,0x95,0x44,0x3e,0x2e,0x57,0x95,0x40,0x25,0xda,0x2,0x40,0xc0,0xec,0x60,0x40,0x70,0x9a,0xa9,0xbe,0x34,0x50,0x4b,0xbf,0x5e,0xad,0x64,0xbf,0xd0,0x82,0x36,0x40,0xf8,0xd7,0x27,0xbf,0xdb,0xab,0x88,0xc0,0x21,0xbc,0xe0,0xbf,0x9c,0x77,0xfa,0x3f,0xe7,0xfe,0x9b,0x40,0xd0,0xbe,0x68,0xbf,0x64,0x4e,0x8b,0xc0,0x29,0x9f,0x6b,0xc0,0x32,0xc7,0x7b,0xc0,0x3c,0xfe,0x0,0x40,0x96,0xe1,0x6b,0x40,0x2a,0x45,0xbd,0x3f,0x31,0xab,0xdc,0x3f,0x47,0x79,0x50,0x40,0x5f,0xca,0x5a,0x40,0x14,0x15,0x3f,0x40,0xa6,0xf1,0x32,0x40,0x70,0x2d,0xad,0x3f,0x15,0x2c,0x25,0x40,0xa8,0x92,0x5b,0xc0,0x1e,0x1f,0x4f,0xc0,0x8e,0x1f,0xac,0x3f,0x42,0x32,0x47,0x3f,0xd6,0xa8,0x8c,0xc0,0x96,0x1e,0x69,0xc0,0x7e,0xbe,0x7e,0xc0,0xd5,0x26,0x7e,0x40,0x2c,0x37,0x51,0x40,0xa0,0x6e,0x28,0xc0,0xaa,0x20,0x41,0x3f,0x65,0x34,0x93,0xbf,0x9a,0x17,0x8b,0x40,0xe6,0xea,0x90,0xc0,0xf0,0x73,0x69,0xc0,0xdf,0x35,0x85,0xc0,0xac,0x3b,0x3a,0x40,0xca,0xf6,0x1f,0xc0,0x5d,0x98,0x3e,0x40,0x3e,0x57,0xd8,0x3f,0xe2,0x69,0x1c,0xc0,0xe5,0x68,0xac,0xbf,0x9a,0x7f,0x1,0xc0,0xff,0x2c,0xd,0x40,0x8f,0x54,0x0,0xc0,0x3a,0x32,0xd9,0x3f,0xc0,0xe2,0xb6,0x3e,0xd6,0x8d,0x7f,0xc0,0xe4,0x27,0x49,0xc0,0x2e,0xe1,0x5d,0xc0,0xa8,0xad,0x27,0x40,0xe,0xad,0x8a,0x3f,0xb8,0xbc,0x0,0xbe,0x8c,0x8a,0x3e,0xc0,0x79,0x87,0x9e,0xc0,0xbe,0x7c,0xe2,0xbf,0xdb,0xe8,0x74,0xc0,0x6d,0x25,0x9f,0xc0,0x5,0x9a,0x98,0xc0,0xb0,0x5,0x51,0xc0,0xe2,0x8a,0x9b,0xc0,0x25,0x81,0xc7,0x3f,0x6f,0x78,0xef,0x3f,0x51,0xfb,0x0,0x40,0x78,0x47,0x9f,0xc0,0x2,0xe0,0x45,0x40,0xaa,0x8d,0x79,0x3f,0xd6,0xa0,0x23,0x40,0x11,0x4c,0x9d,0xbf,0x2e,0xab,0x19,0x40,0x14,0xbf,0x97,0xc0,0x19,0xfd,0xd9,0x3f,0x97,0xbf,0x7d,0x40,0x56,0x84,0x6,0x40,0x6c,0xd1,0x96,0xc0,0xbb,0xa9,0xb3,0xbf,0x9e,0xf4,0x1e,0xbf,0x4c,0xaa,0x27,0x40,0x67,0x2d,0xf2,0xbf,0x24,0x19,0x38,0x3f,0x2c,0xac,0xe0,0xbf,0xba,0x56,0x4b,0xbf,0x20,0xd7,0xcb,0xbd,0xd0,0xbf,0x37,0xc0,0x23,0x1c,0x5e,0xc0,0x0,0x16,0x84,0x40,0x90,0x6e,0x86,0x40,0xb8,0x1,0x1b,0xbe,0xb5,0x7d,0x8a,0x40,0x60,0x96,0x76,0x40,0xe4,0x8f,0x49,0xc0,0x4d,0x4f,0xfe,0xbf,0x81,0xca,0x5b,0xc0,0xe,0xeb,0xce,0x3f,0x48,0x7c,0x1,0x3e,0x12,0x89,0x2f,0xbf,0xe4,0x96,0x6d,0x40,0x37,0x28,0xfa,0xbf,0x12,0x22,0x2f,0xc0,0xf8,0x7a,0x63,0xc0,0x16,0xcb,0x22,0xc0,0x6c,0x36,0x9a,0x40,0xbb,0x94,0x1b,0xc0,0x1d,0x19,0xb0,0xbf,0x85,0x3a,0x10,0x40,0x42,0xc5,0x75,0xc0,0xd,0x3a,0x42,0xc0,0xcc,0x85,0x6b,0x40,0xb0,0x77,0xf5,0xbf,0xe3,0xc,0x26,0xc0,0xb0,0x9a,0x25,0xbf,0xd6,0x63,0x36,0xbf,0xb0,0xec,0x69,0x3f,0x3a,0xa3,0xea,0x3f,0x1a,0xbc,0x76,0xc0,0xe2,0x66,0x91,0x40,0xda,0x1e,0x98,0xc0,0x1e,0xc2,0xd8,0x3f,0x7f,0x94,0xb4,0xbf,0x74,0x22,0x7,0xc0,0xd3,0xaa,0x95,0x40,0x3c,0x2f,0x9a,0xc0,0x70,0xd6,0xae,0x3e,0x14,0xd,0x4d,0x40,0x0,0xa,0x8f,0x40,0x35,0x44,0x87,0xc0,0x28,0x38,0x1a,0x3f,0x0,0x4d,0x9e,0x40,0x82,0xb9,0x9c,0xc0,0x3e,0x52,0x9c,0x3f,0xb1,0x80,0x48,0xc0,0x7e,0xca,0x4f,0x3f,0xc7,0xbb,0x90,0xc0,0xec,0x70,0x1d,0x40,0x22,0xfa,0x8d,0xbf,0xe8,0x3e,0x3f,0x40,0x0,0xfc,0x99,0xbd,0x62,0x73,0x36,0xbf,0x99,0x61,0x9b,0xbf,0xaa,0x80,0x92,0xc0,0x6a,0xec,0x7,0xc0,0x88,0x9,0x2a,0x3e,0x1e,0x91,0x77,0xc0,0x8a,0x6a,0x8c,0x40,0xf8,0x1d,0x50,0xc0,0xc3,0x56,0xf9,0xbf,0x46,0x2c,0x2b,0xbf,0x2a,0x9c,0x81,0xc0,0x20,0xcf,0x21,0xbd,0x4,0x18,0x1a,0xc0,0x1e,0xed,0x85,0xc0,0x0,0x2c,0xfb,0x3d,0x69,0xa5,0x8d,0x40,0x7d,0x99,0x9d,0x3f,0x61,0xf7,0x83,0x40,0x40,0x47,0x48,0xbd,0x90,0x62,0xdf,0xbf,0xa,0xf4,0x80,0x40,0xde,0x67,0x2a,0xc0,0x4e,0x4,0x94,0xc0,0x7a,0x12,0x8c,0x3f,0xdb,0x7a,0x1f,0x40,0xe3,0x48,0x3f,0xc0,0xd7,0x41,0xe1,0x3f,0xad,0xf,0xe3,0xbf,0x84,0x4e,0x1b,0xbf,0x21,0xb5,0x8d,0xbf,0x2e,0xe4,0x88,0xbf,0xa6,0x2f,0x82,0xc0,0x7e,0xda,0x9c,0x3f,0x17,0x59,0xa8,0xbf,0xf2,0xae,0x74,0x40,0x84,0xa5,0x55,0x3f,0xf4,0xd9,0x82,0xc0,0xfc,0x70,0x73,0xc0,0xb8,0xc5,0x26,0xc0,0x9e,0x3d,0x19,0x40,0x4a,0x9b,0x4e,0xc0,0x2e,0x64,0x12,0xc0,0x28,0x62,0x68,0x3f,0xf6,0xda,0x5d,0xc0,0x7c,0x93,0x1d,0xc0,0xeb,0x15,0x91,0x40,0x96,0x2e,0x29,0xc0,0xdb,0x3a,0xd5,0xbf,0x3a,0xdd,0x64,0x40,0xf2,0x69,0x8f,0x3f,0xfa,0x2a,0x7b,0x40,0x59,0xf5,0x8c,0xc0,0x58,0xf3,0x1f,0x40,0x40,0xc9,0x43,0xbf,0xc0,0x1,0x4d,0xc0,0xc,0xe,0x9,0xc0,0x8d,0xc3,0x9a,0xc0,0x3a,0x5e,0x5d,0x40,0xa0,0x9b,0x75,0xbf,0x1a,0xe3,0x9c,0xc0,0xac,0xd5,0x88,0x40,0x5,0x44,0x4f,0x40,0x80,0x50,0x4,0x40,0xcb,0x98,0x9c,0x40,0x19,0x7d,0x90,0x40,0x84,0x87,0x95,0x40,0xba,0x48,0x8f,0x40,0x44,0x7,0x82,0x40,0x86,0x8b,0xa7,0x3f,0x84,0x63,0xd6,0xbe,0xc8,0xb5,0x42,0x3e,0x1f,0xfc,0x4,0xc0,0xbe,0x5a,0x16,0x40,0x58,0x54,0x14,0x3e,0x1f,0xfe,0x96,0x3f,0x93,0x20,0x4e,0xc0,0x6e,0xfa,0xf0,0xbf,0xa5,0xe7,0x6f,0x40,0x40,0xfd,0xf8,0x3e,0xd8,0xdb,0xdc,0x3f,0x62,0xae,0x8b,0xc0,0x48,0x8,0x9,0xc0,0x98,0x4e,0x2,0xbe,0x46,0x51,0x6,0xbf,0x36,0x45,0x4c,0x40,0x6a,0x24,0xc1,0xbf,0x1c,0x89,0x85,0x40,0xdc,0x8f,0x77,0xbf,0x64,0xed,0xf8,0x3f,0xfa,0x49,0x61,0xc0,0x3e,0x42,0x59,0x3f,0x6b,0xfd,0x9b,0xc0,0x36,0x47,0x89,0xc0,0x3a,0xcd,0x4c,0xc0,0x25,0x2c,0xb3,0x3f,0x0,0x6b,0xc6,0x3e,0xac,0xc4,0xf7,0x3e,0x6a,0x4,0xc,0xbf,0xa0,0x70,0x86,0x40,0x6b,0xbc,0x9c,0x40,0x7a,0xe6,0x7,0x40,0x49,0x7b,0x7e,0x40,0x70,0xa,0x7d,0xbe,0xcb,0x48,0xeb,0xbf,0x6,0xd8,0x78,0x3f,0x55,0x69,0x52,0x40,0x7a,0xd3,0x45,0xbf,0xc8,0xb4,0x75,0xc0,0xdc,0x59,0xd3,0x3f,0x64,0x25,0xa3,0xbf,0xf7,0x9,0x1a,0xc0,0x82,0x1e,0x4a,0x40,0xc0,0xc8,0x2d,0xbe,0x80,0xeb,0x36,0xc0,0xa4,0x7a,0x3f,0xc0,0x80,0xae,0x96,0x40,0xab,0x24,0x50,0x40,0x74,0x75,0x65,0xc0,0x0,0xa4,0x1c,0x3b,0x10,0x8a,0xdd,0xbd,0x54,0x88,0x18,0x40,0xb5,0x8,0x89,0xc0,0x50,0x30,0x98,0x3d,0xe2,0x3d,0xd5,0x3f,0x56,0xd9,0x22,0x40,0x34,0xd7,0x5,0x3f,0x5a,0x9d,0x1e,0xc0,0x32,0x9a,0x99,0xc0,0xdc,0xf6,0x2c,0x40,0xfa,0x12,0x92,0x40,0x8b,0x3a,0xc1,0xbf,0x11,0xfc,0x8e,0xc0,0x44,0x41,0xbb,0x3f,0xfe,0x59,0x60,0xc0,0xaa,0x13,0x51,0xc0,0x78,0x74,0xae,0x3f,0xb0,0x1a,0xf3,0xbe,0xf8,0x21,0xae,0xbe,0x1,0x83,0x8f,0x40,0xd2,0x83,0x60,0xbf,0x87,0xc9,0x42,0x40,0xd7,0x2e,0xc7,0xbf,0x3,0x1d,0x6e,0x40,0x11,0x3f,0xc3,0x3f,0x61,0x93,0x8e,0x40,0x6,0x38,0xdf,0x3f,0x0,0xb3,0xe2,0xbf,0x26,0x79,0xb,0x40,0x9,0x51,0x88,0x40,0x40,0x9a,0x72,0x3f,0x78,0x87,0x13,0x40,0xa0,0x20,0x61,0xc0,0x3c,0x63,0x2d,0x40,0xa,0x3f,0x97,0xc0,0x86,0x71,0x8d,0x40,0xe7,0x2a,0x4,0x40,0x34,0x78,0xa8,0x3e,0xa5,0xc0,0x95,0xc0,0x6e,0x7f,0x91,0x40,0x91,0xb,0x4c,0x40,0xbb,0x7f,0x93,0x40,0x49,0x97,0xfb,0x3f,0xa3,0x89,0xd7,0x3f,0xa,0xc8,0xa5,0xbf,0xf5,0x22,0x3,0xc0,0xa9,0xb2,0xfd,0x3f,0x96,0xf4,0xdd,0x3f,0x98,0xfd,0x25,0xbe,0x50,0x98,0x4b,0x3f,0x45,0xd9,0xdb,0x3f,0xf8,0x9d,0x9a,0xc0,0xb6,0x7e,0x8d,0xc0,0xd8,0x5e,0xaa,0xbf,0x6e,0xf0,0x59,0x40,0x50,0x1f,0x1c,0x40,0xc3,0xb6,0x98,0xc0,0xbc,0x28,0xc0,0xbf,0x80,0x4d,0x7,0xbf,0xc7,0x33,0xd2,0x3f,0x3e,0xe6,0x82,0x40,0x0,0xf7,0xdf,0x3d,0x62,0x15,0x79,0xc0,0x44,0x14,0x9d,0x3e,0x9d,0x24,0xf7,0xbf,0xbf,0x90,0x43,0xc0,0xae,0x3e,0x31,0x40,0x74,0xf8,0x2b,0xbf,0xae,0x34,0x17,0x40,0xb0,0x2b,0x79,0x40,0xd8,0x99,0xfb,0x3e,0x54,0x3d,0x34,0x40,0x9e,0x21,0x17,0xc0,0x8,0xa1,0x32,0x40,0x98,0x8b,0x4c,0x3e,0x40,0xa6,0x54,0x40,0x32,0xf8,0x98,0x40,0xbe,0x10,0x72,0xc0,0x2f,0xe4,0x97,0x40,0x9c,0x46,0x74,0x40,0x1a,0xe4,0x80,0xc0,0x4d,0x9c,0xbb,0x3f,0xdc,0x41,0x82,0xc0,0x6c,0x9b,0xcf,0x3f,0x6c,0xf0,0x45,0x3f,0xe2,0xbc,0x98,0xc0,0x3,0x55,0xe8,0x3f,0x9d,0xcb,0xaf,0xbf,0x0,0x7c,0x9f,0x40,0x4a,0x29,0x9c,0x40,0x38,0xef,0xdc,0x3f,0xdc,0x3c,0x7c,0x40,0xd7,0x27,0xe7,0x3f,0x2a,0x60,0x97,0x40,0x30,0x5b,0xec,0xbe,0x20,0x2d,0x9e,0x3f,0x26,0x6f,0x53,0xbf,0xb0,0x14,0xb3,0xbd,0x5,0x11,0xc1,0xbf,0x78,0x48,0xfd,0xbf,0xe8,0x1c,0x39,0x40,0x18,0x52,0x9,0x40,0x96,0x42,0xd,0xc0,0x1c,0x2,0x8d,0xc0,0x62,0x77,0x1c,0x40,0xf2,0x2d,0x93,0xc0,0xf0,0x90,0x62,0xbe,0xbc,0xab,0x89,0xc0,0x12,0xf9,0x85,0x40,0xc8,0x48,0x82,0x40,0xa4,0x7e,0x83,0xc0,0xdf,0xc1,0x94,0xc0,0xf8,0x32,0x3d,0xc0,0x37,0x9a,0xb0,0x3f,0x38,0x6,0x20,0xc0,0xda,0x69,0x98,0xbf,0xa,0x3a,0xa2,0xbf,0x4e,0xcb,0x6a,0x3f,0xa2,0x5c,0x17,0xc0,0x70,0x8a,0x11,0x40,0xde,0xfc,0x64,0xc0,0x18,0xe0,0xe3,0xbe,0xc0,0x1d,0x86,0x40,0x79,0xb2,0x30,0xc0,0x87,0x82,0x75,0x40,0x16,0x8c,0x26,0x40,0x4d,0xbb,0xce,0xbf,0xe3,0xed,0xdd,0x3f,0x2c,0x2f,0x58,0xc0,0x14,0x9,0xce,0x3e,0x6a,0x49,0xb5,0x3f,0xd0,0x64,0x8a,0x40,0xb4,0x10,0x33,0xc0,0xb5,0xfd,0x35,0xc0,0xac,0xb6,0x1f,0xc0,0x1b,0xde,0x9b,0xc0,0xf3,0x6c,0x81,0x3f,0x74,0x71,0x84,0xc0,0xdb,0xcd,0xab,0xbf,0x31,0xc7,0xe,0xc0,0xe0,0x21,0x8f,0x3e,0xaa,0x24,0xc2,0x3f,0x16,0x8a,0x68,0xc0,0xf8,0xef,0xbc,0xbf,0x8c,0x1d,0xf6,0xbe,0x81,0xfc,0x38,0xc0,0xed,0xd8,0x93,0x3f,0xf8,0xec,0xec,0x3f,0xd8,0xe,0x64,0xc0,0xc,0x9f,0x7b,0x40,0x58,0x64,0x63,0x40,0x90,0x45,0xc0,0xbf,0xfa,0x73,0x3e,0x3f,0xa8,0xd9,0x1b,0x3f,0xb4,0x9a,0x30,0xbf,0xa1,0xc3,0x56,0xc0,0xe0,0xd7,0x83,0x40,0x14,0x79,0x1d,0x40,0xfe,0xb4,0x85,0xc0,0x4a,0x1,0x78,0xc0,0x1d,0x27,0x98,0x40,0x56,0x4b,0x4c,0x3f,0x86,0x9,0x93,0xbf,0x46,0xe0,0x58,0x40,0xcb,0xdb,0xb7,0x3f,0xca,0xbd,0xe5,0x3f,0x5a,0xde,0x7d,0x40,0x74,0xcd,0xc7,0xbe,0xc5,0x75,0x98,0x40,0x72,0xc7,0x60,0xc0,0x54,0xb8,0x42,0xc0,0x9a,0xe1,0x58,0x3f,0xea,0x65,0x1b,0xbf,0xc6,0x9b,0x36,0x40,0x8a,0x8,0xae,0xbf,0x1c,0x47,0x49,0x3f,0xfc,0xfb,0x84,0xbf,0x27,0x3d,0x70,0x40,0xb8,0xea,0xa7,0xbe,0x80,0x2d,0x9d,0x3d,0xe,0x6e,0x6a,0x40,0x6c,0x8c,0x9b,0x40,0xc7,0x18,0x99,0x40,0x92,0x6f,0x9c,0xc0,0xc6,0xd1,0x34,0xc0,0x94,0xf9,0x8a,0xbf,0xac,0x1f,0x84,0xbf,0xa0,0x19,0x39,0x40,0xea,0x86,0x10,0x40,0x88,0x90,0xd2,0xbe,0x40,0x95,0xf2,0x3d,0xf7,0x1f,0x89,0x3f,0xd8,0xed,0x89,0x40,0x8,0xd4,0x25,0x40,0x3b,0x69,0x21,0xc0,0xf,0xed,0x23,0xc0,0xf2,0x65,0xca,0x3f,0x7a,0x77,0x1,0xbf,0x5,0x4b,0x4d,0xc0,0x30,0xdc,0x9a,0xc0,0x1c,0x59,0x37,0x3f,0x14,0xe5,0xba,0xbf,0xfe,0x2f,0x3a,0xc0,0xe2,0xc7,0x70,0x3f,0x35,0xce,0x9b,0x40,0xa0,0xe4,0x84,0x40,0x96,0x73,0x36,0x40,0x44,0x58,0x71,0xc0,0x2e,0xa2,0x36,0x40,0x82,0x82,0x25,0x40,0x15,0x88,0xd5,0x3f,0xc,0x6d,0x9f,0xbf,0x30,0x4f,0xb2,0xbd,0x4a,0x91,0x2d,0xc0,0x27,0x2a,0x90,0xbf,0xe6,0xb4,0x52,0xbf,0x20,0x52,0x35,0xbf,0xf0,0x3a,0x9f,0xc0,0xb4,0xc8,0xe1,0x3f,0x1b,0xe9,0x82,0xc0,0x8c,0x4e,0x6f,0xc0,0xda,0x9,0x2,0x40,0x2,0xf9,0x82,0xc0,0x31,0xa3,0x98,0x40,0x14,0x35,0x99,0x40,0x69,0x61,0xcb,0xbf,0x94,0x98,0x5c,0xbf,0x50,0xd1,0x74,0xc0,0xdc,0x43,0x9e,0x3e,0xa4,0x7,0x6a,0x3f,0x70,0x8a,0x2f,0xc0,0x85,0xb1,0xc8,0x3f }); + // [-0.19242525 -1.4738947 -0.01729846 -4.8466244 -3.5221612 0.66183805 4.828 + Tensor *b = NN_tensor(1, (size_t[]){ 71 }, DTYPE_F32, (uint8_t[]){ 0x20,0xb,0x45,0xbe,0x95,0xa8,0xbc,0xbf,0x80,0xb5,0x8d,0xbc,0x8c,0x17,0x9b,0xc0,0x17,0x6b,0x61,0xc0,0x38,0x6e,0x29,0x3f,0xfc,0x83,0x9a,0x40,0xd7,0xab,0x3d,0xc0,0x76,0x25,0x4d,0x40,0x20,0x4a,0xea,0x3e,0x8d,0xac,0x9,0xc0,0x0,0x83,0xb3,0x3b,0x86,0x6a,0x19,0x40,0x42,0x48,0x18,0x3f,0x90,0xa2,0x8d,0x40,0xe6,0x3f,0x72,0xbf,0x9c,0xb0,0x55,0xc0,0x7,0x95,0x90,0x40,0xd0,0xc8,0xb6,0xbf,0x48,0xa,0x4b,0x40,0x2c,0x12,0x53,0x40,0x98,0xb1,0x62,0x3f,0xd0,0x51,0x83,0xc0,0x31,0x14,0x9d,0xc0,0x6e,0xea,0x17,0x40,0x71,0x79,0x9c,0x3f,0x45,0x32,0x3a,0x40,0x64,0x6,0x8d,0xc0,0x28,0x59,0x30,0xbf,0x7e,0x3d,0x8a,0x40,0x2e,0x1f,0x28,0x40,0x28,0xf7,0x84,0x40,0x2b,0x3d,0x7b,0x40,0xff,0x8,0x9d,0xbf,0x2e,0xea,0x59,0xc0,0xf0,0xcf,0x3e,0xc0,0x6f,0x5c,0xd9,0x3f,0xf7,0x9,0xfe,0xbf,0x40,0x72,0xa2,0x3c,0x6c,0x44,0x4c,0x3f,0x8,0xa6,0x46,0x40,0x12,0x77,0x32,0x40,0x14,0xa3,0x36,0x40,0x90,0x17,0x50,0x3e,0xe6,0xa7,0x34,0x40,0xeb,0xce,0x15,0xc0,0x4d,0x14,0x0,0xc0,0x9e,0xaa,0x4a,0xbf,0x4,0xd5,0x39,0xc0,0x3c,0xb8,0x8e,0x40,0x30,0x24,0x44,0xbf,0x49,0x10,0xba,0x3f,0x68,0x2f,0x1f,0xbe,0x70,0xd,0x8c,0xbd,0x9e,0x8e,0x2a,0xc0,0xb0,0xf2,0xbb,0xbe,0x85,0x1e,0x8f,0xc0,0xee,0x6,0x19,0xc0,0x6c,0x42,0x76,0x40,0x7a,0x12,0x96,0xc0,0x52,0xa3,0x52,0x3f,0x5c,0xeb,0x4b,0x3f,0x68,0x23,0x99,0xc0,0xbe,0x0,0x7a,0x3f,0xac,0x94,0x14,0x40,0x2f,0xc5,0x67,0x40,0xc0,0x95,0x6f,0x3f,0xf4,0x22,0x7a,0x40,0xc8,0xb7,0x40,0x3e,0xae,0xda,0xf3,0x3f,0xd,0xef,0xbc,0x3f }); + + + // [[[[-18.022787 -41.7714 19.320057 ... 42.576836 4.6415687 -29.2 + Tensor *golden = NN_tensor(4, (size_t[]){ 1, 16, 16, 71 }, DTYPE_F32, (uint8_t[]){ 0xab,0x2e,0x90,0xc1,0xea,0x15,0x27,0xc2,0x7a,0x8f,0x9a,0x41,0x2c,0xdf,0x87,0xc1,0x47,0xf9,0xa2,0xc1,0x40,0xb9,0xac,0x41,0x38,0x47,0x36,0xc2,0x3e,0x1a,0xcd,0x3f,0x8b,0xb9,0xc7,0x41,0xb0,0x37,0xf,0x41,0x46,0x86,0xcd,0xc1,0xe3,0x93,0xfb,0xc0,0x7d,0x8,0xb4,0xc1,0x58,0x8e,0x6d,0x42,0x24,0x1d,0x90,0xc1,0x74,0x34,0x44,0x42,0xe4,0x9a,0xe9,0x3f,0x8c,0x61,0x67,0xc1,0xa,0x9b,0x38,0xc2,0x40,0xc7,0x87,0xbd,0xd4,0x1f,0x33,0x41,0x62,0xd7,0xd,0x42,0x93,0xb6,0xd7,0xc1,0x27,0x4d,0xb1,0xc1,0xe0,0xba,0xa2,0x41,0x5f,0x12,0xed,0x40,0x3e,0x71,0x32,0x42,0x4e,0x81,0x34,0xc1,0x75,0x11,0xa3,0xc1,0xb0,0x8f,0xdc,0xbe,0x5b,0xb4,0xad,0x41,0x2e,0xf3,0xcc,0xc0,0x75,0x2c,0xb6,0x40,0x2e,0xd7,0xb,0x42,0x83,0xcf,0x2f,0xc2,0xa6,0x59,0x87,0xc2,0x28,0x27,0xcb,0xc1,0xe9,0x2f,0x86,0xc1,0xe8,0x28,0xd1,0xc0,0x90,0x74,0xe,0xc0,0x48,0xe8,0xa2,0x3e,0x2e,0x4f,0x94,0xc2,0xe0,0x8,0x8d,0x41,0xf9,0x3c,0x8b,0x42,0xa9,0xc5,0xb0,0xc0,0x21,0xd3,0x6c,0x40,0x20,0x82,0x5,0xc2,0x8e,0xe1,0x87,0x41,0x90,0xa8,0x15,0xc2,0xca,0xeb,0x1f,0xc1,0xcc,0xf4,0xf9,0xc1,0x37,0xa0,0xbc,0xc1,0xf2,0xed,0x3c,0x42,0x9d,0x70,0xcd,0x41,0x39,0xb4,0xff,0xc0,0x16,0xeb,0x7e,0xc1,0x68,0xd8,0x13,0xc1,0x42,0xdb,0x33,0xc2,0xc2,0xc6,0xb2,0x41,0x9c,0x73,0x78,0xc2,0x5a,0x51,0x82,0xc2,0x7c,0xf1,0x4b,0x40,0x69,0x9e,0x32,0xc2,0x4f,0xd5,0x2,0xc1,0x2e,0x60,0xc1,0x41,0x2f,0x95,0x90,0x42,0x6c,0x3e,0xb8,0xc1,0x5c,0x78,0xde,0x41,0xae,0x4e,0x2a,0x42,0xbb,0x87,0x94,0x40,0xb3,0x48,0xea,0xc1,0xcd,0xab,0xf,0x40,0x83,0x17,0xf4,0xc1,0x22,0xb,0x14,0xc1,0x42,0xf4,0x1a,0xc2,0x15,0x7d,0x8f,0xc2,0xa2,0x7d,0xf7,0xc1,0xb1,0x9c,0x1a,0x41,0xdd,0x6a,0x10,0xc2,0xb,0x4,0x88,0x42,0xde,0x92,0x4e,0x42,0xf0,0x4,0x44,0xc2,0xf2,0x21,0x92,0x3f,0xd0,0xa,0xd7,0x41,0x70,0xf9,0x81,0x42,0xf4,0x38,0xb5,0xc1,0x68,0xbd,0x27,0x42,0x16,0xe1,0xf5,0xbf,0xa2,0xc5,0x74,0x42,0x3f,0x97,0x30,0x41,0xaa,0x13,0x18,0xc2,0xd7,0x37,0x4a,0xc1,0xc8,0x53,0x39,0xc1,0x5c,0x1b,0xd7,0x40,0xb6,0x58,0xd,0x41,0xa6,0x19,0x12,0xc2,0xe0,0xfb,0x56,0xc1,0x42,0x29,0x32,0xc2,0xe4,0x9d,0xce,0xc2,0x75,0x8,0xc4,0x41,0xd8,0x12,0x8f,0x41,0xf0,0xc3,0xed,0x40,0x27,0x28,0xb5,0x40,0x28,0x1,0x23,0xc1,0x98,0xad,0x55,0x42,0x72,0x6d,0xf4,0x41,0x89,0xe4,0xbd,0x41,0x64,0xe9,0x9b,0xbe,0xbf,0x13,0x60,0x42,0x39,0xcb,0xd8,0x41,0xcd,0xd5,0x15,0xc1,0x7f,0x90,0xdb,0x41,0x7b,0x8f,0x9d,0x40,0x8a,0x22,0x52,0x41,0x9a,0xce,0x20,0x42,0x51,0xa3,0x2c,0x42,0x37,0xc5,0xc4,0x41,0xbe,0x7e,0x89,0x41,0x42,0xb7,0x89,0x41,0xca,0x24,0xac,0x41,0x98,0x4e,0x72,0xbf,0xbe,0xdd,0x50,0xc0,0x3f,0x8d,0xb7,0xc1,0x6d,0x29,0xdc,0x41,0xf5,0xb7,0x81,0xc1,0x2a,0x69,0xb6,0xc1,0x8d,0x4a,0x5f,0x42,0xf9,0x76,0x2b,0xc2,0x2a,0x9e,0x16,0xc2,0xdf,0xa,0x51,0x42,0x59,0x71,0x39,0xc2,0x3b,0x45,0x26,0xc2,0x7a,0x61,0xd8,0x41,0x4c,0xe7,0xd2,0x41,0x16,0xd,0x3f,0x42,0x90,0x49,0xf3,0xc1,0xf,0x97,0x49,0xc2,0x40,0x54,0x5a,0x42,0x2e,0x38,0xba,0xc2,0x65,0x41,0x9a,0x41,0xb0,0x35,0xe8,0x41,0xff,0xdb,0x45,0xc2,0x7d,0xa4,0x7e,0xc2,0xb0,0xdc,0xe4,0xc1,0x40,0x4,0xc5,0xc1,0x84,0xee,0x47,0xc2,0x5d,0xbf,0x2,0x40,0xae,0x19,0x5,0xc2,0x9a,0xc,0x64,0x41,0x1d,0x95,0x43,0xc1,0xd8,0x39,0x32,0x42,0x79,0x30,0x3c,0x42,0x3a,0x6e,0x41,0xc2,0x47,0xfa,0x2c,0xc2,0xc6,0x57,0x6,0x42,0xb9,0x7b,0xc8,0x41,0x8,0x8e,0xce,0x40,0x10,0xef,0x4d,0x42,0xf6,0xe7,0xad,0xc0,0x3e,0x54,0x3b,0x42,0x6e,0xc4,0x2c,0x40,0xfb,0x87,0x8d,0xc1,0x6a,0xbc,0xd3,0xc1,0xc5,0x62,0x26,0xc2,0x6e,0x34,0x16,0x42,0x6e,0xe3,0xb6,0xc1,0x64,0x2c,0x11,0xbf,0xbf,0xbc,0xf2,0x41,0x8c,0x62,0x36,0x42,0xf6,0xd,0xbe,0xc1,0x74,0x40,0x6d,0x41,0x82,0x19,0x8e,0x40,0x36,0x8b,0xcc,0x40,0x67,0x1c,0x52,0xc2,0x8c,0xbc,0x17,0x42,0xb9,0x1c,0x20,0x42,0xe7,0xa1,0xd1,0x40,0x43,0x91,0xbf,0xc1,0xca,0xa1,0xd9,0x41,0x8e,0x99,0x6,0x40,0xc5,0x73,0x4b,0x41,0x7d,0x45,0xec,0xc1,0x2e,0x3d,0x6b,0x42,0xbf,0x4a,0xe1,0x41,0xc6,0x5d,0x29,0xc0,0x7f,0xe8,0x4c,0x3f,0xb0,0xac,0xb2,0xc1,0x44,0xb9,0x43,0xc1,0x61,0x8c,0x8,0x42,0xb8,0x4d,0x7f,0x42,0xe5,0x36,0xf1,0xc0,0xca,0x6c,0x30,0xc2,0x6,0x8c,0xdc,0x41,0x58,0x27,0xd5,0xc1,0xe6,0xcb,0x77,0xc1,0xd4,0x86,0x70,0xc1,0x30,0x44,0x18,0x40,0xf8,0xc9,0x64,0x40,0x0,0xee,0x8c,0xc0,0xc0,0x20,0xc2,0xc1,0xf6,0xc0,0x7c,0x41,0x8d,0x38,0x72,0x42,0x15,0x59,0x77,0x41,0x99,0x6e,0x3,0xc2,0xbe,0xa5,0x91,0xc2,0x36,0xf9,0x45,0x42,0x46,0xa2,0xeb,0x40,0xe,0x58,0x5,0xc2,0xbc,0xdb,0x48,0xc1,0xcf,0x38,0x47,0xc2,0x5e,0x17,0x47,0xc1,0xe2,0x63,0x6,0xc2,0x9b,0x1d,0xa,0xc2,0xa8,0x15,0xea,0xc1,0x96,0x23,0x3e,0x41,0xb2,0x7d,0xe3,0xbf,0xb8,0xa4,0x9a,0xc1,0xf9,0xf9,0x82,0x41,0x47,0x88,0x60,0xc2,0xfc,0x6f,0x8c,0x3f,0x49,0xb5,0x3d,0xc1,0xa4,0x93,0x62,0x41,0xd8,0xf5,0x8f,0xc1,0x4f,0xd1,0x9e,0xc1,0xda,0x1f,0xec,0x40,0x7b,0xb4,0xc2,0x41,0xbf,0x2c,0x4d,0xc1,0xea,0x6f,0x44,0xc1,0xe9,0xbc,0xf7,0x3f,0x2c,0x93,0xc3,0xc0,0x97,0xd5,0xcf,0x40,0x76,0x43,0x34,0x42,0x30,0xd3,0x33,0x41,0xcb,0x8a,0x7,0xc2,0x92,0x74,0x7d,0xc1,0x7c,0x95,0xc8,0x40,0x54,0x47,0x6a,0xc2,0x82,0xbf,0x0,0xc2,0x4d,0x97,0xb5,0x41,0xe9,0xcf,0xac,0x41,0x23,0xc,0xed,0x41,0x3b,0x5e,0xeb,0x40,0x1a,0x63,0xfc,0x41,0xdc,0x49,0xce,0x41,0x61,0x31,0x34,0xc2,0xcc,0x64,0x1e,0x42,0xd9,0x2e,0xe0,0x41,0xee,0x90,0x16,0x41,0x5c,0x78,0xad,0x40,0x9d,0xa0,0xfc,0xbf,0x17,0x4a,0xc5,0xc1,0x60,0x2d,0xca,0xc0,0x3d,0xee,0x51,0xc1,0x9b,0xa3,0xe7,0x41,0xea,0xd6,0x40,0x41,0xa7,0x3c,0x94,0x41,0xef,0x44,0x24,0x42,0x0,0xc8,0x5f,0x40,0xfe,0x1e,0x64,0xc2,0x77,0x4,0x4d,0x42,0x8a,0x3c,0x34,0xc0,0xc,0xf6,0xb5,0xc1,0x48,0x5,0x6,0xc2,0x8a,0x8b,0x94,0x41,0x8d,0x30,0xb6,0x41,0x93,0xb2,0x39,0xc2,0x75,0x4f,0xbe,0xc1,0x4,0x70,0x95,0x41,0xde,0xbf,0xc1,0xc1,0xb8,0x9d,0xa1,0xbf,0xe1,0x76,0x45,0x42,0xe8,0x9f,0xb2,0xc1,0xee,0xf6,0x95,0x42,0xff,0x3e,0x39,0x42,0x6e,0xbd,0x35,0xc2,0x32,0x46,0x3d,0xc2,0x23,0x7a,0x89,0x42,0x9a,0xbb,0xbd,0x41,0xdf,0xd9,0x86,0xc1,0x8c,0x28,0x94,0x42,0x44,0x60,0xeb,0xc0,0x77,0x42,0x51,0xc1,0x23,0xa9,0xe3,0xc1,0xfa,0xb8,0xc,0xc0,0xa6,0xfe,0xb6,0x40,0xa9,0x76,0x81,0x41,0x31,0xd9,0xe9,0x41,0xd7,0xb8,0xe9,0xc1,0x76,0x1b,0x3a,0x42,0xd7,0x1e,0x45,0xc2,0x81,0x66,0x23,0x41,0x80,0xda,0x7a,0xbe,0x4c,0x9a,0x85,0xc1,0x15,0xea,0x3,0xc2,0x85,0x47,0x36,0x42,0xc0,0x1d,0x6c,0xc1,0x90,0x7f,0x54,0x41,0x68,0x42,0x8a,0xc1,0x78,0x18,0xf9,0xbf,0xaa,0xaf,0x9,0xc1,0xae,0x6a,0x90,0x41,0x6c,0xda,0x16,0x41,0x15,0xca,0x67,0xc1,0x47,0x99,0xd0,0xc1,0xcb,0xbd,0x3a,0x41,0xc8,0xc6,0x10,0x42,0x26,0xd6,0x6a,0xc0,0x62,0xac,0x14,0xc2,0xe2,0x4,0x92,0x41,0x3e,0x99,0x98,0xc1,0x71,0x6c,0x83,0x41,0x8a,0x2,0xa,0x42,0x67,0x2c,0xe,0xc0,0xc5,0x73,0x4b,0xc1,0x5f,0x92,0x31,0x42,0xa0,0x18,0xf2,0xbf,0x47,0x6,0x3,0xc2,0x40,0xa0,0xca,0xc1,0xd7,0x38,0xa0,0xc1,0xc8,0xe2,0x70,0xc1,0x9d,0xed,0xce,0x41,0x46,0xe,0x87,0xc2,0x6e,0x13,0x27,0x41,0xa8,0x89,0x99,0xc1,0x41,0xcd,0xbe,0x41,0x6a,0xc1,0x77,0x41,0xec,0xe7,0xbc,0xc0,0xb8,0x9,0x9c,0x41,0x16,0x42,0x5a,0xc0,0xb2,0x6b,0xcb,0xc1,0xc0,0xc0,0x92,0xc1,0xd8,0xac,0xba,0xc1,0xc8,0x9,0xe1,0xc1,0xc9,0x8,0x95,0x41,0x58,0x89,0xaf,0x41,0xdc,0xee,0x2e,0xc0,0x9a,0xfa,0x8,0x40,0xd2,0x29,0x61,0x41,0xb3,0x60,0x50,0x42,0x31,0xee,0xfe,0xc1,0xcd,0x2e,0x17,0x42,0xea,0x5f,0x14,0x42,0xd2,0xed,0x2e,0xc2,0xc7,0x90,0x5f,0x42,0x22,0xb5,0x18,0xc0,0x67,0x62,0xf5,0xc1,0xf8,0xff,0xf4,0xc1,0x13,0x6a,0x2,0xc2,0x72,0xc7,0xb0,0x41,0xe0,0x2,0x7c,0x42,0xf5,0xa9,0xf1,0x40,0x55,0x73,0x8a,0x42,0xcf,0x3a,0xf,0x42,0x8e,0xf7,0x45,0x42,0x1f,0xb5,0xee,0x41,0x1c,0xa9,0x16,0xc1,0x46,0xa6,0xcf,0x41,0xfb,0x6f,0x39,0xc2,0x56,0xf7,0x92,0x40,0x6e,0x73,0xf7,0x40,0x38,0x9d,0x28,0xc2,0x0,0xca,0x12,0xc2,0x69,0x57,0x27,0xc2,0x40,0xdb,0x5c,0xbe,0x5f,0x62,0x6,0x41,0x8d,0x26,0x82,0x41,0x95,0x7a,0xc4,0x41,0x9c,0x62,0x3a,0xc1,0x8c,0xda,0xb1,0x41,0x58,0x11,0x12,0xc1,0x8b,0xca,0xf3,0x40,0xf6,0x5,0x8,0xc2,0xfe,0x2c,0xc3,0x41,0x64,0x68,0x42,0xc2,0x64,0xba,0x63,0xc2,0x48,0xc6,0x83,0x41,0x21,0x67,0xdb,0x41,0x32,0x70,0x4,0xc2,0xc,0x98,0xb,0x42,0x86,0x9d,0x3a,0xc1,0xc9,0xfb,0x6d,0x42,0x10,0x59,0x38,0x42,0xaa,0xb7,0x2,0x42,0x6d,0xff,0x4,0xc2,0x8e,0x3c,0xbd,0xc0,0x9c,0x76,0x18,0x41,0xa6,0x2d,0x83,0x41,0x82,0xb5,0x44,0xc2,0x61,0x1a,0xbc,0x40,0x16,0xd1,0xe7,0xc1,0x98,0xd9,0x12,0xc1,0x19,0x90,0xf,0xc2,0xd7,0x31,0x3,0x41,0x2c,0xac,0x3c,0x42,0x35,0x98,0x26,0x42,0x90,0xd3,0xf6,0x3e,0x16,0x51,0x2c,0xc1,0x84,0xbe,0xc,0x41,0x62,0x7d,0xe4,0x41,0x87,0x93,0x1f,0x42,0xb5,0x29,0x21,0x42,0xc2,0x18,0xe1,0x3f,0x75,0xa4,0xd9,0xc1,0x53,0x7d,0x1,0x42,0xca,0x94,0x97,0xc1,0x58,0x4,0x5f,0x40,0xed,0x13,0x30,0x41,0x2b,0x55,0xe,0xc2,0x78,0xfd,0xec,0x41,0xed,0x52,0xa8,0x41,0x6c,0x87,0xaa,0x41,0x85,0xe1,0xa,0xc2,0xce,0xe3,0x81,0x3f,0xe4,0xd1,0x89,0x42,0x97,0x81,0x0,0xc2,0xf8,0xcd,0xf6,0xc1,0xa9,0xa6,0x8,0x42,0xda,0x38,0x8a,0x41,0x99,0x97,0x2f,0xc2,0xcc,0xdf,0xd8,0xc1,0x46,0x9d,0x83,0x42,0x64,0xe4,0x91,0x42,0x22,0xd3,0x89,0xc1,0xee,0x6e,0xd1,0x41,0xee,0x8f,0x15,0x42,0xdd,0x79,0xa6,0xc2,0x10,0xd0,0xeb,0xc1,0x7b,0x1f,0x28,0xc1,0x60,0x8b,0x80,0xc1,0x24,0xca,0x20,0x41,0xf9,0x72,0x5,0x41,0xbb,0xdd,0x14,0xc2,0x61,0xfa,0x8c,0x42,0xb3,0x93,0xe7,0xc1,0xab,0x4b,0x8c,0xc0,0x9e,0x68,0x9f,0x41,0xab,0x1b,0x8b,0xc2,0xf6,0xa8,0xaa,0x41,0xce,0x31,0x64,0xc1,0x1a,0xe9,0x64,0x42,0x6a,0xc7,0x15,0x42,0x7b,0x4d,0x8d,0xc1,0x82,0x36,0xba,0x41,0x2,0x3f,0x25,0xc1,0x98,0x23,0x42,0xc1,0x5f,0xf9,0x9c,0xc2,0x6c,0x42,0xa1,0x41,0x62,0x75,0x4b,0xc2,0x3c,0xb5,0x4e,0x41,0x59,0x2d,0xb4,0x40,0x4,0xdc,0x9,0x41,0x38,0xe2,0x55,0xc1,0x3a,0x27,0xb0,0x41,0x82,0xc0,0x27,0xc2,0x4c,0x88,0xc7,0xc1,0xad,0x7c,0x6a,0x41,0x7b,0x8e,0x84,0xc0,0x16,0xc0,0xfc,0xc0,0x85,0x9,0xb6,0xc2,0x1f,0xa3,0x96,0xc1,0x86,0xbf,0x0,0xc2,0xbc,0x18,0xe7,0x40,0x2d,0x2a,0xef,0x41,0xe2,0xec,0xe4,0x41,0x8c,0x47,0x9,0xc2,0x22,0xd6,0xd8,0xc0,0x6c,0x1b,0x30,0x42,0xec,0x7b,0x38,0x41,0x29,0x21,0x75,0x41,0xf,0x6b,0x42,0xc2,0x3b,0x9d,0x74,0xc2,0xf3,0xd9,0x12,0xc1,0xda,0x71,0xc3,0xc1,0xa6,0x5c,0xb0,0xc1,0xdf,0x64,0x3e,0xc2,0xb0,0x1a,0x1,0xc2,0x18,0xa9,0xf8,0x41,0x22,0x90,0xc4,0x41,0xaa,0xd0,0x72,0x42,0x18,0x1e,0x28,0x42,0xca,0x9e,0xc9,0x41,0x4a,0x28,0xc7,0x41,0xf1,0x6,0xa5,0x41,0x6,0x21,0x69,0xc2,0x75,0x87,0x18,0xc1,0x98,0x52,0x34,0x42,0x50,0x54,0x2f,0x42,0x5d,0xea,0x1,0xc2,0x57,0x7e,0x7d,0xc2,0x3c,0xc7,0xe8,0xc1,0x36,0xca,0xe4,0x41,0xdb,0xc,0x4a,0x40,0xb0,0xeb,0xeb,0xc0,0xee,0xa5,0x6c,0x42,0x63,0xb4,0x3d,0xc2,0x25,0xa0,0x88,0xc1,0x60,0xb7,0x3f,0xc0,0x16,0x57,0x9,0xc1,0xe,0x98,0x36,0xc0,0x28,0xe4,0x3c,0xc1,0x46,0xac,0x3d,0xc2,0xe8,0x6f,0xe2,0x40,0xc,0xc1,0x6d,0xc2,0x40,0x46,0x5c,0xc0,0x8c,0xac,0x3,0x42,0x74,0xff,0x8a,0x41,0x41,0xb3,0x4b,0x41,0xeb,0x36,0xa4,0x41,0x12,0x8f,0x2e,0xc1,0xbf,0x3b,0xa0,0x40,0x8,0x2,0xdc,0xc1,0xae,0x46,0xbe,0xc1,0xbc,0x61,0x9c,0xc1,0x11,0xe2,0x2b,0x41,0x49,0x10,0x36,0x41,0xc8,0xf7,0x16,0xc1,0xdd,0x9c,0x9b,0xc1,0x66,0x94,0xf0,0x41,0xad,0xcd,0xf6,0xc1,0x81,0x3f,0x65,0x42,0x72,0x4d,0x13,0x41,0x97,0xdc,0x95,0xc1,0xaf,0x9,0x1b,0x42,0xd,0x45,0x9a,0x40,0x3c,0xa6,0x45,0x42,0xc2,0x9f,0x78,0xc1,0xf0,0xbb,0xab,0xc0,0x63,0xa0,0xa,0x41,0x84,0xe4,0xa4,0xc2,0xc1,0x4a,0x0,0xc2,0xb7,0x72,0x8c,0x41,0xde,0x48,0x92,0x41,0xeb,0x97,0x75,0x42,0xaa,0x5b,0xdd,0xc1,0x35,0xdd,0xd6,0xc1,0xcd,0xdc,0x60,0x42,0x23,0x91,0x83,0x42,0x6f,0x30,0x1f,0xc1,0x2f,0x78,0xa6,0xc1,0xe9,0x9c,0x22,0x42,0x3c,0xb6,0x97,0x41,0x88,0xde,0x13,0xc0,0xc0,0xa1,0xde,0xc1,0x12,0x2,0x34,0x42,0xd6,0x5f,0xf8,0x41,0x2,0x37,0xa5,0x40,0xaa,0xaf,0x91,0xc1,0x8,0x27,0x27,0x42,0x7,0xea,0x1e,0x42,0x15,0xa7,0xc7,0x41,0x22,0x64,0x54,0xc1,0x5f,0x5e,0xa2,0xc1,0x1f,0xf2,0xd2,0x41,0x6c,0x8a,0x44,0x41,0x9f,0x1e,0xa3,0x41,0x43,0xa7,0x9d,0x41,0x7e,0xa0,0x25,0x42,0xa2,0x74,0x86,0x42,0x34,0x15,0x25,0xc2,0xd0,0xf6,0xfe,0x41,0x90,0x58,0x82,0x42,0x1e,0x80,0x51,0x42,0x1c,0xe3,0xe,0x42,0xf5,0xee,0xe7,0x41,0x24,0x54,0x5c,0x42,0xf1,0x93,0x45,0x3f,0x3f,0xaf,0x8c,0x41,0xce,0xe1,0xdc,0x40,0x96,0x3b,0x6,0x41,0x35,0x4f,0x41,0xc1,0x69,0xbd,0x56,0xc2,0xe,0xee,0xb5,0x40,0xfd,0x7f,0x6e,0xc2,0xb2,0x34,0x91,0xc2,0x16,0xb6,0x6,0x41,0x9b,0x1d,0x82,0xc2,0x65,0xb0,0x3c,0x42,0xa4,0x6d,0x91,0xc1,0xa8,0xa,0x7f,0xc2,0x1b,0xff,0x33,0x42,0x44,0xc4,0x1d,0xc2,0x78,0xe5,0xbd,0x40,0x73,0x12,0x16,0xc2,0x91,0x2e,0x5e,0x42,0xf6,0x28,0x80,0x41,0x4c,0x4b,0xaf,0xc1,0x50,0x46,0xb6,0xbe,0x38,0x15,0x8f,0xc2,0x8a,0xe,0x49,0xc2,0x4e,0x20,0x1c,0xc2,0x41,0xd5,0x84,0x41,0xad,0x70,0xf2,0x40,0x36,0x85,0x40,0x42,0x78,0xba,0x9c,0x3f,0xf4,0x2,0x36,0xbf,0x41,0x2b,0xd2,0xc1,0xba,0xa1,0xcf,0xc1,0x1a,0x2f,0xdd,0x41,0x64,0xaa,0x37,0xc0,0x48,0x3f,0x10,0xc2,0x5e,0xf,0xa3,0xc1,0x97,0xe6,0x4,0x42,0x7c,0x42,0x85,0x41,0xee,0x53,0x96,0xc2,0x5b,0xb6,0xb6,0x41,0x81,0xb3,0x6f,0xc2,0x52,0xde,0x60,0x41,0x96,0x42,0x58,0xc1,0x8e,0x26,0xa9,0xc0,0x86,0xd2,0x4e,0xc2,0xb7,0x4f,0x1b,0x42,0x82,0x9f,0x40,0xc1,0xf5,0x72,0x52,0xc2,0x10,0x25,0x3f,0x41,0xbe,0x7,0x54,0x41,0xa6,0x57,0xca,0xbf,0xb7,0x77,0x44,0xc2,0xa,0x76,0x35,0x42,0xa8,0x7,0xe2,0xc1,0x7e,0x79,0xf4,0x40,0x5c,0x35,0xd8,0xc1,0x79,0x48,0x82,0x42,0x18,0x85,0xea,0xc1,0x82,0x8f,0x53,0x41,0x47,0xfa,0x48,0x42,0x15,0xb4,0xbd,0xc2,0x1c,0x7d,0x95,0x42,0xf4,0xd3,0x57,0x40,0x18,0xbe,0x39,0x40,0x63,0x97,0x85,0x42,0xcd,0x25,0x22,0xc2,0xe1,0xa5,0xdc,0x41,0xa9,0x8f,0xab,0x42,0x74,0x77,0x67,0x42,0xf4,0xc,0xbd,0x41,0x96,0x41,0x4c,0x42,0xb2,0xa1,0xc3,0xc1,0xc9,0x18,0xa6,0x42,0x99,0x79,0xdc,0xc2,0x76,0x8b,0xb,0x42,0x95,0xfe,0x24,0x41,0x81,0x48,0x43,0x42,0x56,0xf8,0x3f,0x41,0x17,0xe6,0xbb,0x41,0x6a,0x45,0x2c,0xc2,0xea,0x92,0x69,0x42,0xaa,0xa5,0xd9,0x40,0x5e,0x5a,0xc0,0x41,0x0,0x7f,0x69,0xc1,0x10,0x26,0x47,0xc2,0x13,0x7d,0xb6,0x42,0xf6,0x97,0x2d,0xc2,0x53,0x45,0x49,0x42,0x84,0x35,0x69,0x42,0x3c,0xd7,0x45,0xc2,0x9c,0x64,0xed,0x41,0x3,0x2e,0x13,0xc2,0xac,0xf2,0x38,0x42,0x34,0x27,0x56,0xc2,0x18,0xc5,0xb5,0xc1,0x93,0x6,0x16,0x42,0x88,0x92,0xe0,0x41,0xaf,0xb0,0x37,0xc2,0xf4,0xf5,0x73,0xc1,0x97,0x3f,0x7,0x42,0xe4,0x54,0xa4,0xc1,0x67,0xd2,0x38,0xc1,0xb6,0x3e,0xc9,0xc0,0xb5,0xa6,0x96,0x42,0xc3,0xee,0x3f,0x42,0xd7,0xe0,0xfd,0x41,0xf,0xb,0x37,0xc2,0xa1,0x81,0x48,0xc2,0xb3,0x9c,0xda,0xc1,0xb7,0x6b,0xa8,0x41,0x2e,0x8c,0x3e,0x42,0x7b,0x6c,0x37,0xc2,0x9c,0x43,0xbf,0xc2,0x0,0x97,0x2b,0xc2,0x34,0x6c,0xc0,0x41,0xb4,0x64,0xf0,0x41,0x37,0x25,0x2d,0x42,0xd,0x57,0x3c,0x42,0xb5,0xe3,0xd3,0x41,0x96,0xd2,0x98,0xc1,0x31,0x87,0xa6,0xc1,0x0,0x5d,0xe2,0xc1,0xb8,0xfd,0x2f,0xc2,0x0,0xfe,0x63,0xc0,0xf2,0xc9,0xb4,0x41,0x4d,0x27,0xd,0x42,0x3a,0x6b,0x2b,0x42,0xb9,0xe1,0x90,0xc2,0xf9,0x87,0x83,0xc0,0xe4,0xb,0x4a,0x42,0xbb,0xdd,0x56,0xc0,0xb6,0x26,0x82,0x42,0xf4,0x6c,0x39,0xc2,0x7b,0xa,0x69,0x42,0x52,0xc7,0xa0,0x42,0xdb,0x23,0x9,0xc2,0xd3,0x10,0x1,0xc2,0x20,0xa4,0x49,0x42,0x98,0x74,0xb9,0xbe,0x46,0xae,0xb2,0xc1,0xea,0x6f,0x90,0x42,0x10,0xcc,0x8f,0x41,0xb6,0xd4,0x1e,0xc0,0x8,0xd7,0x1f,0x42,0x92,0x6c,0x51,0x41,0x78,0x95,0x4,0xc2,0x5c,0x4d,0x16,0x42,0x10,0x2d,0x6a,0xc2,0x85,0xba,0xae,0xc1,0x5e,0xaa,0x8a,0x41,0xcb,0xbe,0x92,0xc2,0xec,0xde,0x8c,0xc1,0xf3,0xd9,0x4f,0x41,0x7b,0x42,0xe8,0xc1,0x36,0x77,0xaa,0xc1,0x59,0x74,0x2b,0x42,0x5b,0xfa,0x3e,0xc1,0x79,0xad,0x44,0xc2,0x93,0xba,0x4a,0x41,0x3b,0xad,0x31,0xc2,0x41,0xa3,0x95,0x42,0x41,0xc0,0x84,0xc2,0x7d,0xf5,0xd9,0x41,0x83,0x37,0xd1,0xc1,0x97,0xe8,0x67,0x40,0xfa,0xac,0x48,0xc2,0x49,0x43,0x2e,0xc2,0x74,0x53,0xb,0xc2,0x81,0x32,0xe7,0xc1,0xfc,0xc2,0xf5,0x41,0xea,0x16,0xa3,0xc1,0x52,0x38,0x32,0x42,0x24,0x7b,0x5,0x42,0x5c,0xf3,0x62,0xc1,0x8d,0x7c,0x23,0xc2,0xbd,0xce,0xc1,0x41,0xc3,0x33,0x95,0xc1,0xd7,0x33,0x6e,0xc0,0x58,0x94,0x1d,0x42,0x65,0x1c,0x60,0x42,0xb4,0x9e,0x4e,0xc2,0xfa,0x48,0x21,0xc1,0xec,0xdb,0x37,0xc2,0x7a,0x59,0x97,0x41,0xf4,0x15,0xfe,0x41,0x9e,0x38,0x8b,0xc1,0x9e,0x7f,0x40,0xc1,0x64,0x27,0xf5,0x41,0xa5,0x6,0xa3,0x41,0x58,0x4f,0xad,0xc1,0x25,0x40,0xd2,0x41,0xac,0xa5,0xfe,0x41,0xd1,0xee,0xa7,0xc2,0x24,0x8a,0xf4,0xc1,0xef,0xcf,0xb2,0xc1,0x4b,0xd2,0x0,0x41,0x31,0xca,0xd5,0x41,0xc3,0x40,0xf4,0xc1,0x64,0xb2,0x6e,0x42,0x7e,0x55,0xb1,0xc1,0xf0,0x6e,0x7b,0x41,0x18,0x7b,0x4,0x41,0x18,0x95,0xe2,0x3f,0x59,0xb2,0x20,0x42,0xe8,0xe7,0xa8,0xc1,0x36,0x70,0xf,0xc2,0x8f,0xf4,0x4a,0x42,0xfe,0xb9,0xcc,0xc0,0x93,0xb6,0xc9,0xc1,0x4a,0x4b,0x92,0x40,0xd5,0xe0,0xaf,0x42,0xf7,0x90,0xcc,0x41,0xb,0xee,0xa,0x42,0xa7,0xe0,0xc,0x42,0xf6,0xc6,0xb2,0x41,0x8f,0x4a,0x36,0xc2,0x44,0x5a,0x3,0xc2,0xce,0x7f,0x70,0xc1,0xa,0xf4,0xf2,0x40,0x6b,0x46,0xfe,0xc1,0xee,0x94,0xbb,0x41,0xed,0xfb,0x4,0x42,0x6d,0x1d,0xd3,0x41,0x7b,0x8e,0xb8,0xc1,0x97,0x5e,0x4,0x41,0xc7,0x69,0x0,0x42,0xfb,0xce,0x69,0xc2,0xf5,0xfc,0x1f,0x42,0x1,0x83,0xd1,0xc0,0x96,0xb8,0x9b,0x42,0xe1,0xda,0x29,0x42,0x7c,0xed,0x12,0xc2,0x60,0xb7,0xce,0x41,0xa2,0xd0,0x3f,0x41,0xfc,0x15,0x76,0x42,0x8,0xf8,0x59,0xc1,0xdc,0x15,0x76,0x41,0xb6,0xf0,0x23,0x41,0xd8,0x4c,0x20,0x3f,0xcd,0x17,0xe2,0xc1,0xa2,0x32,0x72,0xc0,0xaa,0x6,0x39,0x42,0xcf,0xad,0x63,0xc0,0xe6,0x52,0x5b,0xc2,0x7a,0x87,0x83,0xc1,0x4e,0x65,0x7d,0x42,0x8d,0xeb,0x5,0x42,0x2c,0x54,0x8a,0x41,0xed,0x75,0x3a,0xc2,0x71,0xff,0xe2,0xc1,0x57,0xbe,0x93,0xc2,0xca,0x42,0xef,0x40,0x46,0x29,0x80,0x41,0x8e,0x14,0x5d,0x42,0x22,0x2b,0x8,0xc2,0x1,0xc2,0xd5,0xc1,0xaa,0x8a,0x4f,0x42,0xae,0x97,0xf1,0xc1,0x7e,0x71,0x33,0x40,0x6c,0x12,0xdb,0xc0,0xec,0xbb,0x63,0xc1,0xd6,0x15,0x3,0xc2,0x68,0x12,0xe6,0x40,0x98,0xa7,0xb2,0xc0,0x6e,0x19,0x9,0xc2,0x7b,0xe2,0xcb,0xc1,0x4,0x4,0x41,0x42,0xfc,0x8b,0xd2,0xc0,0xec,0x4f,0x87,0x42,0x9c,0xcd,0xe5,0xc1,0x8d,0x4e,0x4e,0x42,0x18,0x96,0x7c,0x40,0xb2,0x5e,0x16,0x41,0x29,0x55,0xee,0x40,0x16,0xf6,0xb3,0xc0,0x31,0x1f,0x32,0xc2,0x23,0xb7,0x3c,0x41,0xe5,0x2c,0xbd,0xc1,0x8c,0xea,0xaa,0xc2,0x86,0x2f,0x23,0xc2,0xd0,0x3c,0xa8,0xc0,0xfb,0xbc,0x2a,0xc2,0x8b,0x6a,0x8d,0x41,0x38,0x3b,0x8e,0x41,0x1e,0x39,0xb1,0x41,0x43,0xf,0x32,0xc1,0xb6,0x41,0xd8,0x41,0x60,0x2b,0xc0,0xc1,0x75,0x35,0x14,0x42,0x3e,0x66,0xf3,0xc0,0xb6,0x19,0x4c,0xc2,0x4a,0xd1,0xd5,0x41,0x15,0xd1,0x4d,0x3f,0x7e,0x50,0x8b,0xc1,0xe9,0xf7,0x7e,0x42,0xa8,0xdc,0x91,0xc1,0xf0,0xd4,0x86,0x41,0x3c,0xc8,0x8a,0x42,0x89,0x29,0x41,0xc1,0xfc,0x66,0xb9,0x40,0x8a,0x10,0x89,0xc1,0xc0,0x51,0x87,0x3d,0xd5,0x7d,0xe5,0x41,0x82,0x22,0xd9,0x40,0x41,0xed,0x8a,0x42,0x7,0x69,0xd8,0x41,0xfc,0x7a,0xc4,0x41,0xb2,0xfd,0xe7,0xc1,0xae,0x1b,0x13,0xc2,0x42,0x7b,0x37,0xc2,0x96,0x1a,0x86,0xc1,0xf4,0x4e,0x4e,0xc1,0x7c,0xf3,0x54,0x40,0xa0,0x2c,0x38,0x42,0x98,0x64,0xe1,0x40,0x91,0x2,0xed,0xc1,0x8c,0xf6,0x1e,0xc0,0xa6,0x38,0x7b,0x41,0xbf,0x4f,0x30,0x40,0xa5,0x2a,0x20,0x42,0x44,0xa9,0xdb,0x40,0x98,0x66,0x5f,0x42,0x7b,0x7b,0xd,0x42,0xfd,0x63,0xf3,0xc1,0x37,0xfd,0x14,0xc2,0xb9,0x88,0x71,0xc1,0x86,0xa5,0xc1,0x41,0xc6,0x6e,0x2c,0x42,0xca,0xd0,0x5a,0x41,0x80,0x4e,0x5d,0x41,0x7,0xe2,0xf,0x42,0xf2,0xd0,0x1a,0x42,0x8d,0xbf,0x38,0x41,0xd5,0x91,0xc6,0x41,0x34,0x57,0x7e,0xc0,0x63,0xc3,0x6,0x41,0x48,0x4,0xd,0xc2,0xba,0xb9,0x5b,0x42,0x24,0x89,0x52,0xc0,0x33,0x46,0x71,0xc2,0xb6,0x54,0x9a,0xc1,0xed,0xa0,0xd3,0xc1,0xa8,0x25,0x4c,0x41,0x31,0xd3,0xb2,0xc1,0xb2,0x45,0x42,0x42,0x4,0x87,0x8f,0x41,0x4d,0x62,0x1c,0xc2,0x8,0xb3,0xb6,0x40,0x35,0x60,0xb4,0xc1,0xe0,0xa0,0x35,0x42,0x4f,0x28,0x14,0x42,0x4c,0xff,0x23,0xc2,0xf,0xcd,0x34,0x41,0xe3,0x85,0x8e,0x40,0xa1,0x1c,0x16,0x40,0xe,0xa1,0x1d,0x42,0xc8,0x6d,0x6e,0xbf,0xae,0x52,0xcd,0x40,0xb3,0xcf,0xbd,0x41,0x7c,0x53,0xba,0xc1,0xc8,0xfd,0x11,0xc2,0x77,0x86,0xfa,0xc1,0x90,0x68,0xfc,0xc0,0x46,0x52,0x96,0x41,0x97,0x5b,0x39,0x41,0x1b,0x50,0x2e,0xc2,0xc0,0x34,0xf,0xc2,0x12,0x9,0xc6,0xbe,0x67,0x1,0x19,0x40,0x54,0x9b,0x8a,0x41,0x3f,0xd,0x4d,0x42,0xc7,0x35,0xf6,0xc1,0x78,0xbe,0x65,0xc2,0x9c,0x3e,0x81,0xc1,0x78,0x73,0x1,0x41,0x6c,0x1e,0x55,0x42,0x8b,0x16,0xb9,0x42,0xc8,0x55,0x2f,0x42,0x7a,0x17,0x5,0x42,0x5c,0xe6,0x86,0x41,0x40,0x8,0x0,0xc1,0xa8,0x9c,0xec,0xc1,0x5e,0xe6,0x31,0xc1,0x85,0x5f,0xa8,0xc1,0x12,0xe0,0x65,0xc2,0x42,0xa4,0x94,0x40,0x1e,0xb3,0x1b,0x42,0xc9,0xe7,0x1a,0x42,0x82,0x6,0x75,0x41,0xc0,0xe1,0xc3,0xbe,0xa3,0x3a,0x98,0x41,0xdb,0xa0,0xc3,0x41,0x18,0xb6,0x7c,0x3f,0x0,0x2c,0x12,0xbe,0xbb,0xdb,0xa3,0xc0,0x69,0x11,0x78,0x41,0x9c,0x22,0xe,0x42,0x8,0x64,0x42,0x41,0x3c,0x80,0xc0,0xc1,0xf6,0x52,0x46,0xc2,0x4,0xa,0x31,0x41,0xbf,0x43,0x1e,0xc2,0x20,0x20,0xc0,0xc1,0xd,0x4b,0x79,0xc2,0x49,0x40,0x33,0x42,0x4,0x46,0x84,0xc1,0x90,0xe0,0x74,0xbf,0x62,0xe2,0x29,0x42,0x25,0x8a,0x7f,0x41,0xb1,0x48,0x81,0x41,0xa6,0x97,0xf,0xc0,0xd5,0x3c,0xb3,0x41,0xc9,0x8,0xc,0x42,0x97,0x2,0xf,0xc2,0x72,0x63,0xc0,0x41,0x81,0x96,0xe0,0x41,0xb0,0x3d,0x2b,0x3f,0xce,0xb0,0x3f,0xc2,0x3a,0x72,0x5e,0xbf,0xdf,0x86,0x1a,0x41,0xf9,0x9a,0x56,0xc1,0x69,0xb6,0x7,0xc2,0x92,0x87,0x36,0x42,0x79,0xad,0x10,0xc2,0x4a,0xbb,0x90,0x3f,0x22,0x6d,0xce,0xc1,0x32,0x25,0x2c,0xc1,0xa5,0x95,0x2f,0x41,0xf7,0x51,0x20,0x41,0xb1,0x81,0xe5,0xc1,0x0,0x32,0xa1,0x41,0x3,0xed,0x2f,0xc1,0x24,0xe1,0x37,0xc1,0x17,0x36,0x28,0x42,0xe3,0x38,0x43,0x42,0x3f,0x90,0x60,0x41,0x42,0x36,0x51,0x42,0x42,0x37,0x9,0xc2,0xda,0x33,0x1d,0x41,0xa1,0x6c,0x41,0x41,0x5b,0x59,0x4b,0xc2,0xfa,0xa5,0x99,0x40,0xcb,0x97,0xa2,0x41,0x46,0xc7,0x1b,0x42,0x9a,0x58,0x7d,0x41,0xa3,0x1a,0x9a,0xc0,0xc2,0x82,0xe4,0x41,0x4a,0x8d,0x30,0xc2,0x6b,0xb7,0x8a,0x41,0xeb,0x4c,0x24,0x42,0xe1,0x3c,0x6a,0x40,0xe0,0x8,0x10,0xc2,0xd8,0x6d,0x18,0x40,0xfb,0x15,0x50,0x42,0x65,0x44,0x1c,0x41,0x73,0x8b,0x6e,0x42,0x97,0x28,0xba,0xc0,0x75,0xb8,0xb8,0xc1,0x2b,0x2b,0x28,0xc2,0xa4,0x51,0x19,0xc1,0xb6,0x99,0x1b,0x42,0xb6,0x93,0xe5,0xbf,0x13,0x97,0x41,0xc2,0xa7,0x69,0xac,0xc1,0xa4,0x33,0x58,0x41,0xe8,0x3f,0x84,0x41,0x6,0x82,0x8c,0x40,0x10,0x1d,0xef,0xc0,0xe,0x24,0xde,0x40,0x46,0x14,0xd,0x41,0x3c,0x73,0x99,0x40,0x4a,0xa9,0x33,0xc1,0xe2,0x58,0xe2,0xc1,0x85,0xdc,0xec,0x40,0x30,0x1b,0x95,0x42,0x94,0xda,0x35,0xc2,0xdc,0x90,0x9a,0x41,0x56,0xd6,0xf7,0x41,0xdb,0xff,0x4c,0x41,0xf6,0x5e,0xb4,0x41,0xdd,0xde,0xf4,0xc1,0x10,0x95,0x8c,0xc1,0x9b,0x90,0x5a,0x41,0x69,0xf0,0xb5,0xc1,0x68,0xa2,0x40,0x41,0x7a,0x71,0x56,0xc2,0x51,0x72,0x15,0xc2,0xaa,0x51,0x93,0x41,0xb0,0x2d,0x59,0xc2,0xa2,0xc6,0x56,0xc0,0x52,0x90,0xb1,0xc0,0x80,0x85,0xf5,0x41,0x95,0xbd,0xa3,0xc1,0x96,0x1f,0x2a,0xc2,0xc6,0x6b,0x2a,0x40,0xd4,0x8e,0xbf,0xc2,0x90,0x9d,0xb0,0x41,0xf3,0x52,0x72,0x41,0xdd,0x42,0xdb,0xc1,0x1d,0x56,0xa9,0x40,0xc4,0x6b,0xa1,0xc1,0x4f,0x24,0x83,0xbf,0xed,0x14,0x11,0xc1,0xf9,0x2a,0xd2,0xc1,0x52,0x8a,0xb9,0xc1,0x6d,0x36,0x34,0x42,0x46,0xd9,0x82,0x41,0x64,0x93,0x98,0x41,0x30,0xe,0xdc,0x40,0xcc,0xf1,0xf6,0xc0,0xe6,0x52,0xa6,0xc1,0xf4,0x4c,0x1e,0x42,0xa6,0x5,0xa8,0x41,0x8a,0xac,0x1,0xc2,0xce,0x5,0x45,0x41,0x72,0xba,0x97,0xc1,0x80,0x51,0x6c,0x3f,0xbd,0xcb,0xbe,0x41,0x9f,0x62,0x9e,0x40,0x3e,0xe,0x17,0x42,0x6e,0x39,0xbe,0xc1,0x63,0x1,0xbe,0xc0,0xa4,0x49,0x88,0x40,0xf6,0x0,0x52,0xc1,0xde,0xe3,0x89,0xc2,0x45,0xf5,0x94,0x41,0x56,0x75,0x2f,0xc1,0x8a,0x28,0xe5,0xbf,0xe2,0x45,0xba,0xc0,0xc2,0xc1,0x32,0x42,0x72,0x65,0x71,0x41,0xa1,0x71,0xcf,0x41,0x43,0xf8,0x2c,0x42,0xcf,0xfb,0x31,0x42,0x2a,0xf6,0x14,0xc1,0xd9,0x7f,0x5,0x41,0x2,0x80,0x1b,0xc2,0x56,0xbc,0xcd,0x41,0xef,0x14,0x1b,0x41,0xbe,0xdb,0x1c,0xc1,0x18,0xfb,0x5c,0xc1,0xa1,0x53,0x93,0xc0,0x4,0x98,0xc6,0x41,0xf0,0xfd,0x2c,0x3d,0xa,0x57,0x92,0x42,0x90,0xd3,0x77,0xc1,0x4,0x5d,0xb3,0x41,0xc5,0x9f,0x3d,0x41,0x68,0x6a,0xd1,0x41,0x80,0x66,0xd5,0xc0,0xd0,0x3e,0xd5,0xc1,0x6f,0x4f,0xfd,0x41,0x35,0x8b,0xef,0x3f,0xd6,0x82,0xb0,0xc1,0x2f,0xe8,0xa,0xc2,0x5c,0xef,0x4b,0x41,0x77,0xf5,0xe3,0x41,0x88,0xc,0x56,0x42,0xe8,0x1e,0xf8,0x41,0x8d,0x29,0x29,0xc2,0x87,0x31,0x34,0xc1,0x81,0xc3,0x61,0x41,0x96,0xdd,0x31,0xc1,0x5b,0xc,0x1,0x42,0xb5,0x23,0x17,0xc2,0x97,0xe5,0x8,0x40,0x5c,0x96,0x4,0xc0,0xbc,0x4d,0xba,0xc1,0xf8,0xb2,0x9a,0x41,0x4,0xa0,0x5,0xc2,0xf1,0xa1,0x97,0x40,0x1a,0x8f,0xb6,0x41,0xe9,0xf0,0xbf,0xc0,0x2d,0x2b,0x16,0xc2,0x61,0x84,0xaa,0x41,0xde,0xb0,0x37,0x41,0xfd,0x8d,0xc6,0xc1,0xd0,0x77,0x5f,0x42,0x90,0xb0,0x56,0xc2,0xb0,0x8,0x4c,0xc1,0x8,0x4,0xb3,0x41,0x55,0x48,0x29,0xc1,0x75,0xe9,0x71,0xc2,0x56,0x45,0xc,0x41,0xd3,0xb8,0x7f,0x42,0x9b,0x38,0x89,0x40,0xb2,0x2f,0x32,0xc2,0x82,0x9a,0xa6,0xc1,0x68,0x2c,0x4,0xc2,0xe3,0x72,0x4b,0x41,0xfc,0xb,0xac,0x41,0x1f,0xca,0x85,0x40,0x3e,0xb6,0xec,0xc1,0x8b,0x9a,0x84,0x41,0x4f,0x38,0x2c,0xc2,0xbf,0x79,0xa1,0x41,0x25,0x43,0xa,0xc2,0xe9,0x7b,0x68,0xc1,0xee,0x9b,0x5e,0xc1,0x70,0xb1,0x2d,0x42,0xd2,0xe7,0x2b,0xc2,0xb6,0x1c,0x0,0xc2,0xa2,0x5c,0xd,0x40,0x94,0xfa,0x8d,0xc2,0xff,0x8a,0x6b,0xbf,0xe2,0xf5,0x59,0xc1,0xae,0xea,0x74,0xc0,0x1b,0x46,0xf1,0xc1,0x23,0xab,0x16,0x41,0x73,0xbb,0x59,0x42,0xd2,0xea,0xbc,0xc0,0x6a,0xc7,0x18,0x41,0x4,0x61,0x9a,0x41,0x0,0xe4,0x40,0xbf,0x4d,0xdb,0x84,0xc2,0x3f,0x7f,0x5d,0xc2,0x3,0x6e,0x4d,0xc2,0x39,0xbb,0xc4,0x41,0x37,0x82,0x90,0xc2,0x6d,0x36,0x24,0xc2,0x72,0x9f,0x5e,0xc1,0x72,0x4d,0x53,0x42,0xe4,0xf4,0x8e,0x41,0xb1,0x17,0xa3,0x41,0xdb,0x53,0x2c,0x42,0xfa,0xa1,0xf7,0x41,0xbf,0xd6,0x3b,0xc2,0x57,0x2e,0xf4,0x40,0x4e,0x73,0x0,0xc2,0x38,0x80,0x18,0x3f,0xce,0x2f,0x23,0xc0,0x22,0xbc,0x90,0x40,0xb3,0x1c,0x20,0x41,0x7c,0xa0,0xdc,0xc1,0xcd,0xac,0x81,0xc2,0x6f,0xf4,0x33,0x42,0xa0,0x46,0x76,0xc1,0x42,0x9,0x4c,0x42,0x8,0x38,0x48,0x42,0x5b,0x80,0x84,0xc2,0xdf,0x32,0x6c,0xc0,0x36,0x7e,0xb7,0x41,0x76,0xb1,0x31,0x41,0xe0,0xc8,0xc3,0x40,0xad,0xc8,0x25,0xc1,0x5c,0xfc,0xa4,0xc2,0x4e,0xe7,0xdb,0xc1,0x1b,0xad,0x95,0xc1,0xdd,0x60,0x64,0x41,0xd2,0x4c,0x99,0x40,0x1f,0xe,0x9c,0x41,0xd5,0xb5,0x51,0x42,0xbd,0x67,0x52,0x41,0x35,0x63,0x2,0xc2,0x7b,0x7f,0xbf,0x41,0x26,0xc1,0x3a,0xc1,0xc7,0x4f,0x30,0xc2,0x8e,0x20,0x6,0xc2,0xee,0x88,0x11,0x42,0xd6,0xb4,0xb,0xc0,0xd6,0xa0,0xd5,0x41,0x8b,0xb0,0x9,0x41,0x1b,0xb4,0x96,0x42,0xbd,0x32,0x33,0x40,0xef,0x98,0x90,0x42,0xc0,0x46,0xf1,0xc0,0xc0,0x5,0x56,0x42,0xf2,0x27,0xec,0x41,0x98,0x45,0x4,0xc2,0x52,0x3e,0xc1,0xbf,0x12,0x67,0x44,0xc1,0xa0,0x42,0xc9,0xc1,0xae,0x88,0x93,0xc1,0x68,0x34,0x66,0xc2,0x7b,0x9e,0xad,0xc1,0xb8,0x3a,0xc2,0x3e,0x7e,0x90,0xf2,0xc0,0x80,0xdb,0xfa,0x42,0x79,0xf4,0x21,0xc2,0xda,0x81,0x32,0x42,0x7,0xca,0xfe,0x42,0x96,0xbd,0xdf,0x41,0xa1,0x7b,0xa3,0xc1,0x4c,0xe,0xde,0xc2,0xd8,0x67,0x16,0x42,0xa2,0xfb,0xcd,0xc1,0x80,0xa0,0xa1,0x3d,0x45,0x49,0x1b,0xc2,0xee,0x6a,0x11,0x42,0x85,0x68,0x91,0x42,0x41,0x95,0x5d,0x42,0xc9,0x8d,0x8c,0x42,0x23,0xe9,0x6b,0x42,0x43,0x56,0x5a,0xc2,0xc4,0x50,0xa0,0xbe,0xbe,0x71,0x5c,0x40,0x75,0x9a,0x12,0xc0,0x70,0x68,0x15,0xc2,0x61,0xa9,0x7e,0xc2,0x36,0xc6,0x58,0xc1,0x32,0x9b,0xce,0x41,0x4a,0x6,0xd3,0xc1,0x1c,0xf1,0xda,0x41,0x54,0xdf,0xae,0xc1,0xe1,0x4,0x78,0x42,0x6e,0x37,0xac,0x41,0x74,0x6c,0x9c,0x42,0x59,0xac,0x29,0xc0,0xc,0xfc,0x4f,0xbf,0x3d,0x60,0x76,0x42,0x58,0x37,0xcc,0x41,0xf8,0x3f,0x26,0xc1,0x6f,0x8b,0x1,0x42,0xc,0x93,0x25,0x42,0xc6,0x22,0x89,0x42,0x19,0x73,0x75,0xc1,0xca,0xa4,0x1a,0x42,0xbb,0xdf,0x55,0xc2,0x15,0xd4,0xbf,0x40,0x96,0x83,0x3d,0x42,0x2e,0x25,0xfe,0xc0,0x55,0x87,0xf,0x42,0x64,0x44,0x4d,0xc2,0xe3,0x82,0x6a,0xc2,0xd4,0xb2,0x7b,0x42,0x13,0xf7,0x2a,0x42,0xb4,0x3f,0xa7,0xc2,0x60,0xeb,0xb,0xc2,0x60,0x9,0x2e,0xc2,0x6,0xb1,0xf5,0x41,0xb1,0x70,0xd2,0xc1,0x71,0x29,0xcc,0x41,0xa,0xd5,0x2,0x41,0xfa,0x11,0xc5,0xc1,0xea,0xf1,0x17,0xc1,0x6a,0xd1,0x88,0x41,0xc2,0x17,0x60,0xc1,0x4,0x9a,0x51,0x41,0x11,0x6,0xab,0xc1,0xdf,0x7a,0x5d,0xc2,0xac,0xfd,0x9a,0x3f,0xb,0x8e,0x81,0xc1,0x94,0x18,0x31,0x41,0xdb,0xf3,0x89,0xc2,0xae,0xba,0x84,0xc0,0xc8,0x60,0x37,0x42,0x95,0x5c,0xbc,0x41,0x8e,0xd3,0x5d,0x42,0x78,0x7d,0x8d,0x42,0x9e,0xeb,0x51,0xc1,0xba,0xc7,0x96,0xc1,0x7f,0x45,0x41,0x3f,0x95,0x2,0xa4,0xc1,0xb4,0x1a,0x12,0xc2,0x31,0x45,0xbb,0xc1,0xe5,0x10,0x1f,0x42,0x54,0x24,0xe1,0xc1,0x51,0xa3,0x34,0x42,0xea,0xe4,0xa5,0x40,0xd9,0x89,0x8c,0xc0,0xab,0x34,0x1,0x42,0x3f,0x27,0x18,0x42,0x74,0xb6,0xec,0x42,0xca,0xb7,0x45,0xc2,0x1d,0x68,0x10,0x42,0x5c,0x1b,0xca,0xc2,0xcc,0x88,0xa2,0xc1,0x25,0x8,0xa0,0xc2,0xfe,0xaa,0xe8,0xc1,0x61,0x2c,0xc5,0xc1,0x5a,0x65,0xb9,0xc1,0xe3,0xeb,0x59,0x42,0x8,0x40,0x23,0xc1,0x3f,0x1a,0x47,0x42,0x14,0x0,0xfc,0x41,0x6,0x88,0xb2,0x42,0x7a,0x15,0xc5,0x42,0x40,0x3a,0xb5,0x41,0x4b,0x13,0xb0,0xc1,0xd2,0x42,0x89,0xc1,0x24,0x3,0xdd,0x40,0x90,0x67,0x6d,0xc2,0xd2,0xeb,0xc6,0x40,0x5e,0x5b,0xc1,0xc1,0xe0,0xdf,0x35,0x40,0x76,0x8f,0xa1,0xc1,0x1b,0xeb,0x16,0x42,0xfb,0x6b,0x91,0x41,0x15,0x94,0x4a,0xc2,0x2b,0x4c,0x9e,0xc1,0xf6,0x4d,0x83,0xc0,0x54,0xd6,0xa9,0xc0,0xa5,0x4b,0x3,0x42,0xf8,0xc4,0xbc,0xc2,0xdf,0x95,0x8e,0xc1,0x3b,0x5c,0x50,0x42,0x24,0x24,0x1d,0xc2,0x71,0x92,0xc2,0xc2,0xd1,0x72,0x21,0x41,0x3f,0x3e,0x92,0xc0,0xa,0xfc,0xad,0xc1,0xc,0x76,0xa8,0xc2,0xa,0x39,0x3d,0xc2,0x28,0x11,0x8e,0x40,0xa5,0x20,0x8d,0xc2,0x26,0xd1,0xe9,0x3e,0x3c,0xce,0x68,0x42,0x70,0x2a,0x9d,0x3f,0x9c,0xf0,0x2f,0x40,0xaa,0xba,0xd1,0xc0,0xbd,0xfb,0x30,0xc2,0xa4,0x68,0x43,0x41,0xb5,0x2c,0xb3,0x41,0x24,0x2b,0xbf,0x40,0x17,0x72,0x4,0x42,0xc0,0xbe,0x19,0x41,0x31,0x76,0xf6,0x41,0x20,0x4d,0xd,0x41,0x36,0x40,0x9c,0xc1,0x32,0xa8,0x91,0xc2,0x84,0xb,0x8a,0x42,0x6f,0x42,0xaf,0xc1,0xbe,0x62,0xf,0x41,0xde,0xbc,0xaa,0xc1,0x65,0x1,0x84,0xc2,0x88,0x65,0x60,0x41,0x12,0x23,0x9e,0xc1,0x9f,0x4a,0xe7,0x41,0xad,0xfd,0x54,0x42,0x68,0xd8,0xfa,0x40,0xcd,0x8b,0x9b,0x41,0xc1,0x9d,0xc2,0xc0,0xb7,0x76,0x41,0xc1,0x2c,0x34,0xa4,0x42,0x25,0xc7,0x0,0xc3,0x99,0x1f,0x2c,0x42,0x29,0x3,0x5,0x42,0xc9,0xea,0xca,0xc0,0x69,0x5d,0xee,0xc1,0xae,0x52,0xac,0x41,0x7a,0x4e,0xb1,0x42,0x70,0x45,0x98,0xc1,0xc8,0xb8,0xe7,0xc1,0xfc,0x97,0x8e,0x42,0xde,0x9d,0x7c,0x40,0x73,0x8c,0x76,0x42,0xd0,0x57,0x15,0xc2,0x65,0xc4,0xe0,0x41,0xf3,0x76,0x4d,0x41,0xa5,0x65,0x62,0x42,0x91,0x11,0x81,0xbf,0x58,0xff,0xd4,0x41,0x61,0x3f,0x6,0x42,0x33,0x1b,0x1f,0x42,0x57,0x26,0x14,0x42,0x4d,0x29,0xd7,0x41,0x6,0x8c,0xc2,0xbf,0xaa,0xe3,0x5e,0x42,0xb0,0x10,0x79,0x42,0x5a,0x62,0x65,0x42,0xf5,0xdf,0xd6,0x41,0x3d,0x13,0x8d,0xc1,0x6e,0xbf,0xe9,0xc1,0xd4,0x8c,0x36,0x42,0x93,0x3,0xbf,0x3f,0x33,0x6,0x93,0xc2,0x72,0x68,0x2c,0x42,0x96,0x84,0xbd,0xc1,0x82,0xd6,0x69,0x42,0xf5,0x64,0x74,0x41,0x43,0x98,0x9f,0x40,0xd2,0xb4,0xde,0xc1,0x62,0xbe,0x3,0xc2,0x88,0x1c,0x59,0xc2,0xb3,0xda,0xd0,0xc1,0x78,0x60,0x12,0x42,0xbc,0xa2,0x4,0x43,0xf8,0x5a,0x97,0x40,0x4c,0xd2,0x1c,0xc2,0xa8,0x2c,0x17,0x42,0x90,0x7d,0x45,0x42,0x43,0x56,0x63,0x42,0xae,0x9,0xa1,0x41,0x3,0x8f,0x24,0x42,0x14,0x53,0xeb,0x41,0x64,0xa0,0x34,0x41,0x94,0x16,0x48,0x42,0xe3,0x9,0xc,0xc2,0x79,0xf5,0x7d,0xc2,0xdb,0x8a,0x8c,0xc2,0xa2,0x1f,0x91,0xc2,0x32,0xa8,0x55,0x42,0x7d,0xca,0x68,0xc2,0x94,0xee,0x90,0xc2,0x7e,0x8d,0x31,0xc2,0xcd,0x5c,0x81,0xc1,0xb0,0x5c,0xdd,0x41,0xb9,0xc6,0x47,0x41,0x99,0x2,0x86,0x42,0x7e,0x9a,0xf,0x41,0x35,0xb5,0x28,0x42,0xd8,0x58,0xb9,0xc2,0x65,0xb1,0x88,0xc1,0x3a,0x3d,0x3b,0xc2,0xa4,0xa7,0x24,0x42,0xfb,0xd5,0x42,0xc2,0x43,0x76,0x8,0x42,0x9,0xbe,0x55,0x42,0x8b,0x2,0x62,0xc2,0xb4,0xf1,0x1f,0xbf,0x74,0x53,0x73,0x3f,0x1a,0x62,0x1f,0xc2,0x25,0x9,0xca,0x40,0x26,0x39,0xba,0xc0,0x28,0xd6,0x0,0x41,0x90,0xde,0x2c,0xc2,0x96,0x56,0x7,0xc2,0xf0,0xe5,0x8c,0xc2,0xd0,0x7c,0x55,0xc2,0xcf,0x9b,0x10,0xc2,0x8b,0x60,0x5a,0x42,0x6c,0x43,0xbf,0xc1,0x65,0xcd,0x2b,0xc2,0x5f,0xe2,0x48,0xc1,0xb1,0x29,0x17,0x42,0xee,0xe,0x16,0xc2,0xe2,0x9f,0x3,0x42,0x74,0x47,0xb9,0x41,0x62,0xb9,0xa6,0xc1,0xce,0xa2,0x6,0x41,0x6c,0xd4,0x7e,0xbf,0xa2,0x5b,0x15,0x42,0xec,0x5,0x4e,0xc2,0x2a,0x8c,0xa4,0x42,0xf6,0x85,0x80,0xc2,0x3c,0xcd,0xb8,0xc1,0x6a,0x3f,0x23,0x42,0x8c,0xfc,0x12,0xc1,0x60,0x99,0x12,0xc1,0xaf,0x87,0x8,0xc2,0x69,0xe3,0x3c,0xc2,0x3c,0x7c,0x6a,0x41,0x74,0x77,0xc,0xc2,0xa,0xd1,0xe6,0x41,0xc0,0x39,0x25,0x42,0xd8,0x2f,0x7d,0x42,0xd8,0x3,0x2a,0xc1,0xf3,0xda,0xe1,0xc1,0xbd,0x63,0xae,0xc2,0x4b,0xdd,0x96,0xc1,0x93,0xb8,0xa1,0xc1,0x2e,0xe2,0xc,0xc1,0x54,0xe0,0xf2,0x41,0x78,0xb9,0x58,0x40,0x3e,0x79,0xdc,0x41,0xf3,0xdc,0x62,0x41,0xbd,0xab,0xe7,0x40,0x9c,0x18,0xb,0x42,0x8c,0x94,0xee,0x41,0x1a,0x15,0x13,0xc2,0xe3,0xfe,0x22,0x42,0xfd,0xd9,0x2,0x42,0xaf,0x73,0x93,0xc1,0xb0,0x9b,0x40,0x41,0x54,0xe4,0x4c,0xc0,0x25,0x53,0x7b,0x42,0xea,0x6b,0x22,0xc2,0x48,0xa6,0xb2,0xbe,0xf7,0xf7,0x56,0x40,0x5f,0x78,0xd4,0x41,0x3f,0xd6,0x38,0x42,0xf3,0xfb,0xaa,0x41,0xcd,0xc1,0xcb,0x41,0x34,0x6f,0xd2,0xc2,0xe0,0x3a,0xbf,0xbe,0xfc,0xf9,0xeb,0x40,0xcc,0xe1,0xa3,0xbf,0xcf,0xf7,0x79,0x42,0xa1,0x7d,0xbd,0xc1,0x40,0x10,0x1a,0x42,0xaa,0x59,0xb2,0xc2,0xfd,0x24,0x21,0x42,0xdf,0x25,0x79,0xc2,0xc1,0x60,0x93,0xc1,0x30,0x2f,0x92,0xc1,0x46,0x24,0x6f,0xc2,0x36,0xa0,0xb8,0x41,0xff,0x63,0xa,0xc2,0x4a,0xe9,0xba,0x42,0xf7,0xd0,0xd0,0x41,0xa,0xcd,0xac,0xc1,0x1e,0x8f,0xea,0xc1,0xa7,0x1e,0x7f,0x41,0xef,0x8f,0x33,0xc2,0x69,0xf9,0xdd,0xc1,0x63,0xd6,0x42,0xc1,0x82,0x5d,0x7b,0x41,0x70,0xbc,0x37,0x42,0x4f,0x46,0x4,0xc1,0x59,0x69,0x37,0xc0,0x1a,0xcf,0xe3,0x40,0xce,0x44,0x7d,0x41,0x95,0x1e,0xa3,0xc0,0xdc,0xe9,0x1d,0xc0,0xc9,0xff,0x1d,0xc2,0x1d,0x7f,0xee,0x41,0x9a,0x92,0x95,0xc1,0x31,0x8,0x1f,0x41,0x33,0x28,0x83,0xc2,0xc8,0xf0,0xf3,0xbe,0xde,0xcf,0x3e,0xc2,0x36,0x38,0x27,0xc2,0x32,0xa0,0x1a,0xc1,0x7c,0xc6,0xec,0x40,0xce,0xeb,0x3a,0x41,0xe8,0x8,0x84,0x42,0xc,0x2e,0xf5,0x42,0xc1,0x5a,0x82,0x42,0xbf,0x42,0xa8,0x42,0xa,0xfb,0x1a,0xc1,0x74,0x38,0x4,0xc2,0xba,0xa2,0x63,0xc1,0xa6,0xc9,0x87,0x41,0x8,0x56,0xd,0xc2,0x76,0x84,0x4e,0x42,0x8e,0x53,0xc8,0x41,0x4c,0xf7,0x3a,0x42,0xf0,0x78,0x8e,0x41,0xeb,0xe9,0xa9,0xc1,0xbc,0xd8,0x9e,0x41,0x1e,0x56,0x5c,0xc2,0x7a,0xe3,0x7,0x42,0xa4,0x74,0x1d,0xc2,0xa4,0x33,0x4a,0x42,0x85,0xdc,0x98,0xc2,0xb,0x44,0x4b,0x42,0xbf,0x5e,0x50,0xc1,0xb3,0xd3,0xa0,0xc2,0x20,0x46,0x5f,0x40,0xe7,0xa3,0xe3,0x40,0x32,0xb6,0x5f,0xc2,0xd1,0xc8,0xa4,0xc2,0xb0,0x6a,0xb8,0xc1,0xb3,0x24,0xd9,0xc1,0xe3,0xec,0xc,0x41,0xea,0x3d,0xe6,0x41,0x5,0x89,0xab,0x42,0xee,0x82,0xed,0x41,0x2d,0xe4,0x30,0x41,0x1d,0x7a,0x29,0x42,0x99,0xf1,0x25,0xc2,0x1c,0x78,0xae,0x3f,0x1f,0xe3,0x20,0xc2,0x60,0x6b,0x4e,0x42,0xc6,0x75,0x12,0x42,0x89,0x25,0x14,0xc2,0x88,0xe4,0xd3,0xc1,0xea,0x11,0x1b,0xc2,0xfb,0x18,0x84,0xc1,0x70,0x37,0xbc,0xbf,0xc1,0x3,0x49,0x41,0x76,0x54,0xef,0x40,0xa4,0x14,0xf0,0xc1,0xf5,0x5d,0x37,0xc2,0x23,0x6a,0x8,0x42,0xab,0xcc,0x1b,0xc2,0x70,0xeb,0xeb,0x41,0xc3,0x51,0x13,0xc2,0xf6,0x9b,0x91,0x41,0xac,0xad,0xb4,0x42,0x60,0x95,0x91,0xc2,0x1e,0x80,0xf5,0x40,0xa6,0xaf,0xd6,0x3f,0x73,0xa1,0xc4,0x41,0x33,0x28,0xda,0xc1,0xbe,0xbd,0x40,0x42,0x27,0x5e,0x8d,0xc2,0xcc,0xa9,0x29,0xc2,0x65,0x0,0x5a,0x42,0xd0,0x17,0xd1,0xc0,0x16,0xff,0x9e,0xc2,0x75,0x86,0x95,0x40,0x25,0x29,0x21,0x42,0x54,0x94,0x1b,0x3f,0x85,0x9c,0xf8,0xc2,0x1f,0xeb,0x63,0xc2,0x78,0x8a,0xfc,0xc1,0x90,0x8d,0x4e,0x3e,0xef,0x25,0x8c,0xc2,0x88,0x93,0x6a,0x41,0x6f,0x79,0x8a,0xc2,0x32,0x1,0x92,0x41,0x4f,0x71,0x70,0x42,0x9b,0xa9,0x78,0x42,0xfb,0x6f,0xfe,0x41,0x7a,0xe5,0x3,0x42,0xfb,0x9f,0xfa,0xc0,0x98,0x71,0x23,0xc0,0x9a,0x66,0x7e,0x41,0x55,0xcb,0x64,0x42,0xae,0x4c,0xde,0x41,0x53,0xce,0x23,0xc2,0xf1,0xd3,0xf,0xc2,0x98,0x34,0x41,0xc2,0x22,0xfd,0x18,0xc2,0x54,0x6f,0x0,0xc0,0xd0,0x30,0x3f,0xc1,0x8e,0xe8,0xce,0xc1,0xcf,0xbc,0xcd,0xc1,0x81,0x6e,0xea,0x41,0x1a,0x25,0x96,0x41,0x7c,0x26,0x89,0xc2,0x2f,0x1a,0x53,0x42,0x60,0xd6,0xb4,0x41,0x28,0xb7,0x43,0x41,0x39,0x43,0xe8,0xc2,0x4c,0xe1,0x66,0xc1,0x97,0xc1,0xf7,0xc1,0x42,0x7b,0x30,0xc0,0x78,0x39,0x5f,0xc1,0xf8,0xbc,0xeb,0xc2,0xd1,0xda,0x97,0x42,0xd3,0xef,0x81,0xc2,0x66,0x3b,0x1f,0x41,0x68,0x33,0x84,0xc2,0xf4,0x3,0x3d,0x42,0x56,0xc7,0xf2,0x41,0x58,0xad,0xa9,0xc1,0x56,0x8a,0x2d,0x41,0x42,0x62,0xaf,0x42,0x98,0xc7,0xb6,0x40,0x21,0x2,0x9b,0xc2,0x5e,0xcc,0xcf,0x41,0x62,0x3d,0x64,0xc1,0x46,0xa2,0x73,0x42,0xf2,0x59,0xc1,0xc1,0x8,0x78,0xec,0xc1,0xd0,0xb0,0x92,0x40,0x94,0xff,0x51,0xc2,0xc9,0x3,0x8f,0xc2,0x34,0x28,0xef,0x41,0x84,0xcf,0xe2,0xc1,0x15,0x6b,0xbe,0xc0,0x71,0xd0,0x33,0x42,0x88,0xd4,0x6d,0xc2,0x29,0xcf,0xb8,0x41,0x7d,0x11,0x95,0xc2,0xa3,0x5f,0xe5,0xc1,0x63,0x9,0x72,0xc2,0xd9,0x77,0x3b,0xc2,0xc6,0xd1,0x83,0x41,0x92,0xd1,0x72,0x40,0x5b,0xc9,0x2,0xc2,0x81,0xf6,0x1f,0xc2,0xc8,0x9,0x8c,0xc2,0xd2,0xfb,0x99,0xc2,0xc2,0xa8,0x83,0xc2,0xb8,0xd,0x70,0x41,0x7f,0x4c,0x99,0x42,0xec,0x14,0xa6,0x42,0x70,0x23,0x5,0x41,0xd4,0x60,0x77,0x40,0x9b,0xce,0xcd,0x40,0x8,0x3,0x6c,0xc0,0x68,0xb9,0x2f,0x3e,0x48,0x6c,0xd0,0xc2,0x17,0xb,0xe5,0x41,0x4b,0xb1,0x41,0x42,0xea,0xc,0x8b,0xc1,0x99,0x12,0xce,0x41,0x3e,0xf2,0xfd,0xc1,0xca,0xfb,0x53,0xc2,0x3e,0x80,0xb4,0x41,0xac,0x1e,0xc1,0xc1,0x4b,0x47,0x91,0x41,0xae,0xa0,0xa6,0x42,0xe4,0xad,0xa4,0x42,0x5,0x35,0xbf,0x41,0xc7,0x6e,0x6a,0x42,0x68,0xf2,0x5d,0xc2,0x11,0xd,0x1c,0xc2,0xa6,0x5d,0xf8,0x41,0x76,0x29,0xe3,0xc1,0x24,0x61,0xad,0xc1,0x8a,0xf,0x1f,0x41,0xf0,0x78,0xcc,0x41,0xd8,0xfd,0x8,0xc2,0xbe,0x17,0xcf,0xbf,0x52,0x16,0xb9,0x42,0x58,0x93,0xcb,0xc1,0x35,0xc1,0x84,0x42,0x7c,0x31,0x35,0x42,0xc8,0x3c,0x5c,0xbf,0x5d,0x91,0xc,0x42,0x68,0x11,0x9,0x41,0xcd,0x14,0x89,0x40,0x86,0x2a,0x7,0x42,0x64,0xa1,0x77,0x41,0xd1,0x45,0xe,0xc1,0x95,0x30,0x66,0x42,0x17,0xa4,0x81,0x41,0xe3,0xfa,0x32,0x41,0x47,0x87,0x2b,0xc2,0x41,0x14,0xcc,0x40,0x9b,0xe5,0xa8,0xc2,0x38,0xed,0x61,0x3f,0x19,0x1a,0x3d,0x42,0xd8,0x85,0x65,0xc1,0x14,0x32,0x1f,0xc2,0x3a,0x61,0x8,0x42,0xc9,0x36,0xc2,0x40,0x99,0x68,0xa5,0x42,0xb8,0xe0,0x9b,0x41,0xa6,0x45,0x9d,0xc2,0x42,0xa4,0x82,0x42,0x16,0xd3,0xed,0x41,0xdc,0xd2,0x6b,0xc2,0x2e,0x63,0x59,0x41,0xcc,0xf3,0x10,0xc2,0x81,0x62,0x1b,0x41,0x2d,0xf5,0x9b,0x42,0xcd,0x96,0x4d,0x42,0x72,0xb0,0x87,0xc2,0xbe,0xa,0x5,0xc2,0xac,0xef,0xa9,0x42,0xd5,0x24,0xf7,0x41,0x40,0xd6,0xeb,0x3f,0xe8,0x45,0x5f,0x41,0x5a,0xb6,0xe9,0xbf,0xf,0x5d,0xe4,0x41,0x1d,0x67,0xc7,0xc2,0xbc,0x26,0x71,0xc1,0xea,0x77,0x3e,0xc1,0x1e,0x60,0x15,0x42,0x68,0xfc,0xab,0x41,0xa4,0x96,0x96,0x42,0x84,0xe1,0x5b,0x42,0xa0,0xc8,0x3e,0x41,0x56,0xb1,0x3d,0xc2,0xbc,0x92,0x5e,0x42,0xc,0x61,0x9a,0x41,0x65,0x4c,0xb6,0x41,0x86,0x9,0xba,0x42,0x45,0x61,0x79,0xc2,0xad,0x81,0x9b,0x41,0x23,0x65,0xd5,0x41,0x11,0x8e,0x42,0xc1,0xbb,0xd8,0x80,0xc0,0x68,0x44,0x82,0x42,0xf5,0x2a,0x7a,0xc1,0xe4,0x6e,0x27,0x42,0x16,0x12,0x31,0x41,0xa6,0x6d,0xbb,0xc1,0xdc,0xc5,0x9c,0x3e,0xca,0x7,0xc8,0x41,0x32,0x56,0x24,0xc0,0xf,0xb0,0xef,0x41,0xce,0x88,0xc9,0xc1,0xf7,0x6b,0xcd,0xbf,0xda,0xe,0xd,0x42,0xb3,0x90,0x73,0x41,0x8d,0xe5,0x63,0xc2,0x94,0xe4,0x1f,0xc2,0xf4,0xa6,0x1f,0x41,0xab,0x6c,0x8e,0xc2,0xf9,0x43,0xe4,0x41,0x2c,0x5f,0x9f,0x41,0x6b,0xdc,0x22,0x42,0xea,0x86,0xf4,0x42,0xe,0x2f,0x98,0x41,0x26,0x47,0x40,0xc0,0x2,0x88,0xb,0x42,0xec,0xe6,0x31,0xc2,0x18,0x46,0x3e,0xc2,0x45,0x51,0x69,0xc2,0xee,0x98,0x85,0x42,0x3c,0x97,0x8c,0xc0,0xdc,0x6c,0x70,0x42,0xf7,0xd7,0x90,0x42,0x36,0xf7,0xd,0x40,0xfc,0x45,0x64,0xc0,0xf,0x1d,0xf5,0xc1,0xef,0x38,0x10,0xc0,0x8e,0x2e,0xcf,0x41,0x54,0x38,0x57,0x42,0xa2,0x60,0x85,0xc1,0xa3,0x4,0x49,0xc2,0x78,0x39,0x34,0xc1,0x9b,0xd8,0x57,0xc2,0x36,0xe,0x19,0x42,0xc1,0xdc,0xa3,0xc2,0x2c,0xc8,0xa1,0xc2,0xbe,0xdd,0x58,0x42,0xe1,0x77,0x85,0x41,0xa4,0x81,0xe7,0xc1,0x9e,0xe2,0x62,0xc2,0xc4,0x82,0x47,0xc1,0xb6,0xee,0x80,0xc2,0x94,0xd0,0x5d,0xc2,0x61,0x57,0xe2,0x41,0x4c,0xd,0x25,0x42,0x8c,0x5d,0xad,0x41,0x45,0x4d,0x81,0x41,0x2e,0x95,0x25,0x42,0xc3,0x10,0xa0,0xc2,0x6c,0xe5,0x33,0xc1,0x8f,0xe6,0xad,0xc0,0x6c,0x9c,0xe2,0xc1,0x3e,0x6b,0x19,0xc1,0xc3,0x95,0xaf,0x42,0xfe,0x4e,0xbb,0x41,0xd5,0x2,0xa1,0x41,0xe0,0x36,0xb3,0xc0,0x37,0xc2,0xe2,0xc1,0xc5,0x49,0x18,0xc1,0xdd,0xa4,0xa,0xc2,0x2,0x21,0x56,0x41,0x37,0x5b,0x46,0x41,0x11,0x5d,0xf9,0x41,0xd0,0xc8,0x4,0xc1,0x12,0xa,0xec,0x41,0xf4,0x2b,0xa0,0xc2,0xbc,0x1a,0xda,0xc1,0xb1,0x32,0x13,0x42,0x19,0xa8,0xb8,0x42,0x5d,0xad,0x1f,0x42,0xd2,0x7e,0x98,0x40,0x82,0x92,0xb0,0x42,0x44,0x2b,0x8f,0xc2,0x5b,0x84,0x10,0xc2,0x79,0x50,0xa,0x42,0xec,0xfd,0xb0,0xc2,0x84,0xa8,0xe2,0x42,0x10,0x2c,0x5,0xc1,0x37,0xd9,0x16,0xc2,0xf6,0xfd,0x5d,0x42,0x1,0xca,0xd8,0xc0,0x92,0x33,0xfd,0xc1,0x1f,0xde,0xea,0x41,0x45,0x7a,0x4,0xc2,0xa8,0x9a,0xf5,0x3f,0x10,0x8,0xc9,0x40,0x5b,0x25,0x2,0x41,0xbf,0x23,0x45,0xc2,0x93,0x38,0x1d,0x42,0xfc,0xf,0xd4,0x41,0xf7,0xce,0x6f,0x41,0x5,0x1b,0x15,0x43,0x26,0xa9,0x38,0xc1,0x76,0x5d,0xf9,0x40,0x9f,0x8f,0x2e,0xc1,0x7f,0x96,0x48,0x42,0x48,0xde,0x7d,0x42,0xd1,0xe4,0x7b,0x41,0x6e,0x9b,0xc6,0xc1,0x9,0x77,0xd3,0xc1,0x3f,0x6a,0x29,0x40,0xc2,0x8a,0x6e,0x41,0xc2,0x7e,0xb,0xc2,0xae,0xe,0xfa,0xc1,0x9d,0xa0,0xb5,0x41,0x88,0x79,0x38,0xbf,0xe8,0x42,0x57,0xc0,0xd,0xb2,0x5c,0xc2,0xb6,0xed,0x8b,0x41,0x16,0xc0,0xa2,0x42,0xa8,0x67,0xaf,0xc1,0x1a,0xe6,0x41,0x42,0xf2,0x9e,0x1,0x42,0xfd,0x28,0xaf,0x42,0x3a,0xb2,0xe5,0x41,0x14,0x34,0x93,0x41,0xc6,0x12,0x9,0xc2,0x18,0xb9,0x91,0x42,0xda,0x22,0xe4,0xc1,0x11,0x20,0x61,0xc2,0xe2,0x9c,0x4b,0x41,0x8c,0x84,0xdd,0x41,0x9d,0x9,0xea,0x41,0x68,0x87,0x42,0x41,0xfd,0xf4,0x34,0xc2,0x50,0xbd,0xd2,0x40,0x38,0x31,0x4e,0xbf,0xa2,0xf2,0xbe,0xc1,0x63,0x69,0x33,0x41,0xea,0x6c,0x29,0xc1,0x26,0x52,0x4c,0x41,0xb9,0x2,0x70,0xc1,0x3,0xa8,0x1c,0xc2,0x18,0xd9,0xa5,0xc1,0x1e,0xc6,0xf4,0x42,0x5d,0x4b,0xff,0xc1,0xce,0x9c,0xb8,0xc1,0x46,0x74,0x36,0xc2,0xb7,0x62,0x33,0xc2,0xe,0xf1,0xc0,0x40,0xb3,0xeb,0x54,0xc2,0x6d,0x55,0xef,0xc1,0xe8,0x4c,0xa4,0x3e,0xe0,0x8f,0xad,0xc1,0x64,0xd7,0x19,0x42,0x52,0xbc,0x15,0x42,0x10,0x82,0x7,0x42,0x79,0xd2,0x34,0xc2,0x22,0xef,0x5a,0x42,0xdd,0xe2,0x9c,0x41,0x1d,0x58,0xef,0xc0,0xea,0x22,0x2b,0xc2,0xde,0xc2,0x9e,0x41,0x23,0x9c,0x97,0xc2,0x59,0x59,0x7a,0x42,0xe3,0xe9,0x7b,0xc2,0x47,0xf2,0xd1,0xc2,0x6e,0xd4,0x36,0x42,0xc8,0x44,0xc3,0xc1,0xc6,0xbc,0xa4,0xc0,0x75,0x41,0x4f,0xc1,0x4e,0xc1,0x80,0x42,0x72,0xc2,0x51,0xc1,0xde,0x6,0x2a,0x41,0x2b,0x4,0xf8,0x41,0xb2,0xc7,0x31,0x42,0xf6,0x74,0x92,0xc2,0x47,0x19,0x3,0xc2,0xdb,0x3,0x54,0x41,0x6b,0x59,0x4a,0x42,0x6a,0x9e,0x91,0x40,0x5a,0x7b,0xb6,0x41,0xe9,0x32,0x9c,0x40,0x20,0x9a,0xb3,0x42,0x91,0x9d,0x4b,0x42,0xa9,0xd9,0x29,0x42,0xce,0x43,0x6f,0xc1,0xd4,0x87,0x9b,0xc2,0x8e,0x3b,0x1,0x42,0x90,0xcb,0x4a,0x42,0x9c,0x2,0x23,0x42,0x3c,0xef,0x95,0x42,0x83,0x98,0x37,0xc2,0xac,0x9a,0xc0,0x41,0x16,0x3e,0x4f,0xc0,0x9d,0x17,0x83,0xc2,0x6b,0x94,0x95,0xc2,0xc2,0x6,0xb2,0x40,0x3f,0x2c,0x36,0x42,0x3c,0x75,0xb6,0x42,0x12,0xb7,0x96,0xc2,0xcc,0x13,0x59,0x41,0xe4,0xb6,0xca,0x41,0xca,0xb3,0x37,0x42,0xcc,0x12,0x2c,0xc2,0x86,0x6d,0xef,0x41,0xcd,0x21,0x4a,0xc1,0x5b,0x36,0xd7,0xc0,0xfc,0xd,0x82,0x42,0xc3,0xa3,0x7f,0xc2,0xb1,0xee,0x62,0xc2,0x49,0x48,0xae,0xc2,0x72,0xf5,0x4b,0x42,0x73,0xc0,0x1e,0x41,0x64,0x90,0x5d,0xc0,0xc2,0x48,0x47,0xc2,0xc5,0xb8,0x8c,0xc2,0x6,0xf5,0xac,0x41,0x6b,0x4b,0x1c,0x42,0xd4,0xfb,0x1b,0x41,0xe7,0x4b,0x4c,0x42,0xcc,0xa7,0xdb,0x42,0x20,0xd5,0x5e,0x42,0x8,0x43,0x82,0xc0,0x6b,0x58,0x1,0x42,0x92,0xdc,0xba,0x41,0xa0,0xad,0x51,0xc0,0xea,0x34,0xdf,0xc1,0x5f,0xac,0x1,0x42,0x30,0xfb,0xb9,0x3f,0x79,0xeb,0x98,0xc2,0x47,0xe5,0xa5,0x41,0x36,0xe1,0xd5,0x41,0x32,0xbc,0x55,0xc2,0x83,0xe,0xc0,0x41,0x8,0xb7,0x0,0xc2,0x52,0x44,0xa3,0x41,0x54,0xec,0xcc,0x41,0x1a,0xfc,0x75,0xc1,0xca,0xeb,0x66,0xc2,0xd5,0xe4,0xdc,0x41,0xac,0x75,0x1e,0xc2,0x5e,0x4f,0x2b,0x42,0xe8,0x27,0x6b,0x41,0xf2,0xec,0xa9,0xc1,0x66,0xcb,0x4a,0x42,0xf2,0xd6,0x9b,0xbf,0xd4,0x4b,0x69,0x42,0x12,0x9a,0x9a,0x41,0x14,0xd0,0xb2,0xc1,0x2e,0x9a,0xca,0xc1,0x20,0x5a,0xa0,0xc1,0xc,0xeb,0xf3,0xc0,0xb,0x95,0x32,0x42,0xba,0x10,0x4,0x41,0x8,0x6e,0x23,0x42,0xc4,0x61,0xa3,0xc1,0x72,0x6d,0xd4,0x41,0x79,0x1b,0x89,0x41,0xd9,0xd8,0x47,0x42,0xe0,0xeb,0xed,0xbd,0x3f,0x4d,0xba,0xc1,0x47,0x21,0xa4,0xc1,0xf4,0x4a,0x4d,0x42,0xca,0x85,0x9d,0x41,0x73,0x37,0xc0,0x42,0x6c,0x99,0xde,0x41,0x60,0x37,0x87,0xc2,0xdc,0x21,0xbd,0xc1,0x6f,0x4e,0xc7,0x40,0xe1,0xc1,0x2c,0xc0,0x38,0x1e,0xb6,0xc0,0x13,0xd1,0x3e,0x40,0x36,0x7e,0x9b,0xc0,0x22,0x1b,0x37,0x42,0x5,0xec,0x96,0x42,0xbe,0x3f,0x6e,0xc2,0xc2,0x88,0xe1,0xc0,0x47,0xf1,0x16,0x42,0x9a,0xd4,0xbc,0xc1,0x8e,0xfb,0x42,0x41,0xc9,0xf7,0xa2,0x42,0xfe,0x21,0x5,0x42,0x30,0x87,0x25,0x40,0x54,0x41,0x87,0xc1,0x46,0xaf,0x9,0xc2,0xdc,0xed,0x0,0xc2,0x19,0xf6,0xf9,0x41,0x67,0x19,0x84,0xc1,0x39,0x65,0x91,0xc1,0xc4,0xf4,0xe2,0x41,0xe6,0xc0,0x9b,0x41,0x4a,0x10,0x81,0x41,0xca,0xe0,0x33,0xc2,0x17,0x4,0x33,0xc1,0x91,0xf6,0xb,0x42,0xc0,0x94,0xcf,0x3f,0xec,0x6a,0xc1,0xc1,0xe9,0xc4,0x75,0x41,0xc,0xc8,0x9,0x42,0x70,0xd1,0x3a,0x42,0x76,0xad,0x39,0xc0,0x4a,0x49,0xe1,0xc0,0xe0,0xc3,0x8b,0x3f,0xa1,0xba,0xf3,0x41,0x5c,0x5f,0x4f,0x41,0xba,0x4,0xb7,0xc1,0x5e,0x3d,0xf2,0x41,0xd4,0x1,0x40,0xc1,0xeb,0x3b,0xdf,0xc1,0x3a,0x54,0xea,0x41,0x10,0x69,0xb7,0x41,0x50,0x1d,0xaa,0xc0,0x42,0x32,0x71,0x42,0xe4,0x2c,0xaa,0xc2,0xe3,0x97,0x71,0xc2,0x43,0xa,0xc9,0xc1,0x8f,0x62,0x84,0xc1,0x5a,0x3c,0xb4,0xc1,0x46,0x4b,0x51,0xc2,0xa1,0x6d,0xf1,0x40,0x9e,0xa1,0x9,0xc2,0xf2,0xd1,0x53,0x42,0xa6,0x99,0xc7,0xc0,0x3c,0x3a,0x84,0xc1,0x44,0xf8,0x33,0x42,0x94,0xf0,0xa,0xbf,0x6e,0xc9,0x81,0x41,0xd0,0x40,0xf,0x3d,0x94,0x22,0xb2,0xc2,0x16,0x24,0x4,0xc2,0x29,0x12,0xb5,0xc1,0x8c,0x0,0xad,0x42,0x88,0x2d,0xfd,0xbf,0x3a,0x86,0x2e,0x42,0xba,0x40,0x43,0xc2,0xc0,0xc3,0x9e,0x3d,0x94,0x8b,0x34,0xc1,0x52,0xe,0x22,0x42,0x26,0xb,0x80,0x41,0x75,0x29,0x2b,0xc2,0x5e,0x56,0x86,0xc1,0xf6,0xeb,0xd,0xc2,0xb4,0x71,0x99,0x41,0x41,0x8f,0x27,0xc2,0x48,0x22,0xce,0x41,0x14,0xd2,0x13,0xc2,0xa0,0x5b,0x6e,0xc0,0x8e,0x6,0xb0,0xc0,0xef,0x1d,0x6f,0xc2,0xd0,0x46,0x2d,0xc2,0xba,0xb8,0x87,0xc0,0x50,0xe1,0x18,0x40,0x20,0x31,0x4d,0x42,0xbb,0x29,0x12,0xc2,0x3,0x1b,0x83,0x40,0xb0,0xf4,0xff,0x40,0x96,0x52,0xad,0xc2,0x8,0xa6,0xea,0x3d,0xce,0xbc,0xb3,0xc1,0x65,0x21,0x9b,0x40,0xca,0xb1,0x1,0x42,0xf9,0xfd,0x11,0xc2,0xbc,0xb6,0x3,0xc3,0x86,0x13,0xd3,0x41,0x99,0xb3,0x7f,0xc1,0x2f,0xcc,0xf3,0xc1,0xe4,0xa9,0x26,0xc2,0xa0,0xed,0x64,0xc2,0xe6,0x80,0x46,0xc0,0xcb,0x18,0x29,0x42,0x86,0x54,0x21,0x42,0x70,0xc7,0x5e,0x40,0x26,0x43,0xdf,0xc1,0x14,0x46,0x48,0x41,0xee,0x81,0xeb,0xc1,0x9c,0x2a,0x5b,0xc2,0x84,0x4d,0x19,0x41,0xb1,0xe4,0x3e,0xc2,0x8e,0xd2,0x4d,0xc1,0x3e,0x44,0xaa,0x41,0x9a,0xdb,0x8d,0xc2,0x67,0x4f,0x82,0x41,0xd2,0x31,0x89,0x41,0x92,0x8d,0x26,0xc1,0x44,0x46,0x2d,0xc2,0x67,0x4a,0x82,0x41,0xf7,0x9c,0x69,0xc2,0xfb,0x77,0x8e,0xc2,0x48,0x3a,0x5,0xc2,0x23,0xca,0xde,0x3f,0x3e,0x79,0x80,0xc2,0x5e,0xb,0x8a,0x41,0xfc,0x27,0x99,0xc2,0x88,0x39,0xdd,0xc1,0xae,0x98,0x5f,0x42,0x84,0xa8,0x5f,0xc1,0x55,0x4b,0x59,0x42,0xfc,0xc,0x14,0x41,0xd4,0x82,0xfd,0xbf,0x30,0x25,0x94,0x41,0x1d,0x1,0xbd,0xc1,0xb0,0xe9,0xb,0x42,0xd0,0x93,0x24,0x41,0xd6,0x8c,0x0,0x42,0x72,0xb8,0x8d,0xc1,0xb6,0x7a,0x16,0x42,0xa4,0xc2,0x2d,0x42,0x9e,0xfa,0x41,0x42,0x77,0xc9,0xf7,0x41,0xa,0x64,0x36,0xc2,0x72,0x28,0x46,0xc2,0x64,0xe9,0xf0,0x41,0xbb,0x5,0xb3,0xc1,0x48,0xd7,0xfc,0xc1,0xbe,0xbe,0xcd,0x41,0xb5,0xee,0x2a,0xc2,0x56,0x6e,0x51,0xc2,0x48,0xe8,0x8f,0x3e,0xfc,0x4c,0xfb,0x41,0x34,0x56,0x32,0x42,0x84,0x5,0x18,0xc1,0x23,0x6b,0x44,0x42,0xb8,0x23,0x77,0x41,0xdc,0x89,0x25,0xc2,0xc4,0xf8,0x6a,0x40,0x8a,0xc9,0xa8,0xc1,0xe2,0x73,0xe2,0x41,0x68,0xb8,0x35,0x42,0x14,0xb2,0x30,0x40,0x4e,0xd6,0x16,0x42,0xda,0xc,0xc,0xc1,0x39,0x5c,0x2d,0xc2,0x3,0xc4,0x82,0x41,0xc1,0xcd,0x33,0x42,0x7f,0xae,0x33,0xc2,0xe,0x76,0x99,0x42,0x2e,0x8,0xdf,0x41,0xee,0x98,0xcd,0xc0,0x3c,0xdd,0x22,0xc2,0xa2,0x75,0x95,0x41,0xf5,0x83,0xf6,0xc1,0x5f,0x75,0xd,0x42,0x1c,0x4c,0xd2,0xc1,0x40,0xf1,0x5b,0xbd,0x3d,0x5,0x92,0x41,0xf9,0x61,0x7a,0x42,0x16,0x82,0x4b,0xc1,0x4,0xcb,0xb4,0x40,0x2b,0xfa,0x11,0xc2,0x7d,0x12,0x1,0x42,0x66,0xa9,0x5b,0x41,0xe9,0xd8,0xae,0xc1,0xe7,0xf9,0x82,0x42,0x6c,0x3d,0x9c,0x41,0x9c,0x81,0x15,0xc2,0x10,0x8,0xe9,0x41,0x41,0x6e,0x78,0x41,0x86,0xce,0x9b,0x42,0x1c,0x25,0x14,0x42,0x9a,0xc0,0xa9,0x42,0x94,0x7c,0x10,0x42,0x4c,0xb8,0xf0,0xc1,0x14,0x42,0x9a,0x40,0x6f,0xd0,0x8a,0x42,0x93,0x8d,0x36,0xc2,0xd8,0x5b,0x3f,0xc2,0xfc,0xb3,0x30,0xc2,0xfa,0x5a,0x96,0xc2,0xfe,0xd2,0x27,0x42,0x59,0xb0,0x0,0xc2,0xcf,0x22,0x7f,0xc1,0xfa,0x5b,0x13,0xc0,0x27,0xdf,0xf0,0xc1,0xe1,0x60,0xd7,0xc1,0xc2,0x24,0x1c,0xc2,0x37,0x17,0x4d,0x42,0x30,0x52,0xa3,0xc1,0xe4,0x87,0x1d,0xc1,0x94,0x18,0x2c,0x41,0x8e,0xca,0xb3,0xc0,0xe1,0x56,0x48,0x42,0xf8,0x3a,0x33,0x42,0xf7,0xad,0x3f,0xc2,0x32,0x75,0x1b,0x41,0xcf,0x40,0xbc,0xc0,0x29,0x36,0x5d,0x41,0xa9,0x99,0xa3,0x41,0x36,0x60,0x1f,0x42,0xb9,0x88,0xd1,0xc1,0x4a,0x99,0xf7,0x41,0x7e,0xce,0x2c,0x42,0xc6,0x60,0x5,0xc1,0x1a,0x65,0x18,0x40,0xeb,0xf,0x55,0xc1,0x4c,0xa9,0x65,0xbf,0xb,0xf6,0xd,0xc2,0x22,0xf5,0xc7,0x41,0xd9,0x72,0xfd,0xc1,0xa,0x10,0x40,0x41,0xcc,0xf3,0xf8,0x41,0x78,0x69,0x80,0xc2,0x2a,0xea,0x58,0x3f,0x69,0x6f,0x77,0x41,0xb7,0xa,0x10,0x42,0x51,0xca,0xb8,0xc1,0x23,0x9e,0x73,0x41,0x64,0x5a,0xa,0xc2,0xec,0xce,0x96,0xc0,0x21,0xce,0x5d,0x41,0x3f,0x56,0x65,0x41,0x67,0xe9,0x1,0xc2,0xc8,0x9f,0x80,0x40,0xdc,0xab,0xb1,0xc1,0xd6,0x2b,0xde,0x40,0xc9,0x9c,0x40,0x42,0x50,0xe0,0x7c,0xc1,0x15,0x92,0xa1,0xc1,0xa0,0x77,0x90,0xc1,0xc8,0x6f,0x2d,0xc2,0x10,0xf5,0x23,0x42,0xe3,0xe4,0x21,0xc2,0x5d,0x73,0x58,0xc1,0x40,0x3a,0xe8,0x41,0x4a,0x5,0x71,0x42,0xa2,0x42,0x3c,0x41,0xff,0x9e,0xb6,0x41,0xae,0xf9,0x9e,0x42,0x86,0x67,0xa5,0xc0,0x84,0x26,0x16,0xc2,0x78,0x2a,0x8c,0x41,0xdc,0x24,0x99,0xc2,0x5e,0x53,0x29,0x42,0x4c,0x91,0x91,0x42,0x2a,0xa,0xa,0xc2,0x10,0x58,0xaf,0x40,0x22,0xfe,0xe3,0x3f,0x4a,0x5f,0x26,0xc2,0x0,0x72,0x27,0x42,0xb6,0xa4,0xdc,0x41,0xd0,0xb0,0x58,0xc2,0x58,0x50,0x4b,0xc2,0x74,0xc0,0xe0,0x40,0xee,0x1,0x5e,0xc2,0x7a,0x60,0x37,0xc2,0xfe,0x5c,0xf4,0x42,0x31,0xa8,0x19,0x42,0xd3,0xd3,0x16,0xc1,0x5,0x32,0x9f,0xc2,0x51,0xb4,0xb,0xc2,0x6e,0xaa,0x56,0xc2,0xc6,0x34,0x69,0xc2,0x48,0x1a,0xfe,0x40,0xf7,0x66,0xbd,0x42,0x89,0xa1,0x8d,0xc2,0x3a,0xdd,0x5a,0xc1,0x11,0x6e,0xf3,0x41,0xf4,0x1b,0x2e,0xc1,0x82,0x47,0x35,0xc1,0x3c,0xd8,0x27,0x42,0x11,0xf5,0x36,0xc2,0x4c,0x32,0xff,0xc1,0xa6,0x1c,0xf0,0x41,0x12,0x91,0xa,0xc1,0x7c,0x44,0x80,0xc2,0xf0,0x4c,0x71,0xbf,0xf7,0xa3,0xdc,0xc1,0x3c,0xab,0x2c,0xc1,0x32,0x40,0x11,0xc2,0xa9,0x7b,0x37,0xc1,0x35,0xdb,0x1d,0xc2,0xc0,0x39,0x3e,0xc2,0x4b,0xef,0xe5,0xc1,0xe4,0x20,0x4a,0x41,0xeb,0xbe,0x30,0x42,0xf6,0x83,0x43,0xc2,0x7,0xec,0x11,0xc2,0x97,0xeb,0xec,0xc1,0xf6,0x5f,0x8b,0xc2,0x6a,0x61,0xb4,0xc2,0x5e,0x26,0x8b,0xc1,0x1e,0x3e,0x65,0xc2,0x69,0x9,0xb,0x42,0x98,0xae,0xbf,0xc1,0xab,0x81,0x6,0x42,0xc3,0x9c,0x90,0x42,0xc0,0x39,0x5c,0xc1,0x52,0x1d,0x65,0xc0,0xd1,0x99,0x82,0xc2,0x68,0x14,0x2a,0x42,0x5a,0x18,0x6,0xc2,0x9c,0x61,0xd2,0x41,0xfb,0x30,0x7,0xc1,0x62,0xcf,0x36,0x42,0x64,0x30,0x56,0xbf,0xb8,0xa8,0x32,0xc2,0x92,0x56,0x75,0x42,0x7c,0x4c,0x6a,0xc1,0x2e,0xcc,0xc2,0x41,0xf0,0x5d,0x95,0x41,0x84,0x90,0x6f,0xc2,0x74,0x5d,0x8a,0xc1,0x35,0x8d,0x83,0xc2,0xa4,0xdb,0xbe,0xc2,0x94,0x29,0x4e,0x42,0x20,0x56,0xc1,0x41,0xca,0x7d,0x7e,0xc2,0xda,0x30,0x64,0x42,0x63,0x8a,0x30,0xc2,0xb6,0x3,0x8f,0x41,0x7e,0x41,0x59,0x42,0xf9,0xdb,0x32,0xc2,0x7c,0xa,0xf5,0xc1,0x2,0xba,0x3f,0x42,0x12,0x1,0x4,0x41,0x33,0x91,0x4b,0xc2,0x2a,0x91,0x74,0x40,0xfa,0x76,0xa2,0x42,0x1d,0xb8,0x8c,0xc0,0xbc,0x5b,0x95,0xc2,0x53,0x31,0x10,0xc2,0xf5,0xfb,0xf1,0xc2,0x18,0x96,0x74,0xc2,0x93,0x8a,0x18,0x42,0xba,0x47,0x7,0xc2,0x5c,0xc,0x9f,0xc1,0x24,0xb2,0xb2,0x42,0x4c,0x73,0x3,0x42,0x54,0xbb,0xce,0x3f,0x9b,0xee,0xbc,0xc1,0x52,0x89,0x74,0x41,0x25,0x66,0x6d,0xc2,0xf7,0xd3,0x6c,0xc2,0xe2,0x69,0x92,0x42,0x72,0x55,0x59,0xc1,0x43,0x69,0xf4,0xc1,0xc9,0x4e,0xec,0x41,0xba,0xe2,0x1,0xc2,0x78,0x7d,0xfd,0x41,0xc1,0x4d,0x55,0x42,0xf8,0x56,0x12,0x42,0x2b,0x58,0x85,0xc2,0x26,0xf5,0x33,0x42,0xc4,0x7,0x4b,0x42,0x58,0x97,0x27,0x42,0x49,0x53,0x1e,0x42,0x76,0xfe,0xcb,0x40,0x91,0xd1,0x48,0x42,0xe,0xd1,0x8a,0x42,0xc9,0x65,0x5c,0xc2,0xc,0xfe,0xb5,0x41,0x74,0xa7,0xc3,0xc1,0x20,0xb7,0x1f,0xc2,0x5c,0x89,0x51,0x3f,0xbd,0xcb,0x7,0xc2,0xc8,0xce,0x88,0x40,0x58,0xa4,0x28,0x41,0x34,0x82,0x81,0x40,0xc1,0x78,0x9b,0x42,0xa0,0x9a,0x9b,0xc1,0xc7,0xae,0x96,0x42,0xc0,0xdd,0xf4,0x41,0xf,0x37,0x7d,0x42,0xe4,0xb2,0x8d,0x42,0x27,0xcc,0x9,0x41,0x20,0x15,0x25,0x42,0x0,0x1,0x5c,0xc1,0xc0,0x87,0xc2,0xc1,0xfc,0x68,0x1,0xc1,0xfc,0xbe,0xf,0xc2,0xdc,0xfa,0xad,0x42,0xde,0x4d,0x7e,0x42,0xbc,0xed,0xb7,0xc1,0xd6,0xe8,0x3c,0x42,0x7b,0xc8,0x36,0xc2,0xd0,0xf7,0x2f,0xc1,0x36,0x3b,0xe4,0xc1,0x61,0x35,0x9c,0xc2,0xec,0x1,0xd9,0x41,0xf5,0xd4,0xd7,0x41,0x2d,0xe1,0xa6,0xc2,0x5e,0xac,0x9c,0xc1,0x7d,0x8,0xf9,0xc1,0xa1,0x48,0xb4,0x40,0x82,0xc1,0x50,0xc1,0xd5,0x4f,0x7b,0x42,0xf2,0x79,0xce,0x41,0x8e,0x62,0xa3,0xc1,0xbc,0x6c,0x31,0xc2,0x20,0x43,0x9,0x42,0xe2,0x9d,0xf2,0xc1,0x87,0xfe,0x20,0x42,0xc4,0x0,0x2,0xc2,0x1e,0x87,0x11,0x41,0xa6,0x6c,0xb5,0x41,0xca,0x24,0xc6,0xc1,0xf4,0x7e,0x81,0xc2,0xfa,0x7d,0x5c,0x42,0xd3,0x14,0x4,0xc2,0x43,0xe6,0x2f,0x42,0x55,0x58,0x26,0xc1,0x52,0xa1,0x4a,0xc1,0xd,0x9f,0xec,0x40,0xea,0xcf,0x84,0x42,0x6b,0xd9,0x5d,0x42,0xc4,0xa2,0x39,0x40,0xe3,0x5c,0x8b,0x42,0xa7,0xea,0x95,0x42,0xd6,0x6e,0x34,0xc2,0x77,0xb4,0x2b,0xc2,0x56,0x1b,0x64,0xc1,0x9b,0x5,0xe9,0x41,0x54,0x89,0xe2,0x41,0x89,0xf2,0x53,0x42,0x3a,0x76,0x49,0x42,0x7a,0xfb,0x59,0xc2,0x4c,0xb4,0x25,0x42,0xa1,0xd5,0x13,0x42,0x83,0x6a,0x74,0x42,0xb3,0x56,0xdd,0x41,0x5c,0x8d,0x3f,0xbf,0x6e,0x31,0x2a,0x40,0xf0,0x83,0x3f,0xc2,0x74,0xa4,0x2d,0x41,0x41,0x9c,0x9,0xc2,0xf4,0xd3,0x2b,0xc1,0xf4,0xbd,0x66,0xc2,0xb6,0x51,0x80,0x42,0x4a,0xc8,0x47,0xc2,0xb7,0x12,0x2a,0x42,0x34,0x81,0x2d,0x41,0x8c,0x7f,0x93,0x41,0x2b,0xed,0x23,0x43,0xce,0xa7,0x87,0xc2,0x74,0x9b,0x80,0x41,0x7a,0xca,0x8f,0x3f,0x40,0xd7,0x27,0xbf,0x91,0x84,0x26,0xc1,0xe7,0x3d,0x82,0x40,0x66,0xbe,0x19,0x40,0x14,0x2c,0xf3,0x3e,0x80,0x43,0x58,0xbd,0xd,0x35,0x66,0x42,0xa8,0x82,0x16,0x42,0x46,0xbc,0x56,0xc2,0x4e,0xa8,0xd9,0x41,0xcf,0xca,0x54,0xc2,0xea,0xc9,0xf2,0x41,0xae,0x48,0x7e,0xc2,0x95,0x6b,0xe0,0x41,0x26,0xf8,0x8a,0x41,0x5e,0x9b,0xd1,0x41,0x98,0x71,0x76,0xbf,0x58,0x3b,0x1d,0xc2,0xf4,0xc4,0x5c,0x42,0x33,0xd,0x97,0x41,0x7e,0x91,0x4b,0x40,0xba,0xb5,0x6d,0xc0,0x61,0xf5,0xb5,0x41,0x16,0xfb,0x46,0x42,0x75,0x93,0x34,0x42,0x67,0xd9,0x42,0x42,0x40,0x24,0x50,0x42,0x4e,0x93,0x3d,0x42,0x2,0xa0,0xfa,0x41,0xae,0xff,0xad,0xc0,0x18,0x5e,0xbf,0xc1,0x50,0xfa,0xe0,0xc0,0x6a,0xd4,0x6,0x41,0xfe,0xb9,0x19,0xc0,0xfc,0xf7,0x1a,0xc2,0x60,0x5c,0x14,0xc1,0xae,0xb9,0x88,0xc2,0x50,0xc6,0x4a,0x42,0xc,0x24,0xf2,0x41,0xfb,0x5b,0x5,0x42,0x76,0x3e,0x67,0x42,0xfb,0xe8,0xc,0x42,0xd6,0xd5,0xd0,0xc1,0x77,0xff,0x12,0x42,0xb2,0x1,0xa0,0x41,0x1d,0x14,0x7f,0x42,0x6e,0xc1,0x54,0xc0,0x9e,0x87,0x77,0xc0,0x2,0x4a,0xb7,0x40,0x92,0x4,0x19,0x42,0x6d,0xd5,0x91,0x41,0x3c,0xfd,0xff,0xbf,0x74,0x6e,0x7f,0x41,0xe0,0x59,0x35,0x3e,0xea,0x1a,0xb5,0x41,0x20,0xf4,0xf9,0x3e,0xfd,0xbb,0x5e,0x41,0x45,0xd,0x51,0xc1,0xca,0xf,0x3f,0x42,0xe0,0xdc,0xe4,0x41,0xe9,0xfd,0xe,0xc2,0xa0,0xc8,0x4e,0x42,0xec,0xcf,0x7b,0x40,0x91,0xcb,0x4e,0xc2,0x9c,0x23,0x9b,0x42,0x3c,0xa5,0x27,0xc1,0x80,0xd2,0x87,0xc1,0x9a,0x3b,0xff,0x41,0xc6,0xff,0xe1,0xc0,0xe3,0x15,0xff,0x41,0xbb,0x71,0xb0,0xc1,0xb4,0xfb,0x6b,0x41,0xb7,0xd2,0xc,0x41,0x30,0xae,0x34,0xc2,0x8d,0x62,0x5d,0xc2,0xf5,0x7d,0x74,0xc2,0xea,0x21,0xad,0xc1,0xd9,0x21,0x10,0x41,0x1c,0x19,0xf0,0x3e,0x20,0x62,0x90,0x41,0xa8,0x3b,0xae,0xc2,0x47,0x9d,0x1,0x41,0x3,0x2b,0x9,0x42,0xd8,0xc8,0x2a,0xc2,0x85,0x1e,0xe6,0xc1,0x55,0xd4,0xc1,0xc0,0x8e,0xea,0xa1,0xc0,0x4b,0xc8,0x91,0x42,0x8b,0x5e,0xcf,0xc0,0x8,0x9d,0xc0,0xc1,0x7,0x4f,0x23,0x42,0x15,0x63,0xb3,0xc1,0xda,0x55,0x21,0xc1,0xc7,0xa,0x9b,0xc2,0xcc,0x8,0xe2,0x41,0xb0,0x91,0x62,0x42,0xa2,0x6f,0xd6,0xc1,0xcc,0xa5,0x23,0x3f,0x4,0xdc,0x1c,0xc2,0xd2,0x4b,0xc2,0x41,0x8,0xdb,0x56,0x40,0xe6,0x58,0xc6,0xc1,0x86,0x4d,0x8,0xc1,0xa6,0x2,0xca,0xc0,0x66,0x64,0xfa,0xc1,0x88,0x2f,0x8b,0xc1,0x50,0xc6,0x94,0x42,0xc4,0xb4,0x71,0x41,0x10,0x63,0x71,0xc1,0x3f,0x2f,0x78,0xc1,0x68,0xc3,0x39,0x42,0x20,0x92,0x90,0xc0,0x8c,0xa3,0x2b,0x42,0x21,0xf0,0xb0,0x41,0x9a,0xd8,0x7e,0x41,0x2b,0x2,0x45,0x42,0xe9,0x55,0xf2,0xc1,0xb4,0x27,0x7,0x41,0x17,0x18,0x5,0xc2,0x6d,0xa6,0x9e,0x41,0xc4,0xc8,0xcd,0xc1,0xb4,0x8a,0x3a,0x40,0xfe,0x56,0x40,0x42,0x7b,0x2b,0x80,0x42,0xc,0xf1,0xa2,0x42,0xfb,0xc2,0x8e,0x41,0x6b,0x21,0x14,0x42,0xd1,0x1d,0x1d,0x42,0x46,0x90,0xdc,0x41,0x4e,0x72,0x50,0xc2,0x52,0xa6,0xfc,0xc1,0x52,0x99,0x88,0x41,0x82,0xa2,0x5,0xc2,0xa3,0xf,0xf6,0xc0,0x4c,0xb,0xf0,0x3f,0x66,0x53,0x7f,0x41,0x23,0xbc,0x37,0xc2,0xbe,0x17,0xa5,0x42,0xd2,0x83,0x85,0xc2,0x7f,0x2d,0x14,0x42,0x7d,0xcc,0x7a,0xc1,0xa5,0xfb,0x19,0xc2,0xa0,0x12,0xb,0x40,0x37,0x55,0x8e,0x42,0xe4,0xf8,0xc8,0xc1,0x83,0xdc,0x17,0x42,0x41,0x5a,0xff,0x40,0xcc,0xb6,0x90,0xbf,0x9c,0xbb,0xc4,0x41,0x82,0xe9,0xe7,0xc2,0xb3,0xde,0x16,0x42,0xf9,0xaa,0xda,0xc1,0xb4,0x51,0xd3,0xc0,0xf2,0xe3,0x62,0x41,0xf8,0xbb,0x50,0xc2,0xfd,0x68,0xdc,0xc0,0xdc,0x12,0x4,0x42,0xab,0xfe,0xc6,0xc1,0x24,0x46,0x21,0xc0,0x0,0x2d,0xca,0xc1,0xf1,0xe3,0x9,0xc2,0x9,0xf0,0x6c,0xc0,0x97,0x5e,0x5a,0x41,0x2e,0x70,0xe4,0x41,0xa,0x7c,0xe1,0x41,0x3a,0xb3,0x2b,0xc1,0x75,0x71,0x12,0x42,0x4c,0xe3,0xa5,0xc1,0x76,0x33,0x2f,0x42,0xf8,0xa,0x6e,0xc1,0xb3,0x8b,0x4b,0x41,0x42,0x89,0xb9,0xc1,0xa7,0x78,0xaa,0x42,0x43,0x13,0x21,0xc2,0x32,0xb6,0x74,0xc1,0x55,0xb9,0x15,0xc2,0xbe,0x27,0x14,0xc2,0xc3,0xd5,0x9e,0xc1,0x13,0xac,0xc0,0x41,0xa5,0x63,0x90,0xc0,0x66,0xed,0x99,0x40,0x33,0x93,0xe3,0x41,0x5a,0x8d,0x0,0xc2,0xa2,0x8f,0x45,0x42,0x19,0xa0,0xbb,0x42,0x26,0xbf,0x68,0x40,0x4b,0x1f,0x7e,0xc2,0xc8,0xcc,0x6f,0xc1,0xdd,0xac,0x4e,0x41,0x96,0x80,0x27,0xc2,0x11,0xda,0xbf,0xc1,0xeb,0x89,0x48,0xc1,0xe5,0xac,0x38,0xc2,0x84,0x46,0x49,0xc0,0xa3,0xe,0x54,0x42,0x8c,0x51,0x62,0xc1,0xe1,0x5d,0x6f,0xc2,0xd0,0xb2,0xda,0xc0,0x22,0x2,0x63,0x41,0x5b,0xb4,0x6d,0xc1,0x86,0x94,0xbe,0xc0,0x27,0xf3,0x64,0xc2,0xc0,0xcc,0xab,0x40,0xe1,0xb2,0xbe,0x42,0xb9,0x54,0x41,0x41,0x7c,0x65,0x17,0x40,0x11,0x1f,0x86,0xc1,0xf9,0xf9,0xfc,0x41,0x4b,0x5e,0x15,0x42,0x4f,0xa9,0x75,0x40,0x5a,0xca,0xde,0xc1,0x81,0xa3,0x94,0xc2,0xa1,0x64,0x1b,0x42,0xde,0xa7,0x9f,0xc2,0xd4,0xa9,0x32,0xc2,0x8,0xdb,0x7c,0x3f,0x52,0x6f,0xd6,0x41,0xec,0xca,0xa7,0xc2,0x83,0x48,0x73,0xc2,0xeb,0xc2,0xe1,0x41,0x61,0x8c,0x34,0xc2,0x58,0x11,0x8a,0xc1,0x51,0x41,0x57,0xc2,0xab,0xe0,0x1f,0xc2,0x73,0x44,0x2a,0x42,0x28,0xf9,0x95,0xc1,0xbe,0x9e,0x8a,0x41,0xb0,0x12,0xb4,0xc1,0x10,0x44,0x1a,0xc2,0x57,0xa1,0xdc,0xc1,0xa9,0xc5,0xdb,0xc0,0xa7,0x42,0x5b,0x41,0x75,0xcc,0x6b,0x41,0xdc,0x28,0xd5,0x40,0x56,0x4f,0x2a,0x42,0xd4,0xe1,0x5f,0xc1,0xd,0x6e,0x3d,0x42,0xdf,0x2e,0x76,0x42,0x69,0x44,0x13,0xc2,0xe9,0x5,0x8c,0x42,0x9a,0x76,0x52,0xc2,0xfa,0xae,0x3b,0xc2,0xd1,0x82,0x18,0x42,0x23,0xee,0xea,0xc1,0xcd,0xff,0x9a,0x41,0xbc,0xb6,0xa4,0x42,0x5f,0xc1,0xf1,0xc0,0x97,0x8a,0x16,0xc1,0x6c,0xf4,0x40,0x41,0x22,0xb9,0x39,0xc2,0x83,0x9d,0x32,0x42,0x42,0xaf,0xfc,0xc1,0x94,0x9d,0x48,0x41,0x48,0x8,0xc3,0xbf,0xf6,0xbe,0x99,0x41,0x34,0x6b,0x37,0xc1,0xe9,0x8c,0xd4,0x40,0x4b,0x9d,0x43,0x42,0x53,0x7d,0x79,0x42,0xbe,0x52,0xaa,0x42,0x87,0xc0,0x1,0xc1,0x4a,0xc2,0xa7,0x42,0xd3,0x23,0xe2,0x41,0x34,0x77,0x84,0x42,0xea,0xd3,0x56,0xc2,0x21,0x44,0xa8,0x42,0xc,0x36,0xb,0x42,0x4d,0x22,0xa8,0x42,0xbd,0x5c,0x2f,0x42,0xf6,0x6b,0x4e,0x42,0x50,0xac,0xf6,0x41,0xb8,0x25,0x98,0xc1,0x8f,0x95,0x5e,0xc2,0xb6,0x80,0xc4,0xc0,0x46,0xbb,0x4f,0x41,0x5c,0x16,0xdc,0xc1,0xcd,0xde,0x2e,0x42,0x7f,0xc9,0xc3,0x42,0xfa,0x1b,0x83,0xc2,0xdb,0xa5,0xea,0xc1,0x4f,0x2c,0xd,0x42,0x93,0x2f,0x73,0x42,0xe6,0x32,0xc5,0x41,0xfc,0x43,0x30,0x40,0xf2,0x11,0x4,0x41,0x6c,0x2,0x7b,0x41,0xc1,0x7f,0x8e,0xc2,0xc1,0xc9,0x98,0xc1,0x78,0xf6,0x75,0x41,0x44,0x42,0xc5,0xc2,0x3e,0x20,0x47,0x42,0xf4,0xc5,0xc5,0xc1,0x8,0xa,0x1a,0x42,0x38,0x7b,0x8,0x41,0x8e,0xd2,0xac,0xc1,0x9,0xdf,0xe0,0x41,0x76,0xe9,0x7,0x40,0xf4,0x57,0x90,0xc0,0x52,0x1a,0x21,0x42,0xa2,0xef,0x93,0xc2,0x40,0x33,0xc4,0x41,0xd,0xe1,0x94,0xc1,0x2,0x41,0x3b,0xc2,0x20,0x30,0xa2,0xc1,0x8,0xbe,0x53,0x41,0x70,0x86,0x83,0x41,0xb,0x32,0x8d,0xc1,0xfc,0x1e,0x5e,0xc1,0xa8,0x44,0x92,0x42,0xf1,0x84,0x56,0x41,0x27,0xa5,0x70,0x42,0xcf,0x32,0xec,0x41,0x9e,0xe9,0x42,0xc2,0xc2,0xb5,0xf9,0x41,0x1b,0x11,0x2a,0x42,0x32,0x17,0xbf,0xc2,0x22,0xa,0x8c,0xbf,0x95,0x7d,0x85,0xc1,0x7a,0x6f,0xc7,0x41,0xff,0x65,0x91,0x42,0xfe,0x25,0x48,0x42,0x6,0x8f,0x89,0xc2,0xe5,0x6b,0x8e,0x42,0xbc,0xdd,0xaa,0x42,0xfe,0x17,0x37,0xc2,0xbe,0xd3,0x5b,0x42,0xf0,0x2f,0xe4,0x40,0xcd,0x12,0x1d,0xc2,0xcd,0xdc,0xfa,0xc0,0xd4,0xa5,0x68,0xc0,0xdb,0x6f,0xa7,0xc1,0x22,0x4d,0x6b,0xc2,0xdc,0x37,0xb6,0x41,0x80,0x68,0xa0,0x3f,0x69,0xc3,0x98,0xc1,0x2,0xbd,0x5c,0x41,0xff,0x22,0x7e,0x42,0xbf,0xeb,0xd6,0xc0,0xdf,0x78,0x1f,0xc2,0x7d,0xe1,0x16,0xc2,0x4a,0xcf,0x8a,0x41,0xc6,0xd,0x16,0xc2,0xda,0xb1,0x5b,0xc2,0x4,0x51,0x4e,0xc1,0xa1,0x7c,0xb3,0xbf,0xe,0x60,0xd0,0xc0,0x69,0x44,0xfb,0x41,0x6c,0x22,0xef,0x41,0x58,0x8d,0x79,0xc1,0xb8,0xd8,0x57,0xc1,0xc0,0x78,0xba,0xbf,0x56,0x3c,0x58,0xc2,0xa3,0x4b,0x8e,0x42,0xfc,0xcb,0xe1,0x40,0x9e,0x4e,0xb8,0xc2,0xfb,0xf0,0x50,0xc1,0xa4,0xdc,0xb5,0x42,0xbe,0x2c,0x1e,0x42,0x1a,0x5,0x1,0x41,0xc6,0x4,0xb4,0x3f,0x14,0x91,0x9e,0xc1,0x95,0xc3,0x16,0xc2,0x54,0x73,0x1,0xc2,0xda,0x3d,0x1e,0xc2,0xa,0x27,0xf,0x42,0x5c,0x64,0x69,0x42,0xae,0xca,0xa9,0x41,0xc7,0xad,0x8,0xc1,0x15,0x14,0x8e,0x42,0x40,0x4,0x60,0xc2,0x9d,0x7,0x8e,0x41,0x3f,0x2e,0x22,0x42,0xaf,0x8d,0x62,0xc2,0x49,0xd9,0xbf,0xc2,0xd3,0x6,0x4b,0x42,0x58,0x6f,0x8,0xc2,0x46,0x2a,0x58,0x42,0x14,0xde,0xf2,0xbe,0x80,0x77,0x28,0x3e,0xe5,0xf5,0x21,0xc2,0x80,0x81,0xaa,0xc1,0x7f,0xe5,0xd4,0x41,0x23,0xb,0xa0,0xc2,0x76,0x1e,0x1b,0x42,0xf9,0x6f,0x81,0x40,0x39,0x1f,0xaa,0x42,0x1c,0x86,0xd4,0xc1,0xa0,0xc2,0xe8,0xc1,0x76,0x7f,0x6e,0xc2,0x7,0xd9,0x64,0xc2,0x8a,0x9a,0x15,0xc2,0xaa,0xea,0x69,0x42,0x73,0xa8,0x35,0x42,0x8e,0x3c,0x9,0xc2,0x26,0x18,0x36,0xc1,0x44,0x36,0xb2,0x40,0xb2,0xe2,0x1b,0xc1,0xd5,0x57,0x85,0xc1,0xfd,0x13,0x29,0x42,0x6,0xe,0x84,0xc1,0x22,0x6d,0xf0,0x40,0xee,0xc,0x98,0xc2,0x62,0x46,0xab,0x40,0xe,0xbc,0x4d,0xbf,0xc0,0x35,0x8,0xc2,0xe0,0x1b,0x71,0x42,0x94,0x6c,0x9d,0xc1,0x28,0x14,0xef,0x41,0x67,0x9,0xf6,0x3f,0xfb,0xbe,0x7a,0x41,0xa9,0xf3,0xe1,0xc1,0x14,0x85,0x92,0xc2,0x6c,0xe2,0x82,0x41,0xa0,0x8,0x1e,0x42,0xfd,0x2b,0x11,0xc2,0xf8,0x9a,0x84,0x42,0x4d,0xc8,0x4e,0x42,0x68,0x92,0xcd,0x40,0xb6,0xcd,0x57,0xc2,0x3a,0xeb,0x9,0x42,0x89,0xb3,0xf8,0x41,0x1,0xaa,0x5d,0x42,0xc,0xd9,0xa1,0x41,0x88,0xed,0x82,0x40,0x1a,0x96,0x41,0x40,0xf0,0x5a,0xa,0x42,0xb6,0xba,0x18,0x41,0x5a,0x1d,0xb4,0xc1,0xca,0xfe,0xf0,0xc1,0xbf,0x7c,0x56,0x42,0xa4,0x91,0x27,0xc2,0xe4,0x5a,0xa4,0x41,0x79,0x66,0xea,0x41,0xc5,0xd5,0x4a,0x42,0x30,0x75,0xf2,0x40,0x40,0xc3,0x4,0xc1,0x90,0x5d,0x49,0xc2,0xc5,0x16,0x9f,0x41,0xee,0x4e,0x2,0x42,0xe,0x0,0xbf,0xbf,0xd6,0xd6,0x57,0x42,0xe2,0xec,0xa9,0xc2,0x18,0xbb,0x87,0xbf,0x26,0x98,0xa,0xc2,0x75,0xf8,0x33,0x40,0xca,0xb3,0xdb,0x41,0xa5,0xbe,0x36,0x42,0x11,0x23,0xa2,0xc2,0xa9,0xaa,0x57,0xc2,0x1e,0xaa,0x59,0x42,0x39,0x35,0x6d,0x42,0xca,0x86,0x31,0xc2,0xe9,0xe,0xc9,0xc1,0x46,0x8b,0x5e,0xc2,0xe,0x15,0x8f,0xc2,0x30,0x2f,0xc4,0x41,0xb6,0x20,0x39,0xc2,0xcc,0xf7,0x2e,0xc2,0x1a,0x71,0xd0,0x42,0x88,0xf6,0x64,0x42,0xb7,0xbf,0x7a,0x42,0x61,0x74,0xa4,0x42,0x4a,0x63,0x1f,0x41,0x30,0x66,0x2f,0xc2,0xb0,0xf8,0xbf,0x41,0xa3,0x32,0x93,0x42,0x61,0x7e,0x36,0x42,0xb9,0x9e,0x91,0x41,0x9e,0x70,0x69,0xc2,0x41,0x8b,0xb7,0xc2,0x67,0x74,0x20,0xc2,0x2e,0xc2,0x4f,0x42,0xfb,0x3f,0x31,0x42,0x6c,0x89,0x90,0xc1,0x78,0x14,0x91,0x42,0x8a,0xf9,0xb3,0x40,0x1b,0x94,0xed,0x41,0xf6,0x62,0xe5,0xc1,0xad,0x73,0x29,0x41,0x1c,0x56,0x1a,0x42,0xcd,0x6d,0x76,0x42,0x45,0xa0,0xd,0xc2,0xe0,0x16,0xdb,0xc0,0x98,0xe0,0xf,0xc2,0xf0,0xe2,0x1,0xc2,0x6a,0x31,0x46,0xc2,0xd6,0x2,0xf3,0xc1,0x1f,0x27,0xee,0xc1,0x19,0x92,0x6d,0x42,0x12,0x40,0xdb,0x41,0x3,0x36,0x4b,0x42,0xdd,0xf,0x84,0xc1,0x28,0x9b,0x67,0xc2,0x82,0x1e,0xe,0xc1,0xd4,0xcb,0x97,0x42,0x6,0x4,0xc5,0x41,0x98,0x88,0xeb,0xc1,0x76,0x53,0xe4,0x40,0x75,0x0,0xdc,0xc1,0x45,0xa3,0xf,0xc1,0xa5,0x51,0x1c,0x42,0x32,0x4e,0x96,0x41,0xa8,0x51,0x5,0x41,0x3e,0xa6,0x6,0x41,0x14,0x10,0x81,0x40,0x2,0x60,0x3c,0x41,0xf3,0x17,0xe1,0x40,0xcf,0x24,0xa,0x42,0x6c,0x4e,0x23,0xc2,0xc6,0xd5,0x5e,0xc0,0x94,0xfa,0x78,0xc0,0xe8,0xf2,0x93,0xc2,0x3b,0x17,0xc,0x42,0xb0,0x56,0x17,0xc2,0xa3,0xb1,0x18,0x40,0xf8,0xf6,0x4,0xc2,0x54,0xe,0x48,0xc2,0x71,0x51,0xe7,0xc1,0x72,0xef,0x56,0x40,0xd4,0xb4,0x9b,0x42,0xd9,0x8a,0x40,0xc2,0xb5,0xa3,0x6a,0xc1,0x5e,0x9a,0x4d,0xc2,0x3c,0x5e,0x1c,0xc1,0x60,0x95,0xfa,0xc1,0x2,0xdd,0xa5,0xc0,0xe9,0x35,0x5c,0x42,0x83,0x55,0xb1,0x42,0x6a,0x44,0xd4,0xc0,0x24,0x66,0x56,0xc1,0xf0,0x3d,0xde,0xc1,0x1,0x4,0xfc,0xc1,0x0,0xe2,0x5a,0xc2,0xf4,0x79,0xd,0x42,0xb,0x93,0xae,0x41,0xb2,0xe4,0xe6,0xc1,0x24,0xf7,0x9,0xc1,0x6,0xe5,0x80,0xc2,0x58,0x1,0xd5,0xc2,0xc8,0xa5,0x52,0x42,0x62,0xf5,0xea,0x41,0xae,0x92,0xfc,0x40,0xc0,0xb3,0x9c,0xc1,0xbc,0xae,0xe6,0xbf,0xc7,0x40,0x5c,0x41,0xfa,0xb5,0xa9,0x41,0xef,0xbb,0x9d,0xc2,0xcc,0xd6,0x2c,0xc2,0x14,0xd8,0x8b,0x42,0x24,0x10,0x69,0x3f,0xe7,0xaf,0x6d,0xc2,0xd4,0x28,0x9f,0xc1,0xa9,0x31,0x43,0xc1,0xeb,0x35,0x44,0xc2,0x5a,0x12,0x8f,0xc0,0x31,0xcd,0xdf,0x41,0xa8,0xe1,0xd7,0xbf,0x2f,0x64,0xa0,0x42,0x36,0x1e,0xfc,0x42,0xfe,0xf5,0xe1,0x41,0xb1,0xd9,0xc9,0xc1,0x5d,0x7e,0xa1,0x41,0x72,0xac,0x73,0xc1,0xac,0x63,0x4e,0x41,0xe8,0x7c,0xef,0x41,0x6c,0x3f,0x13,0xc2,0xd4,0x48,0xe0,0xc1,0xc5,0x68,0x19,0x42,0x34,0xf6,0x62,0x40,0xec,0xcd,0xdd,0xc1,0xac,0x1d,0x2e,0x42,0x70,0xa2,0x6d,0x40,0x9d,0x98,0x2e,0xc1,0x70,0x85,0x37,0x40,0xce,0x3e,0x8a,0xc2,0x57,0x60,0x18,0xc1,0x7d,0x76,0xa0,0xc2,0x18,0xfe,0x54,0x41,0x5b,0x8,0x21,0x41,0x61,0xdc,0x29,0x41,0xf8,0x67,0x80,0xc2,0x68,0xf3,0x5c,0x42,0xad,0x69,0xdb,0x41,0xa2,0xb2,0x34,0xc0,0xd3,0xca,0x27,0x42,0x91,0x55,0x87,0x41,0xc8,0x71,0x7d,0x42,0x6a,0xe1,0x15,0xc2,0x98,0xb8,0x5f,0x41,0xca,0xe7,0x38,0xc2,0xcf,0x41,0x68,0x42,0x17,0x8c,0x1b,0x42,0x40,0x49,0x74,0x42,0x1d,0xbd,0x9c,0xc0,0x50,0x8c,0x2a,0x42,0xda,0xad,0x4f,0xc1,0x1b,0x71,0x6,0xc1,0x2e,0x81,0x9a,0xc1,0xf,0xc6,0x58,0xc2,0x88,0x60,0x23,0x42,0x94,0x52,0xa,0x40,0xf1,0xf4,0x91,0x42,0x5d,0x85,0x59,0x42,0x3e,0x71,0xe5,0x41,0x90,0x6,0x7b,0xc2,0x2d,0x3f,0x5d,0xc0,0x54,0x4b,0x88,0x42,0x8,0xbf,0x7d,0x41,0xd2,0x18,0x7,0xc1,0xad,0xe1,0x68,0x42,0x50,0xc,0x81,0xc2,0x98,0x16,0x36,0x3f,0xc6,0xbd,0xbb,0x40,0xaa,0x9c,0x1e,0x42,0xde,0x74,0x5d,0xc1,0xad,0x7f,0x8c,0x41,0xe4,0xf3,0xe1,0xc1,0x9a,0x94,0x5c,0x42,0xa1,0x9b,0xc8,0x41,0xe0,0x14,0xae,0x41,0x39,0x17,0x2f,0xc2,0xec,0xb3,0x42,0xc2,0xfe,0x76,0x9,0x42,0xef,0x26,0xf4,0xc1,0xf6,0x27,0x72,0xc0,0xc6,0x91,0x85,0xc2,0x39,0x3d,0x4d,0x40,0xea,0x63,0x2b,0x42,0xf6,0xc1,0x7b,0xc2,0xe0,0xb7,0x94,0x40,0x4c,0x8b,0x5f,0x3f,0x14,0xb5,0xbd,0xc2,0x70,0x9c,0x7a,0x42,0x8b,0xcd,0xf,0xc0,0xce,0x5e,0xfd,0xc1,0xa1,0xbf,0xe6,0x42,0x49,0x4f,0x72,0x41,0x25,0x80,0xf,0x42,0x98,0xc3,0xa7,0xc1,0xb0,0xfd,0x66,0xc2,0x59,0x6c,0x6c,0x41,0x5c,0xcc,0xd,0x41,0x46,0x40,0x4e,0x41,0x8e,0x20,0x40,0xc2,0x31,0xe5,0x61,0x42,0x23,0x95,0x1d,0x42,0x17,0xac,0x3a,0x42,0x16,0xd0,0x1f,0xc0,0x87,0x92,0xbb,0x40,0x48,0x91,0x93,0xbf,0xf8,0x70,0x3,0xc2,0x72,0xc6,0xe9,0xc1,0xf2,0x7d,0xbf,0xc1,0x44,0x80,0xa5,0x41,0xe,0xdc,0x77,0x41,0xad,0xa7,0x27,0x42,0x7a,0x49,0x8e,0x41,0x32,0x42,0x9a,0xc0,0xa0,0xc1,0xce,0xc0,0xf2,0xe5,0xbc,0x41,0x9,0x8f,0x1f,0xc2,0xb4,0xa9,0xc9,0x41,0x27,0xa4,0xcf,0x40,0x67,0x3,0xc0,0x41,0xab,0x4c,0xc,0xc2,0x16,0x41,0xbe,0x40,0x6,0x34,0xc0,0x42,0xe,0xb9,0x4a,0x42,0x71,0x37,0xec,0xc2,0xa1,0xff,0x4e,0xc2,0x76,0xd3,0xce,0x41,0x7d,0x3,0x91,0xc2,0x5a,0xa7,0x59,0x41,0x7a,0xef,0x74,0x41,0xb5,0xbf,0xdb,0xc1,0x9e,0xd2,0xab,0xc1,0xc5,0x18,0xdc,0x41,0x45,0x46,0x84,0x41,0x3d,0x37,0x0,0x42,0xcf,0x22,0x3c,0x40,0xac,0xba,0x26,0x42,0xf1,0x79,0x3c,0x42,0x17,0x2b,0x25,0x42,0xf6,0x60,0x62,0xc1,0xbd,0x1,0x9a,0xc1,0x2c,0x76,0xf4,0xc1,0x69,0xa9,0xdb,0xc1,0xac,0x68,0x0,0xc1,0xf0,0xbc,0x55,0xc1,0x2f,0x26,0xaf,0xc0,0xaa,0xb8,0x26,0x42,0xc2,0xed,0xee,0x41,0x46,0x92,0x36,0x42,0x29,0xb2,0xce,0xc1,0x1e,0x2f,0xd1,0x42,0x9,0x35,0x2b,0xc2,0x4,0xef,0x34,0xc2,0x43,0x88,0x9d,0xc1,0x36,0x57,0xab,0x41,0x70,0x42,0x20,0x42,0x83,0x56,0x77,0xc1,0xb0,0xfd,0x43,0xc2,0x3e,0x5d,0x5f,0xc2,0x4c,0x9b,0xd2,0x41,0xec,0x1c,0x66,0x41,0xd3,0xd,0x12,0x42,0x8c,0x8c,0xb3,0x41,0x66,0x35,0x59,0xc2,0x1d,0x86,0xe4,0x41,0x60,0x4,0x6e,0x42,0x60,0x40,0x5,0xbf,0x72,0xcc,0x8d,0x42,0x8a,0xe7,0x16,0x41,0x3d,0x2,0x30,0xc2,0x7a,0xce,0x7b,0x42,0xa2,0xc5,0x3,0xc2,0x84,0x62,0x59,0x3f,0xf,0xa4,0x82,0x41,0x4f,0x6e,0x72,0x41,0x22,0x6d,0x65,0xc2,0xf2,0x62,0x88,0xc1,0x41,0xce,0xf9,0xc1,0x35,0x81,0x5f,0xc1,0x51,0x5b,0x3e,0xc2,0x15,0xcf,0x8f,0xc2,0x64,0xe3,0x4f,0x42,0x5,0xa,0xb2,0xc2,0x48,0x62,0x36,0x42,0x72,0xe6,0xe8,0xc1,0x27,0x3e,0x18,0xc2,0x0,0xed,0x3a,0xc2,0xa7,0x94,0x8c,0x42,0x5f,0x75,0x5,0xc2,0x9b,0xdb,0x1c,0xc2,0xec,0x7e,0x28,0x40,0xb9,0x46,0x73,0x41,0x16,0x25,0x4f,0x41,0x74,0xe0,0x40,0x42,0xb2,0x9f,0x58,0x42,0x47,0xc,0x3b,0x42,0x20,0x7,0x93,0xc1,0x0,0xd0,0x7,0x42,0x23,0xe2,0x4a,0xc2,0x36,0x2d,0x88,0xc1,0xd0,0x83,0x13,0xc2,0x8e,0xde,0x18,0xc2,0xa4,0x8e,0xcc,0xc1,0xdd,0x23,0xba,0x41,0x85,0x9d,0x39,0xc1,0xe5,0x29,0xdf,0xc0,0x9d,0x1a,0xf,0xc2,0xe,0xb4,0x17,0xc1,0x37,0xb,0x16,0x42,0x3a,0x5b,0x3f,0x41,0xd3,0xf8,0xd0,0x41,0x63,0x6f,0x41,0xc1,0xcc,0x86,0x3c,0x41,0xe1,0x40,0x85,0x42,0x7b,0x8e,0x3,0xc0,0xdb,0xcb,0xec,0xc1,0x3d,0xe4,0x36,0xc2,0xfa,0xa2,0xd5,0x41,0x1f,0x88,0x67,0xc1,0xad,0xc4,0xba,0xc1,0x5d,0x44,0x36,0xc1,0xe9,0xbf,0xa0,0x42,0x40,0xea,0x49,0x42,0x42,0x4e,0x32,0x42,0xf4,0xfe,0xf8,0x41,0x93,0xcb,0x31,0x40,0xa4,0x8b,0x7d,0x40,0xe9,0x16,0x67,0xc2,0xc7,0xdc,0xd2,0xc0,0x10,0x26,0xba,0x42,0x3f,0xdf,0x66,0xc2,0xff,0x35,0xe4,0x40,0x26,0x9f,0x22,0x41,0xf0,0x99,0x4d,0xc0,0x0,0xcb,0xfa,0xc1,0x51,0xc6,0xb6,0xc1,0x36,0x96,0x10,0x42,0x44,0x52,0xd9,0xc1,0x16,0x4d,0x65,0x42,0xad,0x1,0x1e,0x42,0x6c,0xe,0x98,0xc1,0x90,0x7c,0x8a,0x42,0x95,0x3f,0x1e,0x42,0x53,0x5c,0x8d,0x40,0x93,0xc4,0xf2,0xc1,0xd7,0x73,0xb,0xc1,0xef,0x49,0x9c,0x41,0x4e,0x7d,0x4,0x42,0x6c,0x5b,0xd1,0xc0,0x21,0x66,0xe0,0xc1,0x92,0x4a,0x89,0x40,0xba,0xa0,0x31,0x42,0x4e,0x19,0xb2,0x41,0x62,0x86,0x8c,0x41,0xee,0x98,0x7f,0xc1,0x5b,0xb7,0x1f,0xc1,0xd6,0xf9,0x86,0xc1,0xbb,0x30,0xc,0x41,0x37,0x13,0x89,0x42,0x1f,0x60,0xc1,0x41,0x3b,0xa9,0x10,0x42,0x79,0x45,0x6e,0xc2,0x8,0x9e,0x10,0x42,0x3c,0xb6,0xc5,0x41,0xc4,0xd6,0xe3,0xc1,0x6a,0x96,0x27,0xc2,0x57,0xf3,0x67,0xc1,0x42,0xf9,0x19,0x42,0x3e,0xd2,0x80,0xc0,0xb8,0xfa,0xff,0xc1,0x14,0x6f,0x90,0xc1,0x4b,0xe8,0x34,0x42,0x62,0x5c,0xae,0x41,0x9a,0x2a,0x79,0x41,0xe5,0x14,0x4d,0xc2,0x84,0xb1,0x94,0x41,0xd2,0xcf,0x2b,0xc1,0x24,0xc4,0xa4,0x41,0x9,0x3c,0xef,0x41,0xda,0x1d,0xe3,0x40,0x4f,0xbb,0xa4,0xc2,0x4f,0xa2,0x1,0x42,0x92,0xdb,0x91,0xc2,0x82,0xdc,0xe9,0x41,0xa2,0x98,0x51,0x42,0x61,0x3b,0x7c,0xc2,0x2a,0xce,0x3f,0x42,0xc6,0x32,0x46,0xc1,0x9e,0xc4,0xca,0xc1,0x1c,0xf9,0xe8,0xc1,0xd,0xea,0x6d,0x42,0x2a,0x5d,0x59,0xc2,0xfb,0x72,0xa2,0xc1,0x22,0xbd,0xa0,0x41,0xfd,0xa,0x1f,0x42,0xe0,0x3a,0xa3,0xc1,0xa2,0x6b,0x31,0x41,0x18,0x4c,0x49,0xc2,0xf7,0xef,0x4f,0xc2,0x34,0xec,0xad,0x41,0x1b,0xfb,0xfe,0x40,0xcf,0x92,0x67,0xc2,0x34,0x99,0x55,0xc1,0x4,0x98,0x1d,0x41,0xac,0x32,0xdb,0x41,0x59,0xbf,0x42,0x41,0x58,0xbc,0xdd,0x40,0x0,0xe1,0x8d,0xc0,0xb4,0x4,0xfa,0xc1,0xc6,0x47,0x58,0xc0,0x37,0xee,0x42,0x41,0x76,0x44,0xc6,0x41,0x0,0x5c,0x2a,0x41,0x59,0x8c,0xf0,0x40,0xca,0xcb,0xe2,0x41,0xb0,0xab,0x42,0xc1,0xab,0x7d,0xbf,0x40,0x3c,0xda,0xd,0xc2,0xca,0x11,0x4d,0xc0,0x34,0x7e,0x2,0x42,0x34,0x69,0x5,0xc2,0xd6,0x6c,0x39,0xc1,0x2f,0xdb,0xfb,0xc0,0xf5,0xae,0xe8,0xc1,0x17,0x10,0xb6,0xc1,0x2c,0xf6,0xbb,0x41,0x76,0x51,0xa0,0xc0,0x35,0xf7,0x14,0x41,0x5f,0x8f,0xe3,0x40,0xa4,0x7,0x8b,0xc0,0x4f,0x7d,0x32,0xc2,0x24,0x98,0xd8,0xc0,0x6c,0xe5,0x6b,0xc1,0xc8,0x96,0x9b,0xc1,0x13,0x5d,0xbe,0xc1,0x70,0x80,0x10,0x3f,0x1c,0xb2,0x6,0x40,0x99,0x65,0x6f,0xc1,0x86,0x7,0x3b,0xc1,0xf8,0x7b,0x3,0xc1,0xe0,0xc4,0xf0,0x41,0xab,0xc2,0x20,0xc2,0xd7,0xfc,0x2a,0xc1,0xb0,0x24,0xdd,0xc1,0xb4,0xa7,0x9f,0xc1,0x82,0x95,0xc2,0x41,0x1a,0x22,0x46,0x41,0xab,0x77,0x12,0x42,0xac,0xef,0xc3,0xc1,0x0,0xe9,0xa1,0xc1,0x4e,0xc3,0xf6,0x41,0x7a,0x62,0xa1,0xbf,0xff,0x20,0xe1,0xc0,0x9c,0x51,0xe8,0x41,0x33,0x56,0x3,0x42,0xda,0x11,0xcf,0xbf,0xc7,0xaa,0x45,0x41,0x20,0x72,0xce,0x41,0x54,0xb4,0xce,0x41,0x6e,0x34,0xad,0xc0,0x15,0xfe,0xe5,0x41,0x49,0x94,0xf0,0x41,0xdf,0x62,0x1f,0xc2,0xa8,0xf9,0x82,0x41,0x99,0xdb,0x5d,0xc1,0x6a,0xce,0x2e,0xc2,0xd8,0xd3,0x4b,0x41,0xde,0x8d,0xa8,0xc1,0xfd,0x7a,0xe,0x42,0x3c,0x74,0x71,0x42,0x5c,0xd8,0xae,0xc0,0xf6,0x1b,0x35,0x41,0x12,0xcf,0x9c,0x40,0xce,0x6d,0x3c,0x42,0x44,0x98,0x96,0x41,0xb0,0x76,0xb4,0xc1,0x69,0x83,0x1c,0x42,0xf6,0xe7,0x19,0xc1,0x94,0xfb,0xd,0xc2,0x6d,0x4,0x99,0xc1,0x78,0x6d,0xd9,0xc1,0xb3,0x6d,0x1b,0xc1,0x5b,0xfa,0xc4,0xc1,0x55,0x65,0x5d,0x41,0x88,0xde,0x62,0xc0,0x60,0x82,0x6a,0xc1,0x9e,0xd3,0xd7,0xc0,0xb8,0x6f,0x10,0x42,0xa4,0x80,0x11,0x42,0x7e,0x18,0x65,0x41,0xc1,0xc4,0x28,0x42,0x9d,0xc4,0xb4,0xc1,0x31,0xe4,0xf4,0x41,0x6,0x63,0x1f,0xc2,0xa4,0x67,0xc,0xc2,0xdc,0x2b,0x2a,0xc2,0xe2,0x2b,0x84,0x3f,0xde,0x40,0xbe,0x41,0x3a,0x23,0x98,0x42,0x24,0x96,0xe6,0xc1,0xb8,0x1f,0x3d,0xc1,0x4a,0x93,0xb8,0xc1,0xda,0x86,0x5d,0x41,0x66,0xa9,0x19,0x42,0x30,0xd9,0xd1,0xbf,0x3f,0x46,0x9c,0x41,0xe4,0x55,0x77,0x41,0xee,0x35,0x94,0x41,0xfe,0x3b,0x1a,0x42,0xd9,0x26,0x44,0x42,0x69,0x86,0x41,0xc0,0x8a,0xef,0xf5,0x41,0x3e,0xa1,0xf2,0x40,0x9,0x55,0x3e,0xc1,0x7a,0x7b,0x8d,0x41,0x46,0xa4,0x1c,0x42,0xad,0x68,0x83,0x41,0x42,0xee,0xba,0x40,0x65,0x15,0xe6,0x40,0xf4,0x9,0x24,0xc2,0x30,0x4c,0x5c,0x41,0xbb,0xb,0x3,0xc2,0xab,0x3d,0x76,0x42,0xb,0xaa,0x28,0x42,0x6b,0x36,0x2c,0xc1,0x3d,0x98,0x69,0xc2,0x74,0x10,0x8e,0x41,0x2c,0x90,0xe,0x42,0xf0,0x65,0xfa,0xc0,0xd6,0x47,0xbb,0x41,0x4c,0xb9,0xab,0x41,0xc6,0xae,0x6,0x42,0x5f,0xbc,0x54,0xc2,0xda,0x6d,0xf7,0xc1,0xc2,0xca,0x10,0x41,0xcc,0x3e,0x8e,0x41,0x31,0x83,0x3c,0xc1,0x63,0x6a,0x4a,0x41,0xc5,0xc8,0x8,0x42,0x24,0xc,0x50,0xc1,0xc2,0xb4,0xb8,0x40,0x76,0xb3,0x8e,0xc1,0x81,0xb6,0xab,0x41,0xbf,0xe9,0xe9,0xc0,0xc8,0x5b,0xdc,0xc1,0x7c,0x81,0x81,0x42,0xc6,0x1b,0x2e,0x41,0x43,0x34,0x5a,0x42,0xcf,0x39,0x59,0xc1,0xea,0x5e,0xda,0xc1,0x58,0x87,0x8a,0x40,0xe0,0x72,0xfe,0xc0,0x24,0x7e,0x80,0x41,0xa7,0x46,0xdb,0x41,0xb8,0xcd,0xce,0x41,0xc3,0xd4,0x84,0x41,0x41,0x6c,0xf6,0xc1,0xb1,0x50,0x29,0xc0,0x95,0xfa,0x88,0xc1,0x30,0x56,0x9f,0x42,0x6d,0xe9,0xdd,0x40,0xd1,0xf1,0x60,0x41,0x36,0x37,0x8,0xc1,0x11,0xfd,0x1,0x42,0x62,0xb0,0xce,0x40,0x62,0x34,0xa8,0x40,0x10,0x77,0x9a,0x40,0x85,0xf0,0xf8,0xc0,0x3,0x9d,0x2a,0xc1,0x52,0x95,0x84,0x40,0x99,0x3b,0xd0,0x40,0x6b,0xfc,0xd7,0x41,0xc5,0xa4,0x36,0x42,0x9,0xe9,0x8c,0xc1,0xe8,0xca,0x50,0x3e,0xe,0x3b,0xad,0x41,0x9c,0x7,0x3b,0x42,0x62,0xa2,0x7a,0xc0,0x42,0x9f,0xef,0xc0,0xb8,0xde,0xc5,0x41,0x62,0x23,0x79,0x42,0x76,0xa9,0x32,0xc0,0xe2,0xb1,0x66,0xc2,0x0,0x5d,0x7,0x42,0x5f,0xb7,0x8c,0xc0,0x6a,0x18,0xa6,0xbf,0x8f,0x1,0xd4,0xc1,0x8a,0x9b,0x0,0x42,0x5,0x5b,0x4a,0x42,0xff,0x95,0x87,0x40,0x35,0x29,0x40,0x42,0xf9,0x89,0x6d,0xc0,0x28,0x96,0x9a,0xc2,0xc6,0xa5,0x2,0xc2,0x88,0x65,0xfc,0xc1,0xcf,0x60,0x8f,0xc1,0x8a,0x5f,0x9d,0xc2,0xfe,0xf1,0xa5,0x41,0xd9,0xa1,0x34,0xc2,0x38,0x53,0xb8,0x40,0x60,0x61,0x14,0xbf,0xb8,0x3e,0x98,0x40,0xa9,0x5c,0x24,0xc1,0x2d,0xf4,0x9d,0xc1,0x2e,0x55,0xcf,0x40,0xea,0x5a,0x4,0xc2,0x60,0x99,0x7a,0xc2,0x9a,0x4,0x16,0xc2,0x71,0x66,0xd9,0x41,0xe7,0x24,0x5d,0x41,0xf7,0xb2,0x8f,0xc1,0x1e,0x94,0xbf,0xc1,0xd3,0x9,0xad,0x41,0x90,0xc9,0x9a,0xc0,0x50,0xde,0x3a,0xc1,0xdd,0xa9,0xbb,0x40,0x7e,0xb6,0x29,0x41,0xd6,0xf8,0x26,0x42,0xc7,0xbc,0x64,0xc2,0x49,0x36,0xee,0xc1,0xfd,0xa,0x94,0x41,0xba,0xae,0x3f,0xc2,0x28,0xc6,0x2b,0xc2,0x79,0xc9,0x21,0x42,0xde,0xda,0x91,0x42,0x17,0xe3,0xdc,0x41,0x50,0x79,0x2d,0x42,0x9e,0x18,0x59,0x42,0xf0,0x3c,0xf1,0x42,0xb9,0x6a,0xd4,0xc0,0xcd,0x55,0xe6,0x41,0xe9,0xf0,0x3b,0xc1,0xca,0x0,0x3d,0xc2,0xf2,0x74,0xc5,0x41,0x7a,0x21,0x15,0xc1,0xf,0xce,0xa5,0x42,0x32,0xe5,0xff,0x41,0xc4,0xbf,0x57,0x42,0xd1,0x9c,0x86,0xc2,0xc8,0x11,0x61,0x41,0x94,0xc0,0xc2,0x41,0x9c,0xaa,0xf6,0xbf,0xa1,0x47,0x1,0x41,0x34,0x1c,0x5b,0x41,0x35,0x50,0xe8,0x41,0x58,0xb3,0xc,0xc2,0x7c,0x5d,0x8b,0x3f,0x45,0x71,0xdc,0x41,0xbd,0x4f,0x1b,0x41,0x88,0x3d,0x88,0xc1,0xb7,0xd7,0x5f,0x41,0x93,0x8b,0x10,0xc2,0xc,0xa8,0x10,0xc2,0xb2,0x2d,0x8f,0x41,0xf1,0xa7,0xfb,0x41,0x69,0x8,0xac,0xc0,0x2a,0xce,0x21,0x41,0xdb,0xc8,0xa8,0xc0,0x23,0x97,0x9f,0xc1,0xab,0x3d,0x6d,0xc2,0x54,0x91,0x78,0xc1,0xac,0x15,0x97,0x42,0x33,0x51,0x2b,0xc2,0x48,0x71,0x1a,0xc1,0x10,0xd5,0xdb,0xc1,0x39,0x82,0x43,0x42,0xd,0x91,0x9f,0xc1,0xeb,0x6c,0x53,0x42,0x36,0x24,0xb0,0xbf,0x69,0x6b,0x6e,0x42,0xd8,0xa6,0x5f,0xc1,0x7f,0xc6,0xb2,0xc0,0x3c,0x1a,0x9b,0xc1,0xa,0xb1,0xf,0xc2,0x89,0x6e,0x86,0x42,0x53,0xb,0x34,0x42,0xd0,0x57,0x15,0x3e,0x74,0x9f,0xb3,0xc1,0xc9,0xd9,0x2e,0x42,0x12,0xbb,0x61,0x40,0xda,0x94,0xb3,0x41,0xf9,0x8d,0x8e,0x41,0xd4,0xdd,0xde,0xc0,0x81,0x1d,0xe4,0x41,0x33,0x24,0xb2,0xc1,0xb3,0x2,0xee,0x41,0xab,0x27,0x57,0xc2,0x48,0xc8,0x83,0xc2,0x7c,0xea,0xa7,0xbf,0xfb,0xb9,0xa1,0xc2,0xaf,0x79,0x20,0x42,0x9d,0x60,0xb0,0x41,0x9e,0x2a,0xef,0x42,0xf5,0x1a,0x88,0xc1,0x6f,0x39,0x8,0xc2,0x18,0x84,0x10,0xc2,0xc0,0x57,0x20,0xc2,0x2c,0xe2,0x3,0xc2,0xed,0xdc,0xc7,0xc1,0xe9,0xda,0x24,0xc1,0xbe,0xbf,0x10,0x42,0xd2,0x5b,0x60,0xc2,0x24,0x12,0x4f,0x41,0x11,0x24,0x26,0xc2,0x5e,0x5d,0x3,0xc1,0x91,0x96,0x6c,0xc2,0x5a,0xc0,0x49,0xc1,0x86,0xe1,0x10,0x42,0xd1,0xb9,0x2e,0xc2,0x54,0x89,0x4c,0x42,0x64,0x46,0x85,0x41,0x9b,0x31,0x98,0xc2,0x49,0x48,0x21,0x41,0x3c,0xf0,0xb2,0xc1,0x62,0xb7,0x9a,0xc0,0x27,0x93,0xd5,0xc1,0x37,0xbc,0xab,0x41,0x82,0xa0,0x58,0xc0,0x8d,0x75,0xf4,0xc0,0xdc,0x6f,0x9e,0x41,0xaa,0x7d,0xa2,0x42,0x63,0x2e,0x67,0xc1,0x34,0x3e,0x1e,0xc2,0xca,0xe7,0xd8,0x41,0xc,0xe9,0x5c,0xc1,0x1e,0x4b,0xbb,0xc1,0x34,0x20,0xdb,0xc0,0x9c,0xe7,0xa2,0xc1,0x50,0xa5,0x91,0xc1,0x8f,0x3e,0x18,0xc2,0x0,0xd1,0xac,0x41,0x10,0xa4,0x55,0xc2,0x61,0xc3,0x56,0xc2,0x17,0xf5,0x44,0x42,0x6d,0x2d,0x73,0x42,0x41,0x13,0x8b,0x42,0x62,0xd3,0x45,0x40,0x9d,0xb0,0x33,0xc1,0x96,0x40,0x5e,0x42,0x26,0xc0,0xf,0x42,0xb7,0x92,0x5d,0xc1,0x8,0x42,0x4e,0xc2,0xe4,0xf2,0x85,0xc2,0x95,0xe8,0x4,0x42,0x6f,0x19,0x48,0xc2,0x9d,0xe3,0x94,0xc2,0x4b,0x1a,0x97,0xc1,0x98,0xcb,0x89,0x41,0x69,0x86,0x2c,0x42,0x63,0x3f,0x2e,0x42,0x86,0xf2,0x14,0x42,0x28,0x9a,0xc3,0xc1,0xb6,0xd2,0xda,0x40,0xb8,0xd0,0x2a,0x42,0x16,0xab,0x39,0xc1,0xc3,0x90,0x3f,0xc2,0xb,0xae,0x8c,0xc1,0x38,0xe7,0x9a,0x41,0xa2,0xa6,0x4,0xc2,0x1,0xb9,0x45,0x42,0x9c,0xfa,0x5c,0xc2,0x1d,0x6,0x46,0xc2,0x30,0x6b,0x3d,0x42,0x4b,0x86,0x2f,0xc2,0x5b,0xde,0x2,0x42,0x8f,0x8,0x16,0xc1,0x56,0xd3,0x4e,0x40,0x48,0x47,0x73,0xc2,0xd2,0x54,0xbf,0x41,0xc0,0x22,0x55,0xc1,0xdc,0xca,0xbe,0xc2,0xa8,0xba,0x34,0xc2,0x82,0xc5,0x80,0xc2,0x70,0x7e,0x6d,0xc2,0xd8,0x27,0x85,0x41,0x56,0x50,0x23,0xc1,0x16,0xfc,0x7,0xc2,0xe4,0x35,0x87,0x3f,0x48,0x7b,0xbc,0x41,0xe3,0xed,0x30,0xc0,0xc9,0xb,0xf8,0x42,0x56,0xf1,0x86,0x41,0x20,0xb,0xea,0xc2,0x99,0x9d,0x34,0xc2,0xf8,0x5d,0xc7,0x41,0x75,0xa,0x8b,0x42,0xb6,0x17,0xc,0x42,0xac,0x44,0x57,0x41,0x16,0x31,0xf2,0xc1,0x61,0x3d,0xb2,0xc1,0xbe,0x75,0x7b,0xc2,0x52,0x2d,0xa7,0xc1,0xf4,0xb8,0x47,0xc2,0x3a,0x77,0x43,0xc2,0x23,0xc5,0xd3,0x42,0x56,0x8,0x5c,0xc2,0x78,0x32,0x27,0x41,0x2a,0xe3,0x38,0x42,0x2f,0x1d,0x54,0x41,0x2b,0xb1,0xd0,0xc2,0x33,0x6c,0x5c,0x42,0x94,0x95,0x52,0x41,0xf0,0x78,0x72,0x3e,0x8e,0x9a,0x8d,0xc1,0xce,0x46,0x8d,0xbf,0x5c,0x65,0xba,0x40,0x5d,0x29,0xa5,0xc2,0x8a,0x52,0x9b,0xc2,0x36,0xc6,0x90,0x41,0xc5,0x88,0x88,0x41,0xac,0xf6,0x6f,0x41,0x89,0x59,0x9e,0xc2,0x92,0x27,0x51,0x42,0x48,0xc1,0x71,0x42,0xbe,0xa4,0xb2,0xc1,0x7a,0xc4,0xeb,0x40,0xb4,0xf5,0xaf,0x41,0xff,0xff,0x97,0x41,0xfc,0x2f,0x14,0x42,0x70,0x41,0xf8,0x41,0x35,0xe,0x5c,0xc2,0x1e,0x1f,0x7c,0xc2,0xe1,0x49,0x11,0xc2,0xbe,0x3f,0x1d,0xc1,0xf1,0xcf,0x91,0x41,0xa5,0xcf,0x46,0xc2,0x96,0xa6,0x24,0x41,0x3e,0xd1,0xf0,0x40,0x35,0x6c,0x22,0x42,0x6d,0x3d,0x6d,0xc2,0x40,0x93,0xb5,0x41,0x30,0x70,0x9f,0x41,0x40,0x13,0x96,0xc1,0xe0,0xf6,0x80,0x41,0xaa,0xa5,0x12,0xc3,0xbf,0x49,0x39,0x42,0x7c,0x5a,0x8f,0x41,0x30,0x47,0x98,0x3f,0x17,0xf8,0x60,0x42,0x20,0x23,0xdd,0xc0,0x8e,0x80,0x23,0x42,0x12,0xcf,0xb,0x42,0x42,0x6d,0xe2,0x41,0x4e,0x2d,0xd4,0x41,0x8b,0x97,0x32,0xc2,0xa5,0x52,0x8e,0xc1,0x60,0xc8,0x1d,0xc2,0x3c,0x4c,0x1b,0xc1,0x86,0x25,0x9d,0x40,0x50,0x99,0x3b,0x42,0xc0,0xc2,0x17,0xc2,0x4c,0xf1,0x6f,0x42,0xee,0x92,0xa8,0x42,0x2e,0x88,0xf6,0xc1,0x68,0xfa,0xba,0xc1,0x52,0x65,0x9a,0x42,0x8c,0x7,0xe,0x42,0x3e,0xcf,0x44,0xc1,0x79,0x2e,0xaf,0xc1,0x3c,0xdd,0x56,0x42,0xc3,0x8c,0x5b,0x42,0x6c,0x5d,0x46,0x42,0xb0,0x97,0x37,0xc2,0xb8,0x7,0xe2,0xc1,0xc3,0x6d,0xb4,0xc1,0x9b,0x8f,0xa8,0x42,0x78,0x19,0x42,0xc2,0xa0,0xdd,0xf0,0xbd,0x88,0xf7,0xe0,0x40,0x3a,0xd8,0xf5,0xbf,0xe1,0xb,0x7c,0xc1,0xec,0x1d,0x1,0x42,0x5e,0xe9,0x8f,0xc1,0xfd,0xb5,0xb3,0xc1,0xff,0x52,0x18,0xc2,0x7d,0xd4,0xc3,0xc1,0x25,0x9c,0x85,0x42,0xc8,0x74,0x7d,0xbf,0x8e,0xb7,0xf4,0x41,0xc,0x3b,0x1f,0xc2,0x5a,0x3f,0x95,0xc1,0x77,0xba,0x80,0x42,0xc1,0x12,0xcb,0xc1,0x88,0x6f,0x86,0x42,0x42,0x1a,0x50,0x41,0x38,0x38,0xb9,0x3e,0xa0,0x28,0xba,0xc0,0x88,0x5d,0x3a,0x41,0x90,0xa0,0xac,0xc2,0x1f,0xf0,0x45,0x42,0x32,0x45,0x6e,0x42,0xbe,0x46,0x8d,0xc1,0x3e,0xde,0x43,0xc1,0xc0,0x86,0x8a,0x42,0xac,0xc8,0x47,0xc0,0x36,0xe7,0x15,0x41,0xcf,0x61,0xf,0xc2,0xdb,0xc5,0xd6,0x41,0xb2,0x1c,0x4c,0xc2,0xc,0x22,0xc5,0x41,0x59,0xac,0xb8,0xc1,0xc0,0x9e,0xc2,0x41,0x11,0xc1,0x9,0x42,0xe2,0x96,0x78,0x41,0xcf,0x7f,0x1e,0xc2,0xb0,0x41,0x8e,0xc1,0xdb,0xb6,0xc9,0x41,0xfe,0xb6,0xf,0x42,0x93,0x2a,0x84,0xc1,0x96,0xa7,0xa2,0x41,0x38,0x8f,0x25,0xc2,0x91,0x60,0x35,0xc2,0x38,0x8e,0xd3,0x41,0x7e,0x3b,0x7,0x41,0x8a,0x30,0x7a,0xc1,0x72,0x2a,0x18,0x3f,0xb6,0x13,0x72,0xc1,0x75,0xf3,0x7,0xc2,0x92,0x55,0x21,0xc2,0xc0,0x6f,0xf8,0xc1,0x58,0xd1,0x43,0x3f,0xa9,0x4e,0xd5,0x41,0x30,0xed,0x54,0x42,0xca,0x39,0xc,0x42,0xd7,0x2,0xf,0xc2,0x2f,0x50,0x37,0xc1,0x69,0x8,0xa7,0x41,0x21,0xe3,0x75,0xc2,0x44,0x76,0xcb,0xc2,0x83,0x39,0x45,0x41,0x12,0x65,0x0,0x42,0x45,0xd,0xb9,0xc0,0x3a,0xda,0x9,0x42,0x18,0xd8,0x8e,0xc1,0xbe,0xdf,0xfb,0x41,0x66,0x95,0x55,0xc2,0xd8,0x37,0xe6,0x41,0xcf,0x56,0x13,0xc2,0x9,0x8d,0x72,0x42,0x15,0xc3,0x81,0x40,0xf1,0xfb,0xa5,0x41,0xa1,0x2,0xd8,0xc1,0xdd,0x58,0xa9,0x40,0x48,0x9e,0x77,0x41,0xd1,0x59,0x81,0xc1,0x41,0xff,0x63,0xc2,0xfe,0xa7,0xe9,0x40,0xb6,0xc9,0x47,0x3f,0x83,0xcf,0x88,0x41,0xf3,0x75,0xca,0x41,0x14,0x32,0x8b,0x41,0xf,0x1c,0x6,0xc2,0xc7,0xa7,0x9b,0x41,0x83,0xbb,0x24,0xc1,0xc1,0x6e,0xbd,0x41,0xd2,0x4c,0x65,0xc2,0x4b,0x55,0x3a,0x42,0xf1,0xfa,0x9b,0xc1,0x28,0x3f,0x66,0xc1,0xa0,0x48,0x9f,0xc1,0x7e,0x7,0xe,0xc0,0x91,0x6c,0x1d,0x42,0xa0,0xa2,0xf4,0xc1,0xa2,0xdd,0x4d,0x42,0xd2,0x7a,0xeb,0x41,0x94,0x50,0xf7,0xc0,0xd,0xa,0x92,0xc2,0x38,0xf7,0x97,0x41,0x84,0x57,0xed,0xc1,0xe3,0xb,0x41,0xc2,0x5e,0x2d,0xde,0xc1,0xc7,0x84,0x4f,0xc2,0x96,0x45,0xd6,0xc1,0x7b,0xf1,0x75,0x41,0x17,0xff,0xe,0x42,0x21,0xfb,0xac,0xc2,0xe8,0x98,0xb5,0x41,0x7b,0x89,0x5f,0x42,0x13,0x8e,0xc0,0x42,0x7f,0xc0,0x4b,0xc0,0xd2,0x17,0x83,0xc1,0x83,0xd0,0xf,0x42,0x28,0x35,0xcb,0xc1,0xb8,0x1e,0xdb,0x41,0x76,0x5a,0x24,0xbf,0x50,0xaf,0xe2,0xc1,0xc6,0x78,0xe0,0x41,0x8a,0x7f,0xf5,0xc0,0x96,0x4b,0x4c,0xc1,0x41,0x36,0x19,0xc2,0x81,0x3,0x33,0xc0,0xae,0xa3,0x94,0x41,0x42,0xa0,0x7f,0x41,0xed,0xc6,0x23,0x42,0x3e,0x49,0x2f,0xc2,0x5f,0x54,0x4d,0xc1,0x82,0x3c,0x34,0xc0,0xb9,0x3d,0xa,0xc2,0x80,0xc6,0x48,0xc0,0xc3,0xe6,0x3,0x41,0x60,0x5a,0xa7,0x41,0x0,0x9d,0xaf,0x3f,0x39,0x36,0xd5,0xc1,0x3a,0xcb,0x86,0xc1,0x64,0xf6,0xda,0x41,0xa7,0x1a,0xbb,0xc2,0x38,0x46,0x72,0xc0,0xec,0xbf,0x11,0xc2,0x94,0x4,0xd5,0xc1,0x98,0x75,0xf8,0xc1,0x7,0x7,0xfd,0xc1,0xaa,0xb8,0xf0,0xbf,0xc2,0x8b,0x4e,0xc1,0x1c,0xe9,0xd4,0xc1,0x32,0xf1,0x9d,0xc1,0x1d,0x14,0xa3,0x41,0xc,0x5a,0x5f,0x41,0xc9,0xa1,0x2a,0xc1,0x50,0xa6,0x8d,0x42,0x40,0xdf,0x2f,0x42,0x34,0x23,0x4f,0xc2,0x84,0x76,0x1a,0xc0,0x3d,0xf,0x4a,0xc2,0x43,0x4,0xbe,0xc1,0x2d,0x21,0xa,0xc2,0xe6,0x5f,0x2e,0xc1,0x48,0xe2,0xbb,0xbf,0x9a,0x24,0xf9,0x41,0x3e,0x34,0x17,0x42,0x38,0x58,0x65,0x42,0xc0,0xe4,0x80,0x41,0x29,0xdd,0x9a,0xc0,0x74,0x34,0x6c,0xc1,0x90,0x93,0x5a,0xc1,0xae,0x7e,0xe,0x42,0x6e,0x10,0xf7,0xc1,0x47,0x76,0x2d,0x42,0x49,0xab,0x7,0x42,0x2c,0xa5,0xba,0xc0,0x8b,0xab,0x84,0xc2,0x92,0x61,0x1c,0x41,0xa1,0x89,0x74,0x42,0xa8,0x38,0xd9,0xc0,0x58,0xcc,0xb2,0x41,0xd7,0x52,0x65,0xc2,0xca,0xda,0x5f,0xc2,0x8d,0x32,0x4f,0x42,0xba,0x5b,0x91,0x41,0x45,0x29,0x18,0x42,0xa1,0x84,0x3c,0xc2,0x80,0x9e,0xb8,0x41,0xa8,0xaf,0x7,0xc2,0xaa,0x1e,0xdc,0x41,0x57,0x98,0x2,0xc1,0xcc,0x5d,0x91,0x40,0xb6,0x7f,0x34,0xc2,0xf5,0x1f,0x18,0xc2,0xf1,0xad,0xdf,0xc1,0x93,0xfb,0x79,0x42,0x90,0x83,0x74,0xc2,0x48,0x0,0x86,0xbf,0x48,0xed,0x27,0x41,0x30,0xbd,0xaa,0xc1,0x16,0xe0,0xa1,0x40,0xf3,0xba,0xdc,0x41,0x20,0x91,0xa0,0x41,0x45,0x4f,0x62,0xc1,0x7e,0x3c,0x20,0x42,0xc8,0x4e,0x31,0x41,0xa8,0x9c,0x39,0xc2,0x66,0x2b,0x90,0xc0,0x5a,0x91,0x41,0xc0,0x48,0xfe,0x18,0xc1,0x30,0xfa,0x70,0xc1,0xb6,0x94,0x97,0x3f,0xc4,0x98,0x9b,0x41,0x94,0x63,0xf4,0x41,0x64,0xf8,0x13,0x42,0x7c,0x5,0xec,0x41,0x56,0xf1,0x3c,0xc1,0x11,0xda,0x9,0xc2,0xa9,0xa6,0xcd,0x41,0x69,0x3,0x4a,0xc0,0x32,0x82,0x8,0xc2,0x2b,0x6d,0x82,0x42,0xcc,0xdb,0x98,0x42,0x39,0xf8,0x59,0x42,0xe,0x92,0x8c,0x41,0x73,0xd,0xe,0x42,0xc1,0x29,0x17,0xc1,0x77,0x72,0x3f,0xc2,0x9a,0x68,0xce,0xc0,0x1d,0x77,0xbb,0x41,0x45,0xf7,0x39,0x41,0xf6,0xf0,0xe0,0xc1,0x56,0x97,0xee,0xc1,0xc7,0x90,0xa3,0x41,0x3c,0x25,0x12,0xc0,0x71,0x27,0x10,0x42,0xd6,0x14,0x50,0x42,0x58,0xc9,0x80,0x42,0x7b,0xea,0xc4,0xc1,0x31,0xef,0x6,0x41,0x6d,0x45,0xcf,0x41,0x8d,0x6d,0xa,0xc2,0xb2,0x5b,0x10,0x41,0xf,0x8,0x5,0xc2,0x23,0x50,0x80,0x40,0x4a,0x8e,0x3b,0x41,0x1a,0x97,0x14,0xc2,0x37,0x9b,0xd6,0x40,0xe6,0xa5,0x34,0x41,0xe2,0x96,0x23,0xc1,0xea,0xf6,0xbd,0x42,0xea,0x8,0xfd,0xc1,0x5a,0xa4,0xbd,0x41,0xf8,0x48,0x4d,0xc0,0x33,0xb3,0x80,0xc2,0x40,0x5b,0x96,0xc2,0x54,0xad,0x29,0xc1,0x1b,0x9f,0xcb,0x40,0xc0,0xa5,0x2c,0xc1,0x17,0xc2,0xbf,0x41,0x60,0x74,0xd,0xc2,0x17,0xfb,0x22,0x42,0x63,0x75,0x5b,0xc1,0x61,0xfb,0x2a,0x42,0xfd,0x31,0x24,0x42,0xb7,0x37,0x69,0xc1,0x1e,0x1d,0x87,0x3f,0xde,0xad,0x92,0xc1,0xa7,0x35,0x90,0x42,0x78,0x64,0x29,0x42,0x9c,0xeb,0x80,0xc1,0x65,0x1f,0x7,0x42,0xbc,0xea,0x15,0xc2,0x46,0xfd,0x26,0x42,0xa5,0x8b,0x99,0x42,0x9a,0x2,0x89,0xc2,0xa5,0x42,0x3b,0x42,0x5,0x4b,0xf8,0xc1,0x70,0x6f,0xb8,0xc1,0x2c,0x2,0xaf,0x41,0x46,0x78,0xd4,0x40,0x22,0xe,0xaf,0x42,0xb0,0x76,0x2a,0xc1,0x3b,0x20,0x38,0x41,0xb5,0x94,0x80,0x42,0x75,0x7,0x20,0x42,0xf0,0xb9,0x42,0xc2,0xe,0xd5,0x5f,0x41,0x0,0xab,0xa2,0x41,0x51,0x1,0xd4,0xc1,0xf,0x60,0x27,0x42,0x4f,0xd0,0xfb,0x41,0x49,0x5c,0x4c,0x42,0x52,0xa9,0xd9,0xc1,0xd4,0xb4,0x37,0x41,0x43,0xfb,0xf3,0x41,0x5e,0x11,0x35,0xc1,0x5e,0x8c,0xf,0xc2,0x3b,0xe0,0xcb,0x41,0xac,0xc5,0xcf,0xc1,0xa7,0xb4,0x0,0x42,0x21,0x45,0xbc,0xc2,0xcd,0xf8,0x1c,0xc1,0x6a,0xa9,0xe8,0x41,0xb1,0xc3,0xd3,0x41,0x2,0xb7,0x8b,0x42,0x6,0xc3,0xd,0xc1,0x16,0xc4,0x8c,0xc1,0xee,0xaf,0x6d,0xc0,0x52,0x8d,0xea,0x41,0x24,0x83,0x72,0xc2,0xff,0x3b,0x33,0xbf,0xa6,0xe0,0x9f,0xc1,0x54,0x94,0xcd,0x41,0x41,0x43,0x57,0x42,0xd,0xc5,0x33,0x41,0x96,0x43,0x98,0xc0,0x7,0x32,0x3,0x41,0x7a,0x5a,0x7c,0xc1,0xb3,0x33,0x2,0x40,0x40,0xb3,0x93,0x3e,0x22,0x74,0x4d,0x41,0x58,0x4,0x7c,0xc0,0xc8,0x62,0x80,0xc1,0x76,0xdc,0x33,0xc1,0xc6,0x27,0x8c,0xc2,0xb3,0xf5,0x6f,0x42,0xb5,0xfc,0x56,0xc2,0x4c,0xb5,0xcc,0xc1,0xbc,0x86,0x53,0xbf,0xfc,0x2,0xd0,0xc2,0xaf,0x6,0xc,0xc2,0x47,0xc4,0x21,0xc2,0x52,0x86,0x7b,0x42,0xf5,0x92,0xf9,0xc0,0x3,0xa6,0x4a,0x42,0x42,0x76,0xb7,0xc1,0x92,0x12,0x88,0xc2,0x2c,0x50,0x5c,0xc2,0x9b,0xf9,0xc8,0xc0,0x6b,0xd7,0xd1,0x41,0x6d,0xaa,0xa0,0x40,0x3a,0xde,0xa1,0x41,0xb0,0x67,0x9a,0xc2,0xe6,0xed,0x43,0x42,0x96,0xe1,0x9c,0x42,0x90,0xa1,0xcd,0xc1,0x7c,0x1f,0x0,0xc2,0x14,0x79,0xd6,0xc1,0x1f,0xa5,0x2b,0xc1,0x39,0x35,0x32,0x42,0x6,0x79,0x97,0xc1,0x77,0x5c,0x7b,0x42,0xec,0xdc,0x14,0x42,0x7a,0x15,0xa1,0xc0,0xdb,0x4a,0xaa,0x42,0x47,0x61,0x15,0x42,0xac,0xca,0x12,0xc2,0x4c,0xd,0x6e,0x42,0x7f,0xf7,0xf6,0x41,0x23,0x82,0x5a,0x41,0xa2,0x71,0xef,0x40,0xf4,0x6d,0x3f,0x42,0x24,0xff,0x58,0x3e,0xa9,0xc1,0x6a,0x41,0xd1,0x60,0x53,0x42,0x42,0x97,0xab,0x41,0xe,0xf3,0x99,0xc1,0x33,0x68,0x3b,0xc1,0x76,0x8b,0x6a,0x41,0x6e,0x83,0xba,0x41,0xd9,0x41,0x8b,0xc1,0x1a,0xec,0xfc,0xc1,0x1f,0xe5,0xdc,0x41,0x95,0x65,0x77,0x42,0x4c,0x63,0x7e,0xc2,0xc8,0x64,0x18,0xc2,0xb0,0x4a,0x98,0x42,0xd2,0x66,0x94,0xc2,0x60,0xad,0x17,0xc1,0x48,0x21,0x13,0x41,0xda,0x45,0xbf,0xc0,0x19,0x25,0x0,0x41,0xd8,0x74,0xe0,0x41,0xc9,0x97,0x43,0x41,0xe1,0xe6,0x89,0x42,0xd9,0x9f,0x70,0xc1,0x84,0x36,0x3c,0xc0,0xf0,0xfa,0x86,0x42,0xf9,0x97,0xcb,0xc1,0x49,0xbe,0x2d,0x42,0x87,0xce,0x27,0xc2,0x7f,0x74,0x5e,0x42,0x23,0xe9,0x59,0x41,0x6b,0x4,0x3e,0xc2,0x93,0xc5,0x8,0x41,0xe4,0x1b,0xb3,0x40,0xec,0x46,0xa5,0x42,0x5d,0xa7,0x17,0xc2,0xc2,0x95,0x3e,0x42,0xe5,0x59,0xa8,0xc1,0xa6,0xe,0x46,0xc2,0xb4,0xb6,0xd5,0xc1,0xb9,0x4d,0x63,0xc2,0x34,0x4,0xe5,0x40,0xbf,0xc6,0x91,0xc2,0x96,0x87,0xcc,0x40,0xaa,0xc6,0x3c,0x42,0x80,0xc3,0x82,0xc2,0x60,0xb0,0xc3,0x3e,0x8f,0xe,0x5d,0x42,0x75,0x93,0xe9,0xc1,0xaa,0xcd,0xff,0x42,0xc4,0xa3,0xd3,0x40,0x1c,0x9e,0xca,0xc2,0x7e,0x2,0x72,0xc1,0xbc,0x9f,0xfb,0x40,0x27,0x71,0x3a,0x41,0x7a,0x60,0x47,0x40,0xe7,0x7,0xa7,0x41,0x26,0x14,0x9b,0x42,0x21,0x5d,0x16,0xc2,0x74,0xa3,0x4a,0x40,0xa,0x1,0x73,0x41,0xfa,0xd0,0x6f,0x40,0xc6,0x75,0x3c,0x42,0x8,0xb1,0x4a,0x42,0xf4,0x53,0xe8,0x41,0xdb,0x8b,0x30,0x41,0xb8,0x5d,0x46,0x41,0xb2,0x1b,0xa9,0x40,0x10,0x80,0xdf,0xc1,0x19,0x71,0xdf,0xc1,0x24,0xc4,0x57,0x42,0x8a,0x6f,0xe,0xc0,0xef,0xa3,0x73,0xc1,0xc3,0x4d,0x7c,0xc2,0x33,0xeb,0xcb,0x41,0x2c,0x57,0x22,0x40,0xd3,0xb9,0xdc,0xc1,0xaf,0x5f,0x7e,0x42,0x64,0xa1,0x35,0x42,0x44,0xd2,0x6a,0x40,0x54,0x94,0x17,0xc2,0xab,0x49,0x55,0xc2,0xb2,0xe9,0x6b,0x41,0xe6,0x26,0x65,0xc2,0xa9,0xda,0xfb,0xc0,0x84,0x59,0x6a,0x42,0xf4,0xa1,0xc6,0xc2,0x45,0x7c,0x9d,0xc2,0xec,0x0,0x19,0x42,0x58,0x13,0x83,0xc0,0xa6,0x78,0xcd,0x41,0x72,0x92,0x8d,0x42,0xaa,0xbc,0xfd,0x41,0x77,0x0,0xe,0x42,0x76,0xd,0xc6,0x41,0xbc,0x0,0x7,0xc1,0x9e,0xd9,0x96,0x40,0x47,0xfc,0x62,0xc2,0x5d,0xd9,0x6b,0x42,0x96,0x36,0x38,0xc2,0x6f,0xa5,0x85,0x42,0xc0,0xd9,0x6e,0x42,0x38,0xa0,0x2c,0xc2,0xa1,0xe4,0xb5,0x42,0xac,0x59,0xa6,0x42,0xe0,0xe8,0x81,0x41,0x18,0x44,0x56,0xc1,0xe4,0x5,0xdb,0x3f,0x1f,0xe5,0x3,0xc2,0x34,0xc8,0xd6,0xc2,0x80,0xef,0xaa,0x41,0x35,0x62,0x54,0xc2,0x1f,0x79,0x85,0xc2,0xad,0xf1,0x4b,0xc2,0xc2,0x1,0x26,0xc2,0xbc,0x3,0xbf,0xc1,0xd4,0x6a,0x1c,0xc0,0x4f,0xb2,0xb6,0x41,0xc8,0x4e,0x66,0xc1,0x91,0x23,0x83,0x41,0xed,0x94,0xe,0x42,0x27,0x55,0x1,0x42,0x91,0xf,0xc5,0xc2,0xf4,0x6,0xa0,0xc2,0x54,0x63,0xb7,0x40,0x2a,0xf4,0xdd,0x42,0xe1,0x6,0xff,0xc1,0x65,0x2a,0xa9,0xc2,0x96,0x15,0xbb,0x42,0x81,0xf9,0x5b,0xc1,0x6e,0x1a,0xa9,0xc0,0x40,0x81,0x10,0xc2,0x9f,0xf9,0x1b,0xc1,0x9f,0x6,0x6f,0x41,0x68,0x31,0x2a,0xc2,0x14,0xa4,0xea,0xc2,0xee,0x9,0x3,0x42,0xba,0xa,0xe8,0x41,0x88,0xf5,0x9b,0xc0,0xf8,0x9a,0x65,0xc0,0x96,0x5f,0xad,0xbf,0x81,0xf0,0x9a,0x41,0xf8,0x9c,0x2d,0xc2,0xc2,0xea,0x83,0x41,0x91,0x3d,0xd2,0x40,0x50,0xfd,0x29,0x42,0x23,0x1c,0xb6,0x42,0x52,0x95,0x2c,0xc1,0xd7,0x44,0xe7,0xc1,0x96,0x65,0xee,0x41,0x73,0x8,0x3b,0x41,0xd1,0xc1,0x9a,0x42,0xf1,0xa2,0xf5,0xc1,0x82,0x2a,0x80,0x42,0x1c,0xd1,0x27,0xc2,0xcd,0xc9,0x94,0xc1,0x44,0xce,0xaf,0xc1,0x53,0xd2,0x18,0xc1,0xe8,0xb3,0x1,0x42,0x82,0x27,0xc3,0x41,0x19,0x24,0x9d,0x42,0x2b,0x21,0xf9,0x3f,0xc2,0xeb,0x5,0x42,0x0,0x0,0xb8,0xc1,0xb9,0x66,0xb6,0xc2,0xab,0x34,0xb2,0x41,0x52,0x7a,0x46,0xc2,0xd0,0xbf,0xec,0x41,0x48,0x33,0x2c,0xc0,0x52,0xe0,0x82,0x42,0xdb,0x84,0x80,0x41,0x79,0xfe,0x97,0xc0,0x75,0xb4,0x86,0x40,0xd1,0x64,0x52,0x42,0x75,0x2e,0xf0,0x42,0x44,0x11,0x91,0x42,0xca,0xcc,0xc7,0xc1,0x35,0x50,0x5a,0x42,0x98,0xd0,0xf1,0xbf,0x2b,0x83,0x10,0x42,0xe5,0x3c,0x7f,0x41,0x4d,0x74,0x54,0x42,0x9e,0xaf,0x80,0x42,0x1d,0x8d,0xac,0xc2,0x35,0x8a,0xc6,0x42,0x1a,0x97,0x6,0xc2,0xd6,0x15,0xf9,0xc0,0xa,0x52,0xc8,0x41,0xc8,0x35,0xe4,0x42,0xd4,0xb3,0x4a,0xc2,0x6d,0xc9,0xe6,0x41,0xc4,0xd0,0x3f,0xc2,0xdb,0x66,0xc6,0xc1,0x7f,0x45,0x2b,0x42,0xd5,0x31,0xc2,0xc2,0xce,0xde,0xe7,0xc2,0x10,0x2f,0x3,0x42,0xc6,0xc5,0x87,0xc1,0x92,0xa8,0xa1,0x40,0x0,0x47,0x2b,0xc2,0x8c,0xe3,0xce,0xc1,0x34,0xd0,0x37,0xc2,0x6e,0xf6,0xac,0xc2,0x88,0x89,0xb4,0xc1,0x7,0xd,0xc6,0x41,0xe2,0x45,0x8c,0x41,0x21,0x88,0x63,0x3f,0x3,0x7e,0x70,0xc2,0x1e,0x43,0xde,0xc1,0x6f,0xb7,0xeb,0xc0,0xaa,0x6d,0x2,0x41,0x6d,0x75,0x11,0xc1,0x7c,0x93,0x47,0x41,0x5,0x28,0x6f,0xc2,0x86,0x62,0xac,0x41,0x69,0x80,0x8e,0xc0,0x12,0xf2,0x23,0xc2,0xc9,0xe1,0xa7,0x41,0x1e,0x51,0xa1,0x41,0xae,0x23,0x85,0xc2,0x42,0xaa,0x83,0xc2,0xd5,0xba,0xb8,0x41,0xcd,0xd1,0x8e,0x42,0x51,0x48,0x7a,0xc2,0xcc,0x17,0x1b,0x41,0x2c,0xaa,0x35,0xc2,0x72,0xbd,0xc,0xc2,0x4e,0x17,0xf9,0xc1,0xbb,0xd7,0xf4,0x41,0x87,0x0,0x1b,0xc2,0x49,0x46,0x8f,0xc1,0x17,0xa1,0x5f,0xc2,0x2b,0xa6,0x10,0xc2,0x5f,0x4e,0x15,0xc2,0xe3,0x7d,0x36,0xc1,0x27,0xf4,0xd6,0xc2,0x4c,0x9d,0x34,0x42,0x3b,0x53,0x10,0x42,0xd5,0xf8,0x2f,0xbf,0x94,0xe0,0xf8,0x41,0x16,0x1a,0x6d,0xc2,0xda,0x21,0x2b,0x41,0xc9,0x83,0xb9,0xc2,0xdc,0xe0,0x87,0xc2,0xe6,0xa,0xfe,0x40,0x3,0x78,0x7d,0xc1,0xe2,0xa8,0x80,0xc1,0x53,0x1b,0x1f,0xc2,0x64,0xf1,0x41,0x42,0x62,0xa9,0xb8,0x41,0xec,0x7,0x56,0x3f,0xbc,0x94,0xaa,0x41,0x7d,0x71,0x11,0x42,0xa8,0xee,0xa0,0xc1,0x40,0x6c,0x4a,0xc2,0x46,0x23,0xd5,0x41,0x49,0x99,0x8f,0x42,0x7d,0x1,0x1f,0x41,0xf8,0x36,0x4e,0x42,0xbe,0x27,0x20,0xc1,0xea,0x3f,0xaa,0xc0,0x60,0x44,0x14,0x41,0x5e,0x28,0x22,0xc2,0x1a,0x29,0x1,0x41,0x84,0xd5,0x15,0x42,0x68,0xdc,0xc3,0xc1,0x72,0x69,0xc,0x42,0x41,0xc8,0x7f,0xc2,0x80,0x56,0xb1,0x3f,0x1,0x51,0x54,0x42,0x58,0xcd,0x42,0x41,0x37,0x24,0x5c,0xc1,0x8e,0x50,0x8f,0xc1,0x67,0x97,0x9d,0xc0,0x20,0xca,0x27,0xc2,0x70,0xa8,0x21,0x41,0x8,0x98,0x81,0xc1,0xd9,0xea,0x9c,0x42,0x12,0x5c,0xe5,0xc1,0x92,0xb5,0x7f,0x40,0x73,0x75,0x9b,0xc0,0x14,0xf3,0x99,0xc0,0xc0,0x74,0x53,0xc2,0x76,0x35,0x6c,0xc1,0x4f,0x28,0xf7,0x40,0x7c,0x53,0xbb,0xc1,0x53,0xc,0xa9,0x41,0x2a,0x21,0xa8,0x3f,0xc4,0xf7,0xdf,0xc0,0x9e,0xf4,0x49,0xc1,0x9a,0x92,0x93,0xc0,0x14,0xa,0x9f,0xc1,0x77,0xb6,0xd7,0x40,0x1b,0xf7,0x9f,0xc1,0xed,0xad,0x25,0x42,0x98,0x6a,0xbb,0xc1,0x8c,0x7f,0x58,0x40,0x32,0x26,0x43,0x42,0x3f,0x7a,0x37,0xc2,0xda,0x4e,0x14,0x42,0x56,0x1b,0xc3,0x41,0x91,0x74,0xa2,0xc0,0x98,0x73,0x4a,0xc2,0xb6,0x29,0xe9,0xc1,0xe,0x5f,0x9a,0xc0,0x48,0x64,0xf4,0x41,0x48,0x8,0x16,0xc1,0xdd,0xe8,0x10,0xc2,0x2d,0x8f,0x8c,0x42,0xa8,0x8c,0xb4,0xc1,0x46,0xf7,0xe8,0xc1,0x53,0xa3,0x82,0x3f,0x50,0xb2,0x1,0x41,0xef,0x67,0x96,0xc1,0x4d,0xdc,0x11,0x41,0x36,0x5e,0x9,0xc1,0x26,0xe0,0x4d,0xc2,0xb,0xd5,0xbb,0x41,0x73,0x13,0x29,0x42,0x40,0x10,0x1c,0xbf,0xfc,0xca,0xad,0xc1,0x42,0x4,0x15,0xc1,0x2,0x24,0x48,0x41,0x88,0x36,0xb9,0x3f,0xa8,0x5d,0xc3,0x41,0x1a,0xb0,0xa1,0x42,0x82,0x15,0x5,0x41,0x8d,0xf8,0x99,0x42,0x1a,0xde,0x9f,0xc1,0xe4,0x8,0xf8,0xc0,0x52,0xb4,0x97,0x41,0xec,0xcf,0x84,0xc1,0x8c,0x3,0x94,0x41,0x98,0xee,0x80,0xc1,0xc5,0x81,0xbb,0xc0,0xec,0x95,0x9d,0x40,0xae,0xfb,0xb1,0x41,0xe3,0x96,0x40,0x42,0x18,0x3e,0xed,0x40,0x7,0x63,0xa9,0xc1,0x4a,0x75,0x39,0xc2,0xba,0x26,0xc9,0xc0,0x2f,0xf,0xa1,0xc1,0x24,0x63,0xec,0x41,0x20,0xd,0xa7,0x3e,0x10,0xd6,0xbc,0x40,0x86,0xb6,0xcb,0xc0,0x7c,0x3a,0x8d,0x3f,0xea,0xc3,0x7e,0x41,0xf,0xfe,0x87,0xc0,0xde,0xb2,0xd2,0x41,0x6d,0xe,0x8,0x41,0x4f,0xf3,0xd6,0x41,0xfb,0x4c,0x1c,0x41,0xde,0x7d,0x8,0x42,0x45,0xb8,0x8f,0xc1,0x20,0x75,0xdd,0x41,0xa6,0x77,0xe,0xc1,0xd5,0x1a,0xbf,0x41,0x18,0x59,0x67,0x41,0xc5,0x7e,0x13,0xc2,0xf8,0x1d,0xc9,0x3f,0x81,0xd8,0x1f,0xc2,0xd8,0x8f,0x3f,0xc0,0xef,0x39,0x80,0xc2,0xf2,0xc,0x2,0x42,0xba,0xb7,0xc8,0x3f,0xc7,0x7a,0x1,0xc1,0x0,0xcc,0x8c,0x41,0x94,0x36,0x8b,0xc1,0x4a,0x7f,0x2a,0xc2,0x96,0x73,0x2a,0xc1,0x90,0x42,0xa7,0xc1,0x98,0x9e,0x11,0xc2,0x23,0x9e,0xae,0x3f,0x9c,0x17,0xfe,0x40,0x41,0x99,0xdf,0x41,0xb0,0x15,0x60,0x41,0x2,0xce,0x59,0xc1,0x99,0x74,0x8a,0xc1,0x2,0xd8,0x32,0x41,0x33,0xab,0xb4,0xc1,0x5f,0x7b,0x87,0xc1,0xea,0x31,0x15,0x42,0xa4,0xcc,0x6d,0xc1,0xa6,0x64,0x94,0xc0,0x84,0xe7,0xb5,0x40,0x12,0x84,0x18,0xc0,0x8a,0xaf,0x81,0xc0,0xdb,0x13,0xcb,0x41,0x3,0xc,0xb5,0xc1,0xfa,0x34,0xac,0x41,0x4a,0xd4,0x1e,0x42,0xa8,0x25,0x33,0xc1,0xb5,0xa4,0x7a,0x41,0xa2,0x6,0x90,0xc1,0x2d,0xf5,0x92,0x42,0xde,0xb8,0xc8,0xc1,0x4,0xa8,0x4e,0xc0,0x8d,0x78,0x6c,0xc1,0xdb,0x10,0x83,0xc1,0xd6,0x0,0x30,0x42,0x5,0x11,0x3d,0xc1,0x40,0x95,0x14,0xc2,0xb4,0x4b,0x19,0x42,0x73,0xea,0x47,0xc1,0xd5,0xc,0xbc,0xc0,0xf5,0xc8,0x3c,0xc0,0xd0,0x80,0xe5,0xbf,0x5a,0x66,0xc6,0x41,0x70,0xdf,0x83,0xc2,0x48,0xc8,0xc8,0x41,0x63,0xff,0x12,0x42,0xb0,0xb7,0x24,0xc1,0x57,0xf0,0x3e,0xc1,0x58,0x4f,0x82,0xc2,0xe0,0xc5,0x20,0xc2,0x98,0xab,0x5f,0xc2,0x74,0x3,0x76,0x40,0x8d,0x6d,0xd6,0x41,0xca,0x77,0xf9,0xc0,0x27,0x96,0xa8,0x41,0x8e,0x5f,0x43,0x42,0x4c,0x50,0xeb,0x3e,0x6e,0x85,0xbc,0x41,0x5b,0x7f,0xf4,0xc0,0xe3,0x18,0x8a,0x40,0xde,0x1f,0xd6,0xc1,0x35,0x4a,0xa5,0xc0,0x22,0xfb,0x77,0x42,0x6f,0x8c,0xa2,0xc2,0x74,0xb4,0x22,0xc2,0x8c,0xf3,0xd2,0xc1,0x6e,0xdf,0x9d,0xc2,0x81,0x64,0x67,0x42,0x9f,0x67,0x4b,0xc2,0xdf,0x14,0xa8,0xc2,0x91,0xf,0x1,0xc1,0x8c,0x5f,0x13,0xc1,0x23,0x1a,0xe7,0x40,0xe6,0x54,0x34,0x41,0xdd,0xa6,0xd3,0xbf,0x3e,0xb5,0x59,0xc0,0x81,0x4b,0x7d,0x42,0x27,0xdb,0x20,0xc2,0x85,0x95,0x74,0xc1,0x59,0x94,0x4b,0xc1,0x36,0x5a,0x99,0x41,0x96,0x20,0x8e,0xc1,0xef,0x75,0xa6,0x41,0xf7,0xcf,0x66,0x41,0x12,0xf7,0x68,0x41,0x50,0x42,0xb5,0x3f,0x82,0xe8,0x24,0x42,0xdb,0xf5,0x95,0xc1,0x19,0x34,0xfd,0xc1,0x80,0xcb,0x15,0xc2,0x54,0x2b,0xaa,0xc1,0x46,0x85,0x3d,0x41,0x7a,0x5a,0x35,0x42,0xda,0x6d,0x19,0xc1,0x2e,0x3a,0x84,0xc2,0xfe,0xe9,0xc4,0x40,0xd4,0xd0,0xb4,0x41,0xc,0xf3,0x8e,0xc1,0xa0,0x96,0x4c,0xbf,0xd2,0x6b,0x90,0xc1,0x95,0x1c,0x31,0x42,0xfd,0xbd,0x2f,0xc2,0x1e,0xdd,0xc6,0xc1,0x5c,0xe0,0xa3,0x41,0x19,0xa1,0x9a,0xc1,0xb1,0x78,0xd6,0xc0,0x25,0x2d,0x8b,0x41,0x1,0xc5,0x85,0xc1,0x75,0xa,0xe1,0x41,0x58,0xda,0xe8,0xc1,0xd3,0x8a,0xf5,0xc1,0x94,0xf0,0xe9,0x41,0xc1,0x8b,0xd1,0xc1,0xc9,0x4b,0xa8,0x42,0xa,0x4f,0x42,0xc2,0x23,0x88,0x48,0x42,0x51,0xcf,0xac,0x41,0xa8,0xf0,0x20,0x41,0xef,0xc8,0x3a,0xc1,0x31,0x13,0xa5,0x41,0xd8,0xff,0x14,0x42,0x57,0xa1,0x34,0x41,0xc,0xd9,0xd5,0xc1,0x78,0xe7,0xb1,0xc1,0xb3,0xcd,0x9f,0xc1,0x14,0xcc,0xf3,0xc0,0xb1,0x42,0x6,0xc2,0x7d,0x10,0x80,0xc0,0x84,0x8b,0xd,0x41,0x19,0xd5,0x67,0xc1,0x1e,0xe1,0x94,0xc1,0x5b,0x52,0x1d,0x42,0xd8,0x44,0x3a,0xbf,0x60,0x52,0xc2,0x41,0x34,0x37,0xb,0xc1,0x37,0xb6,0x88,0x41,0x7d,0x26,0x1b,0x42,0xd8,0xbb,0x99,0x41,0x63,0xa3,0x83,0xbf,0x91,0xe3,0x4a,0x42,0x30,0x37,0x17,0xc2,0xd3,0x68,0x97,0x41,0x8,0xd5,0x3,0x3f,0x74,0xc3,0xbf,0xc1,0x6,0x76,0xf9,0x41,0xc7,0x9f,0x75,0x41,0x17,0x57,0xbc,0xc1,0xf6,0x98,0xfe,0xc0,0x7b,0xb0,0x78,0x41,0x44,0x31,0x53,0xc2,0x4a,0xe7,0xdb,0xc0,0x70,0x77,0x4d,0xc1,0x27,0x64,0x11,0x41,0x7e,0x5b,0x1b,0x42,0xaa,0x58,0x6e,0x42,0x92,0xd0,0x27,0xc0,0x0,0x9a,0xac,0xc1,0xd4,0x4,0x44,0x42,0xe6,0x52,0x72,0xc1,0x98,0x1e,0xbd,0x41,0xae,0xcd,0x16,0x42,0x87,0x52,0x13,0xc2,0x81,0xc7,0x81,0xc0,0x3d,0xc0,0x96,0x41,0xf,0xb5,0x13,0xc2,0x95,0x5d,0x1e,0xc2,0x24,0x45,0x5d,0xc2,0x50,0xb1,0x31,0x41,0x5f,0x84,0xd4,0x40,0x1b,0x7d,0x75,0xc1,0x6d,0xec,0xdd,0x40,0x6d,0x3d,0x6b,0xc2,0xc7,0x40,0x8f,0xc1,0x62,0x7d,0x3f,0xc2,0x7f,0x57,0x6e,0xc2,0x60,0xe4,0x5d,0x41,0xc2,0xa9,0x62,0xc2,0x7,0xde,0x6,0x41,0x2a,0x95,0x77,0xbf,0xed,0xfb,0xd6,0x40,0x1f,0x7,0x58,0x42,0x18,0x3c,0x52,0x41,0xae,0xef,0xfc,0x41,0x4,0x13,0xb,0xc1,0x8e,0x21,0x84,0xc2,0x13,0x1e,0xcf,0xc0,0x56,0xc0,0x4b,0x42,0x3c,0x57,0xe5,0x3f,0xef,0x4e,0x90,0x42,0x52,0x18,0x1,0xc1,0xa7,0xd4,0x70,0x42,0x73,0x8f,0x35,0x41,0xf7,0x2a,0xb4,0xc1,0x24,0xe,0x9b,0x42,0xc7,0x36,0xec,0xc0,0xd2,0xa0,0x64,0x41,0xa0,0x6c,0xdc,0xc1,0xef,0x73,0x3f,0x42,0xad,0xbc,0xbf,0x40,0xbf,0x66,0x2b,0x42,0xea,0x2a,0xd8,0xc1,0xe6,0x49,0x80,0xc0,0x9a,0xa9,0x90,0xc0,0xd,0x87,0x96,0x42,0xea,0xc1,0x1a,0xc2,0x9d,0x1,0x10,0xc2,0xd8,0xc5,0x98,0xc1,0xc4,0xd9,0x0,0xc2,0xca,0xc4,0x4a,0x41,0x7e,0x31,0xf1,0x41,0xd2,0xef,0x6,0xc1,0x2a,0x6e,0xf5,0xc1,0x82,0x7e,0xd4,0x41,0xdc,0xea,0x49,0x40,0xa2,0x67,0x90,0xc1,0x87,0xb5,0x17,0x42,0xb,0x7,0xba,0x41,0x7e,0x26,0x4,0xc2,0x56,0x84,0xac,0x41,0x49,0xdf,0x5e,0x40,0xc0,0xd4,0x22,0x42,0xea,0x73,0xfe,0xc1,0xef,0xa5,0x80,0xc2,0x5a,0x2a,0x62,0x42,0x5,0x95,0xb8,0xc1,0x5b,0x8d,0x62,0x42,0xcb,0x27,0x39,0xc1,0x25,0x94,0x4d,0x42,0x96,0xc1,0xe5,0x41,0xa1,0x98,0xee,0xc1,0xa0,0x0,0xcd,0x3f,0xef,0xda,0x72,0xc2,0xb6,0xc,0xea,0xbf,0x24,0x88,0x58,0x3f,0x90,0x17,0x6e,0xc2,0x28,0x2d,0xd1,0xc1,0xd7,0x42,0x35,0x42,0xd5,0x5a,0x1e,0x42,0x26,0x70,0xcb,0xc0,0xdb,0x97,0x9e,0xc1,0x62,0x2e,0xab,0x41,0xf2,0x4a,0xde,0x41,0x4f,0x2d,0x30,0xc1,0xb5,0x10,0xe5,0x41,0x15,0x4d,0x89,0x41,0x83,0xbc,0xac,0x41,0x5d,0x92,0x94,0xc2,0x6e,0x50,0x5b,0xc2,0xd8,0x73,0xf8,0x40,0xa1,0x23,0xbe,0x41,0x8,0x2c,0x7c,0x42,0x87,0xd3,0x1e,0x42,0x8b,0x2f,0x2d,0xc2,0x4d,0xe9,0x16,0xc1,0xa3,0x27,0x7d,0x41,0x89,0xf3,0x4e,0xc2,0xab,0x7a,0x4,0x43,0x4f,0x48,0x9d,0xbf,0x28,0x15,0x88,0xc1,0xca,0xbf,0xfe,0xc1,0x84,0x22,0x23,0x42,0xb8,0x88,0xeb,0x42,0xb7,0xef,0x4a,0xc1,0x46,0x8f,0x86,0xc1,0xa5,0x59,0x92,0x42,0x42,0x62,0x29,0x42,0x3b,0x54,0xed,0xc1,0xcb,0xec,0x88,0xc0,0x3,0xfd,0x5a,0xc2,0x51,0xd3,0x8c,0xc1,0x2d,0xda,0x65,0xc1,0xd0,0x68,0x3d,0x42,0xf0,0x6a,0x99,0xc1,0x74,0x35,0xcf,0xc1,0x38,0x0,0x4c,0xc1,0xc4,0x67,0x6,0xc1,0xff,0x44,0xac,0xc1,0xfc,0x48,0x8f,0x42,0x57,0x19,0xcc,0x40,0x96,0x90,0x90,0x42,0x6,0x71,0xcb,0xc2,0x4f,0xbf,0x35,0xc2,0x4e,0xbc,0x2a,0x42,0x7a,0xda,0xc4,0x41,0x9d,0xd9,0x85,0xc0,0x8f,0x64,0xaa,0xc1,0xe5,0xfb,0x74,0x42,0x4d,0xd4,0x36,0xc2,0x38,0x43,0x5c,0x42,0xc0,0x20,0x16,0xbd,0x80,0x7b,0xde,0xbc,0x2a,0xd0,0x72,0x42,0x65,0xd5,0x8f,0x42,0x80,0x64,0x2f,0xc1,0xab,0x85,0x6f,0x42,0x47,0xa8,0xb1,0x41,0x75,0x16,0x69,0xc2,0xf3,0x61,0xf1,0x41,0xac,0xde,0xa5,0xc1,0x94,0xee,0xc9,0xc0,0xb9,0x3a,0x86,0xc1,0xc7,0xc3,0x5b,0x42,0xa9,0x6a,0xa2,0x42,0x95,0xac,0xaa,0xc2,0xd1,0x4a,0xcd,0x41,0xaa,0xb5,0x3c,0x41,0x6e,0xa0,0xc1,0x42,0xab,0xa4,0x67,0x42,0xe,0xee,0xbd,0x41,0xee,0x87,0x67,0xc1,0xae,0xec,0x50,0xc2,0x97,0xae,0x5a,0xc1,0x71,0xcb,0x1c,0xc2,0xf6,0xe1,0xe,0x41,0x66,0xbe,0x86,0xc2,0x6f,0x1,0xde,0x41,0x4c,0xfc,0x18,0xc2,0xb2,0xf,0x89,0xc2,0x70,0x4c,0x85,0x41,0x6e,0x43,0x5b,0xc1,0xe0,0x8,0x9d,0x41,0x8a,0x3b,0x2d,0x42,0xc5,0x2a,0xb,0xc1,0xb3,0x6c,0x72,0xc2,0x78,0x7b,0x1d,0x40,0xe1,0x2,0x58,0xc2,0x35,0x1c,0xc8,0x41,0xf9,0xb0,0x36,0x42,0xe1,0xeb,0x40,0xc2,0x40,0x3a,0x61,0xc1,0x33,0x43,0x54,0xc1,0x68,0x39,0xe7,0x41,0xa4,0x49,0x3e,0x41,0xcb,0x77,0x15,0x40,0x48,0x16,0x82,0x42,0x17,0x36,0x16,0x42,0xaa,0x72,0x8d,0xc2,0x66,0x4a,0x99,0x40,0x52,0xa2,0x28,0x41,0x3e,0x38,0x4,0xc1,0x85,0xe5,0xbe,0x40,0x40,0xa4,0x81,0xc1,0xf9,0x3e,0x8c,0x41,0x0,0x47,0xba,0xbf,0xe1,0x4b,0x2c,0x42,0x4b,0x2b,0x6f,0xc2,0x0,0x89,0x8e,0x41,0x5d,0x8d,0xfd,0x42,0x36,0xff,0x39,0x41,0x21,0xa8,0xf3,0x40,0x53,0x4f,0x33,0xc0,0xae,0x1e,0xe8,0x3f,0x13,0x44,0x9a,0x41,0x88,0x49,0x52,0x42,0x1,0x3a,0xb4,0x41,0xf1,0xe9,0xdf,0xc1,0xb6,0x68,0x1e,0xc2,0x4d,0x66,0xfb,0x40,0x83,0x52,0xcb,0xc2,0x43,0x3c,0x2c,0xc2,0x35,0x37,0x80,0x41,0x18,0x50,0x5f,0xc1,0x9f,0xaf,0x3c,0x42,0xff,0x43,0x5f,0x42,0x94,0x9b,0x3e,0x42,0xce,0xdf,0xe9,0xc1,0x89,0x2f,0xdc,0xc1,0x10,0xbf,0xbf,0xc2,0xae,0x52,0x82,0x42,0xbf,0x8a,0xba,0xc2,0x8,0x31,0x4a,0x41,0x6,0x72,0x99,0xc1,0xc9,0x7,0x86,0xc2,0xf2,0xbb,0xaf,0x42,0x9e,0xbf,0xf7,0xc0,0x1,0x53,0xca,0x42,0x5,0xaf,0x81,0x41,0x60,0xf4,0xe4,0x41,0x9e,0x1,0x92,0x42,0x29,0xe5,0x26,0x42,0x74,0xc5,0xa,0xc2,0xfa,0x17,0x94,0xc2,0xb8,0x89,0x52,0x41,0x9b,0xb5,0xf1,0xc1,0x8f,0x73,0x1f,0xc2,0x64,0x5,0x12,0xc2,0x34,0x82,0x21,0x42,0xfe,0x63,0xb8,0xc1,0x91,0xca,0x1d,0xc1,0x8a,0x64,0x7a,0x42,0xa7,0x2b,0x4d,0xc2,0xd1,0xf2,0xee,0xc1,0x9e,0x98,0x35,0x42,0xb6,0x1e,0xf6,0xc0,0xf2,0x86,0x7e,0x41,0xb5,0xf3,0x4,0xc2,0x55,0x3d,0x19,0xc2,0xee,0xfc,0x70,0x41,0xb,0xeb,0xa3,0xc2,0x47,0x7e,0x4c,0xc1,0x9e,0x4e,0x22,0x42,0xe2,0x1a,0xeb,0xc1,0x40,0x2a,0x30,0xc2,0x27,0x31,0xd6,0xc2,0x95,0xd3,0xa7,0x41,0xe6,0xc,0xa0,0x41,0x8a,0x6e,0x56,0xc2,0xfb,0xc1,0xf5,0xc1,0x32,0x8d,0x35,0x42,0x84,0x57,0xd7,0xc0,0x81,0xc2,0x16,0x42,0xd,0xa4,0xd2,0x41,0x52,0x9f,0x55,0xc2,0xa2,0x62,0xc3,0x41,0xac,0xa1,0x1c,0xc1,0xb8,0x66,0xb3,0x3f,0x38,0x1b,0xa6,0x40,0xce,0xdc,0x88,0x3f,0xe3,0xaf,0x36,0x42,0x9d,0xcb,0x4c,0xc1,0x74,0xd0,0x46,0xbf,0x6d,0x2d,0x1e,0xc2,0x15,0x6b,0x9e,0x42,0xa7,0x82,0x3d,0x41,0x7d,0x49,0x97,0xc1,0x6,0xc4,0xc4,0xc1,0x56,0xad,0x60,0xc2,0xda,0x86,0xf,0x42,0x1,0x18,0x5d,0xc1,0xd4,0x65,0x59,0xc2,0xa,0xdf,0xcb,0xc1,0xa0,0x27,0x8f,0xc1,0xa,0x6e,0xe0,0xc0,0xf8,0x99,0xc3,0xc0,0x11,0x4f,0x28,0x41,0x3d,0x93,0xc6,0x41,0x3c,0x70,0xf,0xc2,0xa5,0xd5,0x59,0xc1,0xa9,0xdd,0xd2,0x40,0x87,0x14,0xbf,0xc1,0x75,0xb7,0x21,0xc2,0xc4,0xb6,0x69,0x41,0x20,0xf4,0xe3,0xbe,0x3e,0x3f,0xf,0xc2,0x7b,0xa7,0x92,0xc2,0xca,0x27,0xd2,0x42,0x66,0x4a,0xa4,0x42,0x49,0x65,0x18,0x42,0xcc,0x4e,0x29,0x41,0x4a,0xc9,0x86,0x42,0x42,0x53,0x4,0x42,0xd1,0xf0,0x8d,0xc2,0xb2,0x2d,0xaa,0x41,0x48,0xe7,0xf2,0xbf,0x14,0xe6,0x4b,0xc2,0x1e,0x18,0xa5,0xc1,0xcc,0xd9,0x83,0x41,0xf5,0xec,0x38,0xc2,0x53,0xaf,0x5d,0x42,0x72,0x89,0x95,0xc0,0x40,0x2c,0x8a,0xbd,0xbf,0x6e,0xa4,0x41,0x24,0xc7,0xa1,0xc2,0x6e,0xa7,0x55,0x42,0x51,0x77,0xd1,0xc1,0x2a,0xf8,0xa5,0x41,0x7e,0x88,0x4d,0xc2,0xeb,0x8e,0x39,0xc2,0xe8,0xb3,0x6e,0xc1,0xe6,0x30,0x49,0xc2,0x64,0x10,0x74,0x42,0x5e,0x62,0xea,0x40,0x99,0xd5,0x3e,0x41,0xef,0x57,0xc7,0xc2,0xa3,0xeb,0xaf,0xc2,0xb4,0xf9,0xa7,0xc2,0xa2,0xb6,0xd9,0xc1,0x3f,0x2e,0x14,0x41,0xbc,0xbb,0x95,0x42,0x9b,0xa7,0x31,0x42,0x12,0x8e,0x38,0xc2,0xed,0xed,0xaf,0x42,0xc0,0x5b,0x1d,0xc1,0xdb,0xa0,0x9c,0xc1,0x48,0x62,0x25,0x42,0xa4,0xe1,0x43,0x41,0x13,0x67,0xa0,0xc2,0xde,0xb8,0xd3,0x41,0x4a,0xfe,0xe5,0xc1,0x79,0x72,0x7f,0xc2,0xe2,0x69,0x17,0x42,0x10,0x48,0xe3,0xc1,0x5a,0x5b,0x0,0xc2,0x73,0xc1,0x1f,0x42,0xc7,0xaa,0x8e,0xc1,0x45,0x79,0xc4,0xc1,0xf3,0x7c,0x2b,0xc2,0xe6,0xc5,0x53,0xc2,0xdc,0xd6,0xa0,0xc1,0x74,0x28,0x83,0x42,0x33,0x41,0x4e,0x41,0xa6,0xe9,0x23,0xc1,0x8e,0x2d,0xad,0x41,0x77,0x95,0xe1,0xc1,0x93,0x29,0x8a,0xc1,0xf4,0x1f,0xe2,0xc1,0x34,0x9a,0x1b,0x42,0x82,0x8d,0xc,0xc2,0xb1,0xd4,0xce,0x40,0xb7,0x9b,0xfa,0x41,0x16,0x14,0x82,0xbf,0x22,0x11,0x9b,0x41,0x40,0x73,0x8f,0xc1,0xe1,0xd6,0x28,0xc2,0xfc,0xfa,0x28,0x42,0x8,0xf2,0xd4,0xc0,0xe,0x4e,0x32,0x42,0xf,0xb8,0xb4,0xc1,0xf0,0xbf,0x7b,0x42,0xe2,0xde,0x35,0xc2,0xc2,0x22,0x23,0xc2,0x8a,0xf2,0x16,0x42,0xb3,0xfd,0x19,0x42,0x82,0xa2,0xa4,0xc0,0xed,0x68,0x24,0x42,0x70,0x97,0x33,0x3f,0x66,0x61,0xba,0xc1,0x2a,0x27,0xa6,0xc1,0x8,0xbb,0x6a,0xc0,0xe1,0x65,0x4f,0x42,0x27,0xa,0xeb,0x41,0x5,0x45,0x8d,0xc0,0xe3,0x1a,0x5d,0x42,0xac,0x2a,0xbe,0x41,0x8,0xd1,0x4,0x42,0xbc,0x6a,0xa,0xbf,0x48,0xda,0xcd,0x40,0xe6,0x3e,0x69,0x40,0x90,0x8d,0xcd,0xc1,0xcb,0xd,0x10,0x42,0x82,0x0,0x72,0x42,0x14,0x29,0xdd,0xc0,0xcd,0x8,0x39,0x42,0x51,0xbc,0x9a,0xc2,0xa9,0xc,0x62,0x41,0x86,0xd1,0x8c,0x41,0x94,0xe2,0x6,0xc2,0x88,0x2d,0x9b,0xc0,0x5a,0x13,0x1d,0x42,0x20,0xc1,0xb8,0xc1,0x9a,0x41,0xa8,0x41,0xdf,0x42,0xa3,0x40,0xf,0x89,0x14,0xc2,0x77,0x1c,0xcc,0x41,0x98,0x76,0x20,0xc1,0x7c,0x4a,0x88,0xc1,0xae,0x13,0xe6,0xc0,0x53,0xc7,0x3,0x42,0x95,0x7d,0xa3,0xc1,0xa0,0xa2,0xa7,0x41,0xf0,0xb6,0x85,0xc0,0x12,0x9,0xf8,0xc1,0x50,0x27,0x1c,0xc2,0x72,0xbd,0xc8,0x42,0x44,0x32,0x25,0xc2,0xe1,0x63,0x12,0x42,0x7a,0xca,0xce,0x41,0x51,0x8a,0x71,0x40,0xe4,0xa,0x5e,0x42,0x9b,0x53,0x57,0x42,0xc7,0x2d,0x49,0x41,0x9d,0x75,0xae,0xc1,0xb0,0xa2,0x64,0x42,0x97,0x18,0x6e,0x40,0xb0,0xac,0x82,0xc1,0x27,0x93,0x5,0xc0,0x20,0xd7,0x79,0x3e,0x82,0xa1,0x7,0xc1,0xd4,0x22,0x99,0x41,0x62,0xc,0x6a,0x41,0x88,0xd5,0x41,0xc2,0x0,0x69,0x9,0xc2,0x10,0xec,0xb0,0x3e,0xc6,0x72,0x2f,0x3f,0x8a,0xd2,0x29,0xc1,0xc7,0x3,0x51,0x42,0xe1,0x5b,0x9f,0x42,0x5,0x1e,0x57,0x41,0x51,0x0,0x54,0x42,0x7,0x19,0x28,0xc2,0xbd,0xd8,0xc,0x41,0xcb,0x22,0x8f,0x41,0x9f,0x6a,0x15,0xc2,0xc1,0xed,0xe9,0x3f,0xe4,0x5,0x32,0x42,0x84,0x4,0x6c,0x42,0x9,0x63,0x6d,0x41,0x77,0x18,0x15,0xc0,0x14,0xf3,0x64,0x42,0xad,0xd,0x8d,0x42,0x20,0x62,0x81,0xc2,0x2f,0xb,0x6e,0x41,0x70,0x9b,0x57,0xc2,0xf,0xaf,0x52,0x40,0xef,0x7,0x93,0x42,0xdc,0x4c,0x3c,0xc1,0x5f,0x9,0x79,0x42,0x26,0x9,0x1a,0xc2,0x64,0x99,0xdc,0x41,0x4b,0x7b,0x7f,0x42,0xb4,0x87,0xc9,0xbf,0x8e,0xe9,0x69,0xc0,0xa0,0x7a,0xa4,0xc0,0xdd,0xb8,0x86,0x40,0xff,0xc1,0xee,0x41,0x85,0x71,0x94,0x42,0x4d,0x6c,0x15,0x42,0x8a,0xcb,0x6b,0x41,0xf4,0x98,0x98,0x41,0xc,0xae,0xf8,0xc1,0x74,0xa8,0x5f,0x41,0xec,0x6c,0x80,0x41,0x34,0xe8,0x9,0xc2,0xe1,0x95,0x63,0x42,0xfa,0xe6,0x21,0xc1,0x7a,0x5b,0xdb,0x41,0x7e,0x68,0x6a,0x41,0xeb,0x5e,0x26,0xc0,0xdb,0x7f,0x10,0xc1,0xf6,0x2,0x44,0x41,0x57,0x4d,0x1d,0x42,0x6b,0xa1,0x6c,0x42,0x80,0x32,0x67,0xc0,0x87,0x74,0xf3,0xc0,0xc4,0xe9,0x37,0xc2,0x75,0x9e,0x4a,0xc1,0xa1,0x8b,0xaa,0xc2,0xf3,0x15,0xfe,0x41,0x0,0x5e,0x8d,0xc0,0x0,0x40,0x28,0xbe,0xd3,0xa2,0x7a,0xc2,0x1c,0xdc,0x99,0xc1,0x8c,0xbe,0x9b,0x41,0x11,0xfa,0x13,0x41,0xe0,0x46,0x94,0xc1,0x3e,0xb0,0xc8,0xc0,0x9a,0x1f,0x14,0x42,0x3b,0x95,0xb,0xc1,0x92,0x53,0x47,0x42,0x39,0xe,0xf,0x41,0x77,0xdd,0x44,0xc2,0xb6,0xf1,0xab,0x41,0x21,0xa5,0xba,0x41,0x71,0xfe,0x53,0xc2,0x8,0xf1,0x25,0xc1,0x37,0x99,0xd,0x42,0xb8,0x76,0x32,0xc2,0xe0,0x96,0x84,0x41,0xdb,0xa9,0x60,0xc2,0xa5,0x5b,0xce,0xc0,0x19,0x1b,0x7c,0x41,0xb,0xd9,0x27,0x41,0x93,0x87,0x6,0xc1,0xfb,0xb8,0x6,0x42,0x3c,0x1a,0x9e,0x42,0x7c,0x3,0xcc,0xc2,0x7a,0xa8,0xf2,0x41,0x91,0xc1,0x76,0x42,0xc9,0xa8,0x82,0x42,0x1e,0x48,0xee,0x41,0x5,0x74,0xec,0x40,0x1f,0x99,0x8f,0x40,0xa9,0x98,0x0,0xc1,0xf7,0x74,0xe0,0x41,0xb5,0x2c,0x87,0xc2,0x4c,0x5,0x4a,0x41,0x76,0xd4,0x7b,0x42,0x7b,0x1,0x26,0xc2,0xd7,0xaf,0x86,0x42,0x3c,0xfa,0x84,0x42,0xd6,0x83,0x76,0xc2,0xe3,0x74,0xb7,0x42,0x16,0x24,0x4f,0xc2,0x33,0x74,0x17,0x42,0x52,0x81,0xb7,0x40,0x3a,0xf,0xc3,0x41,0xfe,0x34,0x8b,0xc1,0x97,0xf9,0x90,0x41,0x30,0xe3,0x25,0x42,0x76,0x32,0x29,0xc2,0x87,0x26,0x48,0xc2,0x1c,0xc9,0x84,0xc1,0x2e,0x7f,0x16,0x42,0x70,0x82,0xe8,0xbe,0x47,0xbd,0xdd,0x41,0xf0,0xcd,0xce,0xc1,0xfd,0x34,0xc,0xc2,0x3c,0x9f,0xbf,0xc2,0xf8,0xa1,0x11,0x41,0x9e,0x1b,0xc5,0x41,0x16,0x31,0xf3,0xc1,0x8c,0xcd,0x64,0x42,0x7a,0x7f,0xbe,0xc1,0x1a,0x51,0x52,0x41,0x4b,0xb8,0x5c,0x42,0x12,0xad,0xc4,0xbf,0x21,0xc2,0x14,0x42,0xcd,0xd,0x33,0x42,0x84,0x56,0x90,0xc2,0x3,0x91,0x33,0xc2,0xd6,0xb8,0x12,0xc0,0x50,0xb7,0xa2,0x41,0xc6,0xac,0xc4,0x41,0x5b,0xf6,0x86,0xc1,0x3a,0x42,0x20,0x41,0xed,0xd9,0xda,0x41,0xb0,0xbe,0x3c,0xc1,0x10,0xc1,0x4b,0xc1,0x2c,0x7f,0xd1,0xbf,0x64,0x4d,0xf2,0x41,0xc6,0x5a,0xa4,0xc1,0x9c,0xc4,0x56,0x41,0xa3,0x60,0x17,0x42,0xbc,0x58,0x69,0xc2,0xf,0x79,0x94,0xc1,0xfe,0xde,0x16,0x42,0x6f,0xb8,0xcb,0xc1,0x26,0xfd,0x6b,0xc1,0xb6,0x5f,0x9a,0x40,0x13,0x6e,0x56,0xc2,0x24,0x4d,0x72,0xc2,0xb,0x30,0x6b,0x42,0xf6,0x4f,0x76,0xc1,0x3f,0x28,0x22,0xc2,0xa6,0xeb,0x6a,0xc2,0xb8,0x1,0x80,0xc1,0xe4,0x2d,0x6e,0xc0,0x35,0x5,0xc0,0xc2,0xe3,0x91,0xdc,0xc0,0x38,0x50,0xf4,0x40,0x7b,0x8a,0x94,0xc1,0x5a,0xa1,0xa0,0xc1,0x8e,0xdd,0xe2,0xc1,0x54,0x86,0x85,0x40,0x4,0x3a,0x25,0xc2,0xe5,0xeb,0x2,0x42,0x3b,0x6e,0x93,0x42,0x41,0x9,0xe,0x42,0x2e,0xc7,0x91,0x42,0x4b,0x4c,0x3f,0xc2,0xc,0x70,0x3a,0x42,0xe2,0x78,0xd,0x42,0x7f,0xe8,0xb1,0xc1,0xaa,0x52,0x76,0xc0,0xf4,0x49,0x1,0x42,0x4,0xc5,0x41,0x42,0x2e,0x9d,0x8f,0x41,0xde,0xdd,0xc7,0xc0,0x82,0xe2,0x83,0x42,0x4,0xa9,0xc9,0x42,0xa8,0x0,0x5b,0x41,0xbe,0x3b,0x4f,0x41,0x7e,0xe7,0x8d,0x40,0x6c,0x56,0x43,0x41,0x1d,0x49,0xc7,0xc1,0x49,0xed,0x3f,0x42,0xc9,0xc5,0x27,0xc1,0x7a,0x5a,0x5f,0x41,0x8,0x80,0x48,0x41,0x9,0x8a,0xf4,0x40,0x90,0xbd,0x9b,0xc1,0x58,0x50,0xb0,0x41,0xd8,0x9a,0xcc,0xc1,0xfd,0xe5,0xba,0x40,0x60,0x69,0xaf,0xc0,0x8f,0x9c,0xc8,0x41,0x9f,0x1f,0x19,0x42,0x67,0x28,0xaa,0x41,0x94,0x4e,0x3a,0x40,0x1f,0xaf,0xe3,0xc2,0xc0,0x1f,0xca,0x41,0xd,0xa0,0xea,0x40,0x1c,0x59,0x62,0x40,0x50,0x7a,0x16,0x41,0x8e,0x12,0xc6,0xc0,0x2e,0xce,0x39,0xc2,0x90,0x3a,0x3d,0xc2,0x3c,0xb,0x2e,0x42,0x69,0xab,0x24,0x42,0x56,0x21,0xb7,0xc1,0x58,0x7b,0x72,0xc2,0xb7,0x62,0x9a,0x42,0xa9,0xce,0x2a,0x41,0xcd,0xf8,0x8f,0x42,0x41,0x76,0x82,0xc2,0xc3,0xe5,0x2,0x42,0x2,0x51,0x3a,0x41,0xf0,0xef,0x10,0xc2,0xac,0x98,0x4d,0x42,0xbe,0x3a,0xb7,0xc2,0x46,0x30,0xe3,0xc0,0xb6,0xd7,0x3f,0x42,0x86,0xe8,0xc,0xc2,0xba,0x57,0x79,0xc1,0x34,0x75,0xd3,0xc0,0x5,0x37,0x5b,0x41,0x1f,0x5a,0xa3,0xc2,0x3e,0x11,0xb0,0xc2,0x1b,0x55,0x8b,0xc2,0xcd,0x59,0x1a,0xc2,0x81,0x0,0x95,0xc2,0xcd,0xb9,0x96,0x42,0x16,0xec,0x3e,0xc2,0xdf,0x1a,0x5,0x42,0x1e,0xc7,0x0,0xc2,0xf7,0x59,0xbb,0xc2,0x4c,0xa7,0x33,0x41,0x6e,0x91,0x20,0x42,0x65,0x10,0x1d,0xc1,0xea,0xa3,0x47,0x42,0x95,0x91,0x42,0xc2,0x34,0x38,0xa5,0xc1,0x1c,0x95,0x4f,0x42,0xde,0x94,0x11,0x41,0xef,0xf8,0xfd,0x41,0x99,0x78,0x32,0xc2,0x9a,0xba,0x32,0xc2,0x90,0xbd,0x91,0x42,0x4c,0xb5,0x87,0xc1,0x24,0x30,0xf5,0x42,0x16,0x9a,0xd,0x42,0x3f,0x55,0xe1,0x41,0x10,0x8e,0xb5,0x40,0xf8,0x22,0x73,0xc1,0x60,0xe3,0x25,0xc2,0x18,0xc6,0x3f,0x3f,0x59,0x3d,0xcc,0x41,0x5b,0x7c,0x4f,0xc2,0x3b,0x4e,0xae,0xc1,0x10,0xd7,0xc3,0xc0,0x5a,0x1b,0x8f,0xc1,0x7c,0x66,0x6e,0xc0,0x19,0xd7,0x10,0x42,0xbe,0x3,0xc0,0xc1,0x66,0xc2,0x42,0x42,0xfa,0xb,0x60,0x42,0xf,0x5f,0x79,0x42,0x40,0xbd,0x68,0x41,0x96,0xa9,0x20,0xc1,0xc5,0x47,0xf8,0xc0,0x56,0x2e,0x9e,0xc1,0x77,0xbe,0x7,0x42,0xa,0x1,0x29,0xc1,0xf9,0x5,0x4e,0xc2,0xa1,0xc1,0x15,0x42,0x76,0x39,0xce,0xc0,0xce,0xe5,0x80,0xbf,0x53,0xbf,0x77,0x41,0x5b,0x53,0x10,0x42,0xbd,0xea,0x10,0x41,0x26,0x89,0xcf,0xc0,0xcc,0xe4,0xa5,0x41,0x4,0x5c,0xfe,0x40,0xbd,0xd0,0x96,0x40,0xa3,0x48,0x85,0xc1,0xfd,0x1b,0xb2,0x41,0xf,0x18,0xf3,0xc0,0x46,0x9e,0x3c,0x41,0x6f,0xb1,0xc9,0x41,0x32,0xe1,0x4b,0x42,0x8a,0xef,0x66,0x42,0x9d,0x4f,0xcb,0xc2,0x81,0x3c,0x27,0xc2,0xe9,0x9f,0x3f,0x42,0xa4,0x36,0x6f,0x41,0x54,0x6d,0x7d,0xc1,0x6e,0x4a,0x2e,0x3f,0x42,0x3f,0xbb,0x41,0xa,0xdb,0xbb,0xc2,0x58,0x54,0x79,0x3f,0x4f,0x49,0x7b,0x42,0xa2,0x41,0x91,0x40,0x58,0xb4,0xb,0x41,0x94,0xd7,0x88,0xc2,0x45,0xe1,0xbd,0xc1,0x51,0x6d,0xd3,0xc1,0xde,0x99,0x13,0x40,0x23,0x80,0xda,0xc0,0x8,0x8d,0xaf,0x42,0x64,0xe9,0x3a,0xc2,0x91,0x1b,0xb3,0xbf,0x1c,0xd5,0x16,0x41,0xbf,0x54,0x2c,0xc1,0xf1,0xe9,0x65,0xc1,0x5c,0x69,0xa5,0x41,0x4b,0x53,0x22,0x42,0xe7,0x42,0x83,0xc2,0xf6,0x2d,0x25,0x42,0x81,0x35,0xbf,0xc1,0xb0,0x65,0x94,0xc1,0x93,0xd2,0x3f,0x42,0xaa,0x96,0x93,0xc0,0x74,0x85,0x3f,0x3f,0x68,0xa6,0xff,0xc0,0xee,0xe2,0xab,0xc2,0x73,0xba,0x4d,0xc2,0x44,0xb4,0xa6,0x42,0xf4,0x7b,0x81,0xc2,0xdd,0x20,0x75,0x42,0x22,0x5,0xb8,0x40,0xc0,0xcc,0x64,0xc2,0xce,0x7,0x6b,0xc1,0xd8,0x3e,0x8d,0x42,0xf0,0x82,0xa1,0x41,0xdd,0x8e,0xf0,0x41,0x96,0xdd,0xc,0x42,0x90,0x52,0x33,0xc1,0xf6,0x9,0x85,0xc2,0x67,0xd8,0x4a,0xc2,0xa4,0x97,0x2a,0x41,0x92,0xfc,0x7b,0x42,0x59,0xbf,0xb8,0xc1,0xfa,0xa4,0xfe,0x41,0xc5,0x6a,0x8e,0x42,0x8a,0x4d,0xa0,0x42,0xbf,0x3,0x59,0xc2,0x8c,0xda,0x43,0xc2,0xb3,0xce,0x68,0x42,0xe7,0x4c,0x1e,0x42,0x18,0x3a,0xc9,0x41,0x1c,0x51,0x3,0x41,0x65,0xd4,0x83,0xc1,0x6e,0x43,0x87,0xc2,0xf8,0x9a,0xb5,0xc1,0xb1,0x44,0xbb,0x41,0x1d,0x18,0x6f,0xc2,0x3d,0xa5,0xf0,0xbf,0xab,0x4d,0xb5,0x41,0x36,0x6,0x16,0x42,0x2c,0x5d,0x98,0x42,0x89,0x75,0x89,0xc1,0x90,0xde,0x5e,0x42,0xa0,0xed,0x30,0xc2,0x36,0x89,0xb8,0x41,0x17,0x9,0xb,0x40,0xf6,0xa0,0x3,0xc2,0x1e,0xaa,0x6e,0xc0,0x3d,0xe7,0x4b,0xc2,0xf1,0x9b,0x73,0xc2,0xab,0x91,0xa2,0x41,0x8a,0x6d,0xd5,0xc1,0x8a,0xca,0x2a,0x41,0xef,0xa9,0xdd,0x41,0xc8,0x4a,0x54,0x41,0x24,0x88,0xa,0xc2,0x65,0x40,0x59,0xc2,0xe2,0x48,0x1e,0xc1,0x95,0xd7,0xf5,0x41,0xcc,0xdf,0x39,0xc1,0xcd,0xed,0xdd,0xc0,0x92,0x78,0x2,0xc2,0xb6,0x4d,0xeb,0xc1,0x68,0x13,0xbe,0xc1,0x4,0x0,0xb6,0xc1,0x56,0xb6,0x13,0x42,0xc8,0x30,0x88,0xc2,0xcf,0x80,0x80,0xc0,0x38,0xb1,0xff,0xc1,0x82,0x9c,0xf,0x42,0xab,0xdc,0xd4,0xbf,0xb4,0xf6,0xc7,0x40,0x9d,0x0,0x2c,0xc2,0x10,0x4b,0x9e,0xc1,0x24,0x79,0x12,0x42,0xa0,0x64,0x65,0x41,0x99,0x1f,0x3f,0xc2,0xa7,0x97,0xa7,0xc2,0x55,0xbc,0x25,0x42,0x7a,0xaf,0x67,0xc2,0x88,0x36,0x3,0xc1,0x3f,0xf,0x55,0x42,0x76,0x4,0xd2,0x41,0xb0,0x9c,0xae,0xc1,0xb0,0x88,0xfe,0xbe,0x45,0xc2,0x95,0x41,0xd8,0xdf,0xd5,0xc0,0x22,0xa,0xda,0x40,0xc5,0x85,0x4e,0x41,0xde,0xdb,0xd7,0xc1,0x54,0x9c,0x98,0xc2,0xa,0xf,0x8f,0xc1,0xd8,0x7,0x0,0xc2,0xb2,0x36,0x71,0xc1,0xf2,0xa0,0x2e,0x42,0x6e,0xce,0xf4,0x41,0xc,0x3c,0xa,0x42,0xe2,0x22,0xa0,0xc1,0xf6,0x1d,0xa7,0xc0,0x3a,0xef,0xe1,0xc1,0x73,0x31,0xa1,0xc1,0xe6,0x40,0x91,0xbf,0x43,0x56,0x80,0x40,0xc8,0xb3,0xf5,0xc1,0x6b,0xfb,0x97,0xc2,0xbc,0x8c,0xbf,0x40,0xe9,0x65,0x28,0x41,0xa4,0xdc,0xcd,0xc1,0xd5,0x98,0x67,0x42,0x88,0x65,0x14,0x42,0xa,0xbd,0xa9,0xc1,0xad,0x51,0x3f,0x42,0xc1,0xcd,0xbf,0xc1,0x64,0x7e,0xb,0xc2,0x5c,0x49,0xc9,0x41,0x4,0x6c,0x9e,0x41,0xb7,0x15,0x8,0xc2,0x63,0x22,0x71,0xc1,0x7a,0x29,0x8f,0x41,0x4,0xd9,0xa9,0x41,0xe4,0xea,0x69,0xc1,0xf2,0xdb,0xf1,0x41,0xcd,0x3c,0x6b,0x42,0x28,0x7d,0x81,0xc2,0xa0,0x60,0xe,0xc2,0xa1,0xc6,0xb4,0xc1,0x60,0xdf,0x1,0x42,0x5f,0xc2,0x19,0xc0,0xd7,0x3e,0x24,0x42,0x88,0x43,0x41,0xc2,0xbe,0x5b,0x7c,0xc1,0xbc,0x46,0x75,0xc2,0x2e,0x60,0xb3,0xc0,0x55,0xa4,0xfc,0xc1,0x65,0x31,0xc1,0xc1,0xdf,0x9e,0x15,0xc0,0x8b,0xcc,0x27,0x42,0xa7,0xb0,0x3,0xc1,0x96,0x8b,0x2b,0x40,0xd1,0xae,0x84,0x41,0xa2,0x98,0x37,0xc1,0x26,0x95,0xf6,0xc1,0xbc,0xee,0xb1,0x41,0xe,0x24,0x25,0xc2,0x27,0xe2,0xe3,0xc1,0x9e,0xc2,0x8d,0x41,0x4b,0x10,0x34,0x42,0xff,0x4f,0x73,0x42,0x40,0xfc,0xb2,0xc1,0x58,0x91,0x32,0xbf,0xe,0x52,0x11,0xc2,0xcd,0x74,0x1,0xc2,0xb1,0x86,0x15,0xc2,0xef,0xcf,0x65,0xc0,0x9e,0x73,0x1a,0x41,0x1b,0x9d,0x9d,0x41,0xe6,0x44,0x4a,0x41,0x2f,0x7d,0xa2,0x40,0xe2,0x27,0x9b,0x3f,0x4c,0xd0,0x9d,0x3e,0xba,0x12,0x4b,0xc1,0xf2,0xa9,0x4b,0x41,0xdf,0x73,0xf5,0xc1,0x76,0x64,0x9,0x40,0xfd,0x16,0x40,0x42,0xa7,0x92,0x7e,0xc1,0x55,0xfc,0x97,0x40,0xa7,0x54,0x4b,0xc2,0xd7,0xa3,0x81,0x41,0x80,0x6,0xd4,0x41,0x3a,0x56,0x14,0xc1,0xbd,0x31,0x5e,0xc2,0xc9,0x8f,0xf0,0xc1,0xb4,0xfa,0x73,0xc1,0x5a,0xc2,0xb7,0x40,0xc5,0xc9,0xe0,0x41,0xea,0x6b,0x8b,0xc0,0xe9,0x7f,0x40,0xc2,0xb7,0x4d,0xee,0x41,0x83,0xf4,0x44,0x42,0xb0,0x84,0x10,0x40,0xa8,0x16,0xa3,0xc1,0xb0,0x17,0xc4,0xc1,0x96,0x8f,0x2a,0x42,0xa1,0xd5,0x18,0xc1,0x5a,0x8c,0xd4,0x40,0x64,0x29,0x92,0xc1,0x74,0x5,0x1d,0xc1,0x76,0x78,0x5e,0xc1,0xe2,0x26,0x1f,0xc2,0x8a,0x8e,0x39,0x42,0xa7,0xf3,0xf3,0x41,0x21,0x57,0x23,0x42,0x53,0x81,0x60,0x42,0xe9,0x43,0x1e,0x42,0x2a,0x7c,0xc3,0x3f,0x97,0x26,0x83,0x40,0x25,0x43,0xa0,0xc1,0x9a,0xf2,0x64,0x41,0x22,0xdb,0xd6,0xc0,0xb0,0xf6,0x3e,0xc2,0x90,0x73,0x68,0x41,0x1e,0x42,0x1f,0xc1,0x5a,0x70,0xf6,0xc0,0x7c,0xf6,0xf8,0xc0,0xa5,0xdf,0x87,0xc1,0xd2,0x27,0x9f,0x41,0xaf,0x89,0x2f,0x42,0xbd,0xf5,0x88,0x41,0xf0,0x87,0x53,0xc1,0xbc,0x94,0x4e,0x40,0xad,0x76,0x6e,0x41,0x7b,0x2b,0xc1,0xc1,0x2c,0x4b,0xd7,0xc1,0xfc,0x30,0x51,0x40,0xf2,0xdc,0x18,0x42,0x8c,0xe0,0x30,0x41,0xbc,0x81,0x48,0xc2,0xef,0xb,0x85,0xc1,0x92,0xf3,0x6,0xc1,0x68,0x53,0x29,0x41,0x48,0xdb,0x93,0xc1,0x38,0xdc,0x5e,0x40,0x6b,0x24,0xf4,0xc1,0x48,0x4,0x8a,0xc1,0xbc,0xba,0xd9,0x41,0xba,0xf9,0xcd,0x40,0xac,0x65,0x69,0x41,0xe0,0xb4,0x83,0x3f,0x6b,0xa9,0x2a,0xc0,0xba,0xd3,0xa2,0x41,0xb9,0x4,0x93,0x41,0x9b,0x20,0x54,0xc1,0xfd,0x92,0x19,0x41,0x9e,0x44,0x93,0x41,0x9,0x19,0x8e,0xc1,0x17,0x61,0x66,0x40,0x72,0x38,0x39,0x42,0xdc,0xbe,0xb7,0x41,0x93,0x86,0x3f,0xc1,0xca,0x75,0xf0,0x40,0xb6,0x49,0x5d,0x41,0xca,0xeb,0x26,0xc2,0xd8,0x1f,0x43,0x42,0x4f,0xfb,0x10,0xc2,0x56,0xe7,0xff,0xc1,0xee,0x6,0x66,0xc1,0x96,0xae,0xcc,0x41,0x3e,0x8,0x5c,0x41,0xb2,0x36,0xaf,0x41,0x9b,0x4a,0x52,0xc1,0x68,0xda,0xea,0x3f,0xea,0x4e,0x7c,0x41,0xa5,0x64,0x9e,0x41,0xf,0x4a,0x37,0x42,0x31,0xa6,0xa0,0x40,0xbe,0xf8,0xf7,0xc0,0x64,0xf1,0x62,0x41,0x91,0xf0,0x75,0x41,0xb2,0x58,0xd4,0xc1,0xa2,0x48,0x78,0xc2,0x96,0x59,0x3e,0xc1,0x28,0xfa,0x21,0xc2,0x6a,0xeb,0xd4,0x41,0x50,0x7d,0xfe,0xc1,0x46,0x77,0x1d,0x41,0x52,0xae,0x16,0x41,0x88,0x82,0xdc,0x41,0x1c,0xda,0xab,0xbf,0x8b,0xe6,0x6e,0x41,0x35,0x42,0xe3,0x41,0x6c,0x4a,0x6,0xc2,0x20,0xfe,0x8e,0x42,0xbf,0x90,0xb4,0x41,0xc2,0xda,0x5f,0xc1,0x9e,0xca,0xda,0xc1,0xfa,0xc7,0xd3,0xc1,0x72,0x8f,0x35,0x42,0x42,0xf7,0x4,0x42,0xdc,0x41,0xab,0x41,0x77,0xb4,0xb2,0x41,0xc3,0xfc,0x60,0xc2,0x4e,0x37,0xe9,0xc1,0x92,0x11,0x66,0xc1,0xe5,0x3d,0x7c,0x41,0x22,0xe5,0x14,0x42,0xfe,0xc0,0x93,0x42,0x12,0x44,0x4b,0x42,0x50,0x1b,0x3f,0x42,0xa7,0xf3,0xec,0xc1,0xd6,0xaa,0x36,0x41,0xd4,0xc1,0xcb,0xc0,0xeb,0x98,0x1e,0x42,0xa5,0x5,0x88,0xc1,0xd5,0xb8,0x79,0xc0,0xae,0xbe,0x91,0xc1,0xea,0x8,0x4f,0x42,0xf6,0xb7,0xef,0x41,0x24,0x35,0x2d,0xc1,0xd4,0xbb,0xc6,0xc0,0x4b,0x29,0x34,0x41,0xac,0x9a,0x79,0xc2,0xfd,0x48,0xd0,0x41,0xf9,0x1e,0x4b,0x42,0xb8,0x5d,0x22,0x42,0x83,0x9e,0x18,0x41,0x43,0x64,0x59,0x41,0x72,0x45,0x2,0x42,0xae,0x88,0x17,0x42,0xf8,0x46,0x46,0x40,0xdd,0x95,0x17,0xc1,0xa9,0xa,0xc9,0xc1,0x34,0x73,0x53,0xc2,0x7,0xe2,0x3,0xc2,0x7a,0xd3,0xaa,0x41,0x2a,0xd1,0xb2,0xc1,0x90,0x10,0x4a,0xc2,0xd6,0x1f,0x74,0x42,0xf6,0x1b,0x37,0x42,0xb5,0x93,0x46,0x41,0x17,0x86,0x8f,0xc0,0x45,0xa9,0x65,0xc1,0xa8,0x68,0xec,0x41,0x72,0x9c,0xe6,0xc1,0xa5,0x23,0xbe,0x40,0x51,0x23,0xa1,0x41,0xa4,0x3c,0x12,0x41,0x3e,0x5c,0x28,0x40,0x44,0xe6,0xc1,0x41,0x81,0xcf,0x90,0xc2,0x64,0xac,0xb7,0xc1,0x47,0x73,0x99,0xc2,0xcb,0xe9,0x85,0x40,0xb6,0x61,0x3a,0xc1,0x40,0xc9,0xeb,0xc1,0xd2,0xe,0xc,0x42,0xa0,0x3a,0x79,0x3e,0x1c,0x74,0xd5,0x40,0x8d,0xbb,0xa9,0x42,0x1b,0x40,0x28,0x42,0xd5,0x12,0xb0,0x41,0xda,0x17,0x38,0xc2,0xd5,0x5d,0x83,0xc1,0xac,0x91,0xfe,0xc1,0x2,0x96,0x3e,0x41,0x34,0x58,0x60,0xc2,0xc9,0x79,0xab,0xc1,0x2c,0xc6,0x5a,0x41,0x84,0x7f,0x9a,0x40,0xcf,0xfb,0x89,0x42,0x38,0xe0,0xec,0xc1,0xfa,0x12,0x7a,0xc1,0x73,0x39,0xa,0xc2,0x38,0x27,0x3,0xc2,0x35,0x9d,0xd8,0x41,0x7d,0xb1,0x10,0xc1,0x5f,0x88,0x50,0x42,0xba,0x15,0x84,0x42,0xbe,0xc9,0x66,0x42,0x55,0x0,0x2d,0xc2,0xf7,0xe2,0xc2,0xc1,0x27,0x18,0xdd,0xc0,0x96,0x20,0x53,0x40,0x6e,0x5,0x76,0x40,0x9c,0x6,0xc3,0x41,0x39,0x6d,0x80,0x40,0xd6,0x7f,0xa6,0x40,0xd8,0xa1,0x5,0xc1,0xdb,0xa,0xa9,0x40,0xff,0x58,0x81,0xc1,0xd,0x68,0x9e,0xc1,0x5b,0x7f,0x2a,0x41,0xfc,0x6b,0xa6,0xc1,0xa5,0x72,0x6d,0x42,0xff,0x77,0xc6,0x41,0x5e,0x61,0x82,0xc2,0x87,0x48,0xd9,0xc0,0x14,0x1a,0xed,0x42,0xc3,0x61,0x49,0x42,0xa,0xe8,0x42,0xc2,0xbb,0x7b,0xb8,0xc1,0x3c,0x54,0x97,0xc1,0xc1,0xda,0x65,0xc1,0x10,0x7b,0x40,0xc1,0x5b,0xa,0x8d,0xc1,0xa2,0xb6,0xc2,0x42,0xcd,0x7c,0x3e,0xc2,0x96,0x10,0xed,0x41,0x94,0x57,0xb7,0x41,0x8e,0x7c,0xf9,0x41,0x99,0x28,0x84,0x41,0x49,0x71,0xa8,0xc1,0x10,0x83,0x1d,0x41,0x83,0x59,0xe,0xc1,0xe,0x55,0x6d,0xc1,0x85,0xea,0xcb,0x41,0xac,0xd9,0xb3,0xc1,0x9f,0xcb,0x79,0x42,0xfc,0x82,0xa9,0xc2,0x40,0xc,0x6d,0xc2,0xa5,0x70,0x86,0x42,0xb2,0x78,0x5,0x42,0xa5,0x4b,0x4,0xc1,0x3a,0xd2,0x7f,0x3f,0x3e,0x60,0x29,0x42,0x12,0xb6,0x8b,0x42,0x11,0x1f,0x69,0x41,0xb2,0x5d,0x19,0x41,0xf7,0x90,0x39,0x42,0x97,0xd5,0xb2,0xc1,0x1,0xf4,0x2d,0x42,0x88,0xd4,0x5a,0xbe,0xa,0xa0,0x97,0x40,0x3a,0x34,0x81,0x41,0x27,0x40,0x22,0xc1,0x13,0x92,0xbb,0x41,0x54,0x5c,0xac,0x42,0x1d,0x6b,0x30,0xc2,0x65,0x45,0x1a,0x42,0x52,0x4b,0x10,0x40,0x83,0x1e,0xab,0xc2,0x65,0xfc,0xa5,0x41,0x1c,0x8,0x5a,0x41,0x60,0xab,0xa2,0x42,0x96,0xe0,0xc6,0x41,0x8,0x3e,0xff,0xc1,0x3f,0x3c,0x27,0x42,0x5e,0xe9,0x2d,0xc0,0xa,0xc4,0x68,0x42,0xc1,0x7a,0xc0,0xc1,0xd4,0x73,0xac,0x41,0x9d,0xd1,0x99,0x42,0x35,0x59,0x64,0x42,0x33,0xa9,0xa1,0xc2,0x50,0xf0,0x74,0x42,0x74,0xcc,0xdc,0x3e,0x34,0x13,0xce,0xc1,0xe,0xd0,0x2c,0xc2,0xe,0x9e,0x10,0x41,0x6a,0xe1,0xf,0x42,0xad,0x9c,0x95,0xc1,0x20,0xab,0x9d,0x41,0x27,0xa2,0x70,0xc2,0xfb,0x6c,0x53,0xc2,0x9f,0x82,0x47,0xc2,0xd8,0x25,0xa9,0x40,0xf2,0xa7,0x19,0xbf,0x15,0xcd,0xb6,0xc1,0x3a,0xf2,0xb3,0xc1,0x27,0x48,0xa9,0xc2,0x8b,0x8e,0x9a,0xc1,0x8c,0xc0,0x26,0xc2,0xd4,0x2c,0xcc,0x41,0xf4,0x5,0x38,0xc2,0xab,0x6,0x5c,0xc2,0x3b,0x3f,0xf,0xc2,0x9d,0xba,0x3,0xc1,0xe7,0xa4,0x8d,0x40,0xe0,0x8e,0x9b,0xc1,0x96,0x35,0x2b,0x42,0xf8,0x75,0xca,0x41,0x74,0x3c,0xb0,0xc0,0x8a,0x3d,0x2d,0x42,0x6c,0xd0,0x0,0xc2,0xdb,0xdd,0x43,0x42,0xcb,0x4d,0x3e,0xc2,0x34,0x7a,0x5,0xc0,0x56,0xba,0x5,0xc1,0x5f,0x4c,0x7e,0xc1,0xa2,0x99,0x3a,0xc2,0x94,0x94,0xb3,0xc1,0xd7,0x32,0xd,0x42,0xe,0x77,0xb4,0xc2,0xf4,0x4c,0xf5,0xc1,0x46,0x7d,0x67,0x42,0xe,0xd7,0xa7,0x40,0xe8,0x5e,0x6d,0xbe,0xe,0x4a,0xe3,0x41,0xed,0x10,0x9f,0xc1,0xb7,0xc8,0xe2,0x41,0x79,0x1f,0xba,0xbf,0xfe,0xff,0x9d,0xc1,0x9b,0xf7,0x8b,0x42,0x4c,0x33,0x0,0xc2,0x7a,0xe4,0x66,0xc1,0xea,0x35,0xc5,0xc1,0xee,0x85,0x9a,0x42,0x81,0x99,0x4,0xc1,0x4b,0x45,0xfd,0x42,0x94,0x4c,0xa0,0xc1,0x70,0x6a,0x2a,0xc1,0x0,0x24,0xa4,0x3e,0x3e,0xec,0x20,0x41,0x21,0x9f,0x53,0xc2,0x5b,0x4c,0x63,0x42,0xff,0x11,0x30,0x40,0xee,0x83,0x38,0x42,0x47,0x1b,0x8f,0xc2,0xe6,0xf9,0xf9,0x41,0x9b,0xec,0x8e,0x40,0xb4,0xd,0x4a,0xbf,0xa4,0x25,0x85,0xc2,0xec,0xe5,0x49,0xc2,0x2,0xe2,0x9b,0xc2,0x9f,0xce,0x9,0xc2,0x5f,0x10,0x3e,0x42,0xf4,0xe3,0xdd,0x40,0x35,0xb4,0xd7,0x41,0x72,0xb7,0x87,0xc1,0xd8,0xd0,0xa7,0xc2,0x82,0x1b,0xaa,0xc1,0x8b,0xe3,0xe3,0x41,0x5d,0x6d,0x6a,0x41,0x4e,0x8,0x3d,0x42,0x7c,0x12,0x3e,0x42,0xf5,0x66,0x9a,0x41,0x48,0x35,0x11,0x42,0xc,0x22,0x60,0xc2,0xdf,0xc2,0x28,0x42,0x78,0x3b,0x89,0xc2,0xb4,0x7a,0x66,0x3f,0x59,0x9c,0x32,0x40,0x4c,0x8a,0x7e,0xc1,0x2b,0x37,0x33,0x42,0x18,0xc1,0xfa,0x40,0x78,0xf7,0x8c,0x42,0x79,0xd2,0xd4,0x41,0x41,0x46,0x90,0xc1,0xa4,0xf0,0x68,0xc2,0x34,0xaf,0x8d,0xc1,0x46,0x73,0x86,0xc2,0x52,0x81,0x94,0x41,0xcb,0xa,0x64,0xc1,0x60,0xb3,0x3b,0xc2,0xee,0x40,0x9d,0x40,0xe1,0xc5,0x9f,0xc2,0x3a,0x3b,0x64,0x41,0x4f,0x62,0x99,0xc2,0xd1,0xa,0xed,0x40,0x9c,0x42,0x72,0x41,0x10,0xf3,0xa2,0xc2,0xbb,0x88,0x50,0xc1,0x60,0x30,0xc3,0x41,0x50,0x6d,0x9c,0x42,0xb7,0x2c,0x60,0x42,0x92,0x51,0xe8,0xc1,0x9f,0xfd,0x8d,0xc1,0xa1,0x6a,0x3,0xc1,0x15,0x45,0x71,0xc1,0x98,0x25,0xb4,0x41,0xcd,0xf1,0x36,0xc2,0xd7,0x9f,0x66,0x41,0x71,0xc5,0xa0,0xc2,0x19,0x82,0x8f,0xc1,0x3c,0x40,0xe2,0x40,0xfd,0xdb,0x8e,0xc2,0x5d,0xa2,0x46,0xc2,0x8b,0xfb,0xca,0x41,0x2,0x20,0xe7,0x41,0x3e,0x3b,0x68,0x41,0x39,0x80,0xc1,0xc0,0x48,0x2c,0x56,0xc2,0x9d,0x3c,0xe5,0x41,0x80,0xe9,0x9,0xc2,0x3a,0x86,0x56,0x42,0x5c,0x7b,0xb8,0xc2,0x14,0x60,0xb0,0xbf,0xa9,0x5b,0x22,0xc2,0x2c,0x2e,0x92,0xc1,0xbe,0x72,0x2b,0xc0,0x60,0x27,0xd0,0x41,0x5a,0x3e,0x32,0x42,0x4b,0x32,0x12,0x42,0x81,0x69,0xc3,0xc1,0xca,0x8,0x2,0xc1,0x9c,0x8b,0x41,0x42,0xdf,0x27,0x20,0xc2,0xa0,0xa4,0x7d,0xc2,0x16,0xf6,0xfb,0xc2,0x7d,0x85,0x87,0xc1,0xa9,0x3b,0xda,0x40,0x9b,0x5c,0xd,0xc2,0xd0,0x0,0x4b,0x42,0xcf,0xb9,0x3e,0xc2,0x65,0xf1,0x54,0x40,0x9b,0x59,0xc9,0x42,0xb,0xd5,0xd0,0x40,0x8f,0x49,0xd7,0x41,0x6c,0x4,0xf0,0x41,0x4c,0x3e,0x69,0x42,0x2f,0x4e,0x5,0xc2,0x40,0xbb,0x9,0x42,0xfa,0x96,0xcf,0xc0,0x4e,0x2f,0x7,0xc1,0xb6,0x68,0x88,0x41,0x90,0xf6,0xc3,0xc1,0xe,0xce,0x3b,0x42,0x73,0x1f,0x3,0xc2,0xd6,0x85,0x24,0x42,0xb3,0x1c,0x99,0x42,0xb0,0x1a,0xb,0x41,0xfc,0x9a,0xa4,0x41,0x6,0xd0,0xa8,0xc1,0xdd,0x6e,0x91,0x41,0xc5,0x6b,0x17,0x42,0x38,0x6a,0xa9,0xc1,0xcf,0xcc,0x30,0x42,0x6,0xec,0x8c,0xc0,0x43,0xe4,0x75,0x42,0x28,0x66,0x81,0x42,0x3e,0x93,0x3d,0xc2,0xf,0xaf,0x9c,0xc1,0xe3,0xa,0xe0,0x41,0x9c,0xad,0x9e,0x41,0x6d,0x51,0x48,0x42,0x92,0xaf,0x3,0x42,0x92,0xd7,0xb0,0x41,0x8e,0x94,0xe9,0xc2,0x75,0x24,0x6f,0xc2,0x90,0x4e,0xf5,0x40,0x98,0xeb,0xc1,0xc0,0xe4,0x81,0x38,0xc2,0xa5,0x2a,0xa4,0x42,0xf7,0x55,0xf,0xc0,0xcf,0x8a,0xf5,0x41,0xfb,0x9c,0xd9,0x41,0x48,0xe3,0x62,0xc2,0xb9,0xde,0xc6,0x41,0xad,0x1b,0x1a,0x42,0x84,0x8f,0x80,0xc2,0xa8,0x6,0xc1,0xc1,0x78,0x49,0x85,0xc2,0x9d,0x7a,0x69,0xc1,0x74,0x91,0xd7,0x42,0xfa,0xcc,0xfb,0x41,0x3,0xf4,0x2c,0x42,0x5d,0xe4,0xb,0xc3,0x75,0xb6,0x23,0x42,0x6c,0x23,0xa2,0x40,0x8f,0xc4,0xfa,0xc0,0x7c,0xf8,0xc2,0x41,0x20,0x32,0x47,0xc2,0x24,0x95,0xd3,0x3f,0x88,0x26,0xd,0x42,0xb0,0x7,0x99,0x41,0xc7,0xbc,0x36,0xc2,0xd9,0xb0,0x9,0x43,0x28,0x92,0x8d,0xc1,0x73,0xf9,0xa3,0xbf,0x58,0xe3,0x87,0xc1,0x9e,0xef,0x44,0x42,0xb8,0xd8,0x10,0xc1,0x1f,0xd3,0x61,0x41,0x2c,0x4e,0xe2,0x40,0xb8,0xc9,0x72,0xbf,0xca,0x28,0xdd,0x42,0xa5,0x58,0x9e,0x41,0x6c,0x34,0x53,0x41,0xe6,0x18,0x0,0x42,0x1,0x22,0x3a,0xc1,0xee,0x77,0xa3,0x40,0xf0,0x10,0x60,0x41,0xb,0x33,0x4f,0x42,0x54,0x74,0x0,0x42,0xe,0xf4,0xd6,0x41,0x85,0xc8,0x19,0xc1,0xe6,0x8a,0x1e,0xc1,0x3c,0x2,0x40,0x42,0xbb,0xab,0xce,0xbf,0xe5,0x7b,0x2a,0xc1,0xe1,0xf3,0x9e,0x42,0xa2,0x6b,0xcb,0x41,0xba,0x3d,0x27,0x42,0x29,0x37,0x34,0xc2,0x4,0xd8,0x42,0xc2,0xc4,0x70,0xc6,0xc2,0x94,0xe3,0xd,0x42,0xf0,0x14,0x19,0xc1,0x10,0x30,0xb6,0x40,0x54,0xf8,0x9c,0xc0,0x1a,0xbe,0xa2,0x42,0xf3,0x82,0xb5,0x42,0x6c,0x10,0x58,0x42,0x75,0xfb,0x4,0x42,0xeb,0x70,0x1b,0x41,0x32,0x11,0x31,0x42,0xf9,0x5f,0xa,0xc2,0x47,0x80,0xa3,0xc0,0x8a,0x1d,0x9f,0xbf,0x35,0x83,0x56,0xc2,0x81,0x13,0x50,0xc1,0x9e,0xaa,0x76,0x40,0x2e,0xe1,0x8b,0xc1,0xec,0x6d,0x5e,0xc0,0x83,0x81,0x57,0x42,0x72,0x9b,0xb9,0xc1,0xd8,0xe3,0xfd,0x40,0xf6,0x6,0x4e,0x42,0xe6,0xb7,0xc9,0xbf,0xac,0xa7,0xb0,0xc1,0x18,0x97,0x2d,0xc2,0xdd,0xc2,0xad,0xc2,0x2f,0xcd,0xe0,0xc1,0x29,0x78,0x7,0xc2,0x2a,0x7b,0x4,0xc2,0x50,0xb1,0xed,0x41,0x87,0x4a,0xf3,0xc1,0x98,0x9,0x5,0x42,0xfe,0xa3,0x9d,0xc1,0xf0,0xde,0x85,0x42,0xee,0x8b,0x9e,0xc2,0x10,0xa5,0x2d,0xc1,0x67,0x2d,0xc2,0xc1,0x7f,0x47,0xf1,0x41,0xb8,0xe1,0x2,0x42,0xd6,0x27,0xb4,0x41,0xa5,0x31,0x20,0xc2,0x64,0xb2,0xcd,0x41,0x9c,0x57,0xac,0x41,0x6e,0xdf,0xa,0xc2,0x2c,0xf3,0x23,0xc2,0xce,0x55,0x5,0xc1,0xac,0x98,0x35,0x42,0xe4,0xe4,0xfe,0x41,0xda,0xfd,0x6f,0x41,0x70,0x31,0x47,0x41,0x4c,0x4e,0x5f,0x42,0x6,0xb4,0xcc,0xc0,0xa4,0x1b,0x18,0x41,0x30,0x3d,0x43,0xc2,0xfc,0xf6,0x9,0x42,0x60,0xc0,0xde,0x41,0x7c,0xfb,0x1a,0x41,0x61,0xa4,0x1b,0x42,0xd0,0x6f,0x70,0xc2,0xbc,0xd1,0xb2,0x40,0xae,0x58,0xd4,0x40,0xa5,0x5c,0x6a,0x41,0xaa,0xfd,0x82,0xc2,0xe8,0xdb,0xe2,0x41,0x20,0xff,0xd8,0xc1,0x27,0xac,0x93,0xc2,0xe3,0x74,0x2a,0xc2,0x3a,0x65,0x9,0x42,0x9d,0x64,0xa2,0xc2,0x44,0xdc,0xd8,0xc0,0xaa,0x88,0x16,0x41,0xbd,0x31,0x60,0x42,0xc8,0xae,0x84,0xc1,0xbf,0xd9,0xa,0x42,0x10,0xbc,0x14,0xc2,0x4,0x7d,0x4,0xc2,0xc,0x79,0x89,0x42,0x24,0xfd,0x8c,0x41,0x6c,0xe8,0xa0,0xc1,0x38,0x48,0x58,0x42,0xa4,0xe7,0x8c,0xc1,0x8e,0xad,0x81,0xc1,0x15,0x6a,0x8d,0x41,0x38,0xcf,0x3,0x41,0x42,0xa6,0x31,0x42,0x72,0x11,0x84,0xc1,0x72,0x61,0x54,0xc1,0xbb,0x6c,0x35,0x41,0xa1,0x51,0x1c,0xc2,0xf2,0xed,0x71,0x41,0x96,0x2e,0xcd,0x40,0x25,0x65,0xd,0x42,0x66,0x7,0x42,0x41,0xd7,0xef,0x3a,0x40,0x95,0x8d,0x80,0xc0,0xc2,0xa8,0x15,0xc2,0x9c,0xf,0xd9,0x41,0x59,0x33,0xf8,0x41,0x9b,0x85,0x3b,0xc1,0x24,0x3c,0xb0,0x41,0xf7,0xb6,0x44,0xc2,0x24,0x21,0x7b,0xc2,0xa,0x2d,0x92,0x42,0x4c,0x78,0xb9,0x42,0xcc,0x34,0xd7,0xbf,0xf8,0x58,0xe4,0xc1,0x9e,0xf4,0xee,0xc1,0xaa,0x8e,0xd5,0xc1,0x88,0xcb,0x2c,0xc1,0xd1,0xd7,0x2f,0xc2,0x41,0xf,0xbc,0x3f,0x4b,0x28,0x19,0xc2,0xc2,0x8e,0x7a,0x41,0x3e,0x73,0x15,0x41,0xc7,0x28,0x8f,0x42,0xe1,0x70,0xc2,0x41,0x26,0xa4,0x1c,0xc2,0x36,0x0,0x3a,0xc2,0x7a,0x41,0xcf,0x41,0x56,0x5f,0x16,0x42,0x0,0xe,0xb9,0x41,0x3d,0xf6,0x72,0x41,0xee,0x1b,0xb3,0xc2,0x6e,0xda,0x47,0xc2,0x72,0xc8,0x1b,0xc2,0xb,0x95,0xe6,0x41,0x81,0x6b,0x99,0x40,0x36,0xe0,0x49,0xc1,0xc6,0x5d,0xe,0xc2,0x42,0xeb,0x49,0x42,0xcd,0x18,0xa9,0x42,0x99,0xfa,0x80,0xc2,0x5c,0xcf,0xdd,0x40,0x5a,0xc2,0x2f,0x40,0xc3,0x5e,0xd5,0x41,0x6b,0x85,0xf3,0xc1,0x30,0xec,0x5,0xc2,0xdc,0xa5,0x4,0xc1,0x53,0xdf,0x90,0xc2,0xe8,0x79,0xc3,0x41,0x16,0x26,0x93,0xc2,0xd8,0xe5,0x5a,0xbd,0x93,0x4,0xde,0xc1,0x54,0x92,0xb,0x40,0x63,0x79,0x2,0x42,0xd6,0xd6,0x68,0xc1,0x24,0x0,0xbe,0xc1,0xd8,0xfc,0xd0,0xc1,0xb0,0xd2,0x2,0x42,0xaf,0x2,0xbf,0x40,0xed,0xe1,0x33,0x41,0x0,0x1d,0xe1,0xc1,0xb8,0x3b,0xc0,0x41,0xce,0xa2,0xfe,0xc1,0x96,0xf2,0xff,0xc1,0x2e,0x85,0xa4,0x42,0x20,0xf0,0xd7,0x41,0xee,0x64,0x2f,0x42,0x82,0xfa,0x29,0x42,0x8b,0x93,0xea,0x40,0x3e,0xe4,0x2d,0x41,0x71,0x2e,0x4d,0x42,0x66,0x41,0xb3,0x41,0x15,0x2f,0x96,0xc0,0x92,0xc9,0x6f,0x42,0x74,0xe4,0x9f,0x41,0xf2,0x47,0x59,0x42,0x58,0x97,0xee,0x40,0x63,0x60,0x57,0xc2,0x80,0x63,0xcc,0xc1,0xb0,0x53,0xcb,0x40,0xd6,0xd0,0xeb,0x40,0x9d,0x6b,0x13,0x42,0x48,0x71,0x53,0x42,0xea,0x45,0x23,0x41,0x97,0xf9,0x43,0xc2,0x6,0x50,0xac,0xc1,0x2e,0x8c,0x50,0xc1,0xe8,0x5,0x7,0xc0,0x7,0xf8,0xfd,0x41,0xc,0x8d,0xfa,0x40,0x69,0xad,0x63,0x42,0x3,0x96,0xdd,0xc1,0xba,0x31,0xad,0xc2,0x3c,0x95,0x45,0x41,0xfa,0xcc,0x6f,0xc2,0x5f,0x9d,0x8c,0xc1,0x86,0x56,0xbc,0x41,0x68,0x55,0xe5,0x41,0xa1,0xdd,0x1a,0xc2,0xad,0x1,0x4d,0x40,0xaf,0xf1,0x29,0x42,0xc3,0xe,0x7d,0xc1,0x7f,0xef,0xee,0x41,0xb3,0xaf,0xa6,0xc1,0x32,0xcb,0xdc,0x41,0x5a,0x60,0x2b,0xc2,0xf7,0x51,0x39,0xc1,0x42,0x58,0x1d,0xc2,0x62,0xc5,0xa,0xc2,0xa2,0xea,0x69,0x41,0xd5,0xa5,0xd2,0xc0,0x68,0x33,0xd,0x42,0xf8,0x65,0x9d,0x41,0xd1,0x78,0x3,0x42,0x66,0x6c,0x38,0xc2,0xc5,0x74,0xc1,0xc1,0xb1,0x25,0x78,0xc2,0x95,0xc5,0x1c,0xc2,0x5c,0x87,0x20,0x41,0xf3,0x74,0x64,0x41,0xb4,0x56,0x9b,0x41,0xfb,0x2c,0xa7,0xc0,0xd3,0xce,0xb6,0xbe,0x5e,0xa4,0x9f,0x41,0x77,0x93,0x71,0xc2,0x3a,0x1b,0x1a,0xc2,0x39,0xee,0xa8,0x42,0xd9,0x13,0x14,0xc1,0x62,0x57,0xd0,0xc1,0x9f,0x5c,0xd4,0xc0,0xa4,0x52,0xb6,0xc0,0x56,0x94,0xed,0xc0,0x92,0xd1,0x63,0xc2,0x66,0x64,0x71,0xc0,0x8a,0x29,0x15,0x41,0xe0,0xcc,0xbb,0x3c,0xca,0x2e,0xca,0x41,0xb6,0xda,0x73,0xbf,0xeb,0x79,0x15,0xc2,0xc0,0xec,0x76,0x42,0x1,0x69,0x88,0x42,0xd3,0xf7,0xc1,0xbf,0xb6,0xd6,0xe6,0xc0,0xa5,0xe6,0x8c,0xc2,0x18,0x75,0x2,0x41,0x22,0x99,0x71,0x41,0xdc,0x9,0x7f,0xc0,0xda,0x3c,0x1f,0xc2,0x19,0xd,0x87,0xc1,0x8c,0xb8,0xb3,0x42,0x1e,0x8d,0xc5,0x42,0xd1,0xf6,0xd,0xc1,0x20,0x98,0x1f,0x42,0x8c,0x2d,0xe7,0xc1,0xe8,0x19,0x77,0xc1,0x5c,0x6d,0x66,0xc1,0x6a,0x8f,0xd6,0x41,0x13,0xb7,0xd2,0x42,0x2e,0x68,0x7c,0x42,0x6a,0xc4,0x65,0x42,0x36,0x26,0xfe,0x41,0xe4,0x40,0x5e,0xc1,0x1c,0x27,0x7c,0x42,0xcf,0x24,0x1,0x42,0x94,0x8a,0x50,0x41,0xb6,0x73,0x5,0xc0,0xb9,0x74,0x86,0xc2,0xdf,0xd6,0xe0,0xc0,0x24,0xbe,0x72,0x41,0x4d,0x19,0x32,0xc1,0x7c,0xc1,0x35,0xc2,0x8a,0x1f,0xd6,0xc0,0xdb,0x5f,0x5d,0x42,0x1c,0xcc,0x8e,0xc1,0x77,0x97,0x95,0x42,0xc4,0xfe,0xde,0x42,0xdf,0x6f,0xf6,0xc1,0x8f,0xe8,0x76,0x42,0x8f,0xc8,0x1d,0x43,0x9e,0xa5,0x4c,0x42,0xe8,0x6,0xdd,0xc0,0x32,0xd7,0x68,0xc1,0x2a,0xc8,0x3f,0xc2,0xaa,0xf8,0x52,0xc2,0x91,0x38,0xf4,0xc1,0x8a,0x74,0x1b,0xc2,0xb9,0x4c,0x66,0x42,0xc9,0xb,0xc,0x42,0x8f,0xa6,0xb4,0x42,0x58,0x75,0x7f,0x42,0xe8,0x36,0x73,0x42,0x6e,0x63,0x8f,0xc2,0xa6,0xd7,0xd6,0x40,0xb1,0x82,0xfd,0xc1,0xda,0xa9,0x27,0x41,0x42,0x67,0x22,0xc1,0x6,0x56,0x85,0xc1,0xbc,0x84,0x75,0x41,0xf2,0x7e,0x9b,0x42,0x95,0x5b,0x22,0xc2,0x24,0x64,0xb2,0xc1,0x24,0x8f,0x18,0x42,0xeb,0xe6,0x6e,0x42,0x57,0xe9,0x4b,0xc2,0x70,0x2e,0xe3,0xc1,0xe5,0x77,0x93,0x40,0xaa,0x40,0xeb,0xc0,0x86,0x26,0x9a,0xc1,0xb8,0xe1,0x8d,0x42,0xed,0xae,0xb9,0x41,0xc4,0x18,0x6e,0x42,0xae,0x26,0xc6,0x40,0xb8,0x85,0xf7,0x3e,0xa6,0xe7,0xaf,0xc1,0x93,0x6f,0x8f,0x42,0x13,0x18,0x28,0xc2,0x32,0x58,0x23,0x42,0x70,0xae,0x3e,0x42,0x8c,0xbb,0x2b,0xc2,0xe4,0xce,0x9,0x42,0x30,0x7e,0xdd,0x41,0x15,0xcf,0x28,0xc2,0xe7,0x3a,0x27,0x42,0x19,0x4b,0x23,0xc2,0xad,0xac,0x6c,0x42,0x6a,0xeb,0xb8,0x42,0xf8,0x62,0xd4,0x41,0x18,0x3f,0x96,0x41,0xb7,0x7d,0xac,0xc0,0xc8,0x8e,0x43,0x42,0x82,0x8,0x52,0xc2,0x6d,0xc4,0xa4,0xc2,0xa5,0xe5,0xfc,0xc1,0x9c,0x8,0xa,0x42,0xfc,0xf1,0x6c,0xc1,0x26,0xc2,0xcb,0x42,0x6c,0x96,0xbd,0x41,0x1d,0x32,0x54,0x42,0xfa,0x2a,0x3c,0xc2,0x1e,0x6e,0x65,0xc2,0xad,0x6d,0x28,0xc1,0x8,0xed,0x8f,0xc2,0x26,0x49,0x3,0x42,0xf0,0x1b,0xc0,0x41,0x50,0xae,0x39,0xc2,0x2c,0x51,0xaf,0xbf,0xbe,0x12,0xbb,0xc1,0xf7,0xc,0xd0,0x3f,0x44,0xb7,0xe6,0x40,0x82,0xd,0x8f,0xc2,0xf2,0x64,0x4c,0xc2,0x5b,0x5d,0xc0,0x41,0x5f,0x7a,0xf4,0x40,0x77,0x7a,0x3c,0xc2,0x60,0x63,0xd,0xc2,0x9,0x4f,0x61,0xc2,0x7d,0xc,0x63,0x41,0xdc,0x62,0xf3,0x41,0xfa,0x2c,0x21,0x42,0x44,0xed,0x4b,0x41,0x3f,0xd1,0xd7,0xc1,0x96,0xfc,0xce,0x3f,0x35,0x28,0x46,0xc2,0x3d,0xca,0x74,0xc2,0xd,0x27,0x25,0xc2,0xba,0x85,0x3b,0x42,0xe9,0x38,0xeb,0xc1,0xd1,0x76,0x1e,0xc2,0x22,0x71,0xac,0xc2,0x40,0x85,0x96,0xbe,0xb,0x32,0x67,0xc1,0x59,0xd5,0xd1,0xc0,0xa3,0x39,0xbd,0x42,0x3e,0x5d,0x94,0xc2,0x1a,0x31,0x24,0xc1,0x80,0x9,0x5c,0xbf,0xbe,0x3,0x2a,0x41,0xfd,0x10,0x35,0x41,0xf,0x4f,0x6,0xc2,0xeb,0x86,0x7f,0xc1,0xd1,0x25,0xa1,0xc1,0xa2,0xc4,0x7d,0xc1,0xea,0x1b,0xc2,0xc1,0x13,0xfa,0xba,0x40,0x66,0x66,0xe8,0x41,0x20,0xfd,0x2c,0x42,0x72,0x52,0xde,0xc1,0x41,0x15,0x89,0x41,0xde,0xb3,0x5e,0x42,0x67,0x9d,0x36,0x41,0xaa,0xad,0xa6,0x41,0x85,0x92,0x92,0xc2,0x90,0xbb,0xd2,0xc2,0x69,0x69,0x6b,0x42,0x6,0x71,0x65,0x42,0xf4,0x8e,0xa7,0x42,0x8e,0xeb,0xa9,0xc1,0x16,0xa4,0x28,0xc2,0xc7,0xd3,0x54,0x41,0x2e,0x6b,0x74,0x41,0x92,0x4a,0x87,0x42,0x6e,0x79,0x2b,0x42,0x7a,0x38,0x97,0xc1,0xed,0x6a,0xce,0x41,0x43,0xb5,0xf8,0xc0,0x3f,0xac,0x1a,0xc3,0xde,0xc6,0x2d,0xc2,0xc6,0xe7,0x28,0xc2,0xd1,0x96,0x17,0xc2,0xb1,0xb2,0x0,0xc2,0xae,0x34,0x87,0xc1,0x44,0x15,0x81,0x41,0xc4,0x1c,0x44,0xc0,0x70,0x61,0x6f,0x41,0x30,0x72,0xf3,0x40,0xdf,0x25,0x37,0x42,0x9a,0x8,0xdc,0xc1,0xef,0x96,0xb,0x42,0xbe,0x5d,0x2b,0xc2,0x9b,0xb9,0x66,0x42,0x1,0x14,0x90,0xc2,0x14,0x4f,0xe,0xc2,0x87,0x83,0xcd,0xc1,0x24,0xfd,0x80,0xc2,0x5a,0xc4,0xda,0x40,0x5f,0xf6,0xb2,0x42,0x70,0x2d,0xf2,0x41,0xce,0xdc,0x27,0xc2,0xfd,0xf2,0x6,0x42,0xca,0x4c,0x23,0xc2,0xea,0xbf,0xd5,0x40,0xc9,0x91,0xe0,0xc1,0xcb,0x36,0x25,0xc2,0xe5,0xf0,0x5f,0x42,0xed,0xd1,0x6,0x42,0xb3,0xa3,0x91,0xc2,0xca,0x1e,0x60,0x42,0x52,0xf4,0x3f,0xc2,0x92,0xed,0xfa,0xc1,0x28,0x4b,0x7a,0x41,0x6,0x67,0x80,0xc2,0x36,0x81,0xa5,0xc2,0xc3,0x64,0x9f,0xc1,0x11,0x85,0x9a,0x41,0xdd,0x5c,0x39,0xc2,0x69,0x3e,0xa2,0x42,0x3a,0x8e,0xa1,0xc1,0x2f,0x47,0x24,0xc0,0xca,0x38,0x8f,0x42,0x5b,0x6a,0x49,0xc1,0x11,0x2,0x77,0x42,0xec,0x6b,0x73,0xc2,0xa9,0x5f,0x9f,0x42,0xe0,0xf5,0x1,0x42,0xdf,0xdf,0x72,0xc1,0xc5,0x56,0x83,0x41,0x35,0x46,0xf3,0xc1,0xc6,0x74,0xbe,0x40,0x53,0x5f,0xb2,0x42,0xc8,0x1c,0xc,0xc2,0x54,0x8,0x2c,0x42,0xb0,0xad,0x42,0x41,0x30,0x17,0xb7,0x41,0xee,0x2f,0x4e,0x42,0x1e,0x21,0x27,0xc2,0xfa,0x47,0xd7,0x42,0xe1,0xcd,0x4f,0xc2,0xe2,0xb6,0xf4,0xc1,0x21,0xa,0x39,0xc2,0xe,0xd9,0x56,0x42,0xb3,0x6d,0xdc,0x42,0xb7,0x50,0xb0,0x41,0x3b,0xe5,0x36,0x41,0x80,0x6e,0x44,0x40,0x22,0x52,0x78,0xc0,0x18,0x77,0xc7,0xc0,0x9,0xc3,0x1f,0xc1,0xcb,0x67,0xf9,0xc0,0x98,0x55,0x80,0x41,0xd,0xae,0x23,0xc1,0x81,0xb0,0x6d,0xc1,0xe2,0xf4,0x55,0xc1,0x2e,0x46,0x35,0xc1,0xfb,0xf5,0xaf,0xc1,0x4b,0x8b,0x38,0x41,0xeb,0x88,0x5f,0x42,0x6d,0xc6,0xaa,0xc1,0x12,0x78,0xa1,0xc1,0xd4,0x5,0x78,0x41,0x22,0xb8,0x49,0x40,0x8f,0xd3,0xe5,0x41,0x70,0x51,0x97,0x42,0x38,0xbf,0xe,0xc1,0xec,0x98,0x75,0x42,0xce,0xd2,0x1d,0x42,0x5c,0x26,0xf1,0xc2,0xcb,0x83,0xd2,0xc1,0x2c,0x76,0x29,0x42,0x3a,0x60,0xd6,0xc1,0xaa,0x31,0x48,0xc1,0x95,0x1a,0x20,0x42,0xcb,0xf2,0x63,0x42,0x2,0x6c,0xb7,0x41,0xba,0x5,0xb1,0x41,0xe9,0x6e,0x44,0xc2,0xd2,0x3b,0xa9,0xc1,0x15,0xb0,0x14,0xc2,0x8b,0x25,0xd7,0x41,0x22,0xd4,0x68,0xc2,0x49,0xcf,0x16,0x42,0x97,0xb4,0x5a,0xc2,0xc0,0xdc,0xa8,0xc1,0x10,0x7b,0xdd,0xc1,0x2,0x23,0xc8,0xc1,0x47,0x49,0x20,0xc2,0xe4,0x8,0x1c,0x42,0x70,0x92,0x4d,0xc1,0x24,0x5a,0x31,0xc2,0x29,0x29,0x2b,0xc1,0x8a,0xfa,0x71,0xc2,0xb1,0x91,0x34,0xc2,0x30,0x74,0x8e,0x42,0x2a,0xc2,0x82,0x42,0xe7,0x39,0xae,0x42,0x2d,0x38,0x2c,0xc2,0xa5,0xff,0xd9,0x3f,0x3b,0xff,0x2e,0xc2,0xc8,0x7e,0xce,0x42,0x3c,0x36,0xf,0xc2,0x3b,0x2f,0x1,0x42,0xb6,0xdc,0x5,0xc2,0x9c,0xdf,0x6f,0xc2,0x3,0xe7,0x99,0x42,0xa4,0x35,0x99,0x41,0xf,0x12,0x20,0xc2,0xb5,0x14,0xd1,0xc1,0x4d,0xdc,0x8c,0xc0,0x52,0xb9,0x4b,0xc2,0xa9,0xbe,0x17,0xc1,0xa4,0x7,0x81,0xc1,0x80,0x3c,0x27,0xc2,0x42,0x7b,0x26,0xc2,0x0,0x7,0x48,0xc2,0x7c,0x14,0x3f,0xc1,0x7c,0xd0,0xfd,0xc1,0x38,0x9e,0x8b,0xc2,0x8c,0x3,0x1,0xc2,0x1b,0x1b,0x2b,0x42,0xdc,0x33,0x71,0x40,0x1d,0x6e,0x1c,0x42,0x9c,0xb9,0x8d,0x42,0x3c,0xc1,0x88,0xc1,0x64,0x43,0x4c,0xc1,0xf8,0x2d,0x98,0xc1,0xf,0xeb,0x7b,0xc2,0xd5,0xec,0x7d,0x41,0x51,0x1d,0x8e,0xc1,0xab,0x38,0xcc,0xc0,0xcf,0x76,0xcb,0xc1,0x18,0x99,0xc2,0xc2,0xb1,0xc5,0x1f,0x41,0xd0,0xff,0x41,0x41,0x65,0x79,0x2d,0x3f,0x74,0x3e,0x86,0xc0,0x62,0x9f,0x20,0x42,0x93,0xb2,0xb4,0x42,0x91,0xac,0x6c,0xc2,0x79,0xc,0x6d,0xc2,0x1d,0x7c,0x88,0x40,0x58,0x84,0x9,0x42,0xe0,0x22,0xdd,0xc1,0x71,0x11,0x58,0xc1,0x50,0xd4,0x8e,0xc1,0x21,0x8d,0xc7,0xc1,0x78,0x49,0x0,0xc2,0xcd,0xa0,0xe,0x42,0x74,0xbf,0x9a,0xc2,0xf5,0xb7,0xdf,0x40,0x26,0x77,0xa1,0x41,0x1d,0x15,0x59,0xc2,0xd8,0xe,0x14,0x42,0xe9,0x4b,0xd1,0xc2,0xca,0x3,0x9a,0x40,0xe4,0x35,0x13,0x40,0x64,0xa,0x3d,0xc2,0xe1,0xc1,0x3,0xc1,0xe,0x79,0xa6,0xc1,0x11,0x1,0x38,0xc2,0x5a,0x20,0x23,0xc2,0x5a,0x7e,0xb7,0x40,0x3e,0x4c,0x91,0x41,0x94,0x82,0xc3,0xc1,0xc6,0x4f,0xa0,0xc2,0x4b,0xbc,0x4d,0x41,0x38,0x5c,0x28,0xc2,0x6,0xe5,0xd8,0xbe,0x3c,0xfa,0x58,0xc2,0x2b,0x6e,0xca,0x41,0x33,0x3d,0x13,0xc1,0xd6,0x6f,0xcb,0xc1,0x44,0x6,0xec,0xc1,0xc4,0x37,0xa3,0xc0,0xdf,0x15,0x6,0xc2,0xc6,0x1,0xf,0x42,0xcd,0xf5,0x37,0x41,0x30,0xa,0x3f,0xc1,0x7e,0x0,0x2b,0xc2,0xca,0xa3,0x99,0xc1,0x63,0xae,0xf,0x42,0x5f,0x19,0x50,0x40,0x5,0xe0,0x1d,0xc2,0xde,0x34,0xb,0x42,0xa1,0xe5,0x8f,0xc2,0x3f,0x90,0xa4,0x41,0x79,0x22,0xee,0x41,0x6a,0xa5,0x8e,0x41,0xec,0x4b,0x2e,0x42,0xc0,0xb,0x95,0x3d,0x57,0x34,0xa,0xc2,0x1f,0xe1,0x14,0xc2,0x6,0x76,0x87,0x41,0xdd,0x65,0x23,0x41,0x20,0x5,0xd1,0xc0,0xdf,0xa5,0x9d,0x41,0xde,0x12,0xbb,0x41,0x8,0x98,0x95,0x41,0xec,0xc,0x5e,0xc1,0x79,0x5f,0x5f,0xc2,0x2d,0xfe,0x30,0xc1,0x63,0xec,0x3b,0xc2,0x32,0x8f,0x3f,0xc2,0x90,0x2,0x8,0xc1,0x5a,0xdc,0xe5,0xc1,0x53,0x5f,0x32,0x41,0x2e,0x3a,0xa0,0xc1,0xec,0x26,0x7f,0x40,0xb2,0x82,0x16,0xc2,0x1e,0x21,0xbf,0x40,0xe9,0x1d,0x5,0x42,0x7a,0xab,0xd6,0xc1,0x2e,0xd5,0x83,0xc2,0x3a,0x6d,0xd8,0x40,0x91,0x39,0xed,0x3f,0x72,0x9f,0xf0,0xc1,0x82,0xa0,0xd,0xc1,0x3a,0x93,0xaf,0x41,0x99,0x1f,0x35,0x41,0x60,0xce,0xa7,0x42,0x29,0xb,0x87,0xbf,0x6a,0xe5,0xe8,0x41,0xbe,0xa,0x2,0xc2,0x3c,0x80,0xca,0x41,0xc4,0x5a,0xea,0xc0,0x9a,0x8c,0x8a,0xc2,0xde,0x52,0x1,0xc1,0xf5,0xda,0x56,0xc1,0x88,0x4c,0x24,0xc2,0x4f,0xdc,0x76,0xc2,0x97,0xd5,0x47,0xc1,0xfb,0x17,0x46,0x42,0xc,0x23,0x9c,0xc0,0x23,0xe0,0x2f,0x42,0x22,0x8d,0x32,0x42,0xc7,0x81,0xd7,0xc1,0x52,0x1f,0xda,0xbf,0x79,0x9a,0xa4,0xc0,0xb8,0x72,0xa0,0x3e,0x3f,0x8d,0xd3,0xc1,0xf5,0xf3,0xe3,0xc1,0xf,0x14,0xee,0x41,0xfe,0x28,0xa,0xc2,0x40,0xbe,0xf,0x3d,0xed,0x12,0x9f,0xc1,0x66,0x59,0x51,0xc1,0x4e,0x16,0x48,0x41,0x93,0xf5,0x4f,0x41,0x78,0xde,0xd2,0xc1,0x17,0x31,0x38,0x42,0xc2,0x73,0x6e,0xc1,0x10,0x2b,0x59,0xc1,0xf6,0x95,0x81,0x3f,0x41,0x51,0xb4,0x41,0xca,0x4f,0xa3,0x41,0xce,0x40,0x95,0x40,0xba,0x77,0xa0,0x41,0x86,0x19,0x9d,0xc1,0x3b,0x22,0xe,0xc2,0xf8,0x2e,0xc,0xc2,0xcc,0x98,0x7d,0x41,0xa1,0xda,0xc5,0xc0,0x61,0x7,0x95,0x41,0xef,0x1e,0x4a,0x42,0x1e,0x1e,0x78,0x42,0xe0,0x6e,0x16,0xbe,0x32,0xa5,0xb3,0xc1,0x84,0xff,0x8f,0x41,0x90,0xca,0xf2,0xc1,0xb5,0xff,0x53,0x41,0x3,0x4e,0x0,0x42,0xd8,0x8f,0x9a,0xc1,0x3e,0x5a,0xee,0xc0,0x53,0xc2,0x58,0xc1,0x32,0x33,0x6b,0xc0,0xe2,0x9a,0x7,0x41,0x10,0xaa,0x69,0x41,0x96,0x66,0xaf,0x41,0xdb,0xf2,0x28,0xc1,0x86,0xbc,0xe,0xc2,0x42,0xa4,0xbd,0xc1,0xed,0xf1,0xd8,0x41,0x34,0x4d,0xd9,0x40,0x29,0x71,0xa4,0x41,0xb0,0x0,0x2f,0x42,0xd0,0x9f,0x9d,0x41,0xee,0x75,0x2,0x42,0x7b,0x45,0x80,0x40,0x8e,0x73,0xd1,0xc1,0xd8,0x87,0xc0,0x40,0xfa,0x7f,0x35,0xc2,0xca,0xf0,0xf4,0x3f,0x36,0xf1,0x4b,0xc1,0xee,0x54,0x42,0x41,0x97,0x9c,0xfa,0xc1,0xb7,0x9f,0x9c,0xc2,0xae,0x12,0x84,0x41,0x6c,0xf3,0x15,0xc1,0xc5,0x8c,0x9e,0x41,0x9e,0xa7,0xa6,0x41,0xd1,0x26,0x60,0xc1,0x5c,0xe1,0x6,0x42,0x5f,0xcd,0x99,0x3f,0x55,0xf,0x1c,0x42,0x18,0x92,0xe9,0x41,0xe8,0x31,0xc,0xc2,0xb5,0x54,0x28,0x41,0x77,0xd7,0x27,0xc0,0x4c,0x11,0x1,0xc2,0x4c,0xcd,0x17,0xc0,0x68,0xa8,0x59,0xc0,0x1,0x26,0x10,0x42,0x5b,0x3f,0xa0,0x42,0x8b,0x31,0x15,0xc2,0x1,0x70,0x4d,0xc2,0x7c,0xa,0x12,0x42,0xe0,0x19,0xcc,0xc1,0xa4,0x86,0x39,0x42,0xe0,0x86,0x83,0xc2,0x47,0x56,0x8b,0xc2,0xfa,0x62,0x50,0x42,0xe3,0xaa,0x21,0xc2,0x9f,0xc0,0x14,0x42,0x1c,0xa5,0xd0,0x41,0xf4,0xd1,0x93,0x3e,0xf1,0x82,0x2,0x42,0xe2,0x0,0x1d,0xc2,0xae,0x2c,0x59,0x42,0xe2,0xa2,0x31,0xc1,0x8,0x54,0x38,0xc2,0x28,0xe6,0x24,0x42,0x42,0x89,0x13,0xc2,0xca,0xa3,0x9a,0xc2,0xa3,0x39,0x10,0xc2,0x12,0x7c,0x1b,0xc1,0x78,0xd2,0xbb,0x41,0x9c,0x2b,0x78,0x40,0xfd,0x9b,0x54,0xc2,0xda,0xca,0x36,0x42,0xa8,0xab,0xae,0x41,0xc3,0x9e,0x5b,0x41,0x7b,0xd6,0x46,0xc1,0xe3,0xe0,0x7f,0xc1,0x35,0xbe,0xef,0x40,0xb7,0x34,0x34,0xc2,0x40,0x98,0x2b,0x42,0x53,0x33,0x31,0xc2,0xbe,0xb9,0xee,0xc2,0x68,0xfe,0x4b,0xc2,0xcd,0x3,0x9a,0xc1,0x1f,0x7,0x59,0x40,0xd0,0xfb,0xc6,0x3f,0x25,0x84,0x96,0x42,0x6,0xc2,0xb9,0xc1,0x88,0xc3,0x87,0xc1,0x7c,0x36,0xbf,0xc1,0x68,0xa0,0x93,0xc1,0x5d,0x56,0x8c,0xc0,0x8e,0x48,0x8f,0xc1,0x42,0x34,0xf5,0xc1,0x84,0x1b,0x2a,0x42,0xdc,0x13,0x10,0x42,0xb8,0x7e,0x70,0xc2,0x76,0xba,0x20,0x42,0xa0,0xa1,0x22,0xc1,0xfd,0x8f,0xb5,0x40,0x8,0x91,0x89,0xc0,0x2d,0x92,0xeb,0xc2,0x26,0xd8,0xfd,0x41,0x62,0x46,0xeb,0xc0,0x4c,0x14,0xbb,0xc0,0xd1,0xf0,0x56,0xc2,0x3a,0x79,0xa7,0x42,0x30,0x79,0xb6,0xc1,0x65,0xb3,0xab,0x40,0x1f,0xf0,0x61,0x42,0xb0,0x9e,0x4d,0xbf,0x9c,0x4b,0x87,0xc1,0xd,0xf4,0xcd,0xc1,0x43,0x75,0xdd,0xc1,0x75,0xbf,0x24,0xc2,0xed,0xd2,0x5,0x42,0xf,0xad,0x2e,0xc1,0xa0,0x2f,0xd1,0x3e,0x0,0xb4,0x8d,0x3c,0xf1,0x42,0x40,0xc2,0xf0,0xd8,0x42,0xc2,0x59,0xe7,0x12,0x42,0x5,0x73,0x43,0xc2,0x8,0x4a,0xc1,0xc2,0xd2,0x1c,0x20,0x41,0xed,0xc9,0x8,0xc2,0x1e,0x25,0xe8,0x41,0x79,0x7a,0xb2,0x41,0x25,0xdd,0x5d,0xc2,0x37,0x69,0x70,0x41,0xea,0x10,0xa7,0xc2,0x9f,0x27,0x54,0x40,0x3a,0x9f,0x58,0xc2,0xad,0xde,0x60,0x41,0xb0,0x1c,0xc4,0x41,0x24,0xec,0x71,0x42,0xb,0x64,0xa9,0xc2,0xb9,0xbc,0x5c,0xc2,0x97,0x51,0xf,0xc2,0xeb,0xf3,0x27,0xc1,0x5a,0x96,0xc2,0x41,0xf4,0x29,0x5f,0x42,0xae,0x91,0x2e,0xc0,0xc0,0x92,0x27,0xc2,0x6f,0x3a,0x40,0x42,0xc2,0x28,0x48,0xc1,0x2f,0x5a,0x13,0xc0,0x8b,0xb5,0x24,0x42,0x97,0x4,0x13,0xc2,0xec,0x52,0x22,0xc1,0x45,0x24,0xe,0xc2,0xf1,0xf2,0xa,0x42,0x1c,0xd9,0x77,0x40,0x20,0x79,0xfb,0x41,0x20,0x8,0x4b,0xc2,0x1a,0x39,0x16,0xc2,0xfa,0x80,0xa2,0x40,0xb7,0xea,0xb9,0x42,0xed,0xef,0x61,0x42,0x42,0x2e,0xef,0x40,0x13,0x5f,0x38,0x41,0xf4,0x1b,0x9c,0xc2,0x7e,0x3f,0xba,0x41,0x28,0x31,0x20,0xc2,0x4b,0xcd,0x53,0xc2,0x8d,0x97,0x14,0x42,0xa,0xf0,0x41,0xc1,0x71,0xbf,0x41,0x42,0xd3,0xa8,0xc2,0x41,0x94,0x2c,0x39,0xc1,0x89,0xc9,0x93,0xc2,0xce,0x6f,0xed,0x41,0x66,0xbb,0x48,0xc2,0x78,0x98,0x4e,0xc1,0x97,0x1b,0xfc,0xc1,0x80,0xd1,0x9e,0x40,0x20,0xd0,0x75,0x41,0xe,0x2d,0x79,0x41,0x53,0x6a,0x25,0x40,0x29,0xf9,0xfe,0x41,0xd4,0xb3,0x8a,0x42,0x88,0xe6,0xf4,0xc1,0xd8,0x8a,0x34,0x42,0xb5,0x13,0x35,0xc2,0x6c,0x76,0x87,0xc0,0x80,0xf0,0x69,0x42,0x65,0x27,0x93,0x41,0x8b,0x4d,0x3f,0x42,0x23,0x84,0x66,0xc1,0x17,0xf7,0xb4,0x42,0x66,0x6c,0x17,0x42,0xca,0x17,0xea,0x41,0xb8,0x16,0xb7,0xc1,0xac,0x47,0x37,0xc2,0xda,0x2e,0x93,0x41,0x9,0x4d,0xa3,0x41,0x4d,0xef,0x33,0xc1,0xc3,0xa4,0x16,0x42,0xed,0xb5,0x7c,0x42,0xcd,0x81,0x7d,0x42,0xf9,0x10,0x51,0xc1,0x87,0x44,0x1e,0x42,0x56,0xf4,0xa1,0x42,0x49,0x97,0x80,0x40,0xa0,0x8e,0x35,0xbf,0x2e,0xc1,0x95,0x42,0x6d,0xc2,0xe8,0x42,0xfb,0x4b,0x2c,0xc2,0x30,0xfb,0x11,0x40,0x5a,0xb0,0xcf,0xbf,0x85,0x7b,0xd4,0xc0,0x4e,0x59,0x93,0xc0,0x3a,0xd8,0x2c,0x42,0x3c,0xe3,0x12,0xc2,0xe6,0x51,0xc7,0x40,0x5b,0x59,0xac,0x41,0xb7,0x59,0xd5,0x41,0xc2,0xa4,0x11,0x41,0x57,0xab,0x21,0xc2,0xf1,0x33,0xdf,0xc0,0x72,0xb5,0x48,0x42,0x15,0xda,0x6,0x42,0x1d,0x31,0x83,0xc0,0x27,0x2a,0xd5,0xc0,0x92,0xf3,0x82,0xc1,0x40,0x13,0xa6,0x41,0x8b,0x9a,0x6,0x42,0x50,0x86,0xd9,0xc1,0xa5,0x10,0x1c,0xc1,0x59,0x51,0x23,0xc2,0x27,0x7c,0x59,0xc1,0x97,0x96,0xd1,0xc2,0xf0,0x46,0x8,0x42,0xa5,0x8b,0x23,0x42,0x55,0xf6,0x7,0x42,0xc5,0x22,0x49,0x42,0xd0,0x1f,0x6e,0xc2,0xee,0xd2,0x93,0x42,0xc0,0xf8,0xc,0xc2,0x1c,0x5a,0xf2,0x41,0x0,0xe4,0xfc,0xc0,0x27,0xf,0xe7,0xc1,0x69,0x1c,0x1f,0x42,0x8e,0xaf,0xaf,0x40,0x72,0xdd,0xdf,0x41,0xab,0x42,0x3f,0xc1,0xfa,0x9d,0x20,0xc2,0x11,0x7a,0x8e,0x41,0xae,0xab,0x3,0xc2,0x10,0x3a,0x8a,0xc2,0xc2,0x6d,0x8a,0xc1,0xc,0x16,0xc5,0xc2,0x2e,0x99,0x9d,0xc0,0x96,0x68,0x27,0x40,0xdd,0xc8,0xa5,0xc1,0x5d,0xa,0xc7,0x3f,0xde,0x1c,0x8b,0xbf,0xf3,0xad,0x76,0x41,0xc6,0xa1,0x28,0xc0,0x40,0x49,0xa1,0x40,0xca,0x3e,0x9,0x42,0x26,0x9a,0x16,0x40,0x8e,0x77,0x58,0x42,0x25,0x32,0x84,0x42,0x4b,0xb9,0x86,0xc2,0x40,0x31,0x1f,0xc1,0x12,0xf,0x49,0x42,0x36,0x39,0x33,0xc2,0x74,0xa8,0xda,0x41,0xe8,0x8e,0x3a,0x42,0x17,0x1e,0xac,0x42,0xe5,0xfd,0x39,0x42,0xed,0xb,0xc,0xc2,0x90,0x48,0x68,0x42,0x8b,0x34,0xe6,0xc2,0x38,0xf5,0x84,0xbe,0xb8,0x51,0xed,0x41,0xba,0xa9,0x97,0x40,0x76,0x86,0x8a,0x41,0xdb,0x3,0x9a,0xc1,0x32,0xf0,0x73,0x41,0x88,0xea,0x6,0xc2,0xad,0x20,0x9d,0x42,0x1e,0x38,0x2,0x42,0xa2,0x67,0xcb,0xc0,0x38,0xe7,0xa2,0xc2,0x93,0x2e,0xcf,0xc1,0x18,0xc2,0x63,0x42,0x51,0x61,0xdc,0x41,0xd6,0xd3,0x81,0xc1,0xb7,0x26,0xba,0x40,0x76,0xc5,0x81,0x42,0x73,0x2b,0xa9,0xc2,0x68,0x3e,0x40,0xc1,0x2e,0x7c,0x67,0x41,0x75,0x16,0xf2,0x41,0x16,0x6d,0x1c,0xc2,0x7b,0xf2,0x14,0x42,0x50,0xf6,0x9d,0x41,0x31,0x14,0xa0,0x41,0x1e,0xed,0x33,0x42,0x9e,0xc9,0xa4,0x42,0x70,0x4,0xba,0x40,0x1b,0x6e,0xe2,0x40,0xba,0x4b,0x91,0x42,0xda,0x38,0x8f,0xc2,0xb2,0x2,0x42,0xc1,0xa,0x37,0x8e,0xc1,0xd7,0xa,0x66,0xc2,0xd3,0x76,0x7f,0x41,0x82,0xe4,0x4f,0xc1,0x98,0x93,0x2a,0x42,0x68,0x6f,0xcc,0xc2,0xe,0x1c,0x30,0x42,0xc5,0x56,0x45,0x42,0x62,0x2,0x56,0xc1,0xf2,0x93,0x1,0xc1,0xf2,0x99,0x6f,0x42,0x32,0xed,0xd0,0x41,0x71,0x90,0xdf,0x41,0x59,0x28,0x3b,0xc2,0xf,0xa8,0xcc,0x42,0x30,0x1c,0x69,0xbf,0xf0,0xd3,0x55,0x40,0x57,0xa1,0x58,0x42,0x34,0xee,0x84,0xc2,0x3f,0xe8,0x88,0x41,0xec,0x45,0xbb,0xc0,0xcf,0xa7,0x79,0xc2,0xd4,0xc7,0x28,0x41,0x61,0x1c,0x97,0x42,0xc,0xfd,0x8b,0xc2,0xec,0x58,0xd0,0x42,0xb6,0xb7,0x55,0x40,0x1,0xec,0xb3,0x41,0x10,0xc6,0x10,0x41,0xec,0x6e,0x99,0xc1,0xb7,0x7d,0xa3,0xc2,0xd2,0xdc,0x46,0x42,0x92,0x1d,0x9d,0x41,0xe8,0xb,0x2,0x42,0x80,0x7f,0x21,0x42,0x12,0xe7,0x3a,0xc2,0x37,0xc2,0x69,0x42,0x60,0x61,0x39,0xc1,0x1a,0xdd,0x2,0x42,0xd2,0x28,0x80,0x41,0x84,0x28,0xa1,0xc1,0xdc,0xe9,0x1b,0xc2,0x58,0x76,0x84,0xc2,0x2b,0x52,0xe1,0xc1,0x39,0xdc,0x42,0xc2,0x94,0xb9,0xee,0x41,0xf3,0x9e,0x9b,0x41,0xec,0xaa,0xee,0xc1,0x92,0xff,0xd4,0xc2,0xb5,0x7d,0x99,0x42,0x7c,0x9b,0xc8,0xc1,0x30,0x3,0x8,0x42,0xc1,0xaa,0xd1,0x42,0x55,0xac,0x4b,0x41,0xe5,0xd8,0xa0,0xc2,0xf,0xc6,0x78,0xc2,0x13,0x23,0xf1,0xc1,0xed,0x1f,0x75,0x42,0xca,0x71,0xb6,0xc2,0x66,0x30,0x22,0xc2,0xcc,0xe8,0x2f,0x42,0x2,0xff,0xcb,0xc1,0x17,0xad,0x7d,0xc2,0xc2,0x6e,0x8c,0xc1,0xe8,0xc,0x4e,0xc1,0xf6,0x95,0x34,0xc2,0xd6,0x12,0x5f,0xc2,0x22,0x76,0x2f,0x42,0xaa,0xb9,0x81,0x41,0x88,0xf7,0xb5,0xc2,0xb2,0x9d,0x1d,0xc2,0xcf,0x97,0x37,0xc2,0x7d,0x65,0xe2,0xc1,0x2e,0xb7,0x83,0xc1,0xbd,0x35,0xa2,0x41,0x62,0x94,0x53,0xc2,0xf0,0x31,0x4e,0x41,0x53,0x5c,0x97,0xc2,0x1,0x91,0x81,0xc2,0x53,0x1,0x1c,0xc2,0x8c,0x21,0xab,0x41,0x74,0x91,0x7d,0xc1,0x9d,0x5,0x59,0xc2,0x9c,0x51,0x9d,0x42,0xc0,0x9d,0x9b,0xbe,0x7a,0x7c,0x11,0xc2,0x9,0x3a,0x1,0xc1,0x80,0x3c,0x9d,0xc0,0x74,0x87,0x95,0x41,0xbb,0xda,0x6f,0xc2,0xed,0x7,0xf4,0x41,0xff,0x56,0x13,0xc0,0xae,0x4d,0x6,0xc2,0x6f,0x29,0x4c,0x42,0xf5,0x56,0xfa,0x41,0x8c,0xd0,0x7f,0xc1,0x63,0xa8,0xef,0x41,0x6e,0x2a,0xf7,0xc0,0x70,0x89,0x5d,0x42,0x1f,0x26,0xf0,0xc0,0x54,0xbb,0xda,0xc1,0x3,0x38,0x27,0x42,0x96,0xbf,0x26,0xc2,0xc,0x18,0xca,0x41,0x72,0xff,0x8e,0xc0,0xe0,0x6f,0x43,0x3e,0x39,0x65,0x4c,0xc2,0xd5,0xd2,0xe2,0xc0,0x23,0x9f,0x4,0xc2,0x4c,0x69,0x20,0xc2,0xab,0x3b,0xea,0x41,0x87,0x8d,0x64,0xc1,0xeb,0x9f,0xe2,0x40,0x8a,0x39,0x86,0xc2,0x74,0xef,0x34,0xc1,0x72,0x43,0x72,0xc1,0x1c,0xae,0x69,0xc2,0x1e,0x87,0xa,0xc2,0x7f,0xca,0xc0,0xc1,0x2a,0xdf,0x75,0x41,0x72,0xcf,0x7e,0xc2,0x5e,0xb3,0x25,0xc0,0x22,0x82,0x61,0x42,0x30,0x89,0xd6,0x41,0x70,0xc9,0x8a,0x41,0xf2,0xbd,0x5f,0xc1,0x68,0x5a,0x9c,0xc2,0x5e,0xfc,0x75,0x42,0x78,0x50,0x38,0x3e,0xc6,0x77,0xa8,0xc2,0x97,0x6f,0x91,0xc1,0x90,0x26,0x47,0x42,0x4e,0x47,0x77,0x42,0x24,0x21,0xaa,0xc2,0xde,0x31,0x26,0x42,0xa1,0x99,0x56,0x42,0xf9,0x9c,0x75,0x41,0xe,0x62,0x96,0xc2,0x30,0x6d,0xb3,0xc0,0x0,0x35,0xc5,0x3d,0x20,0xa5,0x6,0x3e,0x94,0x3f,0x2b,0xc2,0xe3,0x56,0x9b,0xc1,0x60,0x82,0x85,0x41,0x40,0x2c,0xe4,0xc1,0xb5,0x59,0x1c,0xc0,0xd8,0x9f,0x88,0xc1,0x66,0x56,0x1b,0xc0,0xfc,0x9b,0x18,0xc2,0x66,0x65,0xdf,0xc2,0x95,0x32,0x66,0xc1,0x41,0x64,0xd0,0xbf,0x30,0xc1,0xa3,0xc1,0x8a,0x2b,0x5c,0x42,0xe6,0xb2,0x4f,0xc1,0x39,0xda,0x4d,0xc2,0x85,0x56,0x62,0xc2,0xec,0xa,0x66,0xc2,0x3e,0xdd,0x36,0xc2,0xfe,0x64,0x14,0x42,0xca,0xcd,0xb8,0x41,0x50,0x18,0xae,0x42,0x78,0xb4,0xcb,0x40,0x8d,0x3,0x9d,0xc1,0xaf,0x80,0x90,0x41,0x38,0xe,0x35,0x41,0xe4,0xf6,0x99,0xc1,0xb6,0xd7,0x73,0x41,0x3c,0xa6,0x2c,0xc2,0x95,0x7e,0x9a,0xc2,0xf9,0x69,0xe0,0xc1,0x66,0xdf,0x20,0x42,0xc5,0x92,0xb7,0x42,0x5d,0x3,0xf7,0xc1,0xf0,0x97,0xf9,0x41,0x6b,0xb4,0xc2,0xc2,0x1e,0xfa,0xdc,0xc0,0x98,0xc6,0xea,0xc0,0xaa,0xc2,0xb1,0xc1,0xaa,0xdd,0x3c,0x41,0x88,0x70,0xf1,0xc0,0xad,0xc1,0xbe,0x41,0xae,0x50,0xbf,0x42,0x32,0x98,0x9f,0x41,0xba,0x49,0x6d,0xc2,0x6e,0xc9,0xd5,0x42,0x10,0x5e,0xf0,0xc1,0x4c,0xe,0x5,0xc2,0x5,0x4e,0x62,0xc1,0x9f,0xbe,0xfc,0x41,0x16,0xc3,0x4f,0x41,0xae,0x65,0x25,0xc2,0x6c,0xcf,0x6,0x3f,0xd3,0xf9,0xa2,0x41,0xef,0xfb,0x65,0x41,0x5a,0x3,0xa2,0x41,0xea,0x1e,0xae,0x41,0xee,0x16,0x55,0x42,0xca,0xfc,0x69,0x40,0x22,0x18,0x85,0x42,0xcc,0x6a,0x24,0x42,0xc5,0xee,0xa3,0x42,0xba,0xdf,0xba,0xc0,0xcf,0xd9,0x9,0x42,0xce,0x13,0xcc,0xc1,0xc2,0x38,0xb8,0xc0,0xe4,0x99,0x2,0x42,0x1c,0xb5,0x9b,0xc0,0x25,0xec,0xc6,0xc1,0x6d,0xf1,0x41,0x42,0xe,0xd6,0x7c,0x42,0x73,0xfe,0x1,0x42,0x39,0x8a,0x4,0xc1,0x7d,0x87,0xe0,0xc1,0xa4,0xd8,0xf1,0xc1,0x13,0xa7,0x58,0x41,0x47,0x66,0x81,0x42,0xdd,0x7d,0xde,0xc1,0x1f,0x21,0x66,0xc2,0x59,0x6d,0xea,0x41,0x58,0xd4,0xea,0xc1,0xde,0x4,0x6,0x42,0xbf,0x94,0xe5,0xc1,0xf7,0xd8,0x22,0xc2,0x2,0x5e,0xd9,0x42,0x56,0x63,0x51,0xc2,0x7a,0xc2,0x40,0xc2,0x48,0x21,0x4b,0xc2,0x72,0x45,0x3a,0xc0,0xea,0x5a,0x81,0xc2,0x37,0x1,0x4d,0xc2,0xaf,0xe,0x77,0xc2,0xec,0x77,0x4c,0x41,0xf3,0x9e,0x37,0xc0,0x87,0xec,0xf8,0x41,0x8d,0x4c,0x2d,0x41,0x34,0x29,0x4b,0x40,0x85,0x8b,0x83,0x41,0x1b,0xd0,0xe6,0xc1,0x91,0x5b,0xe1,0xc1,0xc6,0xdf,0x37,0xc2,0x65,0x92,0x93,0xc1,0x12,0xe0,0x15,0xc1,0xbb,0xfd,0xc6,0x41,0x74,0xd7,0xec,0xc1,0xa8,0xd1,0xdc,0x41,0xc2,0xbd,0xdd,0xc1,0xdc,0x9e,0x3f,0x41,0x84,0x1b,0xe7,0xc1,0x60,0x45,0x7,0xbe,0x68,0xc2,0xd7,0xc1,0xb2,0xa8,0x8a,0xc2,0x4e,0x56,0x59,0x42,0xe6,0xaf,0x53,0x41,0x37,0xd5,0xdc,0x41,0xa5,0x30,0xa6,0xc0,0x6b,0x59,0x0,0x42,0xff,0x77,0xda,0xc1,0x74,0x46,0x41,0xc0,0x34,0xab,0x98,0x41,0x4e,0x1f,0xba,0x40,0x6d,0x39,0xc3,0x41,0x7c,0x68,0x25,0x40,0x4c,0x29,0xad,0xc2,0xd3,0xff,0x1f,0xc1,0x69,0xae,0x33,0x42,0xa8,0x31,0x4e,0xc2,0x87,0x41,0x82,0x41,0xe9,0x6c,0xb1,0xc1,0x4a,0xb3,0x67,0xc1,0x99,0xcf,0x6d,0x41,0x1a,0x5f,0x80,0x42,0xd2,0xe9,0x32,0xc1,0xbb,0xd7,0x1,0x40,0xb6,0xdd,0x15,0x41,0x9b,0x61,0x73,0xc2,0xcc,0xbb,0xde,0xc1,0x1f,0xbe,0x83,0xc2,0x16,0x1c,0x25,0xc1,0xc,0x93,0xdb,0xc0,0x7d,0xfb,0xb2,0xc0,0xd0,0x43,0x12,0x42,0xc8,0x10,0x1c,0x42,0xe2,0x11,0x33,0xc2,0xd2,0x3c,0x81,0xc1,0x7e,0x51,0x93,0xc0,0x7c,0xb8,0x1b,0x42,0x33,0x20,0xd2,0xc1,0xdb,0x57,0xbc,0xc1,0xf8,0x91,0xad,0xc0,0x7d,0x53,0xfd,0xc1,0xdb,0x5b,0x44,0x42,0x20,0x47,0xfc,0x40,0x98,0xa8,0xd3,0xc1,0x9d,0x73,0xc7,0x41,0xcc,0xe5,0x8e,0xc2,0x6b,0x97,0xa4,0xc2,0x1e,0xa,0xa6,0xbf,0xa9,0x2b,0x4c,0x42,0xd6,0xcf,0xeb,0xc1,0x48,0x2e,0xb5,0x41,0x49,0xa2,0x1c,0x41,0x7e,0x9c,0xc4,0xc1,0x98,0xc4,0x5d,0xc1,0xd,0xd4,0x54,0x42,0x48,0x96,0xae,0xc2,0xdd,0x8c,0xc2,0x42,0x96,0xec,0x73,0x42,0x8e,0x73,0xa4,0x40,0x12,0x56,0x75,0x40,0x8a,0x29,0x2c,0x41,0x39,0xc2,0xc,0xc2,0xce,0x14,0x79,0x42,0xda,0x20,0xb8,0x41,0xa8,0xa7,0xcd,0xc1,0xe0,0xed,0x80,0x41,0x7d,0xe0,0x25,0xc2,0xb8,0xd1,0x8a,0x42,0x95,0xbe,0xb5,0x42,0xf2,0x6c,0x17,0x42,0x5a,0x4d,0xf2,0x41,0x3e,0x8d,0x18,0xc1,0xf4,0x3f,0x2a,0xc2,0x19,0xbb,0xa9,0xc2,0xee,0xcf,0xe8,0x41,0x20,0xb7,0x48,0x42,0x4b,0xaf,0x2b,0x42,0x6b,0xf7,0xf9,0xc0,0xa3,0x88,0x1d,0x42,0x46,0xe8,0x7f,0x41,0x57,0xbb,0x55,0x42,0x57,0xd5,0xdd,0xc1,0x98,0x45,0x8a,0xc0,0xa2,0x7b,0xa,0x41,0x8a,0xe5,0x62,0x42,0x73,0x70,0x7c,0x42,0x3f,0xfe,0x4a,0xc2,0x3e,0xcf,0x9a,0xc2,0xc0,0xc1,0x99,0xc2,0x0,0x3c,0xdc,0xc1,0x95,0xc0,0x5e,0x42,0x59,0xf,0x33,0xc2,0xbb,0x3b,0x2f,0xc2,0xd2,0x95,0x60,0xc1,0x84,0x92,0x3d,0x41,0xf4,0x72,0x8b,0x42,0x3c,0x72,0xbf,0xc1,0x7a,0x51,0xa3,0x42,0xa2,0x51,0x88,0x41,0xe0,0x19,0x36,0x42,0x7,0x31,0x81,0xc2,0xdc,0xb8,0xe9,0x41,0x78,0x67,0xec,0xc1,0x72,0x3,0xdc,0xc1,0x78,0x43,0x95,0xc1,0xfc,0x6d,0x0,0xc2,0x9d,0x6,0x87,0x42,0x17,0x92,0x79,0xc2,0x99,0xd4,0x9c,0x42,0xba,0x61,0x2,0x42,0xf4,0xf8,0x37,0xc1,0xe1,0xc,0x1,0xc2,0xd7,0x2c,0x72,0xc2,0xa3,0x93,0x9e,0x42,0xeb,0x33,0xba,0xc1,0x98,0x98,0xf6,0xc1,0x23,0xe6,0x17,0xc2,0x6e,0x58,0xe7,0x41,0x52,0xb2,0x10,0xc2,0xc2,0x39,0x85,0x42,0xe,0xb6,0x5c,0x42,0x60,0xd8,0x12,0x41,0xdc,0x98,0xef,0x41,0xba,0xf0,0x60,0x42,0x42,0x1b,0xda,0x41,0x6,0x8d,0x65,0x42,0x1b,0xc1,0x47,0x42,0xa4,0xdf,0x37,0xc2,0xfc,0x3c,0xbd,0x40,0xf5,0x46,0x23,0xc2,0xb4,0x2f,0x75,0xc1,0x54,0xb6,0xa6,0x3f,0x6c,0x81,0x4a,0x42,0xdd,0x3,0x33,0xc2,0x83,0x74,0x56,0xc0,0xe7,0xf1,0x2f,0x42,0xfb,0x25,0x4a,0x41,0xac,0xc9,0x67,0xbf,0xc3,0xf3,0x50,0x42,0x10,0xb1,0xde,0xc1,0xa5,0x55,0x1c,0xc1,0xdc,0x94,0x5d,0xc1,0x74,0xf5,0xd,0x42,0x0,0x14,0xb1,0x41,0xb8,0x80,0x6f,0xc2,0x4c,0x9a,0x9a,0xc1,0x79,0x87,0x67,0x42,0x3d,0xfc,0x89,0xc2,0xa7,0xa2,0xac,0xc1,0xee,0xb6,0x32,0xc1,0x14,0xbf,0x7e,0xc0,0xcf,0xb3,0xa9,0x41,0x54,0x75,0x48,0x42,0xce,0x79,0x5a,0xc2,0x63,0xc3,0x26,0xc1,0x3f,0xd2,0x9b,0xc1,0x18,0xf4,0xd1,0xc0,0xf1,0xc5,0x4a,0xc1,0xab,0x5a,0x0,0x42,0xc7,0x57,0x3,0x42,0xf4,0xb0,0xe8,0x41,0x4,0x9b,0xbe,0xc2,0x8,0x6e,0xa5,0xc1,0xd7,0x90,0x31,0xc2,0x55,0x6d,0xe,0x40,0xf2,0x50,0x65,0xc1,0xeb,0x35,0x12,0xc2,0x40,0x25,0xf5,0x41,0x67,0x8e,0x92,0x41,0x24,0xa5,0x3e,0x41,0xa4,0x92,0x59,0xc2,0xec,0xe7,0xcf,0xc0,0x14,0x66,0x43,0xc2,0x30,0xe2,0xe3,0x41,0xb0,0xfd,0x77,0xc2,0xf6,0xdd,0x11,0x42,0xf3,0x5b,0x1f,0x41,0x3e,0xe7,0xe3,0xc1,0xe3,0xa9,0x4,0x42,0x3,0x48,0xc5,0xc1,0x38,0xd5,0x81,0xc1,0x8a,0x1,0xaf,0xc2,0x1b,0x4f,0xb,0x42,0x56,0x6d,0x14,0xc2,0x63,0xab,0x4,0xc2,0x6b,0x3c,0x81,0xc0,0xa0,0xf6,0x94,0x41,0x5d,0xae,0x5a,0x42,0xa4,0x7,0x1a,0xc0,0xc3,0x10,0x31,0x42,0x5e,0x49,0x83,0x41,0xab,0x1a,0x30,0x42,0x63,0x6,0x8d,0xc2,0x8a,0xed,0xa,0xc2,0x4a,0x23,0xf6,0xc0,0xe2,0xc7,0x74,0xc2,0x39,0x3c,0x17,0xc2,0x42,0xb1,0x1d,0xc1,0x74,0x75,0x19,0xc1,0x2e,0xd7,0x22,0x42,0x8b,0x37,0xe4,0x41,0xd7,0x39,0x8d,0xc2,0xf8,0x15,0x78,0x42,0x86,0x2e,0x87,0xc2,0x50,0x92,0x3b,0xc1,0x5a,0xb9,0xf3,0xc1,0xfc,0x80,0x8,0xc2,0x4b,0x1c,0x7,0x41,0xce,0xe8,0x17,0x42,0xbb,0x1c,0xad,0xc1,0xc4,0x42,0x66,0xc0,0x97,0xd,0x2f,0xc2,0x82,0x8f,0x22,0x41,0xc2,0x58,0xb9,0x3f,0xf7,0x65,0x56,0xc1,0xc6,0x67,0x93,0x41,0x14,0x94,0x44,0x42,0xca,0x7d,0x5a,0xc2,0x16,0x83,0xd7,0x41,0x66,0xe3,0xa1,0x41,0xf0,0xb3,0xb7,0x3e,0xef,0xa7,0x73,0xc2,0xc6,0x48,0x77,0xc2,0xf3,0x7b,0x92,0xc1,0x9a,0x3c,0x99,0x41,0x5e,0xcb,0x1b,0xc2,0x3d,0x74,0x5d,0xc2,0x8f,0x90,0x82,0xc1,0x44,0xf5,0xa,0xc2,0x2d,0x81,0x7f,0xc1,0xe3,0x75,0x11,0x42,0xe5,0xda,0x84,0xc0,0x31,0xd8,0xc4,0x42,0xce,0xc,0x1,0x42,0x10,0x14,0xbb,0xc0,0xb9,0xe6,0x2c,0x42,0x4a,0xc6,0xc4,0x3f,0x4f,0xaa,0xf2,0x41,0x65,0x7,0x49,0xc2,0x11,0x8c,0x2d,0xc2,0x91,0xae,0xb5,0xc2,0x32,0xc8,0x23,0x42,0x56,0x2f,0xa8,0xc0,0x50,0x8f,0xc8,0x40,0x6,0x49,0x99,0x41,0xac,0xeb,0x73,0x42,0x60,0x6f,0xd8,0xc1,0xe5,0xb1,0x1b,0x42,0xae,0x26,0x1a,0x42,0xb9,0xfa,0xf3,0xc0,0x57,0x9f,0x1a,0x42,0x4c,0x73,0xb8,0x41,0x95,0x27,0x28,0x42,0x52,0xbc,0x93,0xc2,0x89,0xb7,0xf9,0x40,0x1c,0x24,0x98,0x41,0x15,0x67,0x54,0x42,0x88,0x13,0xd4,0x41,0x28,0x96,0x3,0xc1,0xf1,0x92,0xb2,0xc1,0x7c,0xd1,0xa4,0xc1,0x8,0x29,0x96,0xc1,0xbd,0xff,0x5b,0xc2,0xad,0x3c,0x3c,0x42,0x4a,0xe,0x9a,0x40,0x50,0x4f,0xef,0x40,0x35,0x23,0x2a,0x42,0xe4,0x7,0x54,0xbf,0xc,0x9d,0x25,0xc2,0x4b,0x1a,0x62,0x41,0xd0,0xd8,0x0,0x40,0x24,0xdb,0xa5,0xc0,0x2a,0x5e,0x23,0x42,0x5c,0xd,0xf0,0xc0,0x52,0xa6,0x72,0xc0,0xe2,0xdb,0xed,0x41,0x1c,0x73,0xfa,0x41,0x3,0xec,0x99,0xc1,0x6b,0x6b,0x12,0x41,0xb6,0xcc,0xd4,0xc1,0x33,0x53,0x21,0x42,0x68,0x6a,0xa5,0x42,0x2a,0x84,0xe4,0x41,0x1e,0xe2,0xca,0x41,0x2a,0xcc,0x61,0x41,0x96,0x62,0x7b,0xc2,0x4,0x4,0xa0,0xc2,0x70,0x75,0x81,0xc1,0x61,0x73,0xfa,0xc1,0x5e,0xc6,0x22,0x42,0xe8,0xa6,0x80,0x41,0x17,0xdd,0x91,0x41,0x35,0xa6,0x7d,0x42,0xaa,0x58,0xbe,0x42,0x46,0xd3,0x1e,0xc1,0xe8,0x4c,0x78,0xc2,0xfb,0x14,0x4b,0x41,0xaa,0x4c,0xd0,0x41,0xcd,0x1f,0x8e,0x41,0x59,0x83,0xde,0xc1,0xd3,0x6,0xdc,0xc1,0xc0,0x13,0xb3,0xc2,0xd0,0x1d,0x75,0x3e,0x5a,0x86,0x3e,0xc2,0xf8,0xf9,0x5e,0x41,0xe,0x70,0x59,0x42,0x12,0x8,0x43,0x40,0xaf,0xd5,0xd8,0x41,0x76,0xe8,0x63,0x41,0xc4,0x7b,0x84,0xc1,0x38,0x59,0xe0,0x40,0x45,0x97,0xe0,0x41,0xf8,0xc7,0xf8,0x40,0xc8,0xae,0xa9,0x3e,0x4b,0xe,0xb8,0x41,0xe8,0xef,0x39,0xc1,0xcc,0x2c,0x8c,0xc2,0x25,0x0,0x81,0x40,0x27,0x1b,0xe1,0xc1,0x8,0xd7,0xa8,0x41,0x17,0x5,0x91,0x41,0x49,0xfe,0xc,0x42,0x94,0x90,0x13,0x41,0x57,0x72,0xdf,0x41,0x67,0x66,0x54,0xc2,0xd4,0xf8,0x1f,0x42,0xc9,0x60,0x10,0x42,0x31,0xb2,0xbc,0xc1,0xed,0xca,0x50,0xc0,0x59,0xc8,0x7e,0xc2,0xec,0x5,0xa0,0x40,0x1c,0xf9,0xe5,0xc0,0x33,0xaf,0xda,0x42,0x95,0x59,0x26,0x42,0x67,0x7b,0x6c,0x42,0x91,0x1c,0x1,0x42,0x60,0x70,0xcd,0x40,0x20,0x1c,0x64,0x40,0xb4,0x31,0x44,0x41,0xa7,0xeb,0x86,0xc1,0x1d,0xdc,0x69,0x40,0xaf,0x5a,0x49,0xc1,0x54,0x65,0x17,0xc2,0x13,0x71,0xbd,0xc1,0xdc,0x9d,0x45,0x42,0xa5,0x90,0xda,0x41,0xe1,0x83,0x64,0x42,0x84,0xf3,0xeb,0x41,0xc,0x7b,0x85,0xc2,0x51,0xfe,0x25,0x42,0x8,0xda,0xdb,0xbf,0x80,0x9c,0xa7,0x42,0x19,0x79,0x8b,0xc1,0xfa,0xa4,0xa9,0xc1,0xa4,0xed,0x23,0x42,0x0,0xd0,0xb,0xc0,0x63,0x1d,0x84,0x40,0x5c,0x10,0xaf,0xc2,0x1e,0x65,0x9b,0xc1,0x6c,0x87,0x13,0x42,0xa9,0x9b,0x33,0x42,0xe7,0x85,0x56,0xc2,0x84,0xfb,0x2c,0x41,0xc8,0xc0,0xa5,0x40,0xce,0x56,0xb6,0xbf,0x6a,0xa7,0xd4,0xc1,0x5a,0x2e,0x86,0xc1,0x8f,0x3,0x7f,0x41,0x64,0x9f,0x76,0xc1,0xb3,0xfa,0xd2,0xc1,0xeb,0x47,0x77,0xc2,0x7d,0x57,0x3,0x42,0xc,0x11,0x47,0xc1,0xde,0x95,0xb6,0xc1,0xfd,0x98,0x53,0xc1,0x43,0x5e,0x34,0xc2,0x6b,0x55,0x90,0xc2,0x4c,0x52,0x4d,0xc2,0x76,0x17,0xdf,0x41,0x24,0x53,0x2a,0xc2,0x82,0x65,0x1f,0x42,0x56,0xc,0x10,0x42,0x0,0x3d,0x3f,0xc1,0xe1,0x3b,0x27,0xc2,0xb7,0xa4,0xbc,0xc1,0x9a,0x9d,0xb0,0x41,0xae,0xe2,0x17,0xc2,0xdf,0x33,0xaf,0xc1,0x26,0x7b,0x81,0x41,0xc1,0x98,0xb9,0x41,0x80,0x27,0x90,0x42,0xc4,0x3d,0x1,0xc2,0x9b,0xae,0x92,0xc1,0x1c,0x1f,0xcb,0x3f,0xf2,0xce,0xd7,0xbf,0x2d,0xda,0x95,0xc1,0x58,0x15,0xeb,0xc1,0x62,0xf0,0x99,0xc1,0x49,0x2a,0xc6,0x40,0x66,0x5f,0x22,0xc1,0x45,0x11,0x48,0xc2,0x15,0x66,0x62,0x41,0xc0,0xd4,0x6c,0x42,0xd4,0xda,0xf9,0x41,0x6f,0xee,0x37,0xc1,0xa0,0xb6,0x8a,0xc1,0x2c,0x58,0x1a,0xc0,0x5f,0x97,0x34,0x42,0xdd,0xa9,0xca,0xc1,0x1c,0x13,0xcd,0xc1,0x33,0xfe,0xe7,0xc1,0x19,0xb9,0x20,0xc2,0xbd,0x27,0xfe,0x41,0xee,0x2e,0x4,0xc2,0xf7,0x55,0x62,0xc2,0x20,0x36,0xe0,0xc0,0xbc,0xf4,0xca,0xc1,0x27,0xbc,0x45,0x42,0x78,0x12,0x84,0x41,0x24,0xee,0xf3,0xc1,0xae,0xb8,0x24,0x41,0x7e,0xe8,0xb7,0x41,0xa6,0x50,0x61,0xc2,0x2c,0xe6,0x7b,0xc2,0xaf,0xa3,0x44,0x41,0xec,0xd3,0x9c,0x40,0x52,0xab,0xe7,0x41,0xd8,0xb2,0xa5,0x41,0x39,0xbb,0xb0,0xc1,0xb1,0x2b,0xa1,0x40,0x43,0xa8,0xe4,0xc2,0xb1,0x88,0xca,0xc0,0x74,0x35,0xf3,0x41,0x9a,0x7a,0x8a,0xc1,0x5b,0x4b,0xc5,0xc0,0x5,0x5d,0x4e,0xc0,0x10,0x86,0x1d,0xc2,0xfc,0xc6,0x3d,0x41,0xff,0x98,0xf3,0x40,0xe9,0x48,0xa8,0xc1,0xcd,0xc3,0xc6,0xc1,0x0,0x20,0x31,0xc1,0x9d,0x6f,0x8f,0x41,0x3e,0x3b,0x4c,0x42,0x64,0xf4,0x4b,0xc1,0x95,0xb5,0x44,0x42,0x1a,0xbd,0x40,0xc1,0x68,0x6f,0xaa,0xc0,0xb0,0xfd,0x7b,0x42,0x68,0x1b,0xd,0x42,0xfc,0xe2,0x29,0x42,0x12,0x72,0x28,0xc0,0x3d,0x8e,0x94,0xbe,0x40,0xce,0x5e,0xc0,0x4f,0x55,0x43,0x42,0x53,0x42,0xab,0x41,0x14,0x37,0xa5,0x40,0x6e,0x8,0x73,0xc1,0xd4,0x1a,0x48,0x40,0x60,0x49,0xea,0x3f,0xe4,0xc7,0x4d,0x42,0xb8,0xad,0x7c,0xc2,0x20,0x66,0x30,0xc0,0x36,0x67,0x62,0xc1,0x27,0x79,0x17,0x42,0x5b,0xef,0x91,0x41,0x1,0x2e,0xa2,0xc2,0x9a,0x46,0xb4,0x41,0xae,0x93,0xd7,0x40,0x4c,0x67,0x5d,0x42,0x55,0x41,0xff,0xc1,0x5d,0xb4,0x71,0x42,0x55,0x4e,0x96,0x42,0x60,0xb8,0x15,0xbf,0x67,0x8d,0xc,0xc2,0xa7,0x8b,0x1b,0x42,0xf9,0x9e,0x6d,0xc1,0xf5,0x83,0x8,0xc2,0xaa,0x2d,0x72,0x42,0xfd,0x5e,0xd8,0xc1,0x4,0x0,0x38,0x41,0x23,0x7f,0x7,0xc2,0x97,0xa7,0x59,0xc1,0xf4,0x84,0x34,0xc1,0xcc,0xd6,0x38,0xc1,0x5e,0xce,0xd4,0xc0,0x5a,0x51,0x23,0x41,0x79,0x87,0x82,0xc1,0x98,0x28,0xae,0xbf,0xb4,0xee,0x5a,0xc1,0xc0,0xf6,0x64,0xc1,0x54,0x1c,0x9d,0xc1,0xb,0x9b,0xf5,0xc0,0x1e,0x96,0x41,0xc1,0x0,0x82,0x8b,0xbc,0x14,0x9d,0x88,0xc1,0x1a,0xbe,0x5e,0x42,0xa2,0xe3,0xf8,0xc1,0xd8,0xd9,0xd,0x42,0x3b,0xf6,0xb0,0x41,0xaa,0x3a,0x83,0xc1,0x8c,0x1c,0x40,0xbf,0xff,0xd7,0x79,0xc1,0x3a,0x35,0xd,0xc2,0xdb,0x21,0xb0,0xc1,0x12,0x55,0x2d,0x41,0xc7,0x61,0xea,0x41,0xfe,0x1d,0x53,0x41,0x96,0x8a,0xe,0xc1,0x9f,0xc1,0x27,0x42,0x76,0x10,0x99,0x41,0xe4,0xd4,0xc7,0xc0,0xb7,0x65,0x63,0xc1,0xf7,0x5e,0x1d,0xc1,0x83,0x3b,0xe6,0xc1,0x17,0xac,0x5d,0xc2,0xb6,0x58,0x24,0xc0,0xa2,0xbf,0x65,0xc2,0xf7,0xd1,0xc2,0x41,0xce,0xd3,0xc9,0xc1,0xb3,0x3e,0x84,0x40,0x6c,0x77,0x4,0xc2,0xee,0x55,0xcb,0x40,0x3e,0x17,0xa9,0xc1,0xc5,0x94,0x7,0xc2,0xe9,0xa6,0x68,0xc2,0xa4,0x82,0xcc,0x40,0xc2,0x28,0xfa,0xc0,0xee,0xdb,0xff,0xc1,0xd4,0x87,0x5e,0x41,0x80,0xd2,0xb1,0x41,0x3c,0x4e,0x86,0x41,0x84,0xde,0xd1,0x41,0x59,0xac,0x2e,0x42,0x49,0xe7,0xb0,0xc0,0x5d,0x4a,0x4,0xc2,0x64,0xf9,0x8b,0x42,0x53,0x28,0xfb,0xc1,0x32,0xbe,0xe3,0xc1,0x80,0x9e,0xa4,0x40,0xc1,0x0,0x41,0x41,0x13,0x60,0xee,0xc1,0xd7,0x36,0x57,0xc2,0xac,0x95,0xf2,0x40,0x8a,0xdf,0x5d,0x42,0x48,0xa5,0x7c,0x41,0x85,0x68,0xbc,0xc0,0xe0,0x62,0x8d,0x42,0xc,0xb9,0x29,0xc2,0x64,0x93,0x2d,0x41,0x2f,0x73,0xdb,0xc1,0x53,0x9c,0x16,0xc2,0x74,0xda,0xe0,0x41,0xa6,0xca,0x19,0xc2,0x52,0x51,0x2d,0xc2,0x48,0x48,0x98,0xc0,0xc2,0x48,0x41,0xc1,0xe6,0xba,0x84,0x41,0x6f,0x87,0x1e,0x41,0x68,0xa2,0x95,0xc1,0x2e,0xef,0x93,0xc1,0x3e,0x19,0xea,0x40,0x95,0x6e,0x81,0xc1,0x8d,0x70,0xc8,0x41,0xe5,0x11,0x60,0xc2,0x32,0xc9,0xcd,0xc1,0x26,0xfb,0x20,0xc1,0x6b,0x5e,0x46,0xc2,0x22,0x72,0x7a,0x41,0x9f,0x54,0xdf,0xc1,0x13,0x46,0x90,0x40,0x50,0x81,0x85,0x3f,0x66,0x71,0x17,0xc2,0xc4,0x63,0xbf,0x40,0xea,0xc5,0xea,0x41,0x68,0x3a,0xa4,0xc0,0x84,0x3f,0xaf,0xc1,0xd8,0xab,0x23,0xc2,0x4e,0xca,0x86,0xc1,0x93,0x16,0x1d,0x42,0x36,0xbc,0xfa,0xc1,0x24,0xf6,0x4,0x41,0x36,0xfc,0x89,0xc0,0x6c,0x49,0xbb,0xc1,0x61,0xc9,0xee,0x41,0xcc,0x30,0x72,0x41,0x0,0x83,0x96,0x41,0x94,0xae,0xde,0x41,0x98,0xe3,0x37,0x42,0xec,0xa5,0x31,0x42,0xc1,0x5b,0xc1,0x41,0xd6,0xb9,0x3e,0xc1,0x5c,0x31,0xb6,0x41,0xda,0x84,0xee,0x40,0x48,0xf9,0x2d,0xc2,0x90,0xe0,0x32,0x42,0x3e,0xc2,0xbe,0x41,0x9,0xef,0xe7,0x41,0x49,0x8e,0xdb,0xc1,0x9d,0x1d,0x1,0x41,0x70,0x9c,0x37,0x42,0x42,0x3,0x97,0xc1,0x61,0x4f,0x20,0x42,0x72,0x85,0x2a,0x40,0x9e,0x74,0x13,0x42,0xb6,0x3b,0x3,0xc2,0x29,0x96,0x1,0x42,0x0,0x7c,0x83,0x41,0xd3,0x4e,0x46,0xc0,0x44,0x2b,0x3,0x42,0xd2,0x36,0x89,0xc0,0xab,0xeb,0x34,0x41,0xc1,0xb1,0xa8,0x41,0x42,0x5f,0xd,0x42,0xe4,0xad,0xf9,0xc1,0xf8,0x5f,0x14,0xc1,0x2a,0x21,0xf1,0xc1,0x5c,0xb7,0xfa,0xc1,0x8f,0xeb,0x70,0xc1,0x7d,0xed,0x2d,0xc1,0x9e,0x63,0x8,0x40,0x3b,0x61,0x79,0x41,0xa6,0x49,0x96,0xc2,0x29,0xa3,0xa2,0x3f,0x31,0x4,0x4,0x42,0xa0,0xed,0xe9,0xc0,0xd6,0x56,0x46,0x42,0xfc,0x90,0x11,0x42,0x4e,0x1c,0xad,0xc1,0xa3,0xac,0xb,0xc1,0x94,0x9d,0xad,0x41,0x88,0x88,0x5b,0x40,0xa7,0xc8,0xda,0xc1,0xbb,0x64,0x8c,0x41,0x9c,0x1b,0x92,0xc0,0x6,0xb,0x77,0xc2,0xa0,0xc7,0x6b,0x42,0x9b,0xa9,0x5e,0xc1,0xc,0x3e,0xa2,0x41,0xb3,0x25,0x18,0xc2,0xe4,0xfe,0x29,0xc2,0x8e,0x39,0x68,0x42,0x84,0x6f,0xa3,0xc1,0xb6,0xde,0xd,0xc2,0x9a,0x2c,0xed,0x41,0x6f,0xd5,0x80,0x41,0x5f,0x66,0xd7,0xc1,0x5d,0x8b,0x4b,0x42,0xe1,0x4,0x93,0x42,0xa6,0x8f,0xf2,0x40,0x11,0xb7,0x8b,0x40,0xc4,0xd2,0xfd,0x41,0x57,0xa0,0xce,0xc1,0xf8,0x22,0xc5,0xc0,0xb1,0xef,0x2a,0x42,0xb8,0x60,0x0,0xc2,0xfa,0x1d,0xbb,0xc1,0xda,0x88,0xc6,0xc1,0x5e,0x6d,0xa4,0x41,0x5a,0x99,0x14,0xc0,0x64,0x36,0xaa,0x40,0x47,0x9f,0x9c,0x3f,0x39,0x4f,0xed,0x41,0x89,0xec,0xae,0x41,0x82,0x94,0xb3,0xc1,0x3f,0xad,0x20,0x41,0xd0,0x1b,0xe0,0xbe,0xb,0xec,0x28,0x41,0xe7,0x64,0x5d,0x41,0x9b,0xef,0x38,0x42,0x20,0x84,0x86,0xc1,0x60,0x55,0x93,0x41,0x32,0x49,0x12,0xc2,0x2d,0xe6,0xa,0x42,0x62,0xd4,0x5e,0x41,0x5a,0x5d,0xef,0xc1,0xcb,0x24,0xe9,0xc1,0x28,0x2d,0x12,0x40,0x80,0x62,0x5b,0x42,0xd0,0x6,0x4c,0xc1,0x7d,0x2d,0x46,0x42,0x7e,0x41,0xc8,0x41,0xab,0x45,0x84,0x41,0xc8,0x77,0x17,0xc2,0xda,0xd9,0xb9,0xc2,0xf,0x27,0x17,0xc1,0x48,0xe2,0x40,0xc2,0x7a,0x9a,0x2e,0x42,0x3f,0x27,0x78,0xc2,0x9,0xf6,0x5c,0x42,0x84,0xb1,0x22,0x40,0x2,0x14,0x62,0xc2,0xa3,0x11,0xc4,0x41,0xcc,0xdf,0x9a,0x41,0xba,0x7b,0x2e,0xc2,0xfb,0xa6,0x8d,0x42,0x32,0x22,0x5d,0x41,0x97,0x98,0x7f,0xc2,0xc0,0x7a,0x30,0x41,0x96,0xd2,0x2b,0xc2,0x58,0x68,0xa8,0x41,0x2b,0x35,0xf,0x42,0xca,0x2d,0x1d,0xc2,0x60,0x1,0xf8,0xbe,0x3f,0xe8,0x88,0x41,0x16,0xc4,0x5d,0xc1,0x44,0x5d,0x99,0xc2,0x98,0x11,0x0,0xc2,0xfc,0xa7,0x75,0x41,0x38,0x89,0xa5,0x40,0xfe,0x59,0x44,0xc2,0x18,0xd,0xac,0x40,0x48,0x1c,0xa5,0x3e,0x5c,0x2c,0xa0,0xc0,0x3,0x9a,0x80,0xc1,0xda,0xfe,0xe6,0x40,0xcc,0x14,0xac,0xc1,0x6c,0x2e,0xc7,0xc1,0x7,0x8e,0x6,0xc2,0x32,0xc6,0x64,0x41,0xbb,0x19,0xb0,0xc1,0xf,0xd0,0x11,0x42,0x8d,0xdf,0x24,0x42,0x27,0xcb,0x39,0x42,0x9a,0x49,0xd8,0xc0,0xd2,0xad,0xa8,0xc0,0x52,0xeb,0x22,0xc1,0x21,0xc0,0xa6,0xc1,0x8,0x26,0xb5,0x3f,0x74,0x1,0x98,0xc1,0x55,0x24,0xa7,0xc1,0x91,0x4e,0x46,0xc1,0x88,0x81,0x8b,0x41,0x4a,0xa7,0x6,0xc2,0x24,0x4a,0x8,0xc0,0x2,0xad,0xd3,0x41,0x9a,0x55,0x92,0x42,0x7b,0xc1,0x4e,0x42,0x24,0x43,0x34,0xc2,0x1d,0x5f,0xde,0x41,0xf8,0x2,0x1c,0xc2,0x44,0xbf,0x8f,0xc2,0x24,0x40,0xe6,0xbf,0xc3,0xd5,0x77,0xc2,0x91,0xe6,0x7f,0x42,0x9e,0xb1,0xd7,0x41,0xaf,0x97,0x4a,0x41,0x17,0xb3,0xa3,0x40,0xea,0x14,0x3f,0xc1,0xad,0x3e,0xe8,0x41,0xaf,0xa3,0x8d,0x40,0x6f,0x44,0xa7,0xc2,0x12,0x18,0x3e,0x42,0x6e,0x8d,0x58,0xc1,0x45,0x11,0x80,0xc2,0x10,0x12,0x7e,0xc1,0xe1,0xf4,0x4a,0x42,0x6d,0xab,0x5f,0x42,0x7e,0x80,0x49,0x42,0x14,0x6e,0x9f,0x42,0xa,0x35,0xfa,0x41,0xf1,0xbe,0xa2,0xc1,0xba,0xfc,0xc,0x41,0x3a,0x91,0x83,0x42,0xab,0xa2,0xc2,0x42,0x25,0x11,0x8,0x42,0xf9,0x68,0x25,0x42,0x30,0x27,0x78,0x40,0xc2,0x16,0x8e,0xc0,0xa8,0xac,0x70,0x41,0x6c,0xf8,0x4a,0xc1,0x2,0xd9,0x52,0xc1,0xb7,0x92,0xf6,0x41,0xd8,0x84,0xb4,0x41,0xc3,0xa2,0x77,0x42,0x57,0x9c,0x1c,0xc2,0xcf,0x3,0x2b,0xc2,0x9b,0xfa,0x53,0x42,0x76,0xf9,0xf0,0x3f,0x70,0x5f,0x3f,0x41,0xa4,0x6b,0x4a,0x41,0x36,0x95,0x4b,0x41,0x64,0xd5,0x9d,0x41,0x20,0xd7,0x1,0x42,0x4,0xf2,0xd,0xc2,0x7c,0x70,0xbf,0x42,0x2a,0x96,0xe4,0xc1,0xba,0xbf,0xc,0xc1,0x25,0x38,0x80,0x41,0x78,0x10,0x46,0xc2,0x60,0x75,0xd6,0xc1,0x9,0xe1,0x32,0x41,0x58,0xfd,0x5c,0xc1,0x48,0xbf,0x95,0xc0,0xfd,0x64,0x9,0xc2,0x17,0xc7,0xb8,0xc1,0x5c,0x79,0x62,0xbf,0x55,0x1d,0x8b,0xc1,0x1,0x5c,0xba,0x42,0xc,0xce,0xb,0xc2,0xc3,0xb8,0x90,0xc1,0x76,0x4f,0xa8,0xc2,0x27,0x72,0x7f,0xc1,0xe2,0x1,0x35,0xc2,0x44,0x39,0x65,0xc1,0x75,0xb8,0xc0,0x41,0xe9,0xa4,0x7b,0xc1,0xe8,0x1f,0xb5,0xc0,0x23,0xe9,0xc1,0xc2,0x43,0xaf,0x86,0xc2,0x11,0x9f,0x78,0xc2,0x3f,0xa3,0x3,0xc2,0x3c,0xf5,0xe7,0xc1,0x98,0x2d,0xc,0x42,0x6e,0xb4,0xf6,0x41,0x33,0x24,0x97,0xc1,0xf4,0xc1,0xd9,0x42,0x57,0x20,0xf7,0xc1,0xe8,0xa3,0x11,0xc2,0x80,0x3,0x26,0xc2,0xda,0x32,0x7,0x42,0xf2,0x41,0x35,0x41,0x19,0x4,0x29,0xc1,0xf8,0x1a,0xff,0xc1,0x1d,0xf4,0xcc,0xc2,0xbf,0x45,0xef,0x41,0x73,0x5a,0x37,0xc1,0x3a,0xb,0x89,0xc2,0x58,0xc0,0x71,0xbf,0xa,0xd8,0x24,0x42,0xc3,0xa0,0x73,0xc2,0x62,0xed,0x34,0x41,0xfd,0x8c,0x2,0xc2,0xde,0x72,0x40,0x42,0xaf,0x2a,0xd1,0xc1,0x80,0x2c,0x2c,0x41,0xb8,0x55,0xa0,0xbe,0x50,0x24,0x6d,0x41,0xda,0x18,0x9,0x42,0x1c,0xd4,0xd6,0xc1,0x76,0xb8,0xb0,0x41,0xeb,0x39,0x31,0xc1,0xa9,0x29,0x34,0xc1,0xdf,0x31,0x2d,0x42,0xcc,0xe6,0x1,0x42,0x6b,0x1,0x4f,0x40,0xf8,0x5,0x93,0xc1,0x80,0x51,0xa5,0xc1,0xcc,0x56,0xa2,0x41,0x6,0xc4,0x28,0x41,0xe9,0xdc,0xc1,0x3f,0xb3,0x50,0x91,0xc2,0x4,0x7d,0x78,0xc1,0x34,0xbc,0x2d,0xc1,0x4,0xd5,0x7f,0xc0,0x7c,0xe1,0x3e,0x41,0x67,0x53,0x86,0xc2,0x34,0x90,0x9f,0x41,0xfd,0x43,0xb5,0x41,0x95,0x5a,0x67,0x42,0x52,0xd3,0x27,0xc1,0xe7,0xea,0xcd,0xc1,0x42,0x37,0xce,0xc2,0xed,0xa3,0x51,0x42,0x94,0xb8,0x87,0x40,0x5f,0x45,0xb2,0xc1,0x3b,0x15,0xde,0x41,0xef,0x97,0x93,0xc1,0x28,0x60,0x82,0xc2,0x6c,0x73,0x6a,0xc1,0x4e,0x89,0x95,0x40,0x11,0x9,0xc8,0xc0,0x84,0x2b,0x24,0x42,0x3,0xa3,0x51,0xc1,0x52,0xa2,0xd,0x41,0xed,0x2b,0xdf,0x41,0xc9,0x50,0x9b,0x42,0xf9,0x1b,0x24,0xc1,0x95,0x83,0x25,0xc2,0x14,0x6a,0x7b,0xc0,0x10,0xe3,0x8,0x42,0xa,0x4c,0x92,0x41,0x58,0x2b,0x86,0xc2,0xa0,0x9b,0x83,0xc2,0xda,0xd1,0x2d,0xc2,0x4c,0xa2,0xe8,0x3f,0x55,0xfa,0x24,0xc1,0x92,0xf2,0x4b,0xc2,0x71,0xb2,0x2d,0xc1,0xb0,0xf2,0xcc,0x41,0x94,0x59,0x5,0x41,0x15,0xbe,0xa,0xc2,0x29,0x98,0x83,0xc1,0xa9,0xe3,0x7f,0x41,0x34,0x90,0xea,0xc1,0xa6,0x85,0x6b,0xc1,0x2d,0xd5,0xbe,0x41,0x27,0x7f,0x71,0xc1,0xa3,0xda,0x32,0xc2,0xfc,0xdb,0x9a,0x41,0xf8,0xba,0xb8,0xc1,0x32,0x90,0xd2,0x42,0x6b,0x9b,0xab,0x40,0xbd,0xbe,0x8b,0x40,0xb3,0xcd,0x62,0x42,0xff,0x53,0x85,0x42,0x8,0x12,0x94,0xc1,0x5c,0x63,0x24,0xc2,0x43,0x5e,0xc5,0xc1,0x27,0x80,0xec,0xc1,0x50,0xd8,0x12,0xc2,0x5d,0xd5,0x20,0x42,0x49,0x47,0x46,0x41,0x39,0x8e,0x17,0xc2,0xe1,0x6f,0x20,0x42,0xb9,0x86,0x3,0x42,0xac,0x3c,0x2b,0x42,0x27,0xe5,0x7a,0xc2,0x35,0x55,0x3e,0x42,0xa0,0x76,0xd6,0xbe,0x11,0x56,0x29,0x42,0x3d,0x3a,0x7e,0xc2,0xc,0xed,0x9a,0x42,0x14,0x41,0x61,0x41,0xb2,0xf2,0x3d,0x40,0xd3,0x59,0xcc,0x40,0x58,0x7c,0x44,0xc2,0x43,0x67,0x88,0xc2,0x81,0xf8,0x98,0x41,0x22,0x8e,0xf3,0x41,0xe6,0xee,0xd7,0xc1,0xe2,0x80,0x9e,0xc0,0xc7,0x8c,0x6a,0xc1,0x4c,0xfe,0x60,0xc2,0x65,0xe9,0xdc,0xc1,0x8,0xa1,0x29,0xc2,0x34,0xf3,0x4a,0xc2,0x44,0xc9,0x7,0xc0,0x3f,0x2b,0x41,0xc2,0x1d,0xc6,0xce,0x41,0xc7,0xac,0xa8,0xc1,0xae,0x2e,0xb,0xc2,0xd4,0x81,0x4f,0xc2,0x87,0xee,0xa9,0x40,0xbc,0x29,0xa9,0x42,0x1e,0xa3,0x4,0xbf,0x87,0x9a,0x9d,0x42,0x62,0x67,0x14,0x41,0x7b,0x5b,0xa7,0xc2,0xdb,0xdb,0x4b,0xc2,0x32,0x55,0xd,0xc0,0xed,0xeb,0x17,0xc2,0x81,0xd4,0x5a,0x42,0x53,0xea,0x38,0x42,0x4a,0x65,0x33,0x41,0x48,0x6,0x6c,0xc1,0xfb,0x16,0x2b,0x42,0xd2,0x6b,0x9b,0xc1,0xcb,0xb8,0xc8,0x41,0x89,0xcf,0xb5,0x40,0x79,0x92,0x41,0x42,0xf3,0xf9,0x3e,0xc2,0x98,0xeb,0xf3,0x42,0x7,0x3f,0xaf,0xc2,0xce,0x5e,0x3c,0x42,0x64,0xae,0xac,0xc2,0x9d,0xa1,0xe,0xc2,0x37,0xa0,0x5f,0x42,0x1c,0x88,0xc0,0xc1,0x9e,0x28,0x53,0xc2,0x54,0xeb,0x75,0xc0,0x86,0xf8,0x80,0x41,0x9e,0x6b,0xa,0xc1,0x24,0xdd,0x8b,0x42,0x9,0x13,0xa8,0x41,0x56,0xa,0x6c,0x42,0x9e,0x86,0x4,0x42,0xd7,0xd3,0x4a,0x3f,0x9b,0x2b,0x1,0xc2,0xd4,0x27,0x70,0x42,0x98,0x2c,0xa4,0x41,0xec,0x98,0x76,0xc2,0x0,0x25,0x8,0x41,0x36,0xc,0x4,0x42,0x2d,0x4b,0x94,0xc2,0x56,0x1a,0xb7,0x42,0x66,0x9e,0xae,0x42,0xbb,0x24,0x2c,0xc2,0xf7,0x55,0xb0,0x42,0x5d,0x80,0x97,0x41,0x51,0xcb,0x1b,0xc2,0x45,0xf8,0xba,0x41,0x77,0xe2,0x7f,0xc2,0xb9,0xbe,0xc2,0x42,0xb5,0x5,0x2d,0xc2,0x24,0x5e,0xaf,0x41,0xac,0x1b,0x5a,0xc2,0x49,0xf0,0x69,0xc1,0x0,0x13,0x92,0xc2,0xb4,0x85,0x99,0x42,0x52,0xfa,0x52,0x41,0x5b,0x6f,0x87,0xc1,0x5e,0x29,0x53,0xc0,0x59,0xe,0x3a,0x41,0xa9,0x9c,0xc9,0xc2,0x4,0xfb,0x8,0xc0,0x7a,0x79,0x80,0x42,0x6a,0x59,0x90,0xc2,0x5f,0xeb,0xc9,0x41,0x3c,0xea,0x31,0xc1,0xc2,0x86,0xc9,0xc1,0x87,0x67,0xae,0xc1,0x0,0xb5,0x1c,0x42,0x65,0x3d,0xfb,0xc1,0xf1,0xbc,0xf7,0x41,0x15,0x8e,0x97,0xc0,0x93,0x52,0x2f,0xc2,0x85,0xb7,0xc6,0x42,0x7a,0xb1,0x10,0x41,0xb5,0xb4,0x72,0xc1,0x88,0xe8,0xd4,0xc0,0x6a,0x8b,0x41,0x41,0x61,0x1b,0x77,0xc2,0x5e,0x99,0xbc,0x40,0x6a,0x21,0x57,0x42,0x64,0x90,0x2,0xc2,0x41,0xd0,0x7,0x40,0xc9,0x60,0x80,0xc0,0xa7,0x9b,0x6f,0xc1,0xaa,0x9c,0x7,0xc2,0xbd,0x2,0x1c,0xc2,0x81,0xe6,0x3a,0x42,0xc9,0x45,0x54,0xc2,0xbd,0x39,0xc3,0x41,0xd8,0xd0,0x3,0xc2,0x9c,0xd1,0x96,0xc0,0x4a,0x54,0xf4,0x41,0x86,0x88,0x2b,0x40,0x44,0xa5,0x60,0xc2,0x54,0xc8,0x96,0xc2,0x85,0x4c,0xbe,0xc1,0xe6,0xd0,0x87,0x41,0xdd,0xa6,0x1d,0x42,0x4e,0x11,0x8e,0x42,0xae,0x4c,0xd,0x42,0x0,0x2f,0xcc,0x3b,0x3,0xe2,0x2b,0x41,0x80,0xb5,0x77,0x42,0x5e,0x96,0x30,0x42,0x37,0xb6,0x83,0xc2,0x67,0xc5,0x1e,0x42,0x44,0xef,0xd5,0x41,0x6a,0x6d,0x9f,0xc2,0x42,0x35,0x86,0xbe,0x90,0x7f,0x2e,0xc2,0xb,0x34,0xec,0x41,0x28,0x12,0x91,0x42,0xe0,0x2a,0x12,0x42,0xd5,0x82,0x2e,0x42,0x5e,0x39,0x14,0xc2,0x9d,0xbc,0xee,0xc1,0x33,0xad,0x3d,0xc1,0x80,0xdd,0x6a,0xc2,0x60,0xf8,0x76,0x41,0xf8,0x8f,0x35,0x42,0xb8,0xa8,0x6c,0xc1,0xf3,0xa6,0xf6,0x41,0xc0,0x70,0x4f,0xc2,0xa,0xb3,0x17,0xc0,0x30,0x45,0x5e,0xc1,0x34,0x11,0xff,0xc1,0x39,0x9d,0x12,0xc0,0xda,0x48,0xee,0x41,0xc5,0x77,0xfe,0xc1,0x82,0xc7,0xa7,0x41,0x9e,0x38,0xdc,0xc1,0x2e,0x58,0xc6,0xc1,0x8c,0xed,0x86,0xc1,0x8,0x7a,0x4f,0x41,0xd9,0x5b,0xb5,0xc1,0x15,0x3,0x34,0xc2,0xcb,0x5c,0xf4,0x3f,0x88,0x68,0x94,0x41,0x61,0xed,0x5e,0xc2,0xef,0xb7,0x36,0x41,0x76,0x6e,0x9e,0xc2,0x3e,0x9b,0x65,0xc2,0xb9,0x2b,0x36,0x41,0xc4,0x8d,0xe,0x42,0x36,0xbd,0x6f,0x40,0x4e,0x39,0x88,0xc1,0xbd,0xd9,0x50,0x42,0x14,0x34,0x48,0xc1,0x5a,0x9,0x11,0xc2,0x74,0xb0,0x29,0xc2,0xd5,0x57,0x4c,0x41,0x7a,0x37,0x6c,0xc2,0xe2,0x4a,0xc1,0xc1,0x42,0xa9,0xd8,0x41,0x5b,0x9e,0x98,0xc0,0x30,0x22,0xef,0x41,0xee,0x30,0x67,0xc1,0x2c,0x93,0xcd,0x41,0xa7,0xd6,0x23,0xc2,0xbf,0xd7,0xa9,0x41,0xf6,0xcd,0x90,0xc2,0x55,0xc5,0xfb,0xc2,0xe8,0x63,0x5,0xc0,0x44,0xdf,0x2,0xc2,0x8,0x6a,0x8c,0xc2,0x16,0xb7,0x4c,0x42,0x72,0x9d,0xd4,0x41,0x8d,0x6b,0x62,0x42,0xea,0xe0,0x8f,0x41,0x3f,0xef,0x82,0x41,0xab,0x57,0xa9,0x40,0x4f,0x97,0xce,0xc1,0xfc,0x8b,0xb2,0x42,0xb1,0x5d,0x8f,0x41,0x39,0x45,0x20,0x42,0xa3,0xb2,0x1,0x42,0x37,0xe7,0x6f,0xc0,0x62,0x40,0x18,0x42,0x67,0x2e,0x2e,0xc2,0xac,0x30,0x92,0xc1,0xa2,0xb7,0xf8,0xc0,0xc7,0xf8,0x1,0xc2,0x12,0x8,0x81,0x40,0x3c,0xe2,0x6f,0xc1,0x23,0x1e,0x5b,0x42,0x71,0x4b,0x44,0xc1,0x1d,0xe4,0x22,0x42,0x25,0xd7,0xaa,0xc2,0x42,0xdb,0x65,0xc2,0x17,0x3f,0xaa,0xc2,0x3a,0xf2,0x5,0x42,0xbc,0xda,0xda,0xc1,0x6a,0x9c,0xde,0x41,0xd,0x8f,0xb7,0x41,0xc9,0x32,0x43,0x42,0x7b,0x1,0x90,0x41,0x9c,0x3a,0xaf,0xc2,0xd7,0x18,0x43,0x42,0xc4,0x3a,0x64,0xc2,0x73,0x87,0x57,0xc2,0x51,0xc2,0x50,0xc2,0x5,0x70,0x1a,0xc1,0x0,0xc5,0x3e,0x41,0xf,0x6f,0x7,0x41,0xc8,0x65,0x4e,0xc2,0xca,0x9a,0x93,0x41,0x18,0xf,0x2f,0xc2,0xb4,0x28,0x60,0xc1,0xa1,0x31,0x45,0x42,0xdc,0xf3,0x5,0x41,0x66,0xd8,0x80,0xc1,0x4d,0xe9,0x18,0xc2,0x2f,0x80,0xc8,0xc1,0xf3,0x6e,0xb8,0x41,0xb3,0x5f,0x7d,0x41,0x63,0x8f,0xa7,0x41,0xbc,0xb9,0x43,0xbf,0xfc,0xdf,0xeb,0xc1,0x83,0x7f,0xf,0x41,0xf4,0x51,0x9f,0xc1,0x25,0x81,0x1a,0xc2,0xa6,0x40,0xc9,0xc1,0x6f,0x46,0x14,0x41,0xca,0xaa,0x5d,0x42,0xa0,0x2a,0x2d,0x41,0x43,0xdf,0x37,0x42,0x14,0x1f,0x48,0xc2,0x92,0xa4,0x8d,0x41,0x41,0xfd,0x8d,0xc0,0x75,0x2b,0x1c,0xc2,0x91,0x21,0x8e,0x40,0x8b,0x3c,0xf3,0x40,0xc8,0x4f,0xc,0xc2,0x60,0x1a,0x67,0xc2,0x10,0x58,0xe5,0x3f,0x49,0xe3,0xe0,0xc1,0x8a,0xa4,0xc7,0x42,0xcf,0x7c,0x1,0xc2,0x78,0xa3,0x7b,0x41,0x6,0x33,0x4c,0xc2,0xd5,0x85,0x8f,0x41,0xaa,0x4a,0xdc,0x40,0x2c,0xb4,0x9e,0xc2,0xf0,0x1b,0x53,0x42,0x5a,0xaf,0xac,0xc1,0x81,0xeb,0x63,0x42,0x2c,0xb1,0x8e,0xc1,0xd4,0x15,0xc0,0x40,0xf,0x66,0x8d,0xc0,0x37,0xc2,0xf0,0x41,0x7f,0x28,0x28,0x42,0x22,0xfb,0x44,0xc2,0xb,0x32,0xb6,0xc1,0x72,0x39,0x13,0xc2,0x66,0xf2,0xe9,0x41,0x59,0xb6,0x6,0x42,0x1f,0x75,0xa1,0xc1,0x83,0xa3,0x23,0xc2,0xb,0xa4,0x83,0x41,0x26,0x5f,0xb3,0xc1,0x7d,0xe3,0xf7,0x41,0x40,0x72,0x85,0xbe,0x5d,0xb1,0xc0,0xc0,0x10,0x96,0x48,0xc0,0x57,0x20,0xe9,0x42,0xac,0x2c,0x8f,0x41,0x1a,0x49,0x3,0x42,0x1c,0xa5,0x87,0xc2,0x68,0xb3,0x8,0xc1,0xfd,0x11,0x9d,0x41,0x94,0x1,0x3,0xc1,0x8,0xeb,0x64,0x41,0xc,0x87,0x64,0xc1,0xa9,0x11,0x5,0x42,0xf8,0xd5,0x12,0x42,0xdc,0xe,0xc,0xc1,0x40,0x61,0x89,0x42,0x19,0x76,0x89,0x42,0x4e,0x6f,0x57,0xc2,0x0,0x70,0x57,0x41,0x3e,0xcb,0x9d,0xc2,0xc2,0x97,0x8a,0x41,0x17,0x19,0x0,0xc2,0x2a,0xed,0x4a,0x42,0x52,0xb1,0xc5,0xc0,0x1e,0x7,0x96,0xc1,0x66,0xca,0xec,0xc1,0x96,0x4f,0x88,0xc1,0xc1,0x2b,0x9c,0xc1,0x6a,0x7,0x4b,0xc2,0x4e,0xb3,0xba,0x41,0xb,0x55,0x7b,0xc2,0xaa,0x6c,0x5f,0xc2,0xdf,0x9a,0x70,0xc1,0xcd,0x75,0x9f,0x42,0x88,0x35,0xb,0xc1,0x8a,0xb7,0x3d,0xc2,0x47,0x81,0x55,0x41,0x35,0x6d,0x4b,0x42,0xbd,0x45,0x97,0xc2,0xfa,0x38,0xd8,0xc0,0x47,0x4a,0x6f,0xc0,0x3a,0x89,0x1a,0xc2,0x49,0x9c,0x76,0x42,0x81,0x44,0xc2,0xc2,0xfe,0x6d,0x81,0xc2,0xc7,0x65,0x4a,0x41,0x1e,0x66,0xcf,0xc0,0x24,0x1d,0xa0,0xc2,0xa,0x50,0xd4,0xc1,0x27,0x5f,0xf8,0x41,0x32,0x78,0x80,0xc2,0x2,0x69,0x11,0x42,0xd5,0x58,0xe5,0x41,0x65,0x14,0x1,0x42,0x64,0x11,0xe9,0xc1,0x64,0xf0,0xd1,0xc1,0xdc,0x68,0x7,0xc1,0x1e,0x52,0xfa,0x40,0xf3,0xa5,0xd,0xc1,0x1,0x1c,0x80,0xc2,0x5c,0x80,0xe1,0xbf,0x8b,0xd0,0xd7,0x40,0x38,0x28,0x9e,0xc0,0x72,0x29,0x60,0x41,0xd6,0x9f,0xbd,0x41,0xb6,0x95,0x1d,0x42,0x7f,0xd9,0x87,0xc0,0xbd,0x44,0x3b,0xc2,0x5e,0x29,0x59,0xc1,0xb8,0x6c,0x8e,0x42,0x4a,0x73,0x4f,0xc1,0x3b,0x2e,0x20,0xc2,0x9d,0x3d,0x29,0xc2,0xa6,0x6e,0xd6,0x40,0x1b,0x7f,0xab,0x41,0x2d,0x7e,0x5f,0xc2,0x18,0x6c,0x12,0xc2,0x39,0xbb,0xd3,0x41,0x65,0x4,0xf,0x42,0xab,0xf5,0x93,0xc1,0xa,0x9c,0x61,0x41,0xc7,0xc2,0x25,0xc1,0x76,0x6f,0x8a,0xc2,0xa1,0x18,0x6,0x42,0xa2,0x1f,0xbb,0xc1,0x86,0xb5,0xaa,0xc0,0x49,0x93,0x79,0x42,0xd2,0x44,0x24,0xc1,0xa2,0x3d,0xe3,0xc1,0x2b,0xaf,0xb4,0x40,0x75,0x28,0x13,0x42,0x1d,0x59,0x9f,0x40,0xaf,0xf1,0xbb,0x42,0x18,0xc2,0x9e,0x41,0x46,0x32,0xe,0x41,0x1a,0xea,0x4c,0xc1,0x51,0xff,0x16,0x42,0xff,0xc9,0xd,0xc2,0x72,0x8a,0x89,0x41,0x4f,0xaa,0xaa,0x42,0x95,0x7,0xee,0x41,0x75,0xb5,0xa2,0x42,0xe8,0x69,0x57,0xc1,0x33,0xc2,0x69,0x42,0x24,0xb6,0xe8,0xc0,0x58,0x70,0xc2,0xc1,0x37,0x7d,0xa2,0xc0,0x9a,0x94,0x37,0x41,0x52,0x23,0xfb,0xc1,0xee,0xa,0x8a,0xbf,0xf0,0xab,0x5e,0x42,0x7d,0xaa,0x55,0xc2,0xec,0x31,0xe6,0x3f,0x8d,0xa9,0x5,0xc2,0xf4,0x3b,0x8d,0xc1,0x34,0xf8,0x55,0xc1,0xec,0x4f,0x73,0x42,0x46,0x41,0x82,0x41,0xff,0x95,0xb6,0xc1,0x5f,0x8c,0x86,0xc2,0xe1,0xd0,0x48,0xc2,0xa6,0xd4,0x9f,0x42,0x78,0xa3,0x91,0xc2,0x8d,0x9f,0xb3,0x41,0x93,0xc4,0x3f,0xc2,0x8a,0xd3,0x36,0x42,0xca,0x43,0x41,0xc2,0x3a,0x98,0x21,0x41,0xa,0xc3,0x61,0x41,0x70,0xb8,0x72,0x41,0xd,0x9d,0x28,0x41,0x2a,0x3d,0x24,0xc1,0x56,0xb9,0x4,0xc2,0x70,0x95,0x46,0xc2,0x1f,0x8,0x69,0x42,0x6b,0x1d,0xdb,0xc0,0x33,0x2e,0x82,0xc2,0x62,0xc8,0xdf,0xc0,0xd,0x94,0x25,0x42,0xf8,0xa5,0x46,0xc2,0x4c,0x36,0x9a,0xc2,0xc4,0xd9,0x49,0xc1,0x8b,0xdf,0x92,0xc1,0xa,0x7c,0x27,0xc1,0x1c,0xb2,0x2,0x42,0xc5,0xfd,0xcf,0x41,0x32,0xea,0x9c,0x42,0xb6,0xa8,0x54,0x42,0x9c,0xa7,0x6a,0xc1,0x5e,0x3c,0xf,0xc2,0x3e,0x62,0x3b,0xc0,0x8,0xc2,0x14,0x42,0xe6,0x4f,0x99,0x41,0x1e,0x4c,0x8,0x42,0x64,0xb8,0x1c,0x41,0x6c,0x47,0x50,0x42,0x9f,0x7b,0x21,0x41,0x52,0x96,0x88,0xc2,0xd0,0xb1,0x7d,0x41,0x65,0x7d,0x77,0xbf,0x56,0xfa,0xff,0xc1,0xea,0x22,0xc6,0xc1,0x3b,0xba,0x3,0x42,0xe8,0xdd,0xc4,0xc0,0x1,0x6b,0xcb,0xc1,0x35,0x21,0xa9,0xc1,0x30,0x1e,0x68,0x40,0xc4,0xc8,0x85,0xc1,0x3c,0xcc,0xab,0x41,0x46,0x32,0x20,0x3f,0x2b,0x4f,0x3c,0xc2,0x6d,0x22,0x53,0xc2,0xb6,0x5e,0xf7,0xc1,0x94,0x73,0x9,0x42,0xb4,0x90,0xf0,0xc1,0x1e,0x12,0x89,0x41,0x1f,0x1e,0x64,0xc0,0x32,0xfe,0xb2,0x41,0x2b,0xe,0xc2,0xc1,0x19,0xc0,0x9,0xc2,0x3c,0xc,0x7f,0x42,0xdc,0xcd,0xb2,0xc2,0xfc,0x5,0xf8,0xc0,0x4f,0x75,0x0,0x42,0xdf,0x42,0x77,0xc2,0xc3,0x30,0x2d,0x42,0x83,0x12,0x73,0xc1,0x7f,0xce,0xc9,0xc2,0xc6,0xc5,0x85,0xc2,0xc4,0x1a,0xbf,0x40,0xdd,0x7a,0x32,0x42,0x86,0x86,0xdb,0xc1,0xe0,0x50,0x8b,0x3e,0x27,0xa7,0x15,0xc1,0x74,0x58,0x3f,0xc2,0x40,0xe,0x2,0xc2,0x92,0xf8,0x70,0xc1,0xb6,0xa8,0xd7,0x42,0xc,0x37,0x0,0x42,0x17,0x38,0xb1,0xc1,0xec,0x63,0x8a,0xc1,0x4c,0xa3,0xa5,0x42,0xf3,0x58,0xb2,0x41,0x36,0xd9,0x36,0xc1,0xd6,0x32,0x22,0x42,0xc9,0x74,0x27,0xc2,0x54,0xb,0x68,0xc0,0xac,0x2e,0x8b,0x42,0xe3,0xb9,0xbd,0xc2,0x2d,0xd,0x2a,0x42,0xb3,0xb8,0xf1,0x41,0x76,0xcb,0xe8,0xc1,0x63,0x85,0x69,0xc1,0x5a,0xeb,0x4b,0xc1,0xb1,0xa0,0x8a,0x42,0x40,0x69,0x34,0xc1,0xee,0x81,0x18,0x42,0x46,0xfa,0x41,0x42,0x10,0xdc,0xa3,0x42,0x2a,0x0,0x75,0xc2,0x46,0x7d,0x8,0xc2,0xf0,0x23,0x86,0x41,0x3,0x10,0x90,0x40,0x1e,0xca,0x8b,0x3f,0x5c,0xe7,0x3d,0x42,0xfb,0x56,0x29,0x42,0x26,0x2,0xe2,0xc0,0x2b,0x2a,0xad,0x41,0xaa,0x52,0xe,0x42,0x1b,0xcd,0x88,0xc1,0x78,0xcd,0x6f,0xc2,0x40,0x7b,0x6,0x3f,0xc2,0x57,0x96,0xc1,0x35,0x71,0x86,0xc1,0x4d,0xb4,0xe9,0xc2,0x21,0xc4,0x7b,0x42,0x58,0xb4,0x9d,0xc0,0x86,0x2f,0x8,0xc0,0xbf,0xdb,0x71,0x42,0x94,0xdc,0xb1,0x40,0xf8,0xf1,0x37,0xc2,0x90,0x1f,0xee,0x3e,0xae,0xad,0x4e,0x41,0xe2,0xb4,0x81,0xc2,0x57,0x87,0x98,0xc2,0xaa,0x3e,0x80,0xc1,0x7e,0xd9,0x4,0x42,0x6,0x3a,0x9e,0x42,0x52,0xaf,0xa3,0xc0,0x68,0xe4,0xd7,0xc1,0x54,0x10,0xef,0x41,0x29,0x10,0x4c,0xc2,0x50,0xf2,0x44,0xc1,0x6c,0xaf,0xd0,0xbf,0x88,0xcd,0x1,0x42,0x2d,0xf0,0x34,0x42,0xc6,0x18,0x3f,0xc2,0xc6,0x4e,0x1d,0xc1,0x77,0x87,0xc2,0xc1,0x6e,0xc9,0x95,0x42,0x1d,0x77,0x0,0xc2,0x22,0x10,0xd2,0x40,0xfb,0xe,0xea,0x3f,0x5a,0x4,0xba,0xc1,0xb0,0x42,0xc0,0x41,0x1a,0x7d,0xd0,0xc1,0x56,0x4e,0xf1,0x42,0x2,0x24,0x13,0xc2,0x1,0x1c,0x64,0x42,0xd4,0xb3,0xf0,0x41,0xcf,0x12,0x91,0xc2,0xe,0xca,0x22,0xc2,0x9b,0xd5,0xe8,0x41,0xd3,0x58,0xd0,0x41,0xe2,0xd7,0x7a,0x42,0x84,0xe6,0x33,0xc0,0x5d,0x8c,0xa0,0xc2,0x9f,0x5,0x6e,0x42,0xc8,0xe7,0x86,0x42,0xe9,0xc8,0x8d,0x41,0x9e,0x0,0x44,0xc2,0xea,0x55,0x2c,0xc0,0x5b,0x4c,0x43,0x42,0xaa,0xed,0xdc,0xc1,0xb0,0x7f,0x28,0xc1,0x53,0xca,0xdd,0x40,0x7f,0xd3,0xed,0x41,0xb4,0xe9,0xf,0x42,0x48,0x82,0xab,0xc1,0xb2,0x78,0x8a,0xc1,0x2f,0x82,0xa,0x42,0xcb,0x88,0xa8,0x41,0xcd,0x80,0x67,0x42,0xc3,0x2c,0x98,0x41,0x5c,0x7a,0x87,0xc1,0x2e,0x6a,0x71,0x41,0xf8,0x61,0x83,0x41,0xe1,0xb2,0xf,0xc1,0xda,0x77,0xf8,0xc1,0x0,0xeb,0x8e,0x42,0xb8,0x8f,0xb6,0x40,0x7b,0xa,0x25,0xc2,0x8a,0xd,0xcf,0x41,0xfa,0x74,0xda,0x41,0x5e,0x62,0x7e,0xc1,0x40,0x1b,0x26,0xbd,0x84,0x76,0x92,0x42,0x65,0x77,0x82,0x3f,0x8c,0xb6,0xd2,0xc1,0xca,0x7d,0x39,0xc1,0xb2,0x59,0x96,0x41,0x52,0x9,0xf8,0xc2,0x80,0x16,0x27,0xc1,0x9a,0xa6,0xda,0x3f,0x4,0x6,0xdc,0x41,0x85,0x6c,0xa,0xc2,0x5f,0x41,0x1b,0x42,0x2a,0x55,0x72,0x42,0x2a,0xce,0x73,0x42,0x54,0x4a,0xf2,0xc1,0xb1,0xa0,0xcf,0xc1,0x9,0xcd,0x26,0x42,0xd5,0x48,0x81,0xc2,0x71,0x64,0xcb,0x41,0xdc,0x7c,0x64,0xc1,0x43,0x70,0xd9,0x41,0x85,0x5e,0xa3,0x42,0x98,0x1f,0x5a,0xc2,0xa1,0x85,0xe6,0x41,0x49,0x92,0xa4,0x42,0xfa,0x29,0xdb,0x41,0x64,0x7f,0xd5,0xc2,0x5e,0x3f,0xc4,0xbf,0xec,0x7a,0xb7,0x3f,0xed,0xa3,0x38,0xc2,0x90,0xc9,0x84,0x41,0x45,0xf4,0x17,0xc1,0xcf,0x67,0xe,0x41,0xda,0x66,0x20,0xc1,0xc2,0x0,0xac,0xc2,0x9b,0x30,0xec,0xc0,0x14,0xbb,0x7b,0xc1,0xa3,0xf2,0x30,0x41,0x69,0x55,0x36,0xc1,0xab,0x1e,0x6e,0x40,0xa,0x32,0x23,0x42,0xed,0xc1,0xde,0x41,0x28,0x38,0x13,0x3f,0xe2,0x16,0x60,0xc1,0x1e,0x64,0x37,0xc2,0x81,0xf6,0x70,0x42,0x81,0xb8,0xfd,0xc1,0xb8,0x7d,0xb0,0xc2,0x1f,0x97,0x0,0x41,0xb3,0x37,0x49,0xc2,0x53,0x32,0x37,0xc1,0x8a,0x2d,0x97,0xc2,0x2a,0xd2,0x27,0x41,0x68,0xa4,0x0,0xc1,0x97,0x2d,0x7f,0x42,0x87,0x0,0x30,0xc2,0x2a,0x47,0x3c,0x42,0xf8,0x5b,0x8f,0x41,0xbe,0xde,0x56,0x42,0xd1,0xb9,0x47,0x42,0x8c,0x71,0xea,0x40,0xfc,0x3,0x3d,0xc0,0x18,0x20,0x48,0xbe,0x61,0xdb,0xa,0x41,0x51,0x6f,0xf1,0x40,0xf0,0xca,0x85,0x41,0x46,0xbf,0x21,0xc2,0x9b,0xc5,0x33,0xc2,0x71,0x76,0x78,0xc2,0xe9,0xd2,0xa5,0x41,0x1f,0xd,0x91,0x42,0x17,0x77,0x1,0x42,0x6e,0xf5,0x8b,0xc2,0xcb,0xdd,0x8,0x42,0x43,0x5b,0xe0,0xc1,0xd6,0x97,0x33,0xc2,0xec,0xfa,0x30,0x42,0xbc,0xa1,0xf4,0xc1,0x9a,0x10,0x17,0x42,0xec,0x1d,0x62,0x42,0xed,0xcf,0x9a,0x41,0xcc,0xda,0x4f,0x42,0x5b,0x77,0x17,0x41,0xb4,0x59,0x29,0x42,0x4c,0x6d,0xb4,0xc1,0x72,0x32,0x3f,0x42,0xc4,0x67,0x1d,0xc2,0xcc,0x10,0xd5,0xc1,0x7c,0xea,0x8e,0x41,0x11,0x7,0xd4,0x41,0xf6,0x95,0xf9,0xc1,0x26,0x1,0x6c,0x40,0x39,0xce,0x65,0xc2,0xb8,0x3a,0xdd,0xc0,0x9e,0xa,0xc4,0x42,0x5f,0xf3,0xc0,0xc1,0x94,0xe8,0xb5,0x40,0xb5,0xd8,0x14,0x41,0xfe,0x5,0xfb,0x41,0xee,0xe0,0x12,0xc2,0xdc,0x4b,0xe9,0xc1,0x7e,0x4d,0xfc,0x41,0x59,0x79,0xa8,0xc0,0x98,0x26,0xc,0xc2,0x1e,0xd6,0x40,0x42,0x93,0xf2,0x61,0xbf,0x4a,0xe7,0x17,0x42,0xb1,0x77,0x2d,0xc2,0x4d,0x12,0x8,0x41,0xd2,0x2b,0xc4,0x3f,0xef,0x11,0x90,0x41,0x51,0xef,0x3c,0x40,0xac,0x12,0xf7,0xbf,0x38,0xc2,0x57,0xc1,0xa,0x80,0x41,0xc2,0xeb,0x31,0x40,0xc1,0x6f,0x51,0xb,0x42,0x72,0x46,0x44,0xc1,0xac,0xf3,0x2c,0xc2,0x62,0xd2,0xd2,0xc1,0xf5,0xd5,0x95,0x3f,0x20,0xdd,0x2b,0xbe,0x40,0xef,0x6d,0x41,0x4a,0x99,0x97,0x40,0x12,0xa5,0x19,0x42,0x60,0xf6,0xde,0xc1,0x5d,0x8a,0xb0,0x40,0x34,0x28,0x84,0xc2,0xa0,0xfd,0x2,0xbf,0xf5,0x45,0x49,0xc2,0x98,0x92,0x24,0xc1,0x0,0xef,0x46,0x3e,0x66,0x3e,0x34,0x42,0x48,0x9c,0x14,0xc2,0x5b,0x4,0x8,0x42,0xda,0x77,0x3f,0x41,0x66,0x84,0x97,0x40,0x8,0x7c,0xc3,0x40,0xd,0x50,0x3f,0x42,0xd5,0x2e,0x18,0x42,0xae,0x6a,0x35,0xc2,0xd6,0x1,0x7f,0xc1,0x7e,0xfe,0x4f,0xc2,0x22,0x33,0x42,0xc1,0xc1,0x50,0x17,0x41,0x84,0xfa,0xd,0xc2,0xdc,0xc,0x4d,0xc1,0x40,0x97,0x30,0x42,0x45,0xf8,0xab,0xc1,0x3f,0x84,0xc6,0x40,0x2f,0xdc,0xec,0xbf,0x3,0xcc,0xc6,0xc1,0x3f,0xda,0x1c,0xc2,0x44,0x26,0x4f,0xc1,0xe0,0x52,0x14,0x42,0xb4,0x29,0x94,0xc1,0x69,0xdc,0x94,0x42,0x8,0xf1,0x18,0x41,0xb4,0x40,0xea,0x41,0x14,0xc,0x7c,0xc2,0x31,0xb8,0x37,0x40,0x38,0x2f,0x99,0x42,0x30,0x5,0x8d,0x41,0xf4,0x60,0x5c,0x42,0x53,0x37,0x6e,0xc2,0xae,0x9a,0xc9,0xc1,0x63,0x1a,0xc2,0x41,0xd3,0x41,0x99,0x41,0x91,0x4e,0xed,0x40,0x80,0xd9,0xb9,0xc1,0xad,0x4e,0x7,0x42,0x6,0x3d,0x57,0xc2,0x79,0x7a,0x15,0x42,0xd3,0xbd,0x26,0xc2,0x24,0xe,0x8,0x41,0x9,0x47,0x8e,0xc2,0xb4,0xe9,0x1f,0xc1,0xf1,0xed,0x8e,0xc1,0x1a,0x3f,0xe3,0xc0,0x18,0xd4,0x9d,0xc1,0x12,0x93,0x75,0xc1,0xba,0x32,0x13,0x40,0xa2,0x95,0x18,0xc2,0x17,0x15,0x3a,0x40,0x18,0x20,0x1d,0x42,0x4,0x2,0xaa,0x41,0x41,0x23,0xb,0xc2,0x3e,0x5f,0x5,0x41,0x14,0xd,0x51,0xc0,0xef,0x7f,0x4a,0x41,0xa5,0xa9,0x37,0xc2,0x3b,0x65,0x35,0x42,0xd6,0xc5,0xea,0xc1,0xad,0xd4,0x0,0x42,0x68,0xda,0x7f,0x41,0xed,0xc9,0xf6,0xc1,0x6e,0xc0,0x81,0x42,0x6e,0x91,0x95,0x41,0x2b,0xcf,0x13,0x41,0xa4,0x9e,0xd,0x41,0xd7,0x2f,0x43,0x42,0x69,0x43,0x3d,0x42,0x25,0xae,0x5d,0x40,0x18,0xb4,0x2,0x40,0xe0,0xe4,0x4b,0xc1,0x92,0x93,0xd1,0x41,0x1b,0x1f,0xfc,0x41,0x7f,0xc,0x5c,0xc2,0xf6,0x24,0xd3,0x40,0xf0,0xe,0x3,0x41,0xe0,0x44,0x95,0xc1,0x72,0x36,0x5b,0x41,0xe1,0xe0,0x9,0x41,0x94,0xc9,0xb,0x40,0x13,0xb4,0x57,0xc1,0x8e,0xca,0x14,0x42,0x20,0x4b,0x77,0xc1,0xd1,0x82,0x35,0xc2,0x2b,0xc0,0x3e,0x42,0xce,0x85,0xc5,0x41,0xa6,0xfa,0x81,0xc1,0xfe,0xd6,0x51,0x41,0x77,0xd4,0x29,0xc0,0xbb,0xd0,0x31,0x42,0x30,0x52,0x9a,0xc1,0xb8,0x95,0xf1,0xc0,0x4c,0xda,0x1c,0x41,0xa6,0xff,0x44,0xc1,0x1,0xb3,0x2f,0xc1,0xb3,0x9,0x9e,0xc1,0xae,0xe9,0x44,0x41,0xc4,0xcc,0xa,0x41,0xae,0x9d,0x51,0xc2,0xa5,0xd0,0xf9,0xbf,0x79,0x7f,0x95,0x41,0x96,0x40,0x49,0xc1,0x99,0x96,0x25,0x41,0x57,0x4f,0xc1,0xc1,0x28,0x7,0x2c,0x41,0xe9,0x75,0x3f,0x42,0x19,0x4d,0x5d,0x42,0x66,0x18,0x18,0xc1,0xb8,0xd6,0x59,0x41,0x1c,0xfc,0x9b,0xc1,0x68,0xdf,0x60,0x40,0x4b,0xb3,0xab,0x41,0xb5,0x58,0xf0,0xc1,0xfc,0x10,0x24,0x41,0xab,0x4d,0x3b,0x42,0x9c,0xb2,0x69,0xc2,0xf5,0x5d,0x91,0x41,0x67,0x64,0x53,0xc1,0x98,0xa7,0x7c,0xc1,0x1f,0xc2,0xaa,0x41,0xdd,0x2d,0x59,0xc1,0xba,0xf1,0xaa,0x41,0xaf,0x7,0xa,0xc2,0x5c,0x44,0xa5,0xc1,0x26,0xa6,0xba,0xc0,0x40,0x68,0x85,0x41,0xcb,0x2,0x30,0xc1,0xa0,0xba,0x21,0xbe,0xe,0xca,0xf0,0xc1,0xfc,0xf,0xc5,0xc0,0x3e,0xaa,0x74,0x41,0xca,0x3d,0xef,0x40,0x98,0x3a,0x1f,0x3f,0xea,0x93,0xa6,0xc2,0x82,0x90,0xa8,0xc2,0xb3,0x8b,0x25,0xc2,0xca,0x12,0x41,0x41,0xc5,0xf7,0xf,0xc2,0xe1,0x6f,0x1,0xc1,0x67,0xe7,0xd,0xc2,0x14,0xcb,0x36,0xc2,0x20,0x46,0x5a,0xc1,0x2c,0xb6,0xa,0x42,0xec,0x3b,0xf6,0xc1,0xb8,0x9f,0x4c,0xbf,0xb1,0xe4,0xc4,0x40,0x3c,0xe0,0xd9,0x40,0x6a,0x30,0x17,0x42,0x6,0x71,0x51,0xc2,0x77,0x25,0xa2,0xbf,0x63,0x3e,0x0,0xc2,0x75,0xd1,0xeb,0x40,0xa2,0x93,0xea,0xc1,0x90,0x7b,0x5f,0x42,0x64,0xfb,0xa5,0x42,0x9a,0xeb,0xa6,0xc1,0x65,0x99,0xa8,0xc2,0xac,0xec,0x6c,0xc1,0x28,0x76,0x8e,0x3f,0xe2,0x2d,0xb5,0x40,0xe3,0x71,0x8e,0xc2,0x55,0xf6,0x24,0xc2,0x35,0x5a,0x22,0xc1,0x1,0x1b,0x65,0x41,0x94,0xa,0x5,0x42,0x4c,0xa4,0x7b,0xc2,0x2b,0x21,0x2,0x42,0x8d,0xe3,0x5e,0xc2,0xaa,0x1e,0xd,0x41,0xf8,0xf3,0xb6,0x42,0x7,0x73,0x30,0xc2,0x60,0x2c,0x9c,0x42,0x96,0xd5,0xa6,0xc1,0xa5,0x64,0xbc,0x41,0x1d,0xb4,0x38,0x42,0x71,0x4,0xaf,0xc0,0xa,0x5a,0x6f,0x41,0xf0,0x4d,0x28,0x3e,0xe8,0x2f,0x5,0xc2,0x2f,0xcf,0x2,0x42,0x84,0xb8,0x1e,0x42,0x73,0x14,0x2c,0xc2,0x74,0xf5,0xa4,0x42,0x7c,0xf9,0x2f,0xc2,0x1c,0xd0,0x33,0xc2,0x66,0xc7,0x78,0xc2,0xf6,0x7c,0xca,0x41,0xa8,0x10,0x33,0xc1,0x7e,0xdd,0xc6,0x40,0xa2,0xf0,0x97,0xc1,0xed,0xc3,0xd4,0xc1,0xf3,0x6d,0x56,0xc1,0xd2,0x6,0xd5,0x41,0xb9,0x7,0x43,0x40,0x50,0xd5,0x7,0x41,0x76,0x89,0x8e,0xc1,0x35,0x16,0x88,0xc2,0x60,0x7,0xd3,0x40,0x86,0x7f,0x4a,0x42,0x99,0x38,0x87,0xbf,0xa2,0xbb,0xb3,0xc0,0x1e,0xd4,0xac,0xc2,0xc2,0xaf,0x81,0xc1,0x40,0x15,0x65,0x41,0x5a,0x5b,0xe4,0xc0,0xf5,0x88,0xcd,0xc1,0x4,0xe3,0xdd,0xbf,0x1e,0xeb,0xe4,0xc0,0x96,0x7b,0x23,0x41,0xd0,0xdf,0x77,0x42,0x27,0x42,0x38,0x42,0x5e,0x7f,0x5c,0xc0,0x6a,0x6e,0x2,0xc1,0xa8,0x32,0xd5,0x41,0xa9,0xf5,0x98,0x42,0xd0,0x9f,0xa8,0x41,0x96,0x3,0x1,0xc1,0x44,0xc4,0xbe,0xc1,0x13,0x24,0xba,0xc2,0x80,0xbc,0xb6,0xc2,0xe8,0x23,0xfd,0x41,0x99,0xcb,0x1a,0xc2,0x13,0xa1,0x2e,0xc1,0x3a,0x5e,0xfa,0xc0,0x4c,0x1b,0x21,0x42,0xa8,0x36,0x90,0x40,0xa7,0x43,0x95,0x40,0x72,0x7,0xf9,0x41,0x8a,0xc4,0x99,0x41,0x4e,0x68,0x5a,0xbf,0x4f,0xb1,0xd,0x40,0x24,0x54,0x12,0x41,0x9d,0x4f,0x6f,0xc2,0xf0,0xd6,0x3c,0xc2,0x35,0xf5,0x3f,0x41,0xa6,0x35,0xf3,0xc1,0x18,0x16,0xb,0xc1,0xf4,0xa0,0x2d,0xbd,0x75,0xcb,0x32,0x42,0xe7,0xb,0x7d,0xc0,0xdf,0x5d,0x21,0x42,0x26,0x3a,0x34,0x41,0x1b,0x9f,0x21,0xc2,0x26,0x71,0xef,0x41,0x1e,0x9a,0xad,0x41,0x58,0xa3,0xe6,0xc1,0x50,0x99,0x8a,0xc2,0xbc,0xa0,0xbf,0x40,0x2,0xd9,0xc5,0x41,0x4c,0x72,0x49,0x41,0xb8,0xc1,0x8d,0x42,0xbf,0xfb,0xac,0x42,0xe2,0x70,0x9,0x42,0x49,0xdb,0xa7,0x41,0x53,0x3b,0x81,0x41,0x40,0x72,0x4e,0x42,0x53,0x1f,0xef,0x41,0xc7,0xd,0x7b,0xc0,0xf4,0xf5,0x40,0xc2,0x87,0xb7,0xa0,0x41,0xad,0x67,0xb5,0xc2,0xb5,0x83,0x9f,0x42,0xe8,0x17,0x94,0xc2,0x70,0x59,0x24,0xc1,0x7a,0xb3,0x51,0x42,0xfd,0x2f,0x83,0x42,0x84,0x6,0xb9,0x41,0xcc,0x2a,0x13,0x42,0x3b,0x6c,0x10,0x42,0xbc,0x73,0x93,0x41,0xdb,0x59,0x71,0xc2,0xe8,0x54,0x65,0x42,0xfa,0xe8,0x4,0x42,0xcf,0x32,0x20,0x41,0xb4,0x78,0x3f,0xc2,0x2d,0x71,0x5d,0x41,0xe7,0xe9,0x90,0x42,0x54,0xf4,0xe7,0x41,0x9,0x2f,0x37,0xc1,0xf2,0x59,0x22,0xc2,0xfa,0x6f,0x13,0xc2,0x1b,0xbd,0x7,0xc2,0x8a,0x77,0xce,0x40,0x85,0x67,0xae,0x41,0xab,0xbc,0x29,0xc1,0x8e,0x2e,0xb2,0xc1,0x23,0x37,0x26,0x42,0x26,0x9c,0xa3,0xc2,0x56,0x7,0x25,0x41,0x4d,0x54,0xc,0x42,0xc4,0x66,0x40,0x42,0xaf,0x78,0x41,0xc2,0xff,0xd9,0x5c,0xc2,0xe6,0x26,0x2b,0x42,0x55,0xd7,0x3,0xc2,0xe2,0x56,0x28,0x42,0x25,0xd0,0xb1,0x40,0x6,0x69,0xef,0x41,0x9c,0xf4,0x4,0x3f,0x70,0x3e,0x66,0x41,0x94,0xe8,0x46,0xc2,0x39,0xed,0x7c,0x40,0x84,0x98,0x6f,0xc0,0x95,0xdb,0x13,0x42,0x49,0xe9,0xe9,0x41,0xa6,0x20,0x8e,0x42,0x99,0xbc,0x1c,0xc1,0xd4,0x3f,0x9f,0x40,0x92,0x11,0xd5,0xc0,0xed,0x69,0x2e,0x42,0xec,0x3d,0x59,0xc1,0xcb,0xa0,0xb1,0xc0,0xf7,0x5,0xc4,0x42,0x34,0x3c,0xed,0x41,0xf2,0x4a,0x3a,0xc1,0xe2,0xe3,0xaf,0xc1,0xd3,0xb,0xe3,0x41,0x30,0xa8,0xbc,0x3e,0xb9,0x73,0xb1,0xc2,0x62,0x88,0xe7,0xc0,0x81,0x52,0x3c,0x42,0xb1,0xb8,0x5e,0x42,0x51,0xa,0x7b,0x40,0xa6,0xe4,0x74,0x41,0x3d,0x76,0x58,0x42,0xb7,0x7c,0xb,0xc2,0x86,0xf6,0x35,0x41,0x67,0x84,0xfe,0xc1,0x54,0xe2,0xaf,0xbf,0x1e,0xeb,0x39,0x42,0x83,0x72,0xdc,0x41,0xc8,0x23,0xf9,0xc1,0xbf,0xae,0xf0,0x41,0xe,0x1e,0x58,0xc1,0x8a,0x77,0x41,0xc2,0xc7,0x4f,0x6a,0x42,0x92,0xac,0x24,0x42,0xbe,0xc7,0x20,0x42,0x2b,0x35,0x84,0xc0,0x5d,0x6e,0x59,0xc1,0x8e,0x8,0x44,0x42,0x33,0x62,0x14,0xc1,0x36,0xad,0x77,0x42,0xbe,0x77,0xd8,0x41,0xc,0x7d,0x55,0x41,0xc2,0x73,0x85,0xc2,0x2e,0x5c,0xa7,0x42,0x33,0x9d,0x19,0xc2,0x15,0xc7,0x26,0xc1,0x30,0xcc,0x6,0x42,0x6a,0xd2,0x11,0x42,0x54,0xd2,0xb5,0x41,0x2f,0x21,0xb7,0x42,0x3b,0xa4,0xb4,0x41,0xe0,0x21,0x54,0xc2,0xc,0x9d,0xf0,0x40,0xb3,0xb4,0xe2,0xc1,0x31,0x47,0x43,0x42,0x20,0x38,0x23,0xc1,0x8f,0x3c,0xb4,0xc2,0x8b,0xe7,0x8d,0xc1,0xe0,0xaf,0x44,0x42,0x80,0x32,0x29,0x41,0xe8,0xa4,0xa4,0xc1,0x38,0x63,0x40,0xc2,0x66,0xed,0x5e,0x42,0xd2,0x8f,0x38,0x42,0xd0,0xb0,0xb,0x41,0xa,0xc9,0x33,0xc1,0xd8,0x75,0x23,0xc1,0xc0,0x8f,0xb,0xc2,0x4b,0x84,0x16,0x42,0xda,0xd8,0xe9,0xc1,0xc4,0xd7,0x46,0x42,0xe6,0xe5,0x29,0x42,0x92,0xa3,0x39,0xc2,0xc7,0xb5,0x66,0x42,0xb3,0x9a,0x1c,0xc2,0x6d,0x92,0xc1,0xc2,0x1c,0x21,0x7f,0x40,0x90,0x39,0x8d,0x42,0xd0,0x18,0x31,0x41,0xce,0x52,0xab,0xc2,0x29,0x3f,0x83,0xc1,0xd1,0x71,0x2f,0xc2,0xd5,0x1b,0x31,0x42,0xec,0xb8,0xa9,0x42,0x96,0x84,0x6e,0xc2,0x5c,0xcc,0xe0,0x41,0xb7,0x5b,0x1e,0x40,0x4c,0x31,0x38,0x40,0x9e,0x40,0x3,0x42,0xc3,0x5d,0xd5,0x41,0x2b,0xc3,0x9d,0x41,0x34,0xa7,0x33,0x40,0xaf,0xe6,0x46,0xc1,0xaa,0x53,0x89,0x40,0x48,0x70,0xad,0x41,0xa4,0x77,0x3d,0xc0,0xf5,0x1a,0xbf,0xc2,0xa1,0x80,0x83,0x42,0x8f,0xb2,0xe1,0xc1,0xaf,0xde,0xe2,0xc1,0x4,0xad,0x66,0x41,0x73,0x8c,0x2e,0xc1,0x72,0x8,0x75,0xc0,0x69,0x97,0x10,0xc2,0xf1,0x6e,0x98,0xc2,0xe2,0xa,0x82,0xbe,0x46,0xcd,0xbf,0x41,0x46,0xe2,0x4f,0x42,0x15,0x86,0xd3,0xc2,0xfa,0x9c,0x35,0xc2,0x0,0x6e,0xc3,0x40,0x66,0x69,0x6c,0x41,0x45,0xed,0x19,0x41,0xe0,0xc8,0x89,0x41,0x8e,0x50,0xc7,0x41,0x38,0x71,0x24,0xc1,0x13,0xb,0x98,0xc2,0xe1,0x79,0x8d,0xc2,0x6a,0x4e,0x1a,0xc2,0x36,0x74,0x20,0x41,0xd3,0xe7,0x3,0x40,0xe2,0x1f,0x83,0x41,0x5b,0x55,0x28,0xc2,0x88,0xed,0xf3,0x41,0x74,0xbe,0xfa,0xc1,0x24,0xc7,0xef,0x40,0x8f,0x71,0x17,0xc2,0x83,0xdc,0x8d,0x41,0xa7,0x4f,0xd5,0xc1,0xba,0x30,0xa8,0xc2,0x31,0xf4,0xf0,0xc1,0x28,0xda,0x5c,0xc1,0xae,0x5c,0xde,0x41,0x40,0x51,0x2f,0xbf,0xa1,0xa3,0xcf,0xc1,0xa5,0x0,0x63,0xc2,0x88,0xdb,0xa5,0x3e,0xde,0x44,0x50,0xc2,0x11,0x6e,0x50,0xc2,0x4,0x4f,0xa4,0xc0,0x6,0x92,0x3b,0xc2,0xc3,0x73,0xb9,0xc2,0x10,0x99,0xda,0x40,0x11,0xf6,0x1f,0xc1,0x44,0x1b,0xff,0x40,0x68,0x99,0x4b,0x42,0xda,0x36,0x6b,0xc1,0x8a,0x42,0x8b,0x42,0x76,0xe1,0xa5,0xc1,0x9d,0x16,0x1b,0xc2,0xa7,0x17,0xe7,0x41,0x24,0xcb,0xb7,0xc2,0xb5,0xe9,0x92,0x40,0x95,0xbb,0xd8,0xc2,0xf1,0x37,0x80,0xc1,0xe7,0x76,0x14,0x41,0x52,0x2,0x8b,0x40,0xd4,0x87,0x5f,0x40,0xf3,0x56,0x14,0x42,0xbf,0x4,0xe4,0x41,0x63,0x5b,0xbb,0x41,0x3c,0xc3,0x19,0x42,0x1d,0xbd,0x3f,0xc1,0x19,0xa2,0x66,0x42,0x54,0x76,0x9b,0xc2,0xa8,0x4a,0x7e,0x41,0xfe,0x8a,0xcb,0xc1,0x6c,0x40,0x2,0xc2,0xee,0xf6,0x43,0x42,0xe6,0x77,0x72,0x41,0x5d,0x54,0xbf,0xc1,0x60,0x47,0x3b,0x42,0xd5,0xd5,0xb7,0xc1,0xbd,0xd6,0xfe,0x41,0x97,0x1,0x60,0x42,0x69,0xe9,0x7,0xc0,0x15,0x45,0x8,0xc2,0xf1,0x2c,0x29,0xc2,0x62,0xa5,0xb,0x42,0xbd,0x7b,0xa1,0x42,0xae,0x39,0xb9,0xc2,0x1a,0x3d,0x28,0x42,0x12,0xfa,0x4f,0xc2,0xf9,0x5f,0x36,0x41,0x3e,0xc7,0x20,0x41,0xce,0xd1,0xb6,0xc1,0xbc,0x44,0x51,0xc2,0x2a,0x25,0xfd,0x40,0x1c,0x8b,0x96,0x41,0xba,0x64,0x80,0xc1,0xb7,0x9f,0xa7,0x42,0x5a,0xb8,0xc1,0x41,0x9c,0x14,0x83,0xc1,0x61,0xbe,0xfc,0xc1,0xe7,0x66,0x59,0x41,0x83,0x92,0x1f,0xc2,0xc4,0x86,0x51,0x42,0xbd,0x48,0x19,0xc2,0x6e,0x7,0xaf,0xc2,0x27,0x98,0xfb,0xc1,0x3c,0xf,0x4a,0xc2,0xaf,0xca,0x59,0x42,0x3e,0x63,0x98,0xc1,0x51,0x4a,0x84,0x41,0xb5,0x16,0xcc,0xc1,0x53,0x83,0x87,0x42,0x18,0xa4,0xa9,0x42,0x39,0x56,0x8b,0xc2,0x6f,0x1c,0xab,0xc2,0xa7,0xb9,0xeb,0xc1,0x79,0x3b,0xa1,0x41,0xd5,0x17,0x9,0xc2,0xce,0xb2,0xf0,0x40,0x85,0x67,0x11,0x42,0xd7,0x6e,0xb4,0xc1,0x40,0xe,0x9d,0x42,0xbc,0xd9,0xf2,0xc1,0x3b,0xc2,0x14,0xc1,0x78,0xa5,0x19,0xc2,0x96,0xf5,0x12,0xc1,0xcd,0x28,0x85,0x41,0x73,0xda,0xf5,0x41,0xa6,0xe7,0x89,0xc2,0x5e,0x73,0xb9,0xc1,0xbd,0x4a,0x49,0x41,0x25,0xd9,0x8a,0x42,0x8d,0x98,0x69,0xc1,0xf0,0xd3,0xef,0x3e,0xa0,0xfa,0x9,0xc1,0x20,0x59,0x3b,0xc2,0xe1,0x71,0x7d,0xc2,0x8f,0xe8,0xa7,0x41,0xa9,0x4d,0x16,0x42,0xc6,0x5c,0xe0,0xc1,0x38,0x72,0x35,0x42,0xe8,0xe5,0x8e,0xc1,0x6c,0xa8,0xdb,0xc1,0xde,0x63,0x18,0xc0,0xcb,0x4c,0xca,0x3f,0x46,0x3e,0xb9,0x40,0xe3,0xed,0xe5,0x41,0x65,0x60,0x26,0xc2,0xbd,0x45,0x8e,0x42,0x4d,0x5f,0xd,0x41,0xa5,0x68,0xd3,0xc1,0x1e,0x27,0xcb,0x40,0x28,0x9c,0x1b,0xc1,0x65,0x12,0xd5,0x41,0xc6,0xde,0xab,0xc1,0x93,0x1d,0x4,0x41,0x3f,0xcf,0xe6,0x40,0xe0,0xb5,0x1a,0xc2,0xe,0x1e,0x16,0x42,0x93,0x8e,0x9b,0xc2,0xaa,0xa5,0xda,0xc0,0xf8,0xb,0xba,0x41,0x99,0x14,0x39,0x41,0x3a,0xdd,0xb3,0x41,0xd8,0x1d,0x61,0x41,0x8e,0xf4,0xc9,0xc2,0xb4,0x17,0xaf,0x41,0x94,0x6f,0xef,0xc0,0xd2,0xe2,0x92,0x42,0x83,0xb1,0xfa,0x41,0x73,0x21,0x89,0x41,0x9d,0x21,0x55,0xc1,0xf0,0xf0,0x60,0xc0,0xc0,0xa,0x8a,0x42,0x47,0x41,0x13,0xc2,0x79,0x56,0x82,0xc1,0xda,0x6a,0x2b,0xc2,0xb1,0x49,0xd4,0xc1,0xe7,0x50,0x4a,0xc1,0x97,0xe7,0x97,0xc2,0xe0,0x93,0x1b,0xc2,0xfa,0x25,0x2b,0xc2,0xbc,0xbf,0x1d,0x40,0xe9,0x8,0x77,0xc2,0xca,0xfb,0x71,0x42,0x4f,0x40,0xf3,0x41,0x3a,0x84,0xe9,0x41,0x40,0xbb,0xe2,0xc0,0xa0,0xaa,0x55,0xc1,0x5c,0xf,0x29,0xc1,0x97,0xf0,0x3e,0xc1,0xee,0x64,0xb6,0x41,0x54,0xfe,0x83,0x41,0xec,0x97,0xb7,0x41,0x73,0x79,0x27,0xc2,0x13,0xb8,0x35,0x41,0xc0,0x3d,0x13,0x41,0xce,0x97,0x33,0xc2,0x10,0xb9,0x13,0xc2,0x42,0xd4,0x33,0x42,0xc4,0x27,0x6c,0xc2,0x50,0xe0,0xa4,0xc1,0x9,0xb2,0xa8,0x41,0x19,0xae,0xa,0xc2,0x78,0x20,0x33,0xc2,0x5b,0xc2,0xf6,0xc1,0xa6,0x26,0xaf,0x41,0xc0,0x91,0x8d,0x42,0xa2,0xc7,0x90,0x40,0xd5,0xc4,0x88,0x42,0xe5,0xfc,0x3d,0x41,0xb3,0xf6,0xd,0xc2,0xc3,0xfc,0x1d,0x41,0xdd,0xd0,0x4e,0xc2,0x59,0xba,0xfa,0x41,0x66,0xb7,0xf1,0x40,0xb,0x70,0x12,0x41,0xdb,0x23,0x6f,0xc2,0xc6,0x62,0x84,0xc1,0x4a,0xf8,0x83,0xc1,0x53,0x35,0x22,0x41,0x6c,0x77,0xaa,0x41,0x52,0x22,0x6f,0x41,0xfd,0xe6,0x1c,0x42,0x48,0x3b,0x50,0x42,0xee,0x9c,0x7d,0xc2,0xcc,0x2a,0x4f,0xc2,0xb6,0x17,0x88,0x3f,0xab,0x33,0xe4,0xc1,0x62,0x84,0xd,0x41,0xba,0x15,0xf1,0xc1,0x2f,0xf5,0x66,0x41,0xd3,0x1e,0x1b,0x41,0xba,0xfd,0x81,0xc2,0xa6,0x25,0x9f,0xc2,0x7a,0xe4,0x83,0xc2,0xf5,0x27,0xca,0x41,0x4a,0xe4,0x8b,0xc2,0xfc,0x64,0x54,0xc0,0x5,0x65,0xc0,0x41,0xb9,0x64,0x10,0xc2,0xb1,0xcb,0x99,0xc2,0xe0,0x3f,0xf3,0x41,0x2,0x8a,0x3,0xc0,0xb8,0x5,0x4,0x42,0xfd,0x8e,0x97,0x40,0x91,0x64,0x3a,0x41,0x47,0x0,0x14,0x42,0xa4,0x36,0x9f,0xc0,0x5c,0x7f,0x2a,0xc1,0xde,0xc5,0x5b,0x42,0xa3,0xa5,0x5,0xc2,0xa,0x25,0x90,0xbf,0x18,0x64,0x37,0x42,0xe4,0x9f,0x75,0x41,0x6e,0x9a,0xbb,0xc1,0x18,0xae,0x22,0x41,0xff,0x95,0x2c,0x42,0xe6,0xeb,0xa1,0xc1,0x13,0xbe,0x19,0xc1,0x82,0xbb,0x33,0xc2,0xe7,0xa9,0x74,0x41,0xce,0x22,0x1b,0xc2,0x8,0x15,0x5c,0xc0,0xed,0x39,0x37,0x41,0xaf,0xe6,0xe1,0xc0,0x42,0x56,0x80,0xc0,0x52,0x33,0x2d,0xc0,0x72,0x38,0x8f,0xc0,0xc,0x1c,0xdb,0x41,0x2b,0x87,0xb5,0x40,0xd7,0xb8,0x7b,0xc2,0xb,0xd3,0xa2,0xc1,0xa3,0xee,0x20,0xc2,0xb7,0xeb,0xa8,0xc1,0x1f,0xcd,0x1f,0x41,0x3b,0x9,0xb8,0xc1,0x83,0x9b,0x93,0xc2,0x59,0x36,0x8b,0x41,0x86,0x28,0x40,0x42,0x78,0xc,0x96,0x41,0x42,0x82,0xc,0x42,0x1d,0xa3,0x17,0xc2,0xed,0x36,0xcb,0x41,0x25,0xed,0x4d,0xc2,0x12,0x2b,0x6e,0xc2,0xe2,0xa,0x9b,0x41,0x3e,0x66,0xe6,0x40,0x14,0x84,0xd6,0x40,0x22,0xc9,0x55,0xc1,0xda,0xb6,0x98,0x40,0xa2,0x4c,0x53,0xc2,0x4e,0x2e,0x31,0xc0,0xf4,0x4d,0x1d,0x41,0x49,0xb4,0x77,0xc1,0x4a,0xc4,0xa9,0xc2,0x7b,0x42,0x44,0x42,0x2c,0xc3,0x80,0x42,0x4c,0xa2,0x7d,0xc1,0x8c,0x90,0xa,0x41,0xea,0xf3,0x1d,0xc1,0x3,0xce,0xed,0xc0,0xb9,0xa,0x6f,0xc1,0x68,0x6,0x78,0x42,0xf5,0x53,0xc1,0x42,0x39,0xd0,0x89,0x42,0x73,0xbb,0x62,0xc1,0xe9,0xfe,0x22,0xc2,0x8c,0x15,0x4d,0xc1,0xd2,0x73,0x5c,0xc2,0x7c,0x2c,0x8f,0x41,0xd6,0xf3,0xfa,0x40,0x29,0xd2,0x54,0x42,0x80,0xa5,0x90,0xc2,0x54,0x27,0x86,0xc1,0x4d,0x6d,0xbc,0xc1,0x2b,0x5b,0x4d,0xc2,0xc5,0xc8,0x11,0x42,0x7,0xd3,0x88,0xc1,0xbe,0x7e,0x53,0xc1,0xac,0x81,0x6b,0xc1,0xf3,0x1c,0xae,0x41,0xb6,0xb4,0xd,0xc1,0xe2,0xba,0x18,0x42,0x7,0xcc,0xfd,0xc1,0xc9,0x4e,0x5a,0xc2,0xd1,0x35,0xe2,0x3f,0xcd,0xff,0x88,0x42,0xa9,0x62,0x4f,0xc2,0x7f,0x51,0x3e,0xc1,0xcf,0x4d,0x40,0x41,0x4,0x82,0x14,0x42,0xce,0x47,0x29,0x41,0xbf,0x9b,0x9,0xc1,0xf9,0xc3,0x2,0xc1,0xeb,0xf3,0xb1,0x41,0x7e,0x0,0xb8,0x42,0xef,0xe0,0x1,0xc1,0xa3,0x8b,0xa2,0x42,0x22,0x25,0x28,0xc2,0xfb,0x69,0x5f,0xc2,0xce,0x0,0x6a,0xc1,0x53,0x38,0x49,0xc2,0x12,0xeb,0x67,0xc2,0x6,0x25,0x64,0xc2,0x78,0x5e,0x79,0xc1,0x68,0x80,0x8,0xc2,0xe6,0x4f,0xe,0xc2,0x35,0x75,0xc1,0x40,0x25,0x91,0x72,0xc0,0xa0,0x16,0xdd,0xc1,0x38,0x68,0x9d,0xc1,0xd9,0xd7,0x9d,0xc1,0x9c,0xfa,0xad,0xc2,0xe3,0x8d,0x63,0x41,0xdc,0x13,0x4b,0x41,0xa4,0x62,0x89,0x41,0xc8,0x66,0xbd,0x40,0xc4,0x2,0x26,0xc2,0xa8,0x4,0x84,0xc2,0xe6,0x34,0x12,0x41,0xda,0x12,0x79,0xc2,0x42,0x12,0x30,0xc1,0xb,0x16,0x1e,0x42,0x38,0x9d,0xeb,0x41,0xd7,0xb6,0x15,0x41,0xe9,0x33,0xbb,0xc0,0x44,0x6e,0x93,0x42,0x6a,0xa2,0x6e,0xc2,0xab,0x4,0x1b,0xc2,0x82,0x6c,0xc,0xc0,0x93,0xa4,0x1d,0x42,0x4f,0x9c,0x8e,0x42,0x75,0x96,0xc9,0x40,0x1a,0x8f,0x98,0x40,0xc6,0xd5,0x7a,0xc0,0x2a,0x1f,0x72,0xc2,0x7,0xa3,0xc6,0xc1,0x0,0xab,0x2a,0x42,0x3a,0x5e,0x8e,0xc2,0x73,0x57,0xc4,0x41,0x2e,0xfc,0xb5,0xbf,0xb9,0x61,0x89,0xc2,0x3e,0x9,0xf7,0xc1,0x31,0xfa,0x83,0x42,0xb0,0xe1,0x19,0xc2,0x78,0x6b,0xb6,0xc1,0xbe,0xbc,0xb0,0x42,0x64,0xff,0x2,0xc1,0x70,0x12,0xb2,0x41,0x82,0x69,0xa4,0x42,0xb3,0xa4,0x79,0xc2,0x10,0x78,0xb3,0x42,0xaf,0xa7,0xf1,0x42,0x28,0x42,0xcd,0x40,0x82,0x7e,0x56,0x42,0x66,0xd5,0xc5,0x40,0xed,0x2b,0x52,0xc2,0x7e,0x56,0x40,0xc1,0xaf,0x8d,0x19,0x42,0x2c,0x46,0xd3,0xc1,0xd7,0xe4,0xc3,0x41,0xe,0x9a,0xa9,0x41,0x6e,0xe,0x79,0x42,0x28,0x7c,0x35,0xc0,0x9a,0x99,0xdd,0xc0,0x6a,0x6a,0x63,0xc2,0x39,0xd3,0xa0,0xc2,0x64,0x53,0xc7,0x41,0xa6,0x57,0xe2,0xc1,0xca,0xa9,0x76,0xc1,0x81,0xfe,0xb0,0xc1,0xf2,0x7d,0x47,0xc2,0x6,0x73,0x7c,0x42,0x38,0x51,0x17,0xc0,0xf0,0xf4,0xae,0xc1,0xcc,0x4e,0x9,0xc2,0xbc,0xf1,0xe9,0x41,0x8,0xed,0x62,0x42,0x3b,0x41,0x63,0xc1,0xd7,0x12,0x7,0xc1,0xf0,0x6a,0x8b,0x42,0xb8,0x97,0xb0,0xc1,0xea,0xa1,0x22,0x42,0xfe,0x63,0x40,0x40,0xd4,0xc8,0x97,0x3e,0x18,0xc8,0x13,0x42,0xfa,0xb2,0x17,0xc2,0x89,0x21,0x3f,0x42,0xd0,0x18,0x8b,0x41,0xba,0x47,0xaa,0x40,0x7a,0x1f,0x1e,0xc1,0xf8,0x3a,0x5,0x42,0x97,0x27,0xb6,0xc1,0x92,0x5f,0x2d,0x42,0x80,0x86,0xaf,0xbd,0x85,0xcb,0x40,0x40,0x2c,0x14,0x90,0xc1,0xc1,0x11,0x8e,0xc1,0x4e,0xc7,0x6,0x41,0xe2,0x5a,0x49,0x42,0xda,0x6a,0x16,0xc1,0xf8,0xbc,0xdd,0x40,0xdf,0xcd,0xf,0xc2,0xdc,0x19,0x8b,0xc1,0xc5,0x0,0x8f,0xc2,0x9e,0x46,0x41,0xc2,0x3b,0x6e,0x30,0x42,0xc8,0x5c,0x89,0x42,0xdf,0xc6,0x94,0xc0,0xfa,0xdd,0x5f,0x42,0x7,0xf6,0x88,0xc1,0xa4,0x6f,0x40,0xc1,0x51,0xfe,0xaa,0x41,0x26,0x26,0xb0,0x41,0x4f,0xcc,0x32,0xc2,0xb2,0x95,0x57,0x41,0x9f,0xe1,0xbf,0xc1,0xfa,0xbd,0x1c,0xc2,0x76,0xa1,0xfb,0xbf,0x2c,0xf,0x51,0xc1,0x94,0xae,0x90,0xc2,0xe7,0x61,0xa5,0x42,0x4b,0x86,0x8a,0xc2,0x74,0xcd,0x35,0xc2,0x9b,0x3,0x4f,0xc2,0x7f,0x3a,0xb2,0x41,0xb3,0xc,0x9c,0x42,0x25,0x34,0x3a,0xc2,0x9,0x24,0xbf,0x3f,0xaf,0x6d,0xf,0xc2,0xc3,0x11,0x4b,0xc2,0x57,0x8e,0xe7,0xc1,0x15,0xf3,0x4,0x42,0x67,0xd9,0x5a,0xc2,0x4c,0xd7,0xa2,0x41,0xa5,0xfa,0x26,0xc1,0x20,0x54,0x75,0xbe,0x3f,0x43,0xba,0x42,0x5c,0xa7,0x30,0xc2,0xd3,0x99,0x19,0x42,0xec,0x47,0xaf,0xc1,0x15,0x20,0x8c,0x42,0x1a,0x34,0xe0,0xc1,0x9a,0x4e,0xa6,0xc2,0xeb,0xf4,0x2,0x43,0x2a,0xb,0xe6,0x40,0xa0,0x76,0x88,0xc0,0xdf,0xbc,0x74,0xc2,0x53,0x62,0xd,0xc2,0x1c,0x93,0xec,0x41,0xfd,0xe6,0x2d,0x41,0xde,0x8b,0x58,0xc2,0x4e,0x5c,0x84,0xc1,0xed,0x8b,0x38,0xc2,0xab,0x4e,0x4b,0x42,0xce,0x29,0x9,0x42,0x7e,0xfa,0x0,0xc1,0x88,0x70,0x6e,0x42,0x8e,0xc9,0x93,0x41,0xd7,0x2d,0xc8,0xc1,0xdf,0xc6,0x97,0x41,0xf7,0xe4,0x1d,0xc2,0x1c,0xd8,0x32,0xc1,0x80,0x46,0xf5,0xc0,0x46,0x6c,0x97,0x3f,0x66,0x4b,0xf1,0x41,0xfa,0xb5,0xc0,0x41,0xc2,0x2f,0x8c,0x42,0x9b,0x41,0xb2,0xc2,0x20,0xaf,0x54,0x42,0x67,0xf1,0x5b,0x41,0x4c,0x62,0x96,0x42,0xdc,0x70,0x89,0xc2,0x7e,0xb8,0xda,0x40,0xfd,0x76,0x93,0xc1,0x23,0x31,0xaa,0xc2,0x0,0x2c,0xe6,0xc1,0xbc,0x41,0xcd,0x41,0x8e,0xaf,0x1a,0x41,0x8c,0x35,0x60,0x41,0x71,0xcf,0x99,0x42,0x1e,0xc7,0x20,0xc1,0xa6,0x1,0xf9,0x41,0x98,0x3f,0xce,0x40,0x4a,0xc,0xa0,0xc1,0xb1,0x98,0x7b,0xc1,0xd5,0xca,0xe9,0x41,0xb8,0xf0,0xa8,0xc1,0xdb,0x57,0x1e,0xc2,0xf0,0xaf,0x6c,0x41,0x2d,0x3a,0x2c,0x42,0x1c,0x54,0xda,0x41,0x3,0xe4,0xa9,0xc0,0x5b,0xfb,0x4,0xc1,0xdc,0x43,0x86,0xc2,0x76,0x1d,0x56,0x41,0x40,0x75,0x53,0x3e,0x10,0x56,0x12,0xc1,0xb2,0xde,0x86,0x42,0xe7,0x29,0x6f,0x42,0x44,0x7c,0x5a,0xc1,0x60,0xb3,0xdc,0x3d,0xe0,0x97,0x5f,0xbf,0x44,0xf2,0x39,0xc2,0xd4,0x29,0x85,0xc2,0x38,0xbe,0x99,0xc1,0x8,0x6f,0xbe,0x40,0x13,0xe,0x7,0x41,0x70,0xe0,0x8,0x42,0xee,0xa7,0x8d,0xc0,0xde,0x6f,0xa2,0x40,0x80,0x7a,0x0,0x42,0x8f,0x60,0x6d,0xc2,0x2c,0xfe,0x6f,0x42,0x7e,0xd0,0xe1,0x41,0xde,0xfc,0xfe,0x41,0xec,0x93,0x1c,0xc2,0xb2,0x6a,0xd5,0x41,0xdf,0xf4,0xef,0xc1,0x6b,0x5a,0x89,0xc2,0xd1,0xa6,0xad,0x40,0x44,0xf2,0xa0,0x42,0x19,0xb3,0xe9,0x41,0xb3,0xda,0x44,0xc1,0x76,0xa8,0x41,0x41,0xf2,0x9a,0xa9,0xc0,0x52,0xd7,0x97,0xc1,0x91,0x2e,0xa5,0x40,0xc5,0x51,0x70,0x41,0x28,0xa0,0xeb,0x40,0xd2,0xe1,0x94,0xc1,0x9e,0xb6,0xa7,0x3f,0x90,0xe3,0xb,0xc1,0x63,0xe2,0xaa,0xc1,0x3c,0x6a,0x2d,0xbf,0x91,0x61,0xec,0xc1,0x22,0xa,0xe4,0xc1,0x57,0x4b,0xda,0x41,0x75,0xb9,0x32,0x42,0xe7,0xe5,0xce,0x3f,0xa,0x9e,0x51,0x41,0x94,0x6f,0x1d,0x40,0xd,0x93,0x2b,0x41,0xae,0xdc,0x37,0x40,0xd1,0x8c,0x7f,0x42,0xd1,0xf6,0xe1,0x42,0x84,0x25,0xc4,0x40,0x70,0x2f,0x89,0x40,0xe,0xfb,0x77,0xc1,0x17,0xff,0x25,0xc2,0xea,0x1,0x16,0x41,0x58,0xf2,0x55,0xc1,0x60,0x86,0x83,0xc1,0xe2,0x69,0x46,0xc2,0xca,0x95,0x83,0xc1,0x94,0x3e,0xc1,0xc1,0x39,0x8,0x27,0x42,0x3d,0xa4,0xc6,0x41,0xcb,0xc6,0x2b,0xc2,0xc9,0x48,0xc1,0x40,0x2c,0xf3,0xe,0xc1,0x54,0x24,0x55,0x42,0x8,0x8b,0x87,0x42,0xbc,0x2b,0x3c,0xc0,0x8a,0x56,0xb8,0x41,0x7f,0xc2,0x7e,0xc2,0xb9,0xeb,0x8c,0x42,0x98,0x5a,0x29,0x3f,0xc0,0x36,0xba,0xc1,0xed,0xd1,0x5,0x41,0x72,0x80,0x38,0x42,0x56,0x1b,0x24,0xc2,0x13,0x7a,0xe2,0xc1,0x4,0x2f,0x90,0x42,0xaf,0x6e,0xcd,0xc1,0x90,0x53,0xa4,0xc1,0x65,0xaa,0xe6,0xc1,0xaf,0x90,0x3,0x42,0xf8,0xe7,0x0,0x42,0xfb,0x36,0xa4,0x41,0x2a,0x9,0xa,0xc2,0x92,0x66,0x16,0x42,0xc2,0x85,0x1a,0x42,0x2e,0x62,0x80,0xc1,0xaf,0x7d,0x9,0x42,0xa8,0xb2,0x3d,0xbf,0x2c,0x42,0x13,0xc2,0xbb,0xe,0x40,0x42,0xa5,0x2a,0x8b,0x41,0x3,0x9e,0xa6,0x41,0xf8,0xc5,0x32,0x42,0xaa,0x83,0x89,0x41,0xb4,0xfb,0x55,0xc2,0x2a,0xda,0x78,0x42,0x8a,0x2f,0xf5,0xc0,0xb,0x2b,0x15,0x41,0xf5,0xd3,0x78,0x40,0x81,0x4a,0xed,0x41,0xba,0xb8,0x1d,0x41,0xdd,0x78,0xfb,0x41,0xa3,0x97,0x5b,0x40,0xc,0x39,0x64,0xc2,0x28,0xb5,0xd3,0x41,0xe4,0x42,0x67,0x42,0xaa,0x86,0x13,0xc2,0x50,0x86,0x2a,0x42,0x38,0x50,0x44,0xc2,0x64,0x1,0x4d,0xc2,0xfe,0x29,0xf0,0x41,0xa0,0x71,0xa2,0x41,0x1e,0x9d,0xb3,0x40,0xca,0x4,0xa1,0x40,0x20,0xba,0x96,0xc1,0xb9,0x40,0x4d,0x42,0x5b,0xb1,0x61,0xc0,0xf7,0x7d,0xa5,0x42,0x64,0x16,0xf3,0x41,0x99,0x2d,0x57,0x40,0x38,0xb,0xe8,0xc1,0x3b,0x7e,0x38,0xc0,0x67,0x87,0x90,0xc2,0xd5,0x4a,0xb3,0xc1,0x67,0x35,0x2d,0x42,0x53,0x88,0xeb,0xc1,0xcd,0xcc,0x6c,0xc1,0x20,0xfc,0xed,0xc1,0x9c,0x94,0x6,0xc2,0xb6,0x2d,0xa,0x42,0x10,0x5d,0x6e,0x42,0xa6,0xc2,0x23,0x41,0x36,0x81,0x2b,0x42,0xe5,0x1e,0x6,0xc1,0x7a,0xcc,0xbf,0xc0,0x31,0x2a,0xd5,0xc1,0x20,0xf8,0x2,0x41,0xdb,0x22,0x31,0xc1,0x3a,0xa1,0x3f,0xc1,0x3,0x5c,0x5,0xc1,0x6c,0xf8,0xa8,0x41,0xff,0x7,0xda,0xc1,0x5a,0xbf,0x48,0xc1,0x80,0x96,0x4a,0xc0,0xbd,0xde,0xf9,0xc0,0x7c,0x19,0x9f,0xbf,0x16,0x18,0x1,0xc1,0x75,0xc,0x81,0xc2,0x1f,0x85,0x6a,0xc2,0x0,0xe3,0x95,0x41,0x76,0xad,0x7,0xbf,0x7,0xe,0xc2,0xc1,0x24,0x18,0x8c,0xc0,0x7b,0xed,0x45,0x42,0x0,0xdb,0x6c,0xc0,0x39,0x1a,0x6b,0xc0,0xf,0x37,0x49,0x42,0x3c,0x2e,0xbe,0xc0,0x5e,0x74,0x2b,0x42,0xa,0x87,0x86,0xc2,0x5e,0x7a,0x17,0xc2,0x2e,0x97,0x3,0x42,0x40,0x7,0xb6,0xc1,0xed,0x1c,0x1,0xc2,0xcc,0xfc,0x3a,0x41,0x39,0x3e,0x11,0x42,0x24,0x27,0x23,0xc2,0x2,0xd,0x4e,0x42,0x6e,0x9e,0x99,0x42,0x53,0x98,0x80,0x42,0xad,0x5a,0xec,0x41,0x85,0x7f,0xb9,0xc1,0xbf,0x82,0x75,0x41,0xf4,0x6b,0x1c,0xc1,0xa5,0xa5,0x40,0xc1,0x7c,0x64,0x90,0x41,0x67,0x35,0x87,0x42,0x85,0x52,0xbc,0xc1,0x9a,0x37,0x28,0x41,0xb8,0xc8,0x84,0xc0,0x74,0xfc,0x6,0x40,0xf1,0x8,0x85,0x41,0xd4,0x7e,0x50,0x40,0x76,0xa2,0x77,0x41,0xbe,0x7b,0x6f,0x41,0x8f,0xdc,0x1d,0x42,0xb3,0x8f,0x67,0xc1,0xcc,0xa4,0x2e,0xc2,0x26,0xb5,0x49,0x42,0x3d,0xa9,0xcc,0xbf,0xfb,0x47,0xbc,0x41,0x74,0x64,0x8b,0xc0,0xe2,0x9c,0x5b,0xc0,0xce,0x3,0xe,0xc2,0xa0,0xe2,0xe8,0x41,0xf6,0xf1,0xfb,0xc1,0xe6,0x37,0xa,0x42,0xf2,0x8b,0x3f,0xc1,0x38,0x28,0xb8,0xc1,0xa2,0xb2,0x17,0xc0,0x40,0xcd,0x14,0x40,0xe6,0x56,0xa8,0x41,0xa2,0x8e,0x1e,0x42,0xa8,0xbb,0xee,0xbe,0x55,0xa1,0x88,0x40,0xb2,0xae,0xc1,0xc1,0x81,0xd2,0x8f,0x41,0x7f,0xb3,0xa0,0xc1,0x21,0x7,0x6b,0x42,0xe6,0x33,0xb,0x40,0x7,0xe0,0xa,0x42,0xe8,0x2d,0x72,0x41,0x28,0x22,0x2b,0x42,0xc4,0x5e,0x9d,0xc1,0x86,0xf0,0x0,0x41,0x63,0x36,0x93,0x42,0xc0,0x3c,0x15,0x42,0xd3,0xab,0xb5,0x41,0x84,0x94,0x9f,0xc1,0x22,0x34,0x8a,0x41,0xe7,0xbe,0xee,0xc1,0x7c,0x50,0x5e,0x40,0x3d,0xaa,0x89,0x41,0xbe,0x74,0x50,0x40,0xac,0xc8,0x11,0xc2,0xa5,0xf7,0xc6,0x40,0x47,0x3a,0x10,0x42,0x6a,0x70,0xbe,0xc0,0xa6,0xf,0xe9,0x41,0x20,0x25,0x63,0x42,0xf5,0x14,0x9e,0xc2,0xd9,0x5c,0xa3,0xc1,0x2,0xbe,0x8,0x42,0xa,0x4c,0xe7,0x41,0xc8,0x7a,0x98,0xc1,0x1f,0x3d,0xa5,0xc2,0x35,0xed,0x12,0xc2,0x4c,0x38,0xb5,0x41,0x27,0x10,0x31,0xc2,0xf,0xc,0xf3,0x41,0x6d,0xcd,0x30,0x40,0x81,0xc6,0xa6,0x41,0x9,0x78,0x27,0x42,0xa4,0x53,0xa5,0x41,0x3f,0x33,0xc4,0xc1,0xae,0x78,0x33,0xc2,0x14,0x4d,0xbd,0xc0,0xda,0xee,0x8d,0xc1,0xfe,0xf4,0x4f,0x42,0xa2,0x3f,0xe0,0x3f,0x6d,0xa4,0x86,0xc2,0xc0,0x2a,0x98,0xc1,0xd,0x7,0x76,0x42,0x9d,0x54,0x4b,0xc1,0x2,0x5c,0x94,0xc1,0x73,0x85,0xa7,0x41,0x6,0x2b,0x3d,0x41,0x29,0xf,0xe1,0xc0,0xdb,0x27,0x17,0xc2,0x85,0x88,0xa6,0x40,0x60,0x56,0xb7,0x3f,0xe,0x11,0xad,0xc1,0x3a,0xe,0xce,0xc1,0x3c,0xe2,0xae,0x41,0x9e,0x45,0x70,0x41,0x80,0xba,0x10,0xc1,0x36,0xb0,0x6a,0x42,0x24,0xee,0x6d,0xc2,0x1a,0x62,0x85,0xc2,0x9a,0x3b,0xaf,0x40,0xbc,0x68,0x7f,0x41,0x4a,0x22,0x66,0xc2,0x41,0x5e,0xaf,0x41,0x8e,0xbb,0xa0,0x41,0xfd,0x40,0xf1,0xc1,0xde,0x55,0x7d,0x41,0x50,0x90,0x16,0x41,0xf6,0x60,0x23,0x40,0xb1,0x2c,0x26,0x41,0xf9,0x23,0x83,0x41,0xd1,0x31,0xb,0x42,0x98,0x53,0x8c,0xc1,0xa9,0x8a,0xe9,0xc1,0x4e,0x66,0x9,0xc1,0xa8,0x97,0xb9,0xc0,0x94,0x59,0x61,0xc2,0x64,0x56,0x28,0xc1,0xab,0xf2,0x12,0xc2,0xdb,0x8d,0x7b,0x41,0x32,0xee,0x6f,0xc2,0x6c,0xb6,0x7a,0xbf,0xde,0xf0,0x1a,0x42,0x65,0xed,0x1f,0x41,0xae,0x8c,0xd2,0xc1,0x6d,0x88,0x29,0x42,0x16,0x25,0x65,0x42,0x40,0x93,0x2e,0x41,0x9b,0x84,0x70,0xc0,0x40,0xb1,0xf,0x41,0x17,0xab,0x8f,0x41,0xa4,0xbf,0x8e,0xc1,0x6c,0xb6,0x8,0x41,0xf8,0x97,0x52,0xc1,0xc9,0x16,0xa5,0x42,0xfe,0x22,0xb2,0x40,0x95,0x22,0xbf,0xc2,0x15,0x13,0x1d,0x42,0xca,0x2b,0x22,0x41,0xd4,0x7a,0xaf,0xc1,0x7a,0xae,0x16,0x41,0x33,0x85,0x92,0x41,0x49,0x59,0xac,0x41,0x1f,0x46,0x20,0x42,0x71,0x32,0xb9,0xc2,0x9,0xe3,0x85,0x42,0x56,0x4b,0xdd,0xc1,0xe8,0xc5,0x3f,0x42,0xc0,0xb9,0x19,0x41,0x92,0xff,0x5,0xc2,0x1c,0x5b,0x28,0xc2,0x71,0x26,0x89,0xc2,0x1e,0x67,0x30,0x42,0x8d,0x80,0x6d,0x40,0xbf,0xde,0x4,0xc2,0xc,0x2,0x54,0x42,0x39,0x54,0xc8,0xc1,0x69,0x34,0x2a,0xc2,0x8d,0xc6,0xcb,0x41,0xfe,0xb9,0x2a,0xc2,0x32,0x2e,0x8e,0xc2,0x4e,0x6,0x35,0xc2,0xda,0x3b,0xb0,0xc1,0x38,0x78,0x26,0x40,0x21,0x21,0x8f,0x40,0xc5,0xff,0x85,0xc2,0x9e,0x34,0xe1,0x40,0x2a,0xad,0xa0,0x42,0xde,0x66,0x3d,0xc0,0x3f,0xc7,0xc0,0x42,0xc4,0x9d,0x48,0x41,0xe,0xa2,0xe9,0x40,0x26,0x9,0x3d,0xc2,0x6a,0xa3,0xdc,0x40,0xe7,0x81,0x62,0xc2,0x86,0xe1,0x28,0xc2,0x9a,0xfb,0x7e,0x41,0xc2,0xb3,0x98,0xc1,0xe8,0xa9,0x70,0xc0,0xe,0x43,0x18,0x42,0xd3,0x3,0x8f,0x41,0x40,0x89,0xd7,0x42,0x28,0x55,0x8a,0x40,0xb7,0xef,0x6a,0x42,0x1c,0x33,0xcf,0x41,0x70,0x95,0xfe,0x41,0xb8,0x1a,0xf5,0xc1,0x2a,0x19,0x7b,0xc1,0x83,0x1f,0xbb,0xc0,0x45,0x7c,0x25,0x42,0x4f,0x95,0x16,0x42,0xd2,0x35,0xa4,0x41,0xcf,0x5c,0x17,0x42,0x20,0x28,0x95,0xc1,0x9c,0xbd,0xbd,0xc1,0xa1,0x35,0x88,0x41,0x2d,0x90,0x9e,0xc2,0xdb,0xe8,0x4f,0xc2,0xb6,0x51,0xf2,0x41,0xbe,0x5f,0x12,0x41,0x45,0x90,0x34,0xc2,0x64,0xb3,0x5e,0xc1,0xec,0x48,0x88,0x42,0x4e,0xc2,0xd1,0x41,0x92,0xce,0x35,0x42,0xc1,0x4a,0xa7,0x41,0x97,0xca,0x21,0xc1,0x6c,0xd4,0xea,0xc0,0xe,0xb1,0x51,0xc2,0xba,0x7f,0x2,0xc2,0x70,0x75,0x98,0x42,0x7e,0x7c,0xbe,0xc0,0xf6,0x3f,0xdf,0x3d,0xe5,0x9,0x59,0xc2,0x95,0xbe,0xc,0xc1,0x35,0x75,0xe7,0xc0,0x79,0x18,0x5,0xc2,0x87,0x57,0xca,0x41,0xda,0x1d,0x4e,0x41,0x36,0x2d,0xc6,0x40,0x47,0x80,0xfe,0xc0,0x7c,0x40,0xe,0xc2,0xc2,0x30,0x1d,0xc2,0x4f,0x9,0x8a,0x41,0x98,0x13,0xa3,0xc2,0xb3,0xf8,0x94,0xc2,0xa0,0xc6,0x93,0x41,0xdc,0x42,0xe1,0x41,0xdd,0xd9,0x93,0x41,0x80,0x45,0xe6,0xc1,0x2f,0x3f,0x90,0xbf,0x18,0xb3,0x22,0x42,0x4e,0x55,0x6,0xc2,0x69,0xa0,0xaa,0x41,0x84,0xfa,0x15,0x42,0x2a,0xc8,0x28,0xc2,0x34,0x4c,0x5e,0xc0,0x74,0x3e,0xb1,0xc1,0xda,0x92,0xb7,0xc2,0x7c,0x38,0x57,0xc1,0xf0,0x78,0xa0,0xbe,0x6,0x93,0x7e,0x41,0x89,0x45,0xf5,0xc1,0xa1,0x42,0xaa,0x41,0x93,0xe4,0x4a,0x42,0x2a,0x94,0xcd,0x41,0xbc,0x37,0x9c,0x3f,0x54,0x17,0x49,0x41,0x7b,0x70,0x3b,0xc1,0xf8,0x81,0x8a,0xc2,0x52,0x83,0xa2,0xc2,0xe,0x5b,0x41,0x41,0x50,0x2b,0xed,0xc1,0xf2,0xa3,0xd1,0x41,0xe9,0xe7,0xd4,0xc1,0xd8,0xec,0x4c,0x41,0x3f,0x9,0x5c,0xc2,0x9a,0xf3,0xf4,0xc1,0x9f,0x1c,0x8f,0x42,0xa2,0x27,0x1d,0xc1,0x15,0xdc,0xce,0xc1,0xd9,0x31,0x5,0x42,0x54,0xb4,0x60,0xc2,0x73,0x6d,0x91,0xc2,0x86,0xe0,0x15,0x42,0x48,0x4b,0x60,0xc2,0xd9,0xec,0xa,0x42,0x5,0xaf,0x26,0x41,0xfa,0xfb,0xc,0x42,0xe5,0x30,0x8d,0x41,0xfd,0x84,0x1b,0xc2,0xd0,0x7c,0x8e,0x42,0xc5,0x8f,0xa4,0xc2,0x8c,0x70,0x7e,0x41,0xe2,0x49,0xc6,0xc1,0xac,0xff,0xac,0xc0,0x47,0x8d,0x4,0xc0,0x6a,0x70,0xcc,0xc2,0xde,0x6b,0xf6,0x41,0x21,0xc8,0x24,0x42,0xa1,0xdf,0x4f,0x42,0x9e,0xa3,0x65,0x42,0x44,0x6b,0xa8,0x42,0xe4,0x31,0x23,0x42,0x29,0x13,0x45,0x42,0x6a,0x68,0x77,0x41,0x77,0x7c,0x3a,0x42,0xfd,0x65,0x6a,0x41,0xfb,0xdb,0xf1,0x41,0x8a,0x21,0x39,0xc2,0xa,0x4e,0x67,0xc1,0xc5,0xf2,0x8d,0xbf,0xd8,0x3c,0x7e,0xc2,0x98,0x9a,0x94,0x40,0x90,0x7b,0x74,0x42,0xde,0x3d,0x97,0x41,0x99,0x69,0xd1,0xc1,0xc3,0xbd,0xa9,0x41,0xf8,0x37,0x6b,0xc0,0x95,0x77,0x57,0x42,0x6c,0x7e,0x82,0xc2,0x1c,0x34,0x6,0x42,0x0,0x33,0xce,0x3c,0x82,0x18,0x28,0x42,0x32,0xc5,0xc9,0x41,0x26,0x9,0x74,0x41,0x8d,0x8c,0xf,0xc2,0x2b,0xcb,0xa9,0x42,0x50,0xdb,0x37,0xc1,0x5b,0x2b,0xa4,0xc2,0xbc,0x9b,0x6c,0xc1,0xf9,0x27,0x5e,0x42,0x7b,0xb9,0x5f,0x41,0xee,0x54,0xf2,0xc1,0x57,0xeb,0x94,0x41,0x85,0x38,0x30,0x42,0x87,0x58,0x41,0x42,0xf,0x96,0x0,0x42,0x11,0x54,0x77,0x41,0x3c,0x8f,0xcf,0xc0,0xc4,0x30,0x56,0xc1,0x91,0x26,0x84,0x41,0xbf,0xd7,0xb,0xc1,0x1b,0xc,0x81,0x41,0xc0,0x5,0xb2,0x42,0xe6,0xd5,0x1a,0xc2,0xee,0xbf,0x7b,0xc1,0x7a,0x7a,0x48,0xc2,0xfc,0x27,0x2c,0xbf,0x1b,0x19,0xe2,0x42,0x20,0x4e,0xbb,0x42,0x44,0x12,0x88,0x3f,0x77,0xc0,0xba,0xbf,0x72,0x8,0x3f,0xc2,0x2a,0x8e,0xd0,0x41,0x81,0x63,0x86,0x42,0xf,0x35,0x37,0xc1,0x5d,0xac,0x95,0xc1,0x8d,0x0,0x18,0x42,0x1f,0x6c,0xa,0xc2,0x57,0xcc,0x3e,0xc2,0xce,0xe0,0x52,0x40,0x31,0x40,0x5f,0xc2,0xbf,0x17,0x1c,0xc1,0xd4,0xae,0xc4,0x41,0xc,0x1b,0x6c,0xc2,0xb8,0x91,0xb6,0xc2,0x7,0x64,0x90,0xc1,0x3b,0x1b,0x8b,0x41,0x94,0xdb,0xbc,0x41,0x6c,0x1d,0x67,0xc2,0xbc,0xd5,0x13,0x42,0x6c,0xc1,0x86,0x42,0x6e,0x10,0x83,0xc2,0x58,0xe1,0xad,0x42,0x6,0x15,0x59,0x42,0xd7,0x24,0xeb,0xc1,0xab,0x27,0x53,0xc2,0xa7,0x32,0x66,0x42,0xb9,0xe,0x9f,0x41,0xcd,0x8,0xa3,0x41,0xee,0xe2,0xde,0x41,0xd0,0xd4,0x96,0x41,0xdc,0xdc,0x79,0x41,0xc3,0x45,0x16,0x42,0xcc,0xd6,0x31,0x42,0xe9,0x68,0x71,0x40,0xbc,0xf2,0xfe,0xc1,0xcd,0x87,0xad,0xc1,0x6e,0x10,0x45,0x40,0xd2,0xdc,0x78,0xc1,0x9f,0x48,0x65,0x41,0x6a,0x98,0x2a,0x40,0x9c,0x50,0xae,0xc1,0xac,0x3a,0x26,0x3f,0xbc,0xbb,0x9d,0x40,0x2f,0xde,0xdb,0x41,0xe4,0xbc,0x6f,0xc2,0x42,0x97,0x92,0xc0,0x88,0x5c,0x8d,0xc1,0x40,0xe4,0x7a,0xc2,0xd0,0x52,0xc5,0xbf,0xd,0xee,0xd2,0x40,0x2,0x47,0x99,0x42,0x24,0x6b,0xe8,0xc1,0x74,0x9,0xd5,0x41,0x40,0x9d,0x34,0xbf,0x30,0x38,0xa1,0xc1,0x9c,0x67,0xdb,0x41,0xdd,0x49,0x7d,0x40,0xc1,0x57,0x2b,0xc2,0xb,0x33,0xc4,0x41,0xd6,0x3f,0x6e,0xc1,0xb3,0xde,0x28,0x42,0xc3,0xd4,0x8d,0xc1,0xf9,0xc5,0x83,0xc2,0x84,0x52,0x87,0xc2,0xd8,0xa1,0x1e,0x42,0xa3,0xbb,0xaa,0x42,0x5c,0x3a,0x9c,0xc1,0x21,0xf2,0x53,0x41,0x8a,0x63,0xa,0x42,0xe9,0x16,0x96,0x41,0x3d,0xe6,0x53,0xc1,0xf8,0x30,0x4,0xc2,0xef,0x32,0x8d,0xc1,0x61,0x1,0x0,0x40,0xf6,0x60,0x1e,0x40,0x12,0xde,0x39,0x42,0x6e,0x7f,0x91,0xc1,0x5d,0xc6,0x6a,0xc2,0x68,0x86,0xd2,0xc1,0x36,0xcb,0x9d,0xc1,0xec,0x86,0x97,0xc1,0x47,0x46,0x83,0x40,0xf3,0x94,0x72,0xc2,0x42,0x16,0x91,0x41,0xe2,0xae,0xf5,0xc1,0x83,0xf0,0x6f,0xc2,0x17,0x2a,0x32,0xc2,0x58,0xa1,0xef,0xc0,0x13,0x65,0xa3,0xc2,0xc8,0x94,0xa9,0xc1,0x48,0xab,0xf1,0xc1,0x72,0x11,0x51,0xc2,0x3e,0xa4,0xc,0xc2,0x5e,0xa3,0x2a,0xc2,0x39,0xc7,0x8d,0x41,0x4d,0x52,0x8a,0xc2,0xfe,0xb4,0xe6,0xc1,0xcf,0xcd,0x63,0xc1,0x1c,0x46,0x87,0xc2,0x6b,0xd1,0x68,0xc0,0xda,0x42,0x71,0x41,0x8d,0xb8,0x8c,0xc2,0x1e,0x4d,0xd6,0x41,0x2e,0x41,0x65,0xc1,0x36,0x22,0x23,0xc2,0xc6,0x8b,0xcf,0x40,0xbb,0x47,0x97,0xc2,0x18,0x69,0x5,0x42,0x5c,0x2c,0xa2,0xc1,0x61,0x58,0xaf,0xc2,0x7e,0xe5,0x94,0x42,0xc4,0xbe,0x80,0xc2,0xc4,0x4a,0x16,0x42,0x9a,0x47,0x3a,0x41,0x70,0x54,0xd1,0x42,0x18,0xe5,0x28,0x42,0xf0,0x13,0x7c,0x42,0x12,0x74,0x8,0xc2,0x76,0x3b,0x9d,0xc2,0x21,0xaf,0x7,0xc2,0xf2,0xcf,0x64,0x3f,0x6b,0x90,0x28,0x42,0x2,0x49,0x75,0x42,0x24,0xe2,0x45,0x42,0x34,0x90,0xe2,0xc1,0x68,0x2b,0xa2,0x42,0xcb,0xe6,0x43,0xc2,0x1d,0xf4,0x9e,0x41,0x59,0x26,0xa6,0x42,0x3f,0x75,0x80,0xc1,0xc7,0xe1,0x1c,0xc1,0xd3,0x7a,0x38,0xc2,0x19,0x59,0x63,0x41,0x93,0xa8,0x81,0x42,0xe8,0x4f,0x58,0x42,0x5,0x43,0xc1,0xc2,0xd6,0x20,0xc5,0xc2,0x6,0x40,0x52,0x42,0x1c,0x96,0xcf,0x42,0x65,0xb3,0x49,0x42,0x67,0xa8,0xb3,0xc1,0xd,0xd7,0x9b,0x42,0xaf,0x8,0xe6,0xc0,0xee,0x76,0x28,0x41,0x5a,0x5c,0x2,0x40,0xd2,0xe3,0xed,0xc1,0xae,0xfc,0x65,0x42,0x1a,0xc0,0x4d,0x42,0x27,0x33,0x99,0x41,0x2c,0xd5,0x7f,0x41,0xda,0xce,0xee,0xc1,0x39,0xa3,0xea,0xc1,0x50,0x24,0x4d,0x42,0xc2,0x2a,0xe0,0xc1,0x55,0x55,0x87,0xc2,0xf5,0xe,0xa6,0xc2,0xc8,0xf2,0xc4,0xc1,0x5c,0xc6,0xdc,0xc0,0xa3,0xad,0x6,0x42,0x60,0xe6,0x22,0x41,0x2b,0xa9,0xd9,0x41,0xf4,0xd7,0x63,0x3e,0x26,0x38,0x1d,0xc2,0x2b,0x65,0xa4,0x41,0xc1,0x93,0xad,0xc2,0xdd,0x6,0xa6,0xc0,0xad,0x3d,0x88,0xc1,0xee,0xd2,0x28,0x42,0xe,0x2e,0xc,0x41,0x82,0xb2,0x74,0xc2,0xe6,0xfb,0x24,0x41,0x36,0x4c,0x96,0x41,0xae,0x87,0xb9,0xc1,0x4e,0xf9,0x8a,0xc0,0xb0,0x54,0x62,0x41,0x25,0x6a,0x28,0xc1,0xd6,0x59,0x5a,0xc1,0x49,0xa2,0x5f,0xc1,0x6f,0x70,0xb7,0x42,0x87,0xce,0x61,0xc2,0x98,0x74,0x45,0xc1,0xdb,0x25,0x7e,0xc1,0x69,0x73,0x3,0x42,0x0,0x20,0x80,0x42,0xe2,0xf3,0xe4,0xc0,0x2f,0xc8,0x7,0x42,0x54,0x62,0x3a,0x41,0x36,0x0,0x58,0x42,0xc9,0xb1,0x6d,0xc1,0xba,0x78,0x9,0x41,0x2a,0x5f,0x6e,0xc2,0x8e,0x85,0xe5,0x41,0xa9,0xf3,0xe3,0x3f,0xe8,0xc5,0xc4,0xc1,0x17,0xed,0xc3,0x41,0x1b,0xd,0x53,0x42,0xc1,0xb5,0xcf,0xc1,0x1c,0x9a,0x68,0xc0,0xcd,0x19,0x67,0x42,0xc8,0xb8,0xd8,0xc1,0x6d,0x4a,0xc5,0x40,0xe2,0x41,0xf0,0x41,0x20,0x7c,0xb0,0x40,0x52,0xc2,0xb5,0x41,0x48,0x54,0x71,0x42,0x23,0xb4,0x21,0xc2,0x3,0xed,0xb5,0x41,0xd2,0xa2,0xf5,0x40,0x86,0x5,0xa,0xc2,0xa8,0x25,0xd4,0xc0,0xff,0xc5,0xa,0x42,0x77,0x67,0xc,0x40,0x1d,0x15,0x47,0x40,0x9b,0xab,0x2a,0x42,0xfa,0x51,0x7d,0x42,0xb7,0x76,0x8c,0x42,0x52,0xc3,0xb6,0xc1,0x6e,0x3b,0x19,0xc1,0x12,0x38,0xac,0xc1,0x3d,0xfa,0xd,0xc1,0xb5,0xc6,0x26,0xc2,0xb2,0xaf,0x26,0xc0,0xea,0x7d,0x98,0xc0,0xa3,0x72,0xc4,0x40,0x64,0xb6,0x5c,0x42,0x2a,0xb7,0xa2,0xc1,0x28,0x2c,0xbb,0xc1,0xbd,0x8c,0x99,0xc1,0xef,0x3b,0xd1,0xc1,0x78,0x4e,0x6a,0x3e,0xb3,0xe3,0x20,0xc2,0xee,0xb7,0xb9,0xc1,0x4c,0x58,0x58,0xc2,0xa8,0x3d,0x50,0xc2,0x34,0x13,0x9b,0x41,0xf4,0x4e,0xa7,0xc0,0x1f,0xe2,0xf6,0xc1,0xf4,0xdf,0x3,0xc1,0xbf,0xa,0x29,0xc1,0xc5,0xfc,0x39,0x42,0xbe,0x27,0x3a,0x42,0x93,0x1d,0x7f,0x42,0x26,0x1f,0x66,0x42,0x82,0xe4,0x8a,0xc0,0x42,0xdc,0xe1,0x41,0x7e,0x67,0x2c,0x40,0x76,0x6f,0x86,0xc1,0x79,0x35,0x39,0xc2,0x9a,0x17,0x8,0xc1,0xd6,0x9,0x16,0xc1,0xea,0x8c,0xca,0x40,0xdb,0xf1,0x22,0x42,0xae,0x51,0x62,0x42,0xfb,0x3f,0x37,0xc2,0x93,0xf8,0x80,0x40,0x62,0x8b,0x5a,0xc2,0xc4,0x4b,0x42,0x42,0x7b,0x35,0x0,0xc2,0x78,0xd2,0xd8,0xbf,0x8e,0x73,0x37,0x40,0xfa,0xa3,0x80,0xc2,0x23,0x4c,0x10,0x41,0xbc,0x7c,0xb9,0xc0,0x68,0x69,0xb8,0x42,0x76,0x89,0x85,0x41,0x6d,0x93,0x39,0x42,0x24,0xb6,0xab,0x40,0x48,0x93,0x97,0x41,0x6d,0x53,0x25,0x42,0x77,0x13,0x62,0x42,0xf5,0xdc,0xe5,0xc1,0xdb,0x2b,0x89,0xc1,0xf8,0x84,0x4a,0xc2,0xe,0x6a,0xe6,0x41,0x8,0x3b,0xb,0xc2,0xb3,0x99,0xc,0xc2,0x4f,0xf9,0xc0,0xc1,0x20,0xdd,0x56,0xc1,0x5a,0x1d,0xad,0x42,0xbe,0x35,0xb9,0xc0,0xfb,0x2,0x15,0x42,0x54,0x48,0x83,0x41,0x75,0x9d,0xf4,0x41,0xd6,0x75,0x8,0xc2,0x5b,0x9c,0x36,0xc2,0xe3,0xd9,0x68,0xc2,0x6,0xab,0x7c,0xc1,0x60,0x20,0x56,0xc2,0x71,0x6a,0x38,0x42,0xc8,0x6d,0x94,0x41,0xb,0x86,0xaf,0xc1,0x99,0x48,0x1a,0xc2,0x61,0xe7,0xa5,0x40,0xf3,0x5c,0xb4,0x40,0x51,0x30,0x30,0xc0,0x46,0x5f,0x61,0xc0,0x8b,0x24,0x6e,0x42,0x33,0x8b,0xd4,0xc1,0xa,0x4c,0x43,0xc2,0x2c,0x4c,0x8d,0xc2,0xf5,0x55,0x8b,0x41,0xb2,0x38,0x87,0xc2,0xbf,0x7c,0x61,0x42,0x19,0xf,0x25,0xc2,0x1a,0x9b,0x3b,0xc1,0x5a,0xef,0x9d,0xc1,0xce,0x67,0x44,0xc2,0xd,0x75,0xd,0x42,0xe8,0xcb,0x4e,0xc1,0xe6,0xe7,0x86,0xc2,0xf,0xe5,0xab,0x41,0xb7,0xf1,0x56,0xc1,0x92,0x6a,0xef,0xc0,0x9a,0xa8,0x78,0x41,0xec,0x50,0x2d,0xc2,0x49,0x5b,0xf0,0x41,0x40,0x58,0x56,0x42,0x74,0x96,0xd1,0xc0,0x52,0x46,0xb0,0xbf,0x7f,0x3e,0xad,0xc2,0x55,0xa7,0x89,0x42,0xf2,0x44,0x64,0xc0,0xf2,0x75,0xd6,0xc1,0x89,0xcb,0xb3,0xc1,0xc5,0xf2,0x11,0x42,0x3c,0x36,0x6b,0x41,0xac,0x19,0xf6,0xc1,0xd2,0x8b,0xca,0x42,0x71,0x8f,0x6a,0x41,0xc8,0xc1,0x57,0x42,0xef,0x7b,0x3,0x42,0x5b,0x7d,0xae,0xc2,0xa8,0x5a,0x91,0xc2,0x9f,0x5b,0x48,0x42,0xd0,0x9b,0x78,0x42,0xa4,0x7d,0x80,0x3f,0xb2,0x3b,0x80,0x42,0xd4,0xe7,0xb,0x41,0xee,0x8,0x99,0xc1,0xd8,0x43,0x84,0x41,0x19,0x72,0x9b,0x41,0xb4,0x65,0x17,0xc2,0x2a,0x3f,0x53,0xc2,0xcb,0x9c,0x74,0xc2,0x6c,0xee,0x35,0xc2,0x6b,0xdd,0x36,0xc2,0x84,0x95,0xb8,0x42,0xba,0x9,0x6f,0xc1,0x37,0x5,0xe0,0xc1,0xb7,0x49,0x95,0xc1,0x51,0x2b,0x4f,0xc2,0x16,0xdb,0x93,0x42,0x22,0x47,0x2d,0x42,0x66,0x97,0xa0,0x40,0x95,0x55,0x45,0x42,0x22,0x62,0xc1,0x41,0x4e,0x66,0x55,0x42,0xd0,0x8,0xa7,0xc0,0x3e,0xe4,0xd1,0xc1,0x26,0x64,0xe3,0x41,0xbb,0x52,0xe6,0x41,0x18,0x14,0x2d,0xc2,0xd,0x58,0x2c,0xc0,0xf5,0xf0,0xdb,0xc1,0x3a,0x17,0xa6,0x41,0xbc,0x1e,0xb9,0xc1,0xa4,0xc1,0xb9,0xc1,0xcc,0x46,0xae,0xc2,0x5f,0xfa,0x7d,0xc2,0xa6,0x43,0x93,0xc1,0x36,0x4d,0x82,0xc2,0xd6,0x2a,0xf5,0x41,0x40,0x6e,0xa8,0xc1,0xd3,0xef,0x86,0x42,0xcd,0x8f,0xc7,0x41,0xa9,0xcf,0x46,0xc1,0x3d,0xc2,0x96,0x42,0x3c,0x11,0xd8,0x41,0x6b,0x17,0x75,0x41,0x1f,0x38,0x16,0x42,0x53,0xbb,0x1c,0xc2,0xc4,0x12,0xd6,0xc1,0xb0,0xa1,0xaf,0x42,0xa7,0x94,0xa5,0xc2,0xc2,0x9c,0xb,0x42,0xea,0xe,0x5,0x42,0x3a,0xc1,0x55,0xc2,0x7a,0x14,0x7c,0x42,0x23,0x44,0x41,0x42,0x2e,0x80,0xa6,0xc2,0x75,0x44,0x25,0xc2,0x8d,0x49,0xba,0x41,0xf,0x1e,0xfe,0x41,0xc9,0x3f,0xbd,0xc1,0x36,0x95,0x97,0x41,0x60,0x54,0x9d,0x41,0xe9,0x9f,0x56,0x40,0x61,0x23,0xc3,0x40,0xb2,0x89,0x2f,0xc2,0x6a,0x8a,0x95,0x41,0x3a,0x9b,0x6a,0xc1,0xba,0x11,0x16,0xc2,0x44,0x79,0xd5,0xc1,0xfa,0xd8,0xe7,0x40,0xba,0x16,0x9d,0xc1,0x35,0x93,0x74,0x42,0x7e,0xa5,0x38,0xc2,0x89,0xbf,0x90,0xc1,0x53,0x5e,0x9b,0x40,0xae,0x80,0xa,0xc2,0x93,0x6d,0xb,0x42,0x91,0xb7,0xe1,0xc1,0x54,0x61,0x9c,0x40,0x89,0x23,0xcd,0xc1,0x17,0x29,0xa9,0xc1,0x2a,0x5c,0xdd,0xc1,0xc1,0xf8,0x73,0x41,0x63,0x74,0xc0,0x40,0xf2,0x70,0x3a,0xc2,0x34,0xb,0x30,0x41,0x6c,0x5f,0xf2,0x41,0xe4,0xfe,0xee,0xbf,0x89,0x60,0x53,0xc2,0x32,0x6a,0x4,0xc1,0x36,0xaf,0x55,0xc1,0x77,0xce,0x84,0xc2,0x9b,0xa,0x90,0xbf,0x7c,0x8c,0x4c,0x3f,0xf8,0x25,0xbe,0xc1,0x88,0xc6,0xf9,0x40,0x2a,0x3a,0x55,0xc1,0x60,0x45,0x19,0xc2,0x4,0x1c,0x14,0x42,0xe6,0x3c,0xbe,0x41,0x2e,0xb4,0x8c,0xc2,0x8e,0x26,0x20,0xc2,0x45,0x36,0xd4,0xc2,0xc4,0x62,0x59,0xc2,0xf7,0xcc,0xa,0x41,0xc8,0x14,0x79,0xc2,0xea,0xf6,0x51,0xc2,0xf6,0x32,0x36,0x41,0xbc,0x8e,0xbf,0x41,0xbc,0x64,0x11,0x41,0xb2,0x53,0x8c,0xc1,0x7f,0x11,0xc4,0x41,0x5e,0x8d,0x39,0xc2,0xe5,0x97,0xe7,0xc2,0x48,0xd4,0xda,0xc1,0xc0,0x3c,0x70,0xc2,0x28,0x56,0x6a,0xc2,0x2f,0xa2,0xc2,0x41,0x41,0x16,0xc1,0xc1,0xc8,0x1e,0x98,0xc1,0x2f,0xa,0x69,0xc2,0xc6,0x25,0x9d,0xc2,0xba,0x83,0x85,0x40,0x11,0x16,0x20,0x42,0x1e,0xe7,0x47,0x42,0x54,0x4a,0xa0,0xc1,0xd4,0x22,0x8c,0x40,0x31,0xd,0xd6,0xc2,0x98,0x87,0x8f,0xc0,0x4e,0xd1,0x18,0xc0,0xd,0x3d,0xaa,0xc1,0x1b,0x55,0x73,0xc2,0x6f,0x6b,0x31,0xc2,0xf,0x31,0xac,0xc2,0x2,0x2d,0x64,0xc2,0xa6,0xf5,0x39,0x42,0xf4,0xaa,0x9d,0xc1,0xf6,0xf9,0x34,0xc1,0xbb,0x83,0x35,0x41,0x81,0x39,0x30,0xc1,0xb7,0xc4,0x66,0xc2,0xc7,0xca,0xaa,0x41,0xe3,0x63,0x60,0xc1,0xad,0xb7,0xe9,0x41,0x4c,0x57,0x72,0xc1,0x31,0x6e,0x52,0xc2,0x39,0xa7,0x11,0xc2,0x3e,0x83,0xb4,0xc2,0xe7,0x70,0x1a,0xc1,0x3d,0xa2,0x4f,0x42,0xf2,0x46,0x9d,0x41,0x3f,0x61,0x7d,0xc1,0xd3,0x81,0xf6,0xc1,0x6e,0xa9,0x8e,0x41,0xaa,0xc1,0x19,0x42,0xe1,0xca,0x8a,0xc1,0xf8,0xa0,0x26,0xc1,0x5a,0x72,0xbf,0x40,0x22,0x97,0xb4,0xc0,0xb1,0x42,0x6d,0xc1,0x7c,0xc3,0x17,0xc1,0xce,0x93,0x53,0xc2,0x98,0xc1,0x88,0x41,0xa2,0x79,0x85,0x41,0x64,0x2c,0x20,0x42,0x86,0xe9,0x38,0xc2,0xda,0xe7,0xa3,0x40,0x53,0xb8,0x37,0x41,0xcb,0x96,0xf4,0x41,0x2,0x83,0xd2,0xc0,0xf5,0x78,0x25,0xc2,0x98,0x8a,0xf7,0xc1,0xca,0x8,0x9d,0xc0,0x80,0xa8,0xc6,0xbf,0xdf,0xfa,0x84,0xc2,0xb6,0xc6,0x2,0x42,0x67,0xbc,0x21,0x41,0x9d,0xda,0x10,0xc1,0xd0,0x73,0xae,0xbe,0xca,0x65,0x31,0x42,0xd4,0xfa,0x21,0x42,0xaf,0x1a,0x19,0xc2,0x78,0x69,0xa3,0x41,0xe8,0x0,0x94,0x41,0x2d,0x85,0xf3,0xc1,0xd8,0xc7,0x6f,0xc2,0xd5,0x5b,0xde,0xc0,0x91,0xa3,0x42,0x42,0x84,0x67,0x5c,0xc1,0x3c,0xe2,0x4e,0x42,0xfb,0xb2,0x58,0xc1,0x24,0x4f,0x41,0x42,0x25,0x37,0xb,0xc2,0xb4,0x7f,0xfc,0xbf,0xc8,0x5c,0xa6,0xc2,0x28,0x3,0xf4,0x41,0x10,0xf0,0xac,0x41,0x3c,0x2d,0x5e,0xc1,0xf6,0xd1,0x39,0x42,0xec,0x8f,0x5f,0x41,0x13,0xc6,0xb7,0xc1,0x18,0x1d,0x5a,0xc1,0xd2,0xb5,0x7f,0xc1,0xb0,0x20,0xde,0x41,0xe2,0xe,0xf9,0xc1,0xf7,0x63,0xb9,0x41,0xc4,0x8,0x9d,0xc0,0xf8,0xf0,0xf0,0x41,0x5c,0xc5,0x95,0x42,0xa4,0xf5,0xc,0x42,0xaa,0x72,0x31,0xc1,0x14,0x5a,0x3e,0x42,0xb8,0x3,0x7a,0x41,0x37,0xdf,0x19,0xc2,0xd0,0xf5,0x85,0x41,0xcc,0xdd,0x56,0x42,0xb1,0x6b,0x21,0x42,0x63,0xd0,0x82,0x41,0xc8,0x49,0xa0,0x40,0x8d,0xce,0x14,0x42,0xde,0x4c,0x9e,0xc1,0xc2,0x55,0x73,0xc1,0xb,0xc8,0x14,0xc2,0xc4,0x41,0xa9,0x42,0x7a,0xa5,0x99,0xc2,0x7,0xd,0xfa,0xc0,0x36,0xea,0x29,0xc2,0x72,0xc3,0x1e,0x42,0x1c,0x58,0xa9,0x40,0x90,0x23,0x25,0x41,0x77,0x29,0xba,0x41,0xa4,0x8c,0xa8,0xc1,0x80,0x6a,0xd9,0xc1,0x3e,0xcc,0x4a,0xc2,0xe3,0xf9,0x46,0x42,0x13,0x64,0x31,0xc2,0xa7,0x70,0xd9,0x42,0x96,0xc2,0x91,0xc0,0x9,0x6e,0x2b,0xc2,0x22,0x4b,0xe5,0xc1,0xc6,0x7a,0x20,0xc2,0x80,0xba,0x5c,0x41,0x88,0xb6,0x7,0xc2,0xa8,0x97,0x1,0x3f,0x86,0xd0,0x5,0x42,0x10,0x9a,0xa7,0x41,0x92,0x24,0x96,0x42,0x24,0xa5,0x13,0x42,0x3b,0xfc,0x1a,0xc2,0x51,0x22,0xf8,0xc1,0x9c,0xc4,0xa4,0xc1,0x71,0x7b,0x9,0x42,0x5c,0xb5,0x67,0xc1,0xc,0xb5,0x61,0xc1,0x66,0x8f,0x56,0x40,0x9e,0x34,0x3e,0xc0,0xbb,0x3a,0x93,0x42,0x1c,0xa4,0x44,0xc1,0x32,0x7a,0x87,0x42,0x86,0xd8,0x26,0x42,0x86,0x2c,0x94,0xc1,0x49,0x4c,0xb9,0x41,0xdf,0x2e,0xe0,0x41,0x7,0x77,0x39,0xc2,0x40,0x3f,0xc6,0xbd,0x54,0xfa,0x79,0xc1,0xfe,0xe1,0x36,0xc2,0x5a,0x22,0x3,0xc1,0x44,0xaf,0x3a,0x42,0x17,0x37,0x3b,0x41,0x83,0xe4,0x85,0xc1,0xb2,0xb0,0xd8,0x41,0x74,0xcb,0x5d,0xc0,0x55,0x11,0x26,0x42,0x9a,0xc8,0xe9,0xc1,0xe2,0x7c,0x0,0x42,0x33,0xe7,0x17,0x41,0x36,0x7b,0xa,0x42,0x8f,0xb3,0x75,0xc1,0x42,0xa3,0x0,0x42,0xba,0xbe,0x18,0xc2,0xdb,0x56,0x3a,0xc2,0xc4,0x1f,0x85,0x41,0x86,0x4f,0x3e,0xc1,0xfc,0x84,0xd,0x42,0x0,0x13,0x9c,0x41,0xc7,0xcf,0xfd,0x41,0xcf,0xb1,0x5e,0xc1,0x32,0xc,0x58,0xc0,0x94,0x96,0xa3,0x42,0xab,0x87,0xae,0x41,0x7c,0x20,0x34,0xc2,0x8d,0xcb,0x47,0x42,0x9f,0x12,0xf,0x42,0x8c,0xda,0xcb,0xc1,0xc0,0xc1,0x1b,0xc2,0x85,0x81,0x33,0x42,0xd7,0xf6,0xa5,0x41,0x80,0xb1,0x35,0xc2,0xa0,0x3c,0xf2,0x40,0xf6,0xce,0xa0,0x41,0x60,0xa3,0x46,0x42,0x3,0x3d,0x27,0x42,0x85,0x30,0x6c,0x42,0xc6,0xa2,0x91,0x41,0xb2,0x71,0xac,0xc2,0xbc,0x34,0x2f,0x42,0x6e,0xc9,0x25,0x42,0x1a,0x60,0x90,0x40,0x96,0xbf,0xee,0x3f,0xe7,0x8,0xa5,0xc2,0xd8,0x2d,0x8c,0x41,0x2c,0x57,0x19,0xc2,0xd5,0x29,0xef,0x41,0x28,0x19,0xcd,0xc2,0x4b,0xf5,0xc3,0x41,0x89,0x23,0x4f,0x42,0x46,0x49,0x1c,0xc2,0x14,0x21,0x90,0xc1,0x58,0x66,0x40,0x42,0x20,0xae,0x8a,0x42,0x22,0xe2,0xc0,0x40,0x8c,0x68,0x53,0xc2,0xd3,0x3c,0x3a,0x42,0x7c,0x43,0xaa,0x42,0xfc,0xde,0xf3,0xc1,0x55,0xe7,0xbf,0x41,0xe7,0x7,0xa8,0x41,0x34,0x9d,0x36,0xc2,0xc6,0x8d,0x8c,0xc2,0x8c,0x12,0x39,0x41,0xb0,0xa0,0x50,0x40,0x91,0x83,0xb5,0x41,0xdd,0x5b,0x12,0xc2,0xe4,0xc7,0x5b,0xc1,0x71,0xd1,0x63,0x41,0x3f,0xda,0x40,0x40,0xae,0xe9,0x38,0xc1,0xe1,0xde,0x80,0xc2,0xae,0xec,0xaf,0xc1,0x73,0x7b,0xe6,0x41,0xf2,0x81,0xd9,0xc1,0xb7,0x15,0x4b,0xc1,0x42,0xb,0x51,0x42,0x3b,0x95,0xfa,0xc1,0x91,0x61,0x7,0x41,0xed,0x4b,0x40,0xc2,0x6e,0xb6,0xd4,0x40,0xb7,0x23,0x75,0x41,0xfc,0x51,0x3f,0xc2,0xfe,0xec,0x21,0xc1,0x53,0x87,0xd8,0xc1,0x57,0x4e,0xe,0xc2,0x62,0xd8,0x17,0xc2,0x8b,0x53,0xdd,0x41,0x8c,0x28,0x2c,0x42,0xfa,0x2c,0x3f,0xc0,0x67,0x29,0x7c,0xc2,0xb8,0xce,0x76,0x41,0xca,0x57,0x27,0x41,0xfe,0x6e,0xff,0x41,0x58,0xaa,0xea,0x40,0x3e,0xe,0xd0,0xc1,0xd5,0xe1,0x4e,0xc2,0xc7,0xd9,0x91,0xc1,0xc9,0xc3,0xe,0x41,0xea,0x1d,0x86,0x42,0xf9,0xf8,0xb8,0xc1,0xdc,0xab,0xf1,0xc1,0x91,0x4d,0x44,0xc1,0xdf,0x7e,0xe1,0xc1,0x23,0x8a,0x42,0xc2,0x19,0x4,0xab,0x41,0xc,0x99,0xd6,0x41,0xa5,0x49,0xa,0xc1,0x8d,0x4d,0x2,0x42,0x68,0xa4,0x78,0xc1,0xd1,0xde,0x59,0x42,0x2a,0x22,0xdb,0xc1,0x60,0xca,0x32,0xc2,0x70,0x4c,0xea,0x40,0x9f,0x4c,0xb1,0x40,0x3a,0xa4,0x28,0xbf,0xdc,0xef,0x44,0x42,0x8,0x8b,0x6e,0xc1,0xdc,0x80,0x4e,0x40,0x3f,0xdc,0x8b,0xc1,0xef,0x1c,0xb4,0xc2,0x84,0x29,0x60,0x40,0x90,0x70,0x17,0xc1,0xf9,0x21,0xd3,0x41,0xe2,0x44,0x92,0xc2,0x9c,0xfc,0x8c,0x40,0xc,0x9e,0x17,0xc2,0x8a,0xa0,0x96,0x41,0x8e,0x5e,0x22,0x42,0xae,0xf2,0x96,0x41,0xf1,0x24,0x4d,0x42,0xec,0xeb,0xa8,0xc2,0xa3,0xd3,0xf3,0x41,0xc0,0xe0,0x56,0x3d,0x6f,0xea,0x83,0x41,0x23,0xfa,0x4e,0x42,0xb0,0x9b,0x3,0x42,0x31,0x47,0x98,0x42,0xc0,0x26,0xb3,0xc0,0xbc,0x44,0x37,0x42,0xf3,0x13,0xf9,0xc1,0x40,0xa4,0x3e,0x41,0x8,0xce,0x18,0xc1,0x63,0x6f,0x41,0xc2,0x5e,0x3e,0x5e,0x40,0x7a,0x88,0x6c,0x42,0xf7,0x1b,0xa2,0x42,0xd3,0xae,0x80,0x41,0xb0,0x70,0x6,0xc2,0x42,0x65,0x75,0xc0,0x3a,0xe2,0x12,0x42,0xf4,0x1c,0x1a,0xc2,0xc0,0xb9,0xf2,0xbf,0xdc,0xa,0x7f,0x42,0x27,0xf4,0xf9,0x42,0x4c,0xe3,0xac,0x41,0xbc,0x2c,0xaa,0xc2,0x66,0x68,0xc1,0xc1,0x48,0x2a,0x4a,0xc1,0xbb,0x36,0xbb,0x41,0x7a,0xc,0x62,0x42,0x48,0xc,0x29,0x41,0x3e,0x4a,0xcf,0xc1,0x63,0x8e,0xcb,0xc0,0xdd,0x80,0x65,0x40,0xab,0x9a,0x30,0xc2,0xa7,0x61,0xae,0x3f,0xfa,0x39,0x8,0xc2,0x9e,0x40,0xac,0x41,0xea,0x6b,0xe1,0xc0,0xaf,0xee,0xb2,0xc0,0xe,0xcb,0xcf,0xc1,0x65,0xd7,0xe6,0xc1,0xcc,0xfe,0x5e,0xc1,0xf6,0x5e,0xa4,0x41,0xf0,0x35,0xe,0xc0,0xad,0x77,0x6e,0x42,0x70,0x5b,0x6d,0xc1,0xa6,0x1c,0xd0,0xc1,0x6b,0x7a,0x62,0xc2,0x5b,0x32,0xab,0x3f,0x36,0xbf,0x86,0x41,0x58,0xba,0xeb,0xc0,0x10,0x73,0xa4,0xc0,0x3d,0x6b,0x12,0x42,0x3e,0xfa,0xb4,0x42,0x6f,0xfb,0x94,0xc2,0x4f,0x3,0x93,0x42,0xd,0x6f,0x35,0xc2,0x88,0x47,0xf3,0xc1,0x42,0x39,0x71,0x42,0xb,0xe7,0x10,0xc2,0xbe,0xe8,0xbf,0x41,0xa8,0x9b,0x4a,0xc2,0x14,0x2a,0x1b,0xc2,0xa4,0x62,0x7d,0xc2,0x2a,0xb7,0x5,0xc2,0xed,0xdb,0x62,0xc2,0x9c,0xe8,0x70,0x42,0x2a,0xf8,0xb0,0xc1,0x72,0xd6,0xac,0xc1,0x98,0x96,0x84,0x41,0xc,0x19,0x38,0xc2,0xcf,0x9,0xe6,0x41,0xae,0x39,0x24,0x42,0x4b,0x74,0x1e,0xc1,0x2a,0x57,0x54,0xc1,0x87,0x35,0xd2,0xc0,0x78,0xbd,0xda,0x40,0xe,0x58,0x6e,0x42,0xe2,0xd,0x5,0xc2,0xac,0xb5,0x85,0x42,0x5d,0xec,0x10,0xc2,0x72,0x16,0x34,0x42,0xc8,0x4f,0x59,0x42,0x2f,0xa,0xe4,0xc1,0x8f,0x62,0x8a,0x41,0xed,0xf5,0xc1,0x41,0x85,0x71,0x73,0x41,0x15,0xce,0x0,0x42,0x86,0x39,0x2a,0x41,0xf9,0x11,0xb3,0x42,0x85,0xd,0x22,0xc1,0xb2,0x13,0x9,0xc2,0x24,0x8a,0xc,0xbf,0xae,0x73,0x9,0xc2,0xb4,0x7f,0xc4,0xc1,0x80,0xe9,0x19,0x41,0xe0,0x3f,0x15,0x42,0xee,0x16,0xb0,0x41,0x6,0x12,0x93,0x42,0x74,0xd4,0x40,0xc0,0x6b,0x3f,0x1f,0xc2,0x55,0xd,0x64,0xc1,0xb2,0xd6,0xad,0xc1,0xc8,0x1,0x7c,0x41,0x5a,0x9d,0x1a,0x42,0x50,0xe,0x31,0xc2,0x72,0x71,0x6b,0xc0,0xe8,0xb8,0xf0,0x41,0xa9,0x2b,0x3c,0xc2,0x38,0x8a,0x3b,0x41,0x57,0x53,0xe4,0x41,0x22,0xb4,0x3,0x42,0xab,0xf2,0xfc,0x41,0x9f,0xde,0x9a,0x41,0xf6,0x6c,0x4b,0xc2,0x0,0xa5,0x4a,0xc1,0xb8,0xc5,0x6b,0xbf,0xc7,0x4f,0x31,0x41,0x5c,0x3b,0x91,0xc0,0x4a,0x3d,0xdd,0xc0,0xbc,0x9d,0xb5,0x41,0xa0,0xa1,0x72,0xc2,0xc2,0xc3,0x1d,0x42,0x9b,0xca,0x39,0xc2,0x40,0x8f,0x19,0xc2,0xd6,0xb9,0xd0,0x41,0x28,0x9b,0x66,0xc1,0x16,0xb7,0xa7,0x40,0x26,0x7c,0x49,0xc2,0xa,0xfc,0x6e,0xc2,0x20,0x6c,0x5c,0x41,0x56,0x64,0x87,0xc1,0x47,0x7b,0xb6,0x3e,0xd4,0xff,0x85,0xc1,0x8c,0x8c,0x0,0x42,0xd2,0x9f,0x27,0xc0,0x6,0x10,0xc6,0xc0,0x30,0x6c,0x27,0x42,0xea,0xb3,0x52,0xc1,0xa6,0xa1,0xd6,0xc1,0x89,0xa5,0xf0,0x41,0x9f,0x48,0x83,0x41,0x17,0x2,0xb2,0x41,0x4d,0xf,0x99,0x41,0x5,0x7,0x84,0xc1,0x5e,0x62,0x1d,0x42,0x4a,0xcc,0x5,0x42,0xce,0x5f,0xca,0xc1,0x6,0x7a,0xcf,0xc0,0xd2,0xbe,0x4b,0xc2,0xe5,0xa1,0x6b,0xc2,0xab,0xf1,0xd1,0x41,0x36,0x4,0x5e,0xc1,0x72,0xd8,0x45,0xc2,0x97,0x82,0x39,0x42,0xed,0x7f,0xb6,0x41,0x20,0xfb,0x71,0x41,0x8,0x7,0x29,0xc2,0xb6,0xb8,0xe0,0x41,0x2,0x4c,0xb9,0xc0,0x94,0x1a,0xcd,0x41,0x14,0x22,0x6c,0x42,0x4,0xe6,0x55,0x42,0xa,0x28,0xe,0x42,0xb7,0x96,0x81,0x42,0x7,0x8,0x60,0xc2,0xe0,0x96,0xd,0xc2,0x4b,0xa8,0x90,0xc2,0xa8,0x55,0xb5,0x40,0x6c,0xa,0xb9,0xc0,0xa4,0x3c,0x88,0x41,0xa3,0xf8,0x91,0xc0,0xf0,0x27,0x9b,0x42,0xa4,0xf4,0x8d,0x41,0xe3,0x4a,0x95,0xc1,0x42,0xe3,0x9f,0x42,0x2,0x7f,0xeb,0x41,0x93,0x5b,0x9f,0x41,0xc2,0x3a,0x92,0x41,0x98,0x6f,0xa3,0xc1,0xf,0x89,0xf8,0x41,0x9b,0x8b,0xcf,0xc1,0x42,0xdd,0x87,0x41,0x72,0x2f,0x4,0xc2,0xaf,0xa0,0xc,0xc2,0x4c,0xb8,0x99,0x41,0xcd,0x15,0xc0,0x42,0xf2,0x62,0x2c,0xc1,0x81,0x45,0x2b,0xc2,0xbc,0xcb,0xf2,0xc0,0x96,0x54,0x88,0x40,0xed,0x63,0x7e,0x41,0x18,0xab,0xe0,0xc0,0x1,0x35,0x24,0xc2,0x24,0xf9,0x2a,0x41,0xc9,0x60,0xcd,0x40,0xfa,0xbb,0x32,0xc2,0xb8,0x5a,0x9c,0x41,0x70,0xe5,0xa5,0xc1,0x2d,0xd7,0x7e,0xc2,0x19,0x7f,0x1b,0x42,0x9a,0xeb,0x81,0xc1,0x20,0xca,0x1d,0xbe,0x8b,0x91,0xf9,0xc1,0x1,0xcb,0x20,0xc2,0x1f,0x4c,0x13,0xc1,0xd5,0x9b,0xa1,0x42,0xc,0x8a,0xa5,0xc1,0x3a,0xc2,0xb7,0xc1,0xde,0x13,0x93,0x42,0x7d,0xca,0x8d,0xc2,0x14,0x6e,0xe3,0xc0,0xe4,0x4,0x78,0xc2,0xdd,0x88,0x7,0xc2,0x3f,0x4d,0xd0,0x41,0x61,0x77,0x6b,0x41,0x2c,0x3f,0x62,0x41,0x62,0xcc,0x9,0x40,0xec,0xbc,0x81,0xc0,0x17,0x9b,0x27,0xc2,0x3e,0xc5,0x2a,0xc2,0xd0,0x4e,0x0,0x42,0x4a,0xb1,0x4,0xc2,0x2c,0x44,0x95,0xc2,0xac,0xfd,0xa5,0x42,0x24,0x4d,0x9a,0xc2,0xd0,0xc1,0x42,0x42,0x68,0xef,0xa1,0xc2,0x76,0xdc,0x62,0xc1,0x95,0x90,0xa,0xc2,0xc0,0x13,0xd5,0xc1,0xb0,0x64,0x33,0x3f,0x5e,0x76,0x13,0xc2,0x63,0xb9,0x43,0xc1,0xde,0xa6,0xb4,0xc0,0xb8,0x3f,0xe2,0xc0,0x16,0x2,0x9,0xc2,0xa,0xc,0xeb,0x41,0x52,0xc3,0xa4,0xc0,0xd0,0x4f,0xa5,0xc1,0x32,0xdc,0xb0,0xc1,0x97,0xfe,0x8,0x41,0x20,0x48,0xfa,0x41,0xa1,0x54,0xa,0xc2,0x3f,0x4b,0x49,0x40,0xaa,0x5f,0x46,0xc1,0xdd,0x60,0x3f,0x41,0x7e,0xf0,0x78,0xc2,0x33,0x90,0xcc,0xc0,0xc9,0x5b,0xaa,0xc1,0xbe,0xb,0x42,0x42,0x3c,0x6d,0xd3,0xc0,0x4b,0xd8,0x21,0x42,0xe7,0x6b,0x31,0x41,0xfb,0x15,0x82,0x41,0x25,0x76,0xb2,0x42,0x32,0x0,0xc9,0xc2,0x19,0x51,0x9b,0xc1,0xa6,0x77,0x36,0x41,0xfa,0x4b,0x6b,0xc0,0x5,0x25,0x1c,0x41,0xde,0x87,0x49,0xc2,0x5b,0x1,0x60,0x41,0x19,0xb4,0x22,0x41,0x88,0xf7,0xcd,0xc1,0x4f,0x96,0xa5,0xc0,0x7d,0xae,0x29,0xc2,0xaf,0x98,0x2f,0x42,0x61,0x79,0x84,0x41,0x98,0x6d,0xab,0xc0,0x63,0x85,0x92,0x41,0xcd,0x48,0x1c,0xc2,0x41,0x54,0x98,0xc2,0x6c,0x79,0xb0,0x42,0xf4,0x26,0x15,0x42,0x11,0x7b,0x30,0xc1,0x1c,0x88,0xe7,0x41,0x4b,0xef,0x62,0xc1,0x24,0x83,0xe5,0x41,0x90,0x78,0xbe,0xc1,0x19,0xde,0xf6,0x41,0x62,0xf,0xf4,0xc0,0xec,0xcd,0x5,0x41,0x5a,0x3f,0x87,0x42,0xef,0xe2,0x61,0x42,0x83,0xac,0xaf,0xc1,0xbc,0x7c,0x32,0x42,0x3b,0xde,0x15,0x40,0xff,0xdd,0x93,0x42,0x8d,0x4f,0x48,0x42,0x45,0x72,0x4c,0xc0,0x94,0x15,0x33,0xc2,0x2f,0xb5,0x9f,0xc2,0x4c,0x27,0x80,0x41,0x9a,0x80,0x1c,0xc2,0x3f,0xc4,0x20,0xc2,0x10,0xd3,0x6a,0xc0,0x89,0x37,0xef,0xc1,0xe6,0xd0,0xf6,0xc0,0xe,0x2c,0xc3,0xc0,0xeb,0x35,0x74,0xc1,0x75,0x34,0x90,0xc2,0xeb,0x57,0x8f,0xc2,0x70,0x39,0xcc,0xc2,0x8a,0xc2,0x59,0xc1,0x35,0xc1,0x3c,0x42,0xa8,0xfd,0x22,0x42,0x43,0xa1,0x39,0xc2,0x6d,0x81,0x7,0x42,0x76,0xf8,0xb0,0x41,0x1e,0x96,0xfe,0x41,0xec,0x7e,0x39,0x42,0xbe,0x38,0x82,0x42,0x85,0x19,0xb8,0xc1,0xf4,0x11,0xde,0xc1,0x75,0xc1,0xe1,0x40,0x8f,0x9c,0x16,0xc1,0x19,0x10,0x75,0xc2,0xa4,0x7b,0xfb,0xc0,0xed,0x43,0x84,0xc2,0x3,0x8c,0x44,0xc2,0x86,0x8b,0xa2,0x41,0xc9,0xfd,0x65,0x41,0xaa,0x1d,0xf7,0x41,0x50,0x97,0xbf,0x41,0x15,0x8,0x9c,0xc1,0xd4,0x75,0xf3,0x41,0x3a,0x9b,0x31,0xc0,0xe6,0xd7,0x24,0xc1,0x5e,0x7c,0x65,0xc1,0x12,0x12,0xae,0x41,0x79,0x20,0xa6,0xc2,0xc1,0x75,0x57,0xc2,0x7d,0x6b,0x2a,0xc2,0xc0,0xcd,0x3,0x42,0x43,0x1a,0x3c,0xc2,0xf4,0x98,0x26,0x42,0xdf,0xde,0x8d,0x41,0x57,0xc1,0x24,0x42,0x10,0xe7,0xf7,0x41,0x3e,0x4a,0x38,0xc2,0x16,0xa1,0x81,0x41,0x37,0xcb,0xf,0xc2,0x9b,0x72,0x12,0x42,0x1,0x71,0x48,0x42,0xf,0x88,0x37,0xc2,0x9f,0xaa,0xc3,0xc1,0x8a,0x52,0x93,0xc1,0xe5,0x68,0xa2,0xc2,0x96,0xe4,0xbb,0xc1,0x7e,0xec,0x81,0x42,0x50,0xe,0xa6,0xbe,0x21,0xf4,0x87,0x42,0x88,0xa5,0x64,0xc2,0x6f,0xae,0x2b,0xc1,0xd2,0x83,0x14,0xc2,0x56,0x5b,0xe4,0x41,0xfd,0x5,0xb5,0x41,0x35,0x6,0xaa,0x41,0x94,0x2f,0x6c,0xc2,0x79,0xa1,0xa0,0xc1,0xfb,0x19,0xbb,0xc1,0xa7,0xfb,0xcb,0xc1,0x76,0xf3,0xa8,0x41,0xa,0x4e,0x94,0xc1,0x3c,0x16,0xe8,0xc0,0x93,0x30,0x3a,0x41,0x61,0x7e,0x75,0xc1,0x7d,0x57,0x3c,0xc2,0xf9,0x62,0x83,0x42,0x97,0x3c,0x78,0x41,0x4c,0xaa,0x8b,0x41,0x3a,0x25,0xd6,0xc1,0x73,0x5a,0x29,0xc2,0xaa,0x31,0x8,0xc2,0x5d,0x82,0x66,0x41,0xec,0xf,0x20,0xc0,0x6a,0xd2,0x22,0x42,0x46,0xb4,0x4f,0x41,0x30,0x52,0xab,0xbe,0x2e,0x89,0xdb,0x40,0xca,0x6b,0x70,0x40,0x8c,0xd5,0x2c,0xc1,0x9a,0x93,0x1a,0xc1,0xd4,0xca,0x14,0x41,0x75,0xe6,0x3e,0xc1,0x64,0xe1,0x38,0x41,0xf7,0x7d,0xda,0xc1,0xc1,0x96,0xc2,0xc1,0xc3,0x80,0x2c,0xbf,0x86,0x9e,0x34,0x40,0x66,0x36,0x93,0x42,0xed,0xde,0x72,0xc2,0xa1,0xd7,0x2b,0x42,0xba,0x29,0x91,0x42,0xf1,0xbc,0xe4,0x41,0x6,0xac,0x62,0xc2,0xd6,0xdc,0x9b,0xc2,0x11,0x34,0x32,0x42,0x18,0x4e,0x68,0x42,0x7c,0xbc,0x53,0x41,0xfb,0x54,0x97,0xc1,0xd,0xc0,0x13,0x42,0x5b,0xf7,0x23,0xc2,0x0,0x7d,0xb0,0x3d,0xbd,0x8,0xc8,0x41,0x39,0x3a,0x4b,0xc1,0xd2,0xc0,0x4b,0xc0,0x75,0x96,0xb6,0x42,0x46,0x74,0x29,0x42,0xd7,0xd2,0x90,0xc2,0x73,0x2,0x30,0x42,0xda,0x1b,0x8a,0xc2,0xa9,0x9f,0x86,0xc0,0xd7,0x67,0x5b,0x42,0x92,0xe3,0xc5,0xc1,0xd0,0xf1,0x31,0xc1,0x7d,0x9e,0x9,0x42,0x60,0x3a,0x6b,0x41,0xb6,0x89,0x1b,0x40,0x30,0xab,0x19,0x42,0x72,0xe7,0x13,0x42,0xaa,0xf1,0x1f,0x42,0xc6,0x68,0x1d,0x42,0xee,0x3a,0x73,0x41,0x50,0x26,0xc,0xc2,0xb6,0xa3,0x35,0xc0,0x30,0xfb,0x4,0xc2,0xa6,0xfe,0xd,0x3f,0xe4,0xc6,0x47,0x42,0xe,0x2c,0x1b,0xc1,0xa1,0x6a,0x32,0xc2,0xd2,0xd5,0x7a,0xc2,0xba,0xdd,0x83,0x40,0xb9,0x53,0x32,0xc2,0xa7,0x11,0x0,0x43,0x28,0xac,0x9e,0xc1,0xdd,0x75,0xc5,0xc2,0x1d,0xa2,0xf2,0x41,0x49,0xb1,0x8e,0x41,0x76,0x53,0x2e,0x40,0x6e,0x38,0x5a,0xc1,0x75,0xde,0x53,0x42,0xfa,0x64,0x8f,0x41,0x6,0xba,0x89,0x3f,0x82,0xb6,0x1d,0xc2,0xfa,0x1e,0x37,0x40,0xac,0xa3,0xb,0xc2,0xc8,0x9f,0x12,0xc1,0x51,0xe3,0x97,0x42,0x12,0x2c,0xc,0xc2,0x6a,0x12,0x17,0xc1,0x24,0xe1,0xe4,0xbe,0xc9,0x74,0x6e,0xc1,0x6d,0xf3,0x9d,0xc2,0x57,0xac,0x88,0x41,0xe8,0x40,0xfd,0x41,0x9b,0x5a,0x8c,0xc1,0xa8,0x6a,0xf4,0xc1,0x65,0xa,0x1d,0x42,0x8d,0xff,0x45,0x41,0xda,0xd5,0x6,0x42,0xb8,0x14,0xa3,0x40,0xb5,0x27,0x7,0x42,0xa8,0x47,0xe3,0xc0,0xfa,0xe1,0xff,0x41,0xa6,0x42,0x29,0xc2,0x3d,0x83,0x85,0xc0,0x7e,0xe2,0x3f,0xc0,0x48,0x68,0x43,0x41,0x41,0x3,0xa3,0x42,0x2f,0x7f,0x8e,0x41,0xd4,0x7b,0x57,0x42,0xd,0xde,0x8d,0x41,0x84,0xb3,0x5c,0x42,0xa0,0x4f,0xf,0x41,0x9a,0x92,0x81,0x42,0x9a,0x11,0xa1,0xc2,0xa,0x30,0x45,0xbf,0x12,0x14,0x38,0x40,0x3c,0x3,0x83,0xc2,0xaa,0xc6,0x5,0xc2,0x4c,0xe8,0xe1,0x41,0x27,0xfc,0xd6,0x40,0x28,0x3f,0x37,0xc2,0x56,0x78,0x99,0x42,0x24,0x66,0xd5,0x40,0x37,0x2f,0x2a,0xc2,0xfd,0x5b,0xa,0x42,0xa8,0xeb,0x57,0xc2,0xbb,0x26,0xda,0x42,0x48,0xb7,0xe0,0xc1,0x3,0x50,0x56,0x42,0x16,0x60,0xf,0x42,0x95,0xd7,0x69,0x41,0x64,0x20,0x8b,0x42,0xd3,0x1c,0xf9,0x41,0xdb,0xd7,0xc6,0xc1,0xb6,0xba,0x39,0x41,0xf,0x39,0x83,0xc2,0xde,0x8e,0x8e,0x41,0xbf,0x48,0x94,0xc0,0x79,0x44,0x6d,0xc2,0xdd,0xa1,0x35,0x42,0xb1,0xf,0x96,0x41,0x61,0x56,0xf0,0x41,0x4f,0x38,0x56,0x42,0xba,0x79,0x8d,0xc1,0x6f,0x0,0xc7,0xc2,0x94,0x2,0xfc,0xc1,0xd5,0xa4,0x4f,0x42,0xe1,0x33,0x89,0x42,0x7a,0x1f,0x9b,0xc0,0x70,0xcc,0x76,0x42,0xfe,0x7,0x8d,0xc1,0x2e,0x54,0xf5,0x41,0xb2,0xbe,0x13,0xc2,0xa,0x10,0xbb,0xc2,0x22,0x9b,0xce,0xc0,0x60,0x36,0xec,0x41,0x38,0x86,0xf0,0x41,0xc5,0x85,0x94,0xc2,0x5f,0x4d,0x85,0x41,0xf9,0xd5,0x19,0xc1,0xcb,0x7b,0x10,0x42,0xf6,0xdc,0x0,0xc2,0xf,0x6d,0xb1,0x41,0x39,0xbc,0x47,0xc1,0x45,0x16,0x91,0x42,0xf6,0xde,0xb6,0xc0,0xb,0x4d,0xf1,0xc1,0x48,0xa2,0x89,0x42,0x39,0x32,0xbc,0xc2,0x66,0xc5,0x88,0xc0,0x16,0xba,0x1c,0xc2,0x10,0xf9,0xce,0x40,0x75,0xf9,0x77,0xbf,0x75,0x3a,0x1f,0xc2,0x47,0x81,0x3f,0xc1,0x0,0xf5,0x70,0x3f,0x1f,0x4e,0x26,0x42,0x4f,0x56,0x80,0x42,0xa7,0x78,0xb6,0x42,0x74,0x67,0x95,0xc1,0xa2,0x11,0xc7,0x3f,0x38,0x56,0x51,0x41,0x3c,0xae,0x46,0xc2,0x12,0xe5,0x5f,0xc2,0xb5,0xb9,0x19,0xc2,0xef,0xd1,0x57,0x41,0xb8,0xce,0xfc,0x41,0xc1,0x2c,0x90,0x41,0xca,0x8b,0xb5,0x41,0xee,0xae,0x48,0xc1,0x44,0xf0,0xd3,0xc1,0xf2,0xf3,0x16,0xc2,0xa1,0x7f,0x11,0xc2,0x4,0x3b,0x39,0x42,0x3d,0xd6,0x3,0xc2,0x6a,0xd9,0x3,0xc2,0xb8,0x86,0xd7,0xc1,0xda,0xee,0xbe,0x42,0xb4,0x40,0x52,0x42,0x96,0x7f,0x8e,0x41,0xa7,0xcb,0x36,0x42,0x88,0x50,0x6d,0xc2,0x1b,0x76,0x2,0xc2,0xc2,0xa,0xc4,0xc0,0xf0,0x3f,0x37,0x3e,0x70,0x4b,0x24,0xc0,0x3d,0x3d,0x6d,0x42,0xb6,0x9b,0x3,0x42,0xb0,0xfa,0x28,0xc2,0xac,0x85,0x6b,0x41,0x45,0x7d,0xbe,0x41,0xf8,0xd0,0xc9,0x41,0x77,0x92,0xbe,0x42,0x20,0xa5,0x1d,0x3f,0x33,0x15,0x95,0xc0,0x3a,0x4e,0x48,0x41,0xb,0xc5,0x13,0xc2,0x4d,0xfe,0x54,0x42,0x51,0x47,0x8,0xc2,0xaa,0xcb,0x42,0xc1,0x90,0xf9,0x2f,0xc2,0x80,0xe7,0xd7,0x41,0x2e,0xbf,0x6a,0x41,0x86,0x99,0xa0,0xc1,0x86,0x2c,0x4,0x42,0x3f,0x85,0x98,0x40,0x80,0xba,0xc5,0x41,0xef,0xfd,0x7d,0xc1,0x75,0x9,0x8b,0xc1,0x14,0x54,0x5,0xc2,0xd7,0xfe,0xf9,0xc1,0x95,0x51,0x38,0xc1,0xc,0xf0,0x15,0x42,0x78,0x87,0xd0,0xc1,0xb0,0xa6,0x8e,0xc1,0xd2,0x4b,0x20,0xc2,0xc5,0x8a,0x70,0xc2,0xbc,0x21,0x5a,0x42,0x88,0xcb,0x19,0x42,0x1e,0xc0,0x82,0x42,0xf5,0x79,0x71,0x42,0x7a,0x67,0x7b,0xc1,0xba,0xca,0xe7,0xc1,0xb,0xb6,0x28,0xc2,0x2a,0xd,0xe1,0xc1,0x58,0xac,0xd1,0x41,0xb6,0xd7,0x8d,0x41,0xf0,0x1b,0x7a,0x41,0xd6,0x28,0xf3,0xc0,0x2a,0x50,0x2f,0x40,0x1,0xee,0x59,0xc2,0xd1,0x2b,0x73,0xc2,0x4c,0x93,0x5a,0x42,0x6a,0x98,0x81,0x41,0x56,0xb0,0x8f,0x41,0x50,0xee,0x95,0x41,0x7,0xaf,0xfb,0x40,0xe1,0xd4,0xb7,0x41,0xd4,0x3e,0x19,0xc2,0x98,0xb2,0xb5,0xc2,0x3d,0x95,0xf0,0xc1,0xa2,0x40,0x74,0xc1,0x2d,0xfa,0x1c,0x42,0x32,0xb0,0xe8,0xc1,0xb6,0x6c,0x3,0x42,0xac,0x58,0x11,0x42,0xaa,0x57,0x9c,0xc2,0x60,0x79,0x4a,0x42,0x86,0xc7,0x6d,0x42,0x76,0xad,0x51,0x3f,0xfb,0x42,0xe,0xc2,0x3a,0xfa,0x1,0xc3,0x28,0x6b,0x84,0x3f,0x49,0xc5,0x24,0xc2,0x98,0x93,0x6a,0xc2,0xba,0x2,0xfe,0x41,0xaa,0xf7,0x3a,0x41,0xf5,0x81,0x50,0xc2,0xe0,0x36,0x4c,0x41,0x6a,0xbd,0x17,0x40,0x44,0xaa,0xc8,0xc1,0x68,0x1,0x87,0xc1,0xc7,0xb6,0xef,0xc1,0x68,0x65,0x47,0xc2,0x5b,0x32,0x4c,0x42,0xac,0x94,0x26,0xbf,0x52,0xbf,0xa,0x41,0x26,0x26,0xdb,0xc1,0xd4,0xb7,0x8d,0xc1,0xb9,0xeb,0xf,0xc2,0x6d,0x37,0xa2,0xc1,0xa1,0x65,0xbb,0x42,0xa7,0x9a,0x5f,0xc2,0x78,0x7e,0x0,0x41,0xe,0x49,0x46,0xc2,0xcc,0x31,0x4f,0x42,0x80,0x5,0xa7,0xc1,0x3c,0x6e,0xee,0xc1,0x35,0xd2,0x10,0x42,0xa0,0xb2,0x6d,0x41,0x9,0xa7,0xc0,0x41,0x69,0x14,0x17,0xc2,0x1d,0x28,0xb8,0xc1,0x6e,0xe5,0x8d,0xc1,0x39,0xdd,0x6f,0x42,0x35,0x36,0x40,0xc1,0x3a,0x74,0x8d,0x41,0x84,0x96,0xa4,0xc0,0xe8,0x3a,0x97,0x42,0x55,0xd6,0x1e,0x42,0x59,0xa3,0x3b,0x42,0x42,0xaa,0xa8,0xc2,0x72,0xcb,0x0,0x42,0x2b,0x5f,0x45,0xc2,0xec,0x4b,0x3e,0x42,0x6d,0x96,0x60,0x41,0x68,0xad,0x11,0xc2,0x37,0x5c,0x3c,0x42,0x37,0xc1,0xdf,0x40,0x23,0x25,0x78,0x41,0x9c,0xcf,0x69,0xc1,0x74,0xa1,0x28,0x42,0x49,0xca,0x18,0x41,0xef,0x5b,0x24,0x41,0x72,0xa1,0xd,0xc2,0xa,0x9f,0x7,0x42,0x55,0x1b,0x89,0xc2,0x1d,0x16,0x5d,0xc1,0xf,0x10,0x6f,0xc1,0xba,0x61,0x63,0x3e,0xc1,0xe6,0xd0,0xc1,0xa1,0x91,0x8e,0x41,0x45,0xc5,0x3c,0x42,0xd2,0x85,0x6b,0xc1,0xe,0x47,0x90,0x42,0x85,0x0,0x65,0x41,0x46,0x45,0x72,0xc2,0x1e,0x82,0x75,0x42,0xf0,0xeb,0x90,0xc1,0xbf,0x9,0xd1,0x41,0xa,0xf1,0x57,0xc0,0x85,0xbc,0x4b,0x42,0x14,0xb1,0x5f,0x40,0xe8,0x19,0xcb,0x3f,0x63,0xd0,0xc2,0x41,0x53,0x6a,0x4e,0x42,0xc4,0x40,0x8b,0xc1,0x7f,0xad,0x15,0x40,0xfc,0xa6,0xe4,0xc1,0xf4,0x29,0x86,0x41,0x3c,0xc,0xac,0x3f,0xad,0xe4,0xe8,0xc1,0xec,0xdd,0xaf,0x42,0xea,0xf0,0xc9,0x40,0x65,0x45,0x8f,0x41,0xdc,0xdd,0x9b,0x40,0x8e,0xbc,0x99,0x41,0x16,0x7c,0x39,0xc2,0xe0,0x20,0x5d,0xc1,0x9a,0x3a,0x1e,0x42,0xd3,0x27,0x87,0x41,0x1a,0xf9,0x1,0x42,0xea,0x14,0x8e,0xc2,0xc8,0x98,0xd0,0x40,0x53,0x48,0x40,0xc2,0xc2,0x31,0xa4,0xc0,0xa8,0xef,0x89,0xc1,0xec,0xf0,0xb9,0x40,0x98,0x61,0x53,0xc1,0xe7,0xfd,0x2d,0x41,0x79,0x5c,0xa8,0xc0,0x94,0xdd,0x6b,0x41,0x5e,0xfc,0xb4,0x41,0x20,0x15,0x8f,0x3d,0x77,0x1b,0x9e,0xc2,0x2f,0xc7,0x2d,0x42,0x4a,0x9c,0xb2,0x41,0xb2,0xe6,0xbf,0xc1,0xae,0x95,0x1b,0x42,0xde,0x37,0x8a,0xc1,0xd7,0x36,0x27,0xc2,0xe6,0x60,0xda,0xc2,0xd7,0x66,0xed,0xbf,0xda,0x4b,0x9e,0xc1,0x5e,0x69,0x8a,0x42,0x65,0x23,0xdf,0xc0,0xe0,0xf2,0x27,0xc2,0x88,0x4c,0x52,0x42,0x15,0x94,0x1e,0x41,0x57,0x46,0xf,0xc2,0xf4,0x8e,0x28,0xc2,0x17,0xa2,0x2f,0x42,0xdd,0xf5,0x10,0xc2,0x4c,0x3d,0x86,0x40,0x5,0x9f,0x28,0xc1,0x30,0x23,0x23,0xc2,0x7,0x2e,0x81,0xc1,0xfd,0xec,0x2e,0xc1,0x76,0xbe,0x1e,0xc1,0x18,0xa9,0x43,0xc0,0x6,0x3e,0xb6,0x41,0xc0,0xe5,0x71,0x40,0x2b,0x8d,0xf4,0xc1,0x0,0xb4,0xac,0xc1,0xc5,0x1c,0x59,0xc2,0x1c,0x9c,0xe3,0xc1,0xdf,0xf6,0x75,0xc1,0x82,0x6f,0xef,0x41,0xed,0x49,0xa,0xc2,0x4a,0xed,0x4d,0xc2,0x64,0xeb,0x42,0xc2,0x78,0xe7,0x3c,0x42,0xb7,0x40,0x74,0xc2,0x1,0x25,0x70,0x41,0x14,0x73,0x94,0xc1,0xe9,0xf5,0x5,0xc2,0x2e,0x59,0xde,0xc0,0x5,0xad,0x8d,0x42,0xca,0x49,0xdb,0x41,0xaf,0xf5,0x8,0x41,0xec,0x74,0x4d,0x41,0xe8,0x8f,0x66,0xbf,0x12,0xdc,0xe0,0xc1,0xd7,0x58,0x2e,0xc2,0xa1,0xe3,0x20,0x40,0x29,0xb9,0x1e,0xc2,0xd9,0xe8,0x9f,0x42,0x7a,0x3,0x34,0x42,0x5e,0x74,0x2f,0x42,0x67,0x84,0x77,0xc2,0xa,0xf2,0x72,0xc1,0x81,0xef,0x4e,0xc2,0x32,0x5d,0x15,0xc2,0x5d,0x5d,0x6b,0x41,0xc7,0x59,0x98,0xc0,0x64,0xc8,0xb,0x41,0x17,0x25,0x84,0x40,0xa8,0x14,0xeb,0x41,0xde,0xaf,0xbc,0x41,0x20,0x61,0xca,0xc1,0x94,0xff,0x9f,0x41,0xaf,0xd6,0x18,0x42,0x64,0xfa,0x38,0xc0,0x9f,0x49,0xc,0xc2,0x8f,0xae,0x1a,0xc2,0x91,0x94,0xa2,0x41,0xc,0xa5,0x74,0xc1,0x36,0x68,0x10,0xc2,0xba,0x5c,0x35,0xc1,0x9e,0xf8,0x88,0xc2,0xc6,0x69,0xf5,0xc0,0x9e,0xca,0x1b,0x42,0x6d,0x74,0xd3,0x42,0x34,0x13,0x15,0x42,0xa3,0x0,0x20,0x41,0xcc,0x2e,0x25,0xc2,0x17,0xf0,0x61,0x42,0x57,0xc2,0xfc,0x41,0x3b,0xd4,0x27,0xc1,0xff,0x1f,0x5b,0x42,0x38,0x26,0xba,0x41,0x5c,0x96,0xe2,0xc1,0xb2,0xb3,0x24,0xc2,0xd6,0x7d,0xc6,0xc1,0x30,0xd3,0xf1,0xc1,0x2c,0x35,0x25,0x42,0x2c,0xad,0xbb,0x40,0x98,0x40,0x10,0x42,0x51,0x3c,0x2c,0x42,0x8b,0x46,0x9f,0xc0,0x45,0x51,0xbb,0x41,0x31,0x8d,0x2e,0xc2,0xab,0xda,0x13,0xc1,0x7f,0xd0,0xe4,0xc1,0x2b,0x71,0x7,0x42,0x84,0xcb,0x19,0x41,0x59,0xa3,0xf1,0x3f,0x26,0xfe,0x39,0x42,0x1,0x68,0xf,0xc2,0xa1,0xb2,0x1,0xc2,0xe0,0xdc,0xb0,0x42,0x3,0xa1,0x33,0x42,0x74,0xc2,0x11,0xc1,0x44,0x16,0xc4,0xc0,0x36,0x92,0x3f,0xc1,0x2d,0xb3,0x1f,0x42,0x67,0xfe,0x67,0xc2,0xf6,0x15,0x92,0x41,0xf1,0x97,0x2c,0xc1,0xe3,0x22,0x4,0x42,0x8e,0x52,0x45,0x3f,0xdc,0xc6,0xad,0xc0,0x58,0xc9,0xfb,0xc0,0x50,0xa6,0x37,0xc2,0x6f,0xfa,0x84,0xc1,0xb0,0x1b,0x62,0xbf,0xa4,0xba,0xef,0xc0,0x3c,0x6d,0xaf,0xbf,0x70,0x50,0xd1,0xc1,0x42,0xe0,0x33,0x42,0xcd,0x74,0xa0,0xc1,0x67,0x2e,0xa4,0x41,0xee,0xcb,0x9d,0xc2,0xc6,0xef,0x42,0x41,0xb6,0x87,0x8b,0xc2,0x71,0x50,0x5,0x41,0x60,0x3f,0xa6,0xc2,0xe0,0xd,0xd5,0xc1,0xee,0xe0,0x5,0xc2,0x2c,0x3e,0xa4,0x41,0xe6,0x6b,0x6,0x41,0x84,0xf2,0xed,0x41,0x60,0x21,0x34,0x42,0xd1,0x13,0xce,0x41,0x3d,0x8d,0x89,0x41,0x76,0xb9,0xc2,0xc1,0x88,0xf5,0xd8,0x3f,0x53,0xc0,0xfa,0x41,0x8e,0xbf,0x30,0x41,0x34,0x10,0xd8,0xc1,0x20,0x84,0xdc,0xc0,0x75,0xe3,0x6a,0xc1,0xc7,0xa4,0x28,0xc2,0xd1,0xbf,0x59,0xc2,0x89,0xc8,0x5b,0xc1,0xc1,0x1e,0x1c,0xc2,0xbe,0xbb,0x4d,0xc2,0x45,0x1,0xac,0x41,0xaa,0xf8,0x5f,0xc1,0xc5,0xd4,0x25,0x41,0x12,0x68,0xae,0x3f,0xfd,0xc8,0x1d,0x41,0x1f,0x2,0x68,0xc2,0xc6,0x7d,0x8d,0x41,0xf3,0x16,0x1e,0xc2,0xe4,0x86,0xe8,0x41,0xf,0x8f,0x97,0x41,0x7a,0xed,0xaf,0xc1,0x62,0x1d,0x64,0x41,0x97,0x38,0x10,0xc1,0x5a,0xf4,0x1e,0xc1,0xd2,0xb3,0xbf,0xc2,0xbd,0xbb,0x48,0x42,0x54,0xeb,0x12,0x41,0x64,0x3f,0x16,0xc2,0x6b,0x70,0xee,0x40,0x85,0xc8,0x94,0x41,0x4d,0x8a,0x4,0xc1,0xa6,0xd0,0xff,0x41,0xd7,0xbe,0x78,0x42,0xb8,0xef,0x99,0x41,0xac,0x1,0x61,0xc1,0x50,0xd8,0xe2,0xc1,0x20,0x4b,0x5,0x43,0x78,0x4b,0x2f,0x3f,0xa9,0xd,0x7b,0x42,0x9b,0x37,0x4e,0x42,0xc4,0xa1,0x2e,0xc2,0x18,0x88,0x80,0x42,0xa2,0xae,0x94,0x40,0xe0,0xaf,0xa4,0x41,0x9c,0xe3,0x9d,0x41,0x3d,0xc3,0x60,0x41,0xd6,0xa2,0x40,0x41,0x99,0x28,0x30,0xc1,0x3a,0x4e,0x8c,0xc1,0xcc,0x6,0x4b,0xc1,0xa,0x4c,0x23,0xc2,0xd4,0xcb,0x5,0xc2,0x3e,0x6a,0x16,0xc2,0x9c,0xdc,0x65,0xc0,0xc7,0x68,0xce,0x42,0xf5,0x52,0x98,0xc2,0x33,0xb,0x36,0x41,0x30,0x1a,0x89,0xc0,0xb5,0x44,0xdd,0x41,0x58,0x74,0x2,0xc0,0xae,0x54,0x5d,0xc2,0x71,0xc0,0xa1,0xc1,0xfa,0x89,0x62,0xc1,0x28,0x88,0x33,0xc2,0x9e,0x74,0xc5,0x41,0xf3,0x44,0x69,0xc2,0x9f,0x8a,0xc9,0x41,0xa4,0xe,0x24,0x42,0xa0,0x2,0x37,0xc2,0xb9,0x18,0x7,0xc2,0x4d,0x6b,0x3e,0xc0,0x43,0x31,0xf2,0xc1,0x71,0xb7,0x5f,0xc1,0x34,0x1e,0x61,0x41,0x23,0x3,0x47,0x42,0x43,0xb7,0xc9,0x40,0x4c,0x14,0x21,0x42,0x5a,0xa3,0xde,0x41,0x36,0xe0,0x3a,0xc2,0xb3,0xa4,0x60,0x42,0xf0,0xad,0x74,0xc0,0xf1,0xf2,0x3b,0xc2,0x83,0xd,0x64,0x41,0x24,0x74,0xa8,0xc1,0xc2,0x8c,0x8b,0xc2,0xf7,0xb4,0x7b,0x41,0x75,0x98,0x7f,0x42,0x82,0xc9,0x61,0x41,0x22,0x2a,0x20,0x42,0x6b,0xb0,0x58,0xc2,0xa,0xe9,0xd,0xc2,0xd6,0xf6,0xba,0xc1,0xa7,0x65,0xe3,0x42,0xa6,0x5f,0x9b,0xc2,0x6,0xd9,0x59,0xbf,0xbc,0xe2,0x18,0x42,0xe9,0x55,0x28,0x42,0x3b,0x1d,0x6c,0xc2,0x25,0xc6,0x11,0x42,0x46,0xb8,0xe2,0xc0,0x51,0x10,0x4c,0xc2,0x5a,0x65,0x5d,0x42,0xe0,0x99,0x24,0xc2,0xdb,0xa6,0x85,0xc1,0x6f,0xdd,0x93,0x42,0x44,0xe1,0x2a,0x42,0xa5,0x1f,0x2f,0xc2,0x38,0x99,0xe5,0xc1,0xc5,0x5,0x35,0x42,0xf4,0x1b,0x5c,0xc2,0xce,0x45,0xbe,0x41,0xc9,0x67,0xf7,0x41,0xf3,0xc1,0xbe,0x41,0x8,0xdc,0x15,0xc2,0x5d,0x21,0x5a,0xc2,0xc7,0xbc,0x73,0x41,0xa6,0x6,0xba,0x42,0x46,0xa9,0x85,0x41,0xd4,0x14,0xf1,0xc1,0xad,0xc6,0xf7,0xc0,0x56,0x5,0x9c,0xc1,0xc7,0x5e,0x19,0x41,0x2a,0xfe,0x6e,0x41,0xa5,0xce,0x25,0xc2,0x15,0xee,0x96,0xc1,0x35,0x2e,0x72,0x42,0xa4,0xf1,0xab,0xc1,0x7b,0x36,0x7e,0xc2,0x8,0xfe,0x15,0x42,0xed,0xd3,0x9d,0xc0,0xdc,0xd0,0x6,0xc2,0x68,0xe7,0x37,0xc2,0xe,0x28,0xab,0xc1,0xe1,0x8c,0x9a,0x41,0x98,0xe6,0xb7,0x41,0xed,0xc3,0xe5,0xc1,0xea,0x8f,0xfc,0xc0,0x9f,0x88,0x9,0x42,0xd1,0xb4,0x68,0xc2,0xfb,0xcf,0xc5,0xc1,0xd7,0xfa,0x31,0xc1,0xb6,0xb4,0x6f,0xc2,0x81,0x97,0xa3,0x41,0x24,0x31,0x2,0x42,0x2,0x38,0xe2,0x41,0xe1,0x8d,0xd6,0x41,0xe5,0xc6,0x8f,0x40,0x9c,0x56,0x18,0xc2,0x80,0x9,0xc5,0x3f,0xbc,0x94,0xc0,0x42,0x94,0x8,0x3,0x42,0x38,0x1c,0xd8,0x42,0xc1,0xa5,0x54,0xc2,0x6,0x88,0x33,0x42,0xcf,0xb4,0xb9,0xc1,0xd2,0x54,0xa,0x42,0xf6,0xc1,0x5,0x41,0x66,0x5d,0xb2,0x42,0xc,0xed,0xaa,0x42,0x38,0x89,0x1d,0x42,0x81,0x1f,0x9d,0x41,0xb5,0x54,0xbb,0xc1,0x52,0x38,0xd2,0x40,0xbe,0xe5,0xe1,0x40,0x67,0x1f,0xae,0xc2,0x8c,0xcb,0x5a,0x42,0xdd,0x21,0xb,0x42,0xc,0x24,0x2f,0xc2,0x12,0x72,0x73,0x40,0x67,0xa5,0x86,0x42,0xed,0x24,0x6c,0xc2,0x84,0xde,0x13,0x42,0xa,0xb,0x56,0xc2,0xfe,0xc1,0x35,0x42,0x45,0x1f,0x74,0x41,0xb0,0xc2,0x30,0xc2,0xb2,0x83,0x8e,0x41,0xc2,0x42,0x46,0x42,0x26,0x6e,0x90,0xc2,0x41,0x6,0xba,0xc1,0xbe,0x58,0x8f,0x42,0x35,0xe7,0x5a,0xc1,0x94,0x35,0xbf,0x41,0x4b,0xfc,0xb1,0xc2,0x7e,0x39,0xbd,0x42,0x94,0xf4,0x99,0x41,0xa5,0xbc,0x96,0xc1,0x5,0x8d,0x54,0x42,0x2d,0x40,0x6c,0xc0,0x7c,0x54,0xd,0x42,0x34,0xc3,0x7d,0x42,0x46,0xac,0xb2,0xc2,0xeb,0x4b,0xf3,0x41,0xed,0x1,0xb2,0x41,0x42,0xea,0x45,0xc2,0x57,0xa5,0x6a,0x41,0xf9,0x87,0xab,0xc2,0x22,0x5f,0xb1,0x42,0x29,0x42,0x6c,0xc2,0xf3,0x15,0x80,0xc2,0x8c,0xfe,0x2,0x40,0x48,0x7f,0x83,0x41,0x73,0xb0,0x17,0x42,0xec,0x81,0x65,0xc2,0xdd,0xc,0xb6,0x42,0x64,0x89,0x2a,0x42,0x9c,0xae,0x9c,0x42,0xa,0x2c,0x2,0xc2,0x8,0xfa,0x24,0xc2,0xfa,0x7d,0x3a,0xc2,0xca,0x8d,0xb4,0xc0,0x31,0x2,0x26,0x42,0x2e,0xa,0x3d,0x42,0x1f,0x9c,0x2b,0x42,0x2b,0x8,0x35,0x41,0x5c,0xc6,0xf,0xc1,0xf8,0x3b,0x18,0xc2,0x3b,0x13,0x5c,0x42,0x17,0x89,0x94,0xc1,0xeb,0x43,0xa8,0xc1,0x9c,0x7d,0x84,0xc2,0x71,0xf6,0xbe,0xc1,0x63,0x8d,0x8e,0xc2,0x32,0xad,0x7a,0x42,0xb2,0x5a,0x5c,0xbf,0xe4,0xb9,0xba,0xc1,0x7e,0x3b,0x49,0x41,0xa2,0x2c,0x4d,0xc2,0x46,0x68,0x28,0x42,0xe,0x4a,0x4d,0xc1,0xc0,0xd9,0xe5,0xc1,0xf9,0xd,0x14,0xc2,0xe8,0x7b,0x12,0x40,0x84,0x83,0x97,0xc1,0x58,0x13,0x12,0x42,0xd3,0x15,0x50,0xc2,0x6c,0x3c,0x18,0x42,0x9f,0xbd,0x2b,0x42,0x9,0x68,0xcf,0x3f,0x71,0xd8,0xaf,0xc1,0x8e,0x6,0x89,0xc2,0x46,0xc6,0x88,0x42,0xba,0xa8,0xba,0xc1,0x70,0x5a,0x87,0xbe,0x16,0x32,0xb7,0xc1,0x8e,0x3f,0x9a,0xc2,0xc6,0xff,0x84,0xc2,0x79,0xd6,0x28,0xc2,0x4,0x3f,0x7c,0x3e,0xee,0x54,0x93,0x40,0xea,0xa,0xa0,0x42,0x46,0x69,0x9d,0xc2,0x6c,0xb,0xcf,0x41,0x71,0x13,0x45,0x41,0x6d,0xdf,0xd,0x42,0xc,0x40,0xb0,0x41,0x8e,0xc1,0xff,0x42,0x91,0xf5,0xc1,0xc1,0x20,0x6c,0xa8,0x41,0xe2,0xc2,0x2a,0x42,0x11,0x1f,0x11,0xc2,0xa3,0x25,0x7e,0x42,0xd2,0x6a,0x2b,0xc2,0xb8,0x54,0xe1,0xc1,0xe2,0x4f,0x15,0x42,0x93,0xc7,0x5f,0x42,0xf6,0x34,0x4,0x42,0x9b,0x85,0x43,0xc1,0xe1,0xbd,0x6b,0xc2,0xb0,0x44,0x2c,0x42,0xf8,0x19,0x8,0x42,0xa4,0xe8,0x28,0x42,0x59,0xe7,0x64,0xc1,0xdc,0xbd,0x50,0x41,0x2a,0x7f,0x65,0x41,0xbe,0xc,0x9,0xc0,0x23,0x81,0x69,0xc2,0xd1,0x0,0xd,0x42,0x30,0xf8,0xaa,0xc1,0xf2,0xf4,0xc1,0x41,0xfb,0xd7,0xe8,0x41,0xe4,0xb8,0x68,0x41,0x6b,0x80,0x4e,0x41,0xac,0xdb,0x26,0xc2,0xf9,0xe7,0x9f,0x41,0x32,0xc,0x14,0x42,0x3c,0xb9,0x11,0xc1,0x84,0x6b,0x7f,0x42,0xcb,0x88,0x0,0x42,0xc8,0x84,0x78,0xc2,0x25,0x14,0xa8,0x41,0xfc,0x4d,0x57,0xc2,0x18,0xdb,0xfc,0xc0,0xe2,0xe6,0x9,0xc2,0x73,0x8a,0xb8,0x41,0x2d,0x80,0x8,0xc2,0x7a,0x11,0x6e,0xc0,0x83,0x42,0x98,0x42,0x69,0x2d,0x25,0xc2,0x8a,0xd9,0x91,0xc1,0x68,0x6e,0x1e,0xc1,0xa1,0xf2,0x9a,0xc0,0x83,0xa1,0x1f,0xc2,0x28,0xbc,0x5b,0xc2,0xb4,0x98,0xca,0xc1,0x65,0x7b,0x9,0x41,0x82,0x89,0xbf,0x3f,0x87,0xdf,0x31,0xc2,0x8f,0xcc,0xa4,0x41,0x27,0x54,0x9a,0xc0,0xe4,0xbe,0x46,0xc2,0xc2,0xa,0x10,0x41,0x60,0xa7,0xc7,0xc0,0x58,0xa1,0x3a,0xc2,0x62,0x50,0xb5,0x41,0x68,0x9f,0x43,0xc1,0x3e,0x6,0x9a,0xc2,0x96,0xfa,0x6,0x42,0x2c,0xe9,0xbc,0x40,0x5c,0xe7,0x2b,0xc2,0xee,0x1f,0xdd,0xc1,0x22,0xb4,0x27,0x41,0x74,0xd0,0x2,0x42,0x3b,0xec,0x7c,0xc2,0xce,0x27,0x16,0xc2,0xc8,0xbb,0x9c,0x42,0xa9,0x81,0x1f,0xc2,0x11,0xe8,0xa2,0xc1,0xb9,0xe8,0xd8,0xc0,0xc4,0xbb,0x59,0xc0,0x7a,0x2c,0xa3,0x41,0xb2,0x8a,0xa8,0xc1,0x55,0x38,0x2a,0xc2,0xe0,0xea,0x28,0x42,0xc2,0x40,0xd6,0xc0,0x6c,0x3c,0xd7,0x41,0xb0,0xc3,0x9c,0x40,0xca,0xf1,0xeb,0xc0,0xd6,0x19,0x50,0xc2,0x92,0x6e,0x7f,0xc1,0x8a,0x38,0x1a,0x42,0x7c,0x67,0x37,0x41,0x21,0xea,0xa0,0xc1,0x6c,0x8,0x20,0xc2,0x47,0xd0,0x46,0xc2,0x80,0x5c,0x91,0x3c,0xbf,0xca,0x6d,0x41,0x78,0x7,0x95,0x41,0x59,0xb,0x9e,0x41,0xd3,0x22,0xf,0x42,0x42,0x97,0x5,0xc2,0xd0,0x4,0x15,0x42,0xaf,0x5a,0x5b,0xc1,0x54,0x65,0x8,0xc1,0xa,0xf2,0xd6,0xc1,0x85,0x43,0x4a,0x42,0x6e,0x85,0x37,0xc2,0x92,0x51,0xcf,0xc1,0x1a,0xdd,0xab,0x3f,0x70,0x46,0x6d,0xc2,0xd2,0xce,0x2,0xc2,0xb6,0x7b,0xa7,0xbf,0x3d,0xf2,0x5c,0xc1,0x65,0x71,0xa0,0x41,0x46,0x2c,0xbc,0xc0,0x6d,0xe5,0x9,0xc2,0xbe,0x9a,0x6c,0xc1,0xfe,0xf7,0xb8,0xc1,0x16,0xd,0x5a,0x41,0x1b,0x39,0xc5,0x40,0xf5,0x1a,0x7d,0xc0,0x60,0x5b,0xd2,0xc1,0xd2,0x24,0x31,0x41,0x55,0x87,0xda,0x41,0x5,0xea,0x2e,0xc1,0xac,0xdf,0x53,0xbf,0x5e,0x76,0xfa,0xc0,0xb2,0x42,0x1b,0x41,0xad,0x50,0x8f,0x41,0x7e,0x2,0xa8,0x41,0xc5,0xd7,0xf7,0xc1,0xb0,0x65,0xf8,0x41,0xeb,0x3a,0x96,0xc0,0xba,0xa8,0x48,0xc2,0x38,0x39,0x25,0x3f,0x57,0x21,0x88,0xc2,0x5c,0x97,0x8b,0xc1,0x17,0xb5,0xff,0xbf,0x1f,0xe2,0xd1,0x41,0x19,0xba,0xde,0xc1,0xdd,0xbd,0xdd,0xc1,0x74,0xda,0xe0,0x41,0xd8,0x5c,0xef,0xc1,0x34,0x5d,0x2,0x42,0x96,0xbf,0x86,0xc1,0xca,0x7f,0xb1,0xc1,0x2c,0x98,0x1d,0xc1,0xfd,0xb9,0xa0,0x41,0xdc,0x18,0x8c,0xc0,0x35,0xa9,0x16,0xc2,0x21,0x34,0x14,0x41,0x46,0x65,0xe2,0xc1,0xbe,0x73,0x9b,0xc2,0x9a,0x87,0x55,0x41,0xf8,0x57,0x9b,0xc1,0xef,0xc,0x18,0x41,0x2,0xd3,0x9,0x41,0x7a,0x9a,0x4,0xc0,0x12,0xda,0x97,0x42,0xa2,0xa6,0x19,0xc2,0x7d,0xb4,0x15,0xc2,0xa,0x5d,0x54,0xc2,0xff,0x88,0x16,0x42,0xb8,0x58,0x9b,0xc0,0xe5,0x3f,0x68,0x41,0x5,0x95,0x4d,0xc2,0xdf,0xcb,0xd4,0xc1,0x58,0xe5,0x60,0x40,0xa5,0xa5,0x92,0xc2,0x7,0xda,0x45,0xc2,0x34,0xa5,0x7,0x41,0xe5,0x72,0x32,0x42,0xa8,0x56,0x39,0xc1,0x39,0x1b,0xa7,0xc1,0xc0,0xe6,0xd,0x3d,0x71,0x30,0x73,0xc1,0xb9,0xc7,0x99,0xc1,0x20,0x8c,0x54,0xc2,0xb8,0x63,0xe1,0x40,0x9e,0x97,0xe0,0x40,0xa2,0x98,0xcc,0xc0,0x9e,0x84,0xd,0x42,0x30,0xe8,0x25,0x40,0x86,0xb1,0xb9,0xc1,0x9e,0xf8,0xba,0xc1,0x20,0x19,0x91,0x41,0xd8,0xbe,0x6b,0x42,0x5d,0x59,0x7d,0x41,0x58,0x87,0xda,0xbf,0x70,0x71,0xcb,0xbf,0x54,0xf3,0x33,0xc2,0x32,0xba,0x0,0x41,0xda,0x5c,0x4e,0x42,0xfa,0x68,0xf4,0xc1,0x3f,0xbd,0x3b,0x42,0xe,0x43,0x7a,0x41,0x4d,0x9b,0x7b,0x41,0xe8,0xef,0x85,0x40,0xe0,0x73,0xd6,0xc1,0x3b,0xfd,0x69,0xc1,0xa3,0x38,0x22,0x42,0xfa,0xbc,0x8,0x42,0xf8,0x37,0xfb,0xc0,0xc,0x24,0xa8,0xc0,0x4a,0xbf,0x66,0x42,0x6b,0xca,0x4b,0xc2,0x4f,0xe3,0x0,0xc2,0xa4,0x57,0xcc,0x40,0x9d,0xc6,0xfa,0xc1,0x5,0x69,0x30,0x42,0x1e,0x20,0xb4,0x41,0xca,0x36,0x88,0xc1,0xba,0xfd,0x1b,0x40,0x66,0xc8,0xf5,0x41,0x13,0x74,0x5f,0x40,0x10,0x53,0xe3,0x41,0xeb,0x8c,0x21,0x41,0xe6,0x7a,0xb4,0xc0,0x24,0xda,0x20,0x42,0xbb,0x92,0x32,0xc2,0x30,0xc9,0x39,0x41,0xf7,0xad,0xa1,0x42,0xdd,0xb5,0xd3,0x41,0xdb,0x3d,0x1d,0xc2,0x25,0x27,0xc,0xc2,0x82,0xf9,0x3d,0xc2,0x67,0x78,0x67,0xc2,0x49,0xe0,0xb6,0x42,0x6a,0x1b,0xbe,0xc0,0x2c,0x29,0x4a,0xc2,0x42,0x30,0xa1,0x42,0xaf,0x66,0xd1,0xc0,0x94,0x8a,0xab,0xc2,0x23,0xfc,0x15,0xc2,0xec,0xd1,0x35,0xc2,0xd7,0xd7,0x8f,0x40,0xf,0x41,0xbe,0xc2,0xe4,0xa,0x91,0xc1,0x54,0x43,0x17,0xc2,0xeb,0x49,0x3e,0x42,0x70,0xa,0x54,0x42,0x74,0x38,0x20,0x40,0x19,0x8,0x1d,0x42,0x23,0xf7,0x95,0xc1,0xad,0x59,0xeb,0x41,0x9e,0x44,0xc,0xc1,0xbf,0xc4,0xc1,0xc1,0xf4,0x7f,0x5a,0x41,0x11,0x50,0x88,0x42,0x2f,0x62,0xa7,0xc0,0xf7,0x83,0xb8,0xc1,0xc7,0x78,0x16,0xc1,0x92,0x9b,0xad,0xc1,0x31,0x1e,0xc,0xc2,0xc,0x90,0xa2,0xc1,0x9d,0xbe,0x6a,0x42,0xbc,0xb4,0xcb,0x40,0xde,0x90,0xac,0xc2,0x49,0xec,0xd0,0xc1,0x81,0xb9,0x3,0x42,0xe2,0x5b,0x9f,0xc0,0x6d,0x32,0x7e,0x41,0x2a,0x74,0x81,0x42,0x7f,0x76,0xc9,0x41,0xa5,0xe4,0x97,0xc1,0x33,0xa0,0x4d,0xc2,0x93,0xbf,0x47,0x42,0x5c,0x6f,0x19,0xc2,0x66,0x16,0x52,0x42,0x55,0xc3,0x93,0xc2,0x7b,0x17,0xcb,0x41,0x66,0xad,0x3a,0xc1,0xad,0xb3,0x5c,0xc2,0x26,0xf2,0xc,0x42,0xc0,0x8e,0x0,0xc2,0xa8,0xa8,0x96,0xc1,0xf4,0xf3,0xec,0x41,0xff,0x81,0x83,0xc2,0x7b,0xea,0x74,0x42,0xd0,0x40,0x27,0xbd,0xed,0x83,0xa3,0xc2,0x23,0x80,0x4b,0xc2,0x38,0xc7,0x7c,0xc1,0x3c,0xe0,0xba,0x41,0xae,0xdf,0xf6,0xc0,0x59,0xa5,0xa,0x42,0xd8,0xed,0x8c,0xc1,0xb7,0xbd,0x78,0xc1,0x52,0xa8,0xc9,0x40,0xb,0xe0,0x1c,0x40,0xff,0xe2,0x6b,0x42,0x38,0x95,0xb3,0xc1,0x77,0xd6,0x1c,0xc1,0xb,0xf,0xb6,0x41,0x6b,0xec,0x2f,0x41,0xee,0x36,0x1a,0xc2,0x4e,0xbb,0xc6,0xc2,0xa4,0xb6,0x9e,0xc1,0x9f,0x17,0x94,0x40,0xa6,0x70,0xd4,0xc1,0x38,0x6f,0x6,0x42,0x99,0xbe,0xa2,0xc2,0xdc,0x7,0x7c,0xc1,0xc1,0xcc,0x25,0x42,0xd6,0x4c,0xa3,0xc2,0xa7,0x8d,0xe3,0x42,0x6b,0xeb,0x74,0xc2,0x45,0xaf,0x49,0x42,0xa4,0xa7,0x1f,0xc2,0xf5,0x45,0x2b,0x41,0x77,0x27,0x3c,0x42,0xc8,0xbd,0x91,0x42,0xba,0xc7,0xa,0xc3,0xf3,0xb3,0x9a,0x40,0x93,0x39,0x80,0xc0,0xa0,0x1b,0xb7,0xc1,0x50,0x54,0x17,0x42,0x6,0x5d,0xca,0x41,0x6e,0x73,0xee,0x41,0xc,0xe7,0xeb,0xc0,0x5f,0x5f,0x9d,0x42,0xa2,0xf7,0x3c,0x41,0xbd,0x44,0x74,0xc1,0x3d,0x1a,0x18,0x41,0xa1,0xd1,0xd3,0x41,0x90,0x13,0xbc,0xc2,0x1,0xf7,0x95,0x41,0x6,0xe1,0xcd,0xc2,0xea,0x75,0x5b,0x41,0x95,0x3f,0x52,0x42,0x8c,0xb7,0x8,0xc2,0x41,0x8c,0xef,0x41,0xf2,0x83,0xf1,0x41,0xc1,0x50,0xa9,0x42,0xa0,0xbf,0xfb,0x3f,0x4d,0xed,0x91,0x42,0xa4,0xc9,0x93,0xc2,0x1d,0x60,0xa2,0xc2,0x2a,0xa7,0x3b,0xc2,0xc3,0x2c,0x15,0x41,0x55,0x2f,0xc4,0xc0,0xe1,0xe5,0x3f,0x41,0xa3,0x3c,0xa0,0xc0,0xad,0xb3,0x7c,0x42,0x6,0xbe,0x3,0xc2,0xb9,0x30,0x0,0x42,0xd,0xa1,0x4,0xc2,0x5e,0xa2,0xef,0xc1,0x43,0xa,0x0,0x42,0x71,0xfb,0x28,0xc2,0xfb,0xc2,0xa4,0xc2,0x75,0x7b,0x95,0xc1,0xba,0xd9,0xb1,0x42,0x23,0xb3,0xdf,0x41,0xa8,0x32,0x48,0xc1,0x71,0xdd,0xbd,0x41,0xa0,0x3d,0x16,0x42,0xea,0x6,0xe7,0xc1,0x52,0x1,0xfe,0xc1,0x59,0x76,0xc9,0x42,0x55,0xfb,0x0,0xc3,0xec,0xa8,0x7c,0x41,0xe7,0x73,0xff,0x41,0x84,0x81,0xa5,0xc1,0xb4,0x3,0xa1,0xc1,0x9a,0xf8,0x44,0xc1,0xf4,0xfe,0x5,0xc2,0x6,0xa0,0xdd,0x41,0x33,0x52,0x29,0x41,0xf9,0xe6,0x87,0xc2,0x2c,0x10,0xd2,0xc1,0x5e,0xa0,0x36,0x42,0x3f,0xff,0xa0,0xc2,0xad,0x5c,0xb2,0x3f,0x6c,0x11,0x8a,0x41,0xba,0xdd,0x73,0x42,0x1f,0x6e,0x0,0xc2,0xec,0xab,0x8e,0xc1,0xe8,0xa4,0xc9,0xc1,0x56,0xce,0x9d,0xc1,0xbc,0xa6,0xb,0x42,0x4e,0x37,0x73,0x42,0xae,0x2f,0xf9,0x41,0x36,0xad,0xb9,0xc2,0xfe,0x44,0x3,0x42,0x12,0x56,0x8e,0xc2,0xed,0xf0,0x94,0xbf,0xe0,0x8f,0xb,0x40,0x55,0x3d,0x17,0x41,0x90,0xa5,0x91,0xc1,0x1e,0x75,0xaa,0x41,0x2c,0x62,0xea,0x41,0x10,0xee,0x6,0x42,0x4a,0x14,0x26,0xc1,0x58,0x57,0x13,0xc2,0x1b,0xb5,0x95,0xc1,0xc,0xe4,0x6c,0x42,0xc5,0x81,0x5c,0xc2,0x69,0x3b,0xb1,0x41,0x82,0xfc,0xda,0x41,0x2,0x69,0xe8,0x3f,0x48,0xc6,0x4d,0xc1,0x20,0xe4,0xc9,0x41,0x6c,0x1,0x1c,0x42,0xcd,0xd,0x54,0xc2,0x91,0x3b,0xb1,0x41,0x2c,0x72,0xb8,0xc0,0x36,0xac,0xb6,0xc1,0x6b,0xb3,0x9,0xc2,0xf0,0x1c,0x51,0x42,0x88,0x4f,0x3e,0xc2,0x91,0x74,0x40,0x42,0xac,0xbf,0x1,0xc2,0xc2,0xcc,0x22,0xc2,0x3b,0xb0,0x90,0x42,0xa1,0xf9,0x94,0xc1,0xad,0xf3,0xae,0x41,0x1c,0x91,0x95,0xc2,0x39,0xed,0x8b,0x42,0xc2,0xf5,0x9c,0xc1,0xa4,0xf7,0xe0,0x40,0xed,0x46,0x3,0x42,0x0,0xab,0x61,0xc1,0x38,0x90,0x5a,0x42,0xe5,0x7a,0xd0,0x41,0x5c,0xf8,0x3b,0x41,0xae,0xb9,0x99,0xc2,0x4e,0xff,0x84,0x42,0x48,0xd2,0x5,0x42,0xdc,0xa6,0x76,0xc2,0x79,0x7d,0x8f,0xc2,0xc5,0xe,0x40,0xc2,0x71,0xeb,0x26,0xc2,0x92,0x71,0x31,0x42,0xee,0xf8,0x14,0xc2,0x60,0xe7,0x77,0xc2,0x51,0xc8,0x36,0x42,0xc1,0xf2,0x5c,0xc2,0x31,0xc5,0x8c,0x41,0x7c,0x6e,0x51,0xbf,0xf3,0xa0,0x2a,0xc2,0xd2,0x62,0xc2,0xc1,0x70,0x70,0x79,0xc1,0xe3,0xd,0x59,0xc2,0xb8,0x55,0xde,0x41,0x2e,0x2c,0xad,0xbf,0x6d,0x79,0x36,0xc2,0xab,0xea,0xc4,0xc1,0x73,0xce,0xb0,0xc2,0xf9,0x6b,0x27,0xc2,0x32,0x13,0xee,0xc2,0xba,0xab,0x84,0x42,0xd9,0xd4,0x50,0x42,0x82,0xd2,0xa2,0x40,0x9e,0xd8,0xf2,0x41,0xdd,0x7f,0x2f,0xc1,0x64,0xb3,0x34,0x41,0x9e,0xca,0xdd,0xc0,0xdf,0x40,0x33,0xc2,0x3a,0xcd,0x43,0x42,0x86,0x66,0x20,0x42,0xe5,0xb0,0x3e,0xc2,0xc0,0xd5,0x5e,0xc1,0x3a,0x7f,0x44,0xc2,0x76,0xa5,0x1c,0x42,0x68,0xac,0x64,0x42,0x6c,0xde,0x8f,0xc1,0x5c,0xee,0xf5,0xc0,0x8d,0xe5,0xbb,0xc0,0xd4,0xa,0x2c,0x42,0x42,0x11,0xe4,0x42,0x35,0x17,0x52,0xc0,0x7d,0xd8,0xf8,0xc1,0x62,0xb4,0xea,0xc1,0xe2,0x57,0x4,0x42,0x74,0xc4,0x84,0xc2,0x3,0xf7,0xc4,0xc1,0x7e,0xfd,0x13,0xc1,0x88,0x15,0xd2,0xc1,0xa9,0x75,0xa7,0xc1,0x4,0x64,0xed,0x40,0x12,0x78,0x3e,0x42,0x54,0xf7,0xfd,0xc1,0xc5,0x2a,0xab,0xc1,0x40,0x9,0x3c,0xc0,0x7e,0xaa,0x99,0x42,0xd2,0x7,0x81,0xc2,0x3b,0x52,0xa1,0xc1,0x60,0x1d,0x58,0xc1,0x9c,0xe0,0xcc,0x41,0x59,0xc6,0xb0,0x42,0xc4,0xbf,0xeb,0x41,0xce,0xed,0x5b,0x41,0xb5,0xad,0x9f,0x41,0x35,0xed,0xbe,0xc1,0x44,0xf7,0x44,0xc2,0xef,0x53,0x3c,0x42,0x1a,0xef,0xc1,0x41,0x8b,0x6,0x68,0xc2,0x99,0x70,0x8b,0x42,0xe4,0x61,0xde,0x41,0x0,0xc1,0x30,0xc2,0x45,0x6d,0xc4,0x40,0xd3,0xda,0x2f,0x42,0x95,0x38,0x92,0xc1,0x9d,0xcf,0xae,0x41,0xea,0x2a,0x34,0x41,0x94,0xdd,0xbb,0x40,0x8e,0x5d,0xec,0x41,0x70,0x1e,0xa5,0x41,0x4e,0x30,0x5,0xc2,0x62,0x1e,0x45,0x42,0xbc,0xa6,0x95,0x42,0x7c,0x2a,0xb8,0xc1,0x6,0xda,0x83,0xc1,0x4c,0x8b,0x58,0xc2,0xcc,0xa6,0x9,0x42,0xdc,0xd5,0xa4,0x42,0xff,0x49,0x8c,0x40,0x3c,0xd0,0xcd,0xc1,0x7d,0x1a,0x1d,0xc2,0x15,0x1a,0x22,0xc1,0x98,0x47,0x8,0xc2,0xec,0x8a,0xdb,0x41,0x1,0x5a,0x16,0xc2,0x99,0xc3,0x49,0x42,0xb8,0xc0,0x76,0x42,0x43,0xca,0x9d,0x42,0x1a,0xcc,0x61,0x42,0x7f,0x42,0x70,0xc1,0x88,0xa1,0xb1,0xc1,0x5b,0x81,0xa2,0xc1,0x9c,0xb3,0x8c,0x40,0x4d,0x9e,0x8f,0x41,0x44,0x87,0x7d,0xc0,0x43,0x96,0x49,0x41,0x24,0x2e,0x1,0xc2,0xd6,0xf2,0xf2,0xc1,0x60,0xb,0x4a,0x42,0x19,0xe,0xd,0x42,0xa0,0x2c,0xc4,0x41,0x9d,0xb9,0xb0,0x41,0xc3,0x3e,0x3f,0x40,0x92,0x95,0xb,0x42,0x91,0x99,0x8c,0x42,0x6,0x17,0xa1,0x41,0xc1,0x64,0x82,0xc2,0xb8,0x54,0x18,0xc1,0x42,0xb2,0x32,0x41,0xc,0x9b,0x47,0xc2,0x4c,0xf7,0x63,0x42,0xd0,0x2c,0xdb,0xc1,0x94,0xd2,0x79,0xc0,0xd9,0x46,0x48,0x42,0x59,0xc5,0xa7,0xc2,0x7,0x87,0x9d,0xc1,0xaa,0xb6,0xf,0xc2,0xe4,0x14,0x31,0xc1,0x0,0x31,0x81,0x41,0x65,0x65,0x2e,0xc2,0x1f,0xc3,0x8d,0xc1,0xa0,0x28,0x37,0x42,0x2a,0x7a,0xbc,0x42,0x23,0xfe,0x79,0x42,0x3f,0x68,0xe4,0xc1,0xf1,0xdd,0x31,0x42,0xbe,0xbd,0x31,0x42,0x79,0xa2,0x30,0x41,0xa5,0x35,0x91,0xc2,0xdb,0x9f,0xa5,0x41,0x15,0xad,0x0,0x42,0x88,0x33,0x72,0xc2,0x35,0x30,0xd8,0x3f,0x7e,0x4b,0x26,0x41,0x37,0x12,0xe7,0xc1,0x9,0x3a,0xf8,0x41,0x8c,0xd1,0x8b,0xc1,0x66,0xc4,0x92,0xc2,0x72,0xa3,0x28,0xc2,0x68,0xd0,0x9a,0xc2,0x1e,0x47,0x55,0x42,0xbf,0xea,0xf2,0x41,0x27,0x71,0x13,0x42,0x96,0x9a,0xd6,0xc1,0xdf,0x7d,0x40,0x41,0xab,0xae,0xcb,0xc1,0xdc,0x26,0xd,0xc2,0xd1,0x3c,0x4d,0x42,0x24,0x63,0x9c,0x41,0x7c,0x8b,0xb,0x42,0xb,0xfe,0x7f,0xc1,0x57,0xe5,0x37,0xc2,0x37,0xc1,0x82,0xc2,0x24,0xec,0x7f,0xc1,0xe5,0xc,0x9b,0xc2,0x96,0x15,0x3b,0x41,0x5c,0x92,0x9,0x42,0xd2,0x18,0x4d,0xc2,0x7b,0x3,0xfd,0x41,0x1,0x1b,0xc3,0xc1,0xc7,0xdd,0x47,0xc1,0x3a,0xea,0x89,0xc1,0x6c,0xca,0x62,0xc1,0xbc,0xf8,0x16,0xc2,0x85,0xd9,0x93,0x41,0x1d,0xf0,0x22,0xc1,0xa0,0x28,0x31,0x40,0xe6,0x6,0x96,0x42,0x55,0xe0,0x8e,0x41,0xe9,0xd7,0x53,0xc2,0x66,0x2a,0x44,0xc2,0xfa,0xac,0xbd,0xc2,0x20,0x5c,0x52,0xc0,0xef,0x8e,0x99,0xc2,0x9c,0x32,0xf3,0x40,0xe2,0x3a,0x1f,0xc2,0xff,0xdc,0x9e,0x42,0x8d,0x54,0xcc,0x41,0x69,0xf7,0xd,0x42,0x82,0xe2,0xa7,0x40,0xa8,0x37,0x8f,0x41,0xab,0x1,0x88,0x41,0x40,0x91,0xb5,0xc1,0x20,0xbd,0x4,0xc1,0x6c,0xae,0x6a,0xc0,0xd5,0x57,0x1d,0xc2,0x0,0x40,0x21,0xc2,0xff,0xab,0x9e,0x41,0xe6,0x85,0x41,0xc2,0x7e,0xe9,0xc2,0xbf,0x1e,0xff,0x2e,0x41,0x18,0xa6,0x5d,0x42,0x32,0xb4,0x54,0x42,0x17,0xa2,0x15,0xc2,0xa2,0xc2,0x1,0xc2,0xc4,0x6f,0xcf,0x42,0x42,0x42,0x22,0xc2,0x5f,0x7,0xf9,0x41,0x6,0x61,0x70,0x42,0xaa,0xa3,0x90,0x42,0xdc,0x5a,0xcd,0x41,0x67,0x42,0x93,0x42,0x7f,0xbb,0x72,0x42,0x22,0x2f,0x1c,0x42,0xc2,0xf6,0x57,0xc2,0xb6,0x67,0xc9,0xc1,0xb3,0x70,0x21,0xc2,0xae,0x18,0xcb,0xc0,0xbb,0xac,0x83,0xc1,0x99,0x14,0xd9,0xc1,0x1e,0x73,0xc5,0xc1,0x88,0x4d,0x6e,0x42,0x88,0xb3,0xad,0xc2,0x8e,0xb2,0xd2,0x41,0x65,0x9a,0x1e,0x42,0x65,0xa0,0x8e,0xc2,0x85,0x70,0xa6,0x42,0x2d,0x8c,0xa2,0x42,0xd2,0x9,0x73,0xc1,0x44,0xd,0xf4,0xc0,0x27,0x15,0x80,0xc2,0x2d,0xb8,0x27,0x41,0x8a,0x60,0x56,0x41,0xf5,0x28,0x4c,0x41,0x73,0xd1,0x88,0xc2,0x1f,0x78,0x47,0x42,0x88,0x29,0x3f,0xc2,0xfa,0x91,0x79,0x42,0xd2,0x14,0xdd,0x41,0x94,0xca,0xfd,0xc1,0x5c,0x30,0x56,0xc0,0x4a,0x55,0xa9,0xc2,0x47,0xb3,0x84,0xc2,0x4a,0x17,0x32,0x42,0xee,0x9e,0xd0,0x41,0x23,0x73,0x9,0x40,0x6f,0x95,0xb6,0x41,0x76,0xd6,0xd1,0xc1,0xa2,0xf6,0x6c,0x42,0x5d,0xf9,0x60,0xc2,0xea,0xa9,0x68,0x42,0xf5,0xba,0x89,0x41,0xd2,0x60,0xc2,0x42,0x44,0x45,0x84,0x41,0xcc,0x42,0x4d,0x41,0xc,0xc2,0x76,0x42,0x2b,0x8,0xe,0x41,0xa4,0x19,0x91,0x41,0x2d,0x99,0x45,0xc1,0xd3,0x59,0x90,0x42,0xfe,0x9d,0x3e,0xc1,0xbc,0x4f,0xda,0x41,0xc7,0xa0,0x3b,0x42,0xca,0x41,0x4e,0x40,0x1f,0xad,0x6b,0x41,0x80,0x46,0x7f,0xc1,0x0,0xd6,0x2e,0x40,0x99,0x30,0x2a,0xc2,0x4a,0xef,0x83,0xc1,0xb6,0x6c,0x7e,0x42,0xba,0xc8,0x5e,0x41,0x52,0x27,0x7b,0xc1,0xe0,0x4c,0x71,0x41,0x8c,0x76,0x30,0x42,0xb0,0xf4,0xfa,0x41,0xcb,0xd7,0x88,0x42,0xf6,0x65,0x46,0xc1,0x6e,0x64,0x87,0x40,0xee,0x95,0xaf,0x40,0x51,0x78,0x1d,0x41,0xba,0x3f,0x8a,0xc2,0x88,0x99,0x9a,0x42,0x5c,0x3c,0x44,0xc2,0xab,0x37,0xf7,0x40,0xb,0x6,0x49,0x41,0x8e,0xd5,0x1a,0x42,0x36,0xee,0x0,0x41,0x85,0x7,0x52,0xc0,0x18,0xac,0x83,0xc1,0x4c,0x90,0x97,0x41,0xac,0xcf,0x90,0x40,0xfe,0xdd,0x63,0xc1,0xca,0x80,0x5b,0xc1,0x2c,0x91,0xa3,0x40,0xb0,0xf7,0x48,0xc0,0x79,0xda,0x2e,0x42,0x11,0xbb,0x14,0x42,0x55,0x80,0x69,0xc2,0x86,0xb4,0xe3,0xc1,0x2d,0xb5,0x98,0x3f,0x4b,0x9e,0xc1,0x41,0xab,0x1c,0x21,0x42,0xb8,0xff,0xfe,0x41,0xd4,0xec,0x44,0x41,0x7d,0x1,0x26,0x41,0x7e,0xad,0x79,0x40,0x90,0xf7,0x35,0xc0,0x77,0x39,0x80,0xc2,0x45,0x79,0x6c,0xc2,0x4b,0x54,0xc7,0x41,0x66,0xf0,0xbc,0x41,0xea,0x2f,0x2d,0x41,0x34,0x25,0xa3,0x42,0xf8,0xc3,0x15,0x42,0xb6,0x51,0xb1,0xc2,0x64,0xe0,0x33,0xc1,0xf8,0x29,0xab,0xc1,0xa6,0xd8,0x24,0xc2,0xbc,0xa,0x6d,0x42,0x1d,0x50,0xd1,0xc0,0x5f,0xa6,0x4b,0x42,0xab,0x2f,0x22,0xc0,0x8,0xd0,0xab,0xc0,0xa0,0x61,0x3b,0xc2,0xcb,0x3e,0xb5,0xc0,0x1f,0x2c,0xa7,0x41,0x3a,0x61,0x54,0x42,0xb,0x42,0xd8,0x41,0x6d,0xb7,0x69,0xc1,0xf1,0x49,0x6,0xc2,0x3b,0x1b,0xa4,0xc2,0xb3,0xae,0x87,0xc1,0x9b,0x18,0x42,0xc2,0xdc,0xe6,0x38,0x42,0xf0,0x78,0x42,0x40,0x2c,0xd,0x50,0xc2,0xac,0xd0,0x8d,0x42,0x43,0xbe,0x83,0xc2,0xfe,0xef,0x7e,0xc2,0x8d,0x30,0xb8,0x41,0xc8,0x2f,0x7b,0xc1,0x76,0x5a,0x5,0xc2,0x9a,0xd9,0xad,0xc1,0x8f,0xe8,0x63,0xc2,0x13,0x70,0x28,0xc1,0xb3,0x5a,0x79,0x42,0x0,0x17,0x9,0x42,0xc2,0x8c,0x71,0xc2,0x91,0x7b,0x1c,0x42,0xfe,0xc,0x82,0x42,0xa0,0x6f,0x39,0x41,0x2e,0xb6,0xd4,0xc0,0x3a,0x1,0xf6,0xc1,0x6b,0x1f,0x51,0x42,0xb7,0xe2,0x6a,0xc2,0x7e,0x7a,0x20,0xc2,0xf3,0x62,0x31,0xc2,0xc6,0x6b,0x2c,0xc1,0x97,0x84,0xab,0xc0,0x8e,0x39,0x86,0xc1,0xa8,0x29,0x1d,0xc2,0x8d,0x65,0x77,0xc2,0x4,0x17,0xe5,0xc2,0x38,0x36,0x8f,0x41,0xb0,0x85,0x21,0xc2,0xa6,0xe2,0x2e,0x42,0xa,0xb,0x43,0xc2,0xc,0x96,0xd1,0xc1,0xa0,0xb9,0xa1,0x40,0x72,0x78,0x9f,0xc1,0xe,0xed,0x50,0x42,0xda,0x44,0x1c,0xc2,0xa5,0xbf,0x8e,0xbf,0x7c,0x94,0x26,0xc2,0xd2,0xb9,0x4a,0xc2,0x45,0x92,0xa7,0xc1,0x3c,0xfe,0x80,0xc1,0x2c,0xbe,0xef,0xc1,0xcc,0xee,0x30,0x42,0x14,0x35,0xa4,0x41,0xe8,0x66,0x53,0xc2,0xe5,0x14,0x9d,0xc1,0xbc,0x29,0x12,0xc0,0xb1,0x99,0x8b,0xc2,0x79,0xa,0x96,0xc1,0x2c,0x3,0x8e,0x41,0x8e,0xb3,0x3e,0x41,0x7b,0xdc,0x4d,0x42,0x9a,0x42,0x79,0xc1,0x8d,0x45,0xce,0xc1,0xa2,0x5d,0x7d,0x42,0x5a,0xf6,0xd4,0xc1,0xa0,0x33,0x87,0xc2,0x2,0x7b,0x14,0xc1,0x73,0x22,0xa2,0xc1,0xcb,0x43,0xdf,0x41,0xa3,0x46,0x4c,0xc2,0x99,0x0,0xb7,0xc1,0x61,0xdc,0x43,0xc2,0x58,0x87,0x39,0x42,0xb6,0x5a,0x2b,0x42,0x97,0xdc,0xbb,0x41,0x99,0x4d,0xd4,0xc1,0x1c,0x68,0xf1,0x41,0x4d,0xbb,0x12,0xc2,0x87,0x1f,0x66,0xc1,0xa8,0x9e,0x19,0xbf,0x4,0xe2,0xff,0xc1,0xbd,0x3d,0x30,0xc1,0x6,0x31,0xee,0x40,0x58,0x57,0xa0,0x41,0x2b,0x2d,0x8e,0x41,0xfb,0xff,0x76,0xbf,0xb2,0xe4,0x60,0x41,0x32,0x6a,0x36,0x42,0x22,0xea,0x7,0xc0,0x65,0x5e,0x60,0xc1,0x14,0x3c,0x6,0xc2,0xe3,0x8c,0xa2,0x42,0x93,0x6d,0x63,0xc2,0x4f,0xc4,0x4a,0x41,0x1e,0x33,0x87,0x42,0xca,0x40,0xcb,0x41,0xc0,0x3f,0xf1,0x42,0x32,0x41,0xa7,0x41,0xab,0x90,0x82,0x42,0xc8,0xb9,0x6f,0x42,0xf9,0x16,0x3a,0xc2,0x87,0xc1,0x58,0xc2,0xcc,0x42,0x80,0x41,0xa6,0x33,0xae,0x40,0x68,0x2b,0xa6,0xc1,0x4a,0x51,0x52,0x42,0x48,0x4,0x73,0xc1,0x23,0x5d,0x25,0x40,0xf0,0x54,0x35,0xc1,0x78,0x3,0x1a,0xc1,0xc6,0x94,0x12,0x42,0xe,0xf1,0xc4,0xc0,0x51,0xd9,0x5,0x42,0xd1,0x3f,0xec,0x3f,0x43,0x66,0xcf,0x41,0xe5,0xef,0x51,0x42,0x43,0x59,0x9f,0xc1,0x99,0x66,0xdd,0xc0,0x8e,0x83,0xe5,0x3f,0x96,0x5e,0x3e,0xc2,0x1c,0xd1,0xe7,0xc2,0x7a,0x77,0xb0,0x41,0xf8,0x5e,0x7,0xc1,0xe4,0x96,0x2c,0xc2,0x2c,0xcf,0x60,0x42,0x8c,0x22,0x5,0x42,0x4e,0x2,0x4b,0x42,0x27,0xb,0x21,0x42,0x1b,0xd9,0xcd,0xc1,0xe5,0xf1,0xf9,0xc1,0x29,0x9f,0x9,0xc1,0xa,0xc5,0x24,0x42,0x69,0x9b,0x31,0x42,0xb5,0x3e,0x34,0xc2,0xf5,0xc1,0x7f,0xc1,0x42,0x9a,0x9d,0xc2,0x42,0xec,0x8,0xc1,0x62,0x11,0x96,0x42,0x70,0xb0,0xe6,0x41,0xe0,0xde,0x7f,0xc2,0xd0,0xac,0x7,0xc1,0xc8,0x67,0xfb,0x42,0x95,0x50,0x5a,0x42,0xfc,0xf7,0x97,0xc1,0xbd,0x11,0x31,0x41,0x64,0x7f,0x80,0x42,0xd,0x71,0x55,0x42,0xb,0x2f,0x8a,0xc2,0xa9,0x83,0xda,0x41,0x9a,0xb3,0xa5,0xc1,0xd7,0xa1,0xa1,0xc1,0xe,0x85,0xf9,0x41,0xa4,0xfc,0x42,0xc2,0xd2,0x36,0x54,0xc2,0x32,0x65,0x98,0x40,0x81,0x82,0x23,0x42,0x4f,0x6b,0xf9,0x41,0xf8,0x58,0x40,0xc2,0x6a,0x2d,0x1d,0xc1,0x4d,0x72,0xbf,0x40,0xa,0xf3,0x68,0x42,0x1,0x7,0x6b,0x42,0x6c,0x24,0x60,0xc2,0xbe,0x98,0x2b,0x41,0xfe,0x19,0x45,0xc2,0xa1,0xa4,0x2e,0xc2,0xf2,0xde,0x3b,0xc2,0xc9,0x90,0x8e,0xc0,0x8e,0xdd,0xc9,0xc1,0x82,0x2a,0x7e,0x41,0xe1,0x43,0xd2,0x41,0x63,0x68,0x2c,0xc1,0x57,0xa4,0x7d,0xc2,0x2,0x6a,0x8c,0x41,0xf8,0xa2,0x30,0xc2,0xe,0xb,0x84,0xc2,0xbe,0x8e,0x55,0x42,0x54,0x23,0x80,0xc2,0x54,0x73,0x72,0x41,0x5f,0x29,0xb3,0xc1,0x2,0x59,0xdd,0xc1,0x28,0xe8,0xe3,0x41,0xbf,0xa4,0x62,0xc1,0xe8,0x94,0x82,0xc1,0x7,0x28,0xb9,0x41,0x45,0xd8,0x9f,0x41,0x8d,0x5,0x5b,0xc2,0x3b,0xdc,0x3b,0x42,0x57,0x8a,0xd,0xc2,0xcd,0xd,0x73,0x42,0x58,0xe4,0x1c,0xc2,0x4a,0x19,0xb6,0x41,0xb7,0x61,0x31,0x42,0xbb,0x87,0xff,0xc1,0xe3,0xb0,0x67,0xc1,0xb,0xd,0xa3,0xc1,0x66,0xbb,0x35,0xc2,0x61,0xfb,0xed,0xc1,0x2b,0xe3,0xfd,0x41,0x52,0xe9,0xce,0x41,0x2f,0x3f,0xaf,0x41,0x5a,0x71,0x9a,0xc1,0x59,0x3c,0xf3,0x41,0xcc,0x9d,0x8,0xc2,0x7c,0xf,0xe,0xc2,0x69,0xd0,0xa5,0x42,0xc1,0x8e,0x19,0x42,0x80,0xd4,0x7,0x42,0x54,0xaf,0xe3,0xc1,0x80,0xad,0x59,0x41,0xaf,0x33,0x8a,0x42,0x7f,0xb0,0x5e,0x42,0x48,0xcf,0xfd,0xbf,0xe9,0x9d,0xd1,0xc1,0xc,0x41,0x9f,0x42,0x92,0x11,0xa0,0x41,0xc,0x11,0xd1,0xbf,0xb2,0xb2,0xc5,0x40,0xa7,0x1d,0x4d,0x41,0x6b,0xa2,0x11,0xc2,0x76,0xc,0x8d,0xc1,0xe8,0xe2,0xa8,0xc0,0x1e,0xbf,0xf1,0x41,0x3,0x47,0x55,0x42,0x4a,0x5e,0x8,0x42,0x2a,0x6e,0x60,0x42,0x21,0x2,0xbf,0xc1,0xd4,0xc,0xd0,0x41,0xb8,0xc1,0x2b,0xc0,0x28,0x3,0x15,0x42,0xbf,0x61,0xb1,0x42,0x5d,0xf2,0x4d,0xc1,0x29,0x45,0xb8,0xc1,0xda,0xfb,0x1c,0xc2,0xd8,0x76,0x75,0x40,0x38,0x90,0x44,0xc1,0x6c,0xc7,0xc3,0xc1,0x32,0x14,0x4a,0x42,0x39,0x99,0x48,0xc1,0xeb,0x43,0x6,0x42,0x48,0x6,0x47,0xc0,0xc7,0x30,0x4b,0xc2,0x57,0x85,0x26,0xc2,0xb6,0x86,0x97,0xc2,0xc9,0x62,0x61,0xc2,0x5c,0xc,0x48,0x40,0xda,0xf1,0x6d,0xc2,0xaf,0x28,0xcd,0xc1,0x9a,0x1,0x2b,0xc1,0xe,0xe9,0x13,0xc2,0x15,0x44,0x13,0x42,0x41,0xa4,0x82,0x42,0xde,0x94,0x3f,0x42,0x7a,0xe0,0xc2,0xc1,0xd3,0x2c,0x80,0xc2,0xbe,0xc6,0x7a,0xc1,0x6f,0xf1,0x67,0x41,0x1f,0x72,0x22,0x42,0xcc,0xc0,0x30,0x42,0x12,0x1a,0x35,0x42,0x7c,0xd6,0x60,0x40,0xf1,0x55,0xf9,0xc1,0x82,0x84,0x40,0x40,0xb4,0x4a,0x1a,0xc0,0xf8,0x26,0x8e,0xc2,0x56,0xcd,0xf8,0xbf,0x82,0xc0,0xf,0x41,0xf7,0xf3,0x9,0xc2,0xaf,0x77,0xb0,0x42,0x90,0xde,0xd0,0x42,0x8c,0xdb,0x5f,0xc2,0xe4,0xc2,0x36,0xc2,0x9a,0xb0,0x84,0x42,0xd9,0xb6,0xf2,0x41,0xc4,0x9f,0xe1,0xc1,0x5f,0x8a,0xf,0x42,0x21,0xd,0xfd,0xc1,0xe4,0xc8,0x50,0xc2,0xb0,0x7a,0x22,0xc2,0x56,0x6b,0x77,0xc1,0x69,0x31,0xa0,0xc1,0x1b,0x4b,0xf0,0x41,0xa9,0xd2,0x92,0xc1,0x78,0xf5,0x98,0x42,0x38,0xd8,0x1b,0xbf,0xc,0x37,0x75,0x3f,0x5f,0x92,0x39,0x41,0x18,0xe3,0x52,0xbf,0xdf,0xd2,0x9f,0x41,0x2d,0xfc,0x1d,0x41,0xb9,0xa1,0x95,0x42,0xd6,0xb0,0xe,0xc1,0xa7,0x15,0xb8,0xc2,0xe0,0x53,0x24,0x42,0x7e,0x50,0x6d,0xc2,0xa2,0xa5,0xf1,0xc1,0xe9,0x95,0xc,0x41,0x29,0x6c,0x97,0xc1,0x56,0x85,0xbd,0x41,0x8d,0x63,0x8f,0x41,0x4b,0x8e,0x31,0xc2,0xde,0x3d,0x84,0x41,0x94,0xa1,0xae,0x3f,0xb3,0xff,0x1b,0x41,0xfe,0x26,0x82,0xc2,0x2a,0xc1,0x9b,0xc2,0xfd,0x4a,0xb2,0x42,0x2d,0x6d,0x87,0x41,0xca,0x2c,0x54,0x41,0x56,0x24,0xf3,0x41,0x28,0xf2,0x82,0x42,0x7b,0xa0,0x1b,0x42,0x1c,0x60,0xda,0xc0,0xd4,0xf8,0x25,0xc2,0xb6,0x50,0x98,0xc1,0xf2,0xe3,0x88,0xc1,0x76,0xc1,0x96,0xc0,0xf0,0xf3,0xe6,0xc1,0x34,0xd,0xc,0xc2,0xa8,0xc2,0x17,0xc2,0x10,0xfa,0x40,0x42,0x4a,0x9a,0xdb,0x40,0x7f,0x71,0x7,0x42,0xa5,0x4f,0xaa,0xc0,0x88,0xac,0x33,0xc2,0x29,0x9f,0x9e,0xc0,0xbc,0x36,0xa7,0x41,0x37,0x3f,0x2f,0x42,0x16,0x5d,0xbe,0xc1,0xc0,0x2a,0x3,0xc0,0x66,0x80,0x85,0x40,0x29,0xce,0x90,0xc1,0xec,0x20,0x4a,0xc1,0xc2,0x29,0x4,0xc2,0x1c,0xa,0x3b,0xc2,0x79,0xe,0x3,0x40,0x4e,0xe2,0xa2,0xc1,0xa8,0x65,0x89,0xc2,0x32,0x54,0x43,0xc2,0xca,0x92,0x2c,0xc2,0xbc,0x68,0xab,0xc0,0xce,0xb9,0xd4,0xc1,0x91,0x11,0x9d,0x41,0x80,0x4d,0x22,0x41,0x88,0x55,0x2b,0x42,0x92,0x22,0xc9,0x40,0x9c,0x11,0xd9,0xc1,0x1,0xca,0xc4,0x42,0x94,0x44,0x6e,0xc1,0x8c,0x49,0x7a,0xc2,0xd9,0x27,0xcb,0xc1,0x1c,0xa5,0x60,0xc2,0x91,0xd4,0x47,0xc2,0xb1,0x83,0x88,0xc2,0x92,0x8b,0x4c,0x42,0xee,0x2c,0x7,0x41,0x42,0x7b,0x79,0x42,0x88,0x69,0xf,0x42,0xb1,0x54,0x57,0x42,0xa2,0xb9,0x4e,0xc2,0x7e,0xb7,0x9c,0xc1,0x85,0x39,0xba,0xc1,0x2,0xa,0x8c,0xc2,0xe2,0xf8,0x26,0xc2,0xa6,0xe7,0x8f,0x40,0xca,0x17,0xda,0x41,0x4,0x26,0x96,0x40,0x1d,0xa9,0xaa,0x41,0x72,0x9f,0x71,0xc1,0x80,0x6a,0xab,0xc1,0x77,0x11,0x4,0x42,0x78,0x4b,0x1a,0x42,0x0,0xb8,0xe6,0xc1,0x2b,0x8b,0x5,0x41,0x8c,0x17,0x68,0xc1,0x68,0x70,0xdc,0xc1,0x80,0x68,0x15,0xc2,0x62,0xd3,0xff,0x41,0x69,0x2b,0xc,0x42,0xa0,0xea,0x85,0xc0,0x56,0xc5,0xf,0x42,0xcc,0xc3,0x83,0xc0,0x60,0xd2,0xe2,0xc1,0xbb,0xc2,0x66,0x41,0x21,0xc8,0xfa,0xc1,0xaf,0x64,0x15,0x40,0x81,0xbc,0x2a,0xc2,0x5a,0x85,0x19,0x42,0x6d,0xae,0xa0,0xc2,0xf8,0x6d,0x46,0x42,0xc4,0x5d,0x1f,0xc2,0x48,0x98,0x6,0x42,0x24,0x52,0xc2,0x40,0xd5,0x7a,0x55,0xc2,0xa7,0xa5,0x81,0x42,0x76,0xde,0xc6,0x42,0x67,0x79,0x22,0xc2,0x73,0x9f,0x7c,0x42,0x5d,0xb,0x21,0xc2,0x8e,0xb2,0xaa,0x41,0x5c,0x74,0xa8,0xc1,0xb2,0x2b,0x84,0x42,0xae,0xbe,0x3f,0x42,0xa4,0x41,0x1,0x3f,0xd7,0x2e,0xbb,0x41,0xef,0xe7,0xc3,0x42,0xce,0xab,0xd,0x42,0x7c,0x50,0xcb,0x41,0x62,0x5e,0xb6,0x41,0xd4,0x51,0xb5,0xc1,0x3a,0x72,0xc,0xc2,0x8e,0x56,0x94,0x3f,0x70,0x64,0xe,0x42,0xa3,0x2a,0x26,0x42,0x5d,0xf6,0x32,0xc2,0x8b,0x1e,0xa2,0x3f,0xe0,0xe4,0x2b,0x41,0xd4,0x36,0xef,0x40,0xa2,0x6a,0x24,0xc0,0x7a,0x1a,0x9,0x42,0x50,0x6c,0xa1,0x42,0x71,0xe2,0x8d,0x41,0x3e,0x40,0xfc,0xc1,0xa9,0x86,0xd1,0x41,0xa7,0xad,0x46,0x42,0xb0,0xb0,0xf1,0x41,0x1b,0xd3,0xb9,0xc0,0x4d,0xeb,0xb7,0x40,0xbb,0x5d,0x10,0x42,0x76,0x64,0x72,0x41,0x88,0x46,0xd4,0xc0,0xfb,0xad,0xc0,0xbf,0xb8,0x65,0xd4,0x42,0xfa,0xf1,0x88,0x42,0xf6,0xb4,0x14,0x42,0x5c,0x4d,0x66,0x42,0x42,0x85,0x1f,0xc2,0xa3,0x36,0x28,0x41,0xcf,0xf4,0xcd,0xc1,0xb6,0x5,0xb1,0x41,0xc4,0xc0,0x8b,0x41,0x29,0x65,0x63,0xc2,0xdd,0x94,0x89,0x42,0x8e,0x8e,0xd3,0xc1,0x9e,0x3d,0xfa,0x41,0x1e,0xf7,0x5d,0x42,0x67,0x82,0x88,0xc2,0xb2,0xbf,0x86,0x42,0x91,0xdf,0xf9,0xbf,0x9a,0xa1,0x81,0xc1,0xb,0x6c,0x8c,0xc1,0x92,0xba,0x87,0xc2,0xd7,0x7f,0x62,0xc1,0xfd,0x9b,0xc4,0x41,0x69,0x2,0xfb,0xc1,0xe4,0x74,0x2a,0x42,0x55,0x35,0xce,0x41,0xef,0x23,0x36,0x41,0x5c,0x41,0xa8,0xc1,0x6,0x8f,0x36,0x41,0xf7,0x51,0x55,0xc1,0x7a,0xb8,0x1b,0x41,0xa1,0xb,0xe0,0x40,0xe,0x88,0x6a,0xc1,0x60,0xc,0x19,0xc2,0x46,0x8e,0xb6,0x41,0x81,0xed,0x41,0x41,0x39,0x12,0x45,0x42,0x96,0xc2,0x41,0x41,0x40,0xce,0x70,0xc2,0xd6,0xae,0xb9,0xc1,0x25,0xe7,0x17,0x42,0xf5,0x8d,0x68,0x41,0x10,0x29,0x43,0x42,0xfa,0x12,0xf6,0xc0,0xd9,0xca,0x9b,0xc1,0x72,0xb0,0xac,0x41,0x3f,0x6b,0xbf,0xc1,0x97,0x0,0xbd,0xc1,0x9f,0x49,0xba,0x41,0xd4,0x51,0x5e,0x41,0xdd,0xbe,0xd3,0xc1,0x7a,0xa2,0x28,0x42,0x2d,0xc6,0x2c,0x41,0x70,0x25,0x9b,0xc1,0x48,0x5d,0xe0,0x41,0xf2,0xc6,0xee,0xc1,0xf7,0x5d,0xe9,0x41,0x88,0x66,0x66,0x42,0x92,0xa2,0x1,0xc1,0x8d,0x75,0xe,0x42,0x60,0xac,0x93,0x41,0x68,0x1c,0x7b,0xc1,0x61,0xa9,0x4,0xc0,0xc3,0x80,0x13,0x41,0x6f,0x82,0x41,0x41,0xea,0x25,0xe5,0xc0,0x44,0xfe,0x3,0xc1,0x7c,0x60,0x74,0x41,0x52,0x76,0x1f,0xc2,0xf4,0xd7,0x65,0xc1,0x2,0x39,0xec,0x40,0xe3,0xeb,0xf5,0xc1,0x12,0x1d,0x88,0x3f,0x48,0x1d,0xaa,0x41,0xd0,0xb6,0xd1,0x41,0x50,0x64,0x9c,0xc1,0x8e,0x45,0x4a,0xc1,0x1b,0x17,0x97,0xc2,0x22,0x3f,0x63,0x42,0x1c,0x99,0xc6,0xc1,0x98,0xaf,0x4,0xc1,0xf2,0x15,0xf9,0xc1,0xe0,0x3c,0x44,0xc1,0x0,0x6,0xfa,0x41,0x25,0x3a,0x6e,0x41,0x38,0x36,0x3,0xc1,0xa,0x50,0x29,0xc1,0x8e,0xcb,0x54,0x41,0xd9,0x2f,0x92,0xc1,0xe2,0xe3,0x81,0x40,0x2b,0xe7,0x64,0x42,0xf4,0x9c,0x12,0xc2,0xc1,0xef,0x6a,0xc1,0x3f,0xa8,0x73,0xc1,0xe6,0x8a,0xa1,0xc1,0x39,0xe1,0xfc,0xc1,0xfe,0x7c,0x96,0xc1,0x4e,0x72,0xa1,0xc0,0x7a,0x1,0xed,0xc1,0x28,0xe6,0x6c,0x41,0x3e,0xde,0xcc,0xc1,0xb,0x2f,0xc8,0xc1,0xf8,0x28,0x91,0x3f,0x15,0xe3,0xb,0xc2,0x4d,0xe5,0x2d,0x42,0x32,0xb6,0x15,0x41,0xc2,0x83,0x7e,0xc2,0x9b,0x2b,0x9a,0xc1,0x60,0x74,0x68,0x42,0x8c,0x65,0xeb,0x40,0xca,0x35,0xe2,0xc1,0x8b,0xf9,0x53,0xc2,0x1d,0x54,0xf6,0xc0,0x29,0xbf,0x89,0xc0,0xa9,0xc,0x5b,0xc1,0x57,0x43,0x48,0x41,0x4,0x3e,0x22,0x41,0xa2,0xa1,0x6,0xc2,0x86,0xfc,0xcd,0xc1,0x1e,0x65,0x4c,0xc1,0x8c,0xca,0xb3,0xc2,0x5,0xfb,0xf,0x42,0xbb,0x27,0x32,0xc0,0x2a,0x3c,0xe1,0xc1,0x86,0xe8,0x19,0x41,0xd6,0x8a,0x5e,0x42,0x1b,0x4c,0x8c,0xc1,0xb0,0xfe,0xef,0xc0,0x31,0x0,0x62,0x41,0x8,0x39,0xc5,0x41,0xb5,0x5c,0x13,0xc2,0x2b,0x40,0xa3,0xc1,0x27,0xe5,0x8,0xc2,0x6c,0xf1,0x7,0x42,0x4,0xde,0x1b,0x42,0xcc,0xf0,0xc7,0xc1,0x8,0x91,0x50,0x42,0x42,0xa6,0x25,0x42,0x62,0xfd,0x84,0xc0,0x7f,0x31,0xf8,0xc1,0xf8,0xdc,0xa8,0x41,0x79,0xd5,0xfe,0xc1,0x1d,0x84,0x10,0xc1,0xf5,0x7,0x96,0xc1,0x2c,0x27,0x37,0xbf,0x16,0x58,0x4c,0xc2,0x82,0x5f,0xc5,0x40,0x95,0x40,0x48,0x41,0x43,0x82,0x57,0xc2,0xe7,0x2d,0x5a,0x41,0x6d,0xdc,0xe9,0xc0,0xe,0x27,0xc2,0xc1,0xe3,0x10,0xde,0x40,0x74,0xca,0x3,0xc1,0x36,0x96,0xa8,0x41,0x2a,0x87,0x1f,0x41,0xae,0x9e,0x80,0x41,0x7f,0x4e,0x3d,0xc2,0xfd,0x35,0xdf,0xc1,0xc,0xb6,0x19,0x42,0x4e,0xa,0xb9,0x40,0x33,0xab,0x44,0xc2,0x38,0xf7,0xab,0x42,0x2b,0xee,0x5d,0xc1,0x9,0xb7,0x6,0xc2,0x9a,0x44,0xa8,0xbf,0x1,0x45,0xc,0xc2,0xa3,0x26,0xcb,0x41,0x83,0x6c,0x98,0xc1,0x4,0x76,0x4a,0x42,0xa8,0x4c,0xdb,0xc1,0x1,0x28,0x73,0x42,0x63,0x1d,0x86,0x3e,0x4c,0x37,0x4a,0x41,0xf1,0xb8,0xe,0x42,0x3f,0x58,0xe,0xc2,0xa6,0x4b,0x6,0x42,0xa4,0x45,0xb4,0x42,0x3f,0xe5,0xf,0xc2,0x2,0x6f,0xa2,0xc1,0x52,0x5a,0x2d,0xc2,0x7c,0xea,0x62,0x42,0x5e,0x52,0x76,0xc2,0xe1,0x31,0x6a,0x42,0x31,0x29,0x5e,0xc2,0x98,0xc5,0xc6,0xbe,0xaf,0x98,0xa3,0x41,0xe7,0x6,0x9,0xc2,0x8c,0x7a,0xb6,0xc1,0x28,0xcf,0x40,0x41,0x1e,0xa6,0xaa,0xbf,0x21,0x53,0xdb,0x41,0x1b,0xd7,0x97,0xc0,0x59,0xb6,0xee,0x41,0x5c,0x86,0xc2,0x41,0xee,0xc9,0x73,0x41,0xa0,0x8a,0xac,0xc1,0xd5,0x16,0xf5,0xc0,0xdd,0x4a,0xac,0x41,0x7,0x2d,0x8c,0x41,0xe4,0xd5,0x77,0xc2,0x17,0x99,0x95,0xc0,0x78,0x9a,0x26,0xc2,0x82,0xe1,0x77,0x42,0x5c,0x28,0x9a,0xc2,0xd8,0xf7,0x4a,0xc1,0xc,0x32,0xf1,0xc1,0xe1,0xf,0xab,0x42,0xa4,0xe3,0x70,0x42,0xb3,0x12,0x81,0xc2,0x45,0xac,0xcf,0xc1,0x7c,0x28,0xcd,0xc1,0x38,0xe1,0x5d,0xc2,0xe9,0xb2,0xf,0xc2,0xa4,0x57,0x4a,0x41,0x30,0x6a,0x21,0xc2,0xdd,0x2a,0xc4,0x41,0xb6,0xaa,0x4e,0x42,0x36,0x66,0x18,0xc2,0x33,0x5c,0x6e,0x41,0x68,0xfb,0x7c,0xc0,0x81,0x77,0x80,0xc1,0xa1,0x25,0xf3,0xc1,0x45,0x5f,0x56,0x42,0xbc,0x3b,0x6,0xc1,0x3c,0xcb,0x98,0xc2,0x81,0xba,0xba,0x42,0x1,0x4e,0x8e,0x42,0xd5,0x21,0x9a,0xc2,0x73,0xd3,0xac,0xc1,0xce,0xcf,0x6e,0xc2,0xa0,0x7e,0x2f,0x41,0xe1,0x71,0x28,0xc0,0xd4,0xf4,0x95,0xc2,0x49,0x0,0x88,0x42,0x85,0x9b,0xd8,0xc0,0xba,0x93,0xd9,0x41,0x89,0x74,0xab,0x42,0x5,0x0,0xc7,0xc0,0xbf,0xa,0x43,0x42,0x78,0x47,0x24,0x42,0x8d,0xa0,0xd2,0x41,0x69,0x20,0xb2,0xc1,0xdd,0x7d,0x84,0xc0,0xd6,0x2a,0xae,0xc1,0x2d,0x87,0x63,0xc1,0xcf,0x53,0xb6,0xc1,0xc7,0x7a,0x2d,0xc1,0x29,0x4d,0x37,0x42,0x8a,0x8a,0x37,0x42,0xb6,0x41,0x43,0xc2,0x8d,0xcd,0x9f,0xc2,0xd9,0x98,0x57,0xc2,0x81,0x2e,0xa3,0x3f,0x44,0x18,0x37,0xc2,0x27,0xc4,0x8f,0xc2,0x1e,0x86,0xb3,0x3f,0xc4,0x78,0x48,0x42,0xa,0xc7,0x12,0x42,0xc9,0x5b,0xe6,0xc0,0xfc,0x1b,0xfd,0xc1,0x90,0x3,0x96,0xbe,0x15,0xc,0xda,0x41,0x44,0xea,0x96,0xc2,0x5e,0x9a,0x85,0x3f,0x3c,0x4e,0x4e,0x41,0x14,0x63,0xb0,0x41,0x9d,0xba,0xe,0xc2,0xb8,0x17,0xa,0xc1,0x5d,0x43,0xa7,0x41,0x88,0x83,0xac,0xc1,0x70,0x72,0x4,0x41,0xf,0x4,0x41,0x42,0x20,0x42,0x96,0x42,0x14,0x28,0xef,0xc1,0x79,0xe9,0x7,0x42,0x4e,0xca,0x72,0xc1,0xf7,0x62,0x75,0x42,0xc8,0xa3,0x79,0xc2,0x5f,0xf3,0x49,0xc2,0x75,0xcc,0x7a,0x42,0x2c,0x72,0x47,0x42,0xde,0x8c,0x16,0x42,0xe8,0xed,0x1b,0xc1,0xa1,0x74,0x17,0x40,0xba,0x73,0x86,0xc2,0x9c,0xc5,0xd6,0xc1,0xb4,0xc0,0x88,0x42,0x62,0x9c,0x33,0xc2,0xd4,0x3d,0x6b,0x42,0x45,0x23,0x2f,0xc1,0x18,0xf0,0xb0,0x41,0x70,0xb6,0xc,0xbe,0x2d,0x83,0x13,0xc2,0xce,0x5c,0x8b,0xc2,0xc7,0x69,0x35,0x42,0xf2,0x81,0x1b,0xc2,0x0,0x6c,0xa7,0xc1,0x7f,0xa7,0x21,0xc2,0x9,0xb4,0xd9,0xc1,0x26,0xb4,0x8e,0x42,0xf8,0xf7,0x51,0xc2,0x28,0xc2,0x20,0xc0,0xff,0x2f,0x52,0x42,0x80,0xee,0xfd,0x41,0xde,0x17,0x1f,0x42,0xe8,0xae,0xbf,0xc1,0xe8,0xaf,0x8e,0xc2,0x49,0x24,0x85,0x42,0xc2,0xd5,0xd9,0xc1,0x5,0x58,0xd2,0x40,0xfa,0xa1,0x6e,0x41,0xdc,0x3c,0x95,0xc1,0x55,0x28,0xd1,0xc2,0xe9,0x3a,0x11,0xc0,0xc9,0xcf,0xb9,0xc2,0xac,0x3b,0x25,0xc2,0xe0,0xcd,0xbc,0x42,0x46,0xef,0x5a,0xc1,0xfa,0x3c,0xbc,0x41,0x5a,0xd5,0x61,0xc2,0x6a,0xa2,0x33,0xc2,0x34,0xe0,0x76,0xc1,0x8b,0x28,0xb7,0xc1,0x7f,0x3d,0xe,0x42,0x74,0xa1,0xd0,0xc1,0x70,0x75,0x8a,0xc1,0x64,0x10,0xa3,0xc1,0x70,0x8f,0x34,0x42,0x44,0xe1,0x10,0xc2,0xd2,0xe4,0x4a,0xc1,0x19,0x49,0x2e,0xc2,0xb8,0x55,0x83,0x42,0x55,0x24,0x20,0xc2,0xa2,0x61,0x92,0x40,0xda,0x59,0x1,0xc2,0x45,0xb2,0x8c,0xc2,0x1a,0x9e,0x3a,0xc2,0xac,0xf8,0xa7,0x41,0xff,0xbe,0xbf,0xc0,0x97,0x2,0x69,0xc2,0xe4,0x1d,0x35,0x41,0x83,0xfb,0x4a,0x41,0x9e,0x50,0x12,0x42,0xfa,0x6b,0x33,0xc2,0xaa,0x63,0xd7,0xc1,0x64,0x5a,0x55,0x42,0xfc,0x23,0x88,0x42,0x68,0x90,0x81,0x40,0x44,0x94,0x70,0xc1,0x5c,0x3,0x32,0xc1,0x65,0x86,0x34,0xc2,0x6a,0xe8,0xc0,0x40,0xab,0xad,0x4,0xc2,0x2e,0xe,0x34,0xc1,0x17,0xf4,0x8d,0x41,0x9c,0x84,0xe0,0xc0,0x12,0xdf,0xf9,0x40,0xb4,0x9b,0xe3,0xbf,0x34,0x1,0x25,0xc2,0x3f,0x24,0xe5,0xc1,0x81,0xb7,0x7f,0x42,0xf8,0x89,0x3,0x41,0x79,0x76,0x7,0xc0,0x8,0x82,0x54,0xc1,0x5b,0x94,0x74,0x42,0x90,0xc6,0x75,0xc2,0x8a,0xa5,0xca,0x41,0x1f,0x65,0x93,0xc2,0x6b,0x80,0x6,0xc3,0x1b,0x6e,0x82,0x42,0x13,0x7,0xd0,0xc1,0x77,0xf1,0x4f,0xc1,0xef,0xe5,0x1e,0xc1,0xe7,0x17,0xa6,0x41,0x4f,0xd8,0x2a,0x42,0x4c,0x73,0xe,0x42,0x13,0x74,0xf,0x42,0x9,0xfc,0xb6,0x41,0xa9,0xb6,0xf7,0xc1,0xf7,0xd9,0x5a,0x42,0x3a,0x66,0x1d,0xc2,0xe4,0x3b,0xc6,0x41,0xde,0xad,0x95,0xc0,0x1,0x2a,0xf4,0xc1,0x32,0x18,0xa0,0xc1,0xd6,0xc,0x96,0x3f,0x53,0x76,0x9a,0xc2,0xab,0x15,0x65,0x42,0x74,0x1c,0x76,0x41,0x2c,0x35,0xee,0xc1,0x4a,0x80,0xd,0xc2,0xaa,0x15,0x52,0x42,0x5,0xcb,0x47,0x42,0x26,0x7d,0x2d,0x41,0xcd,0x6,0x16,0xc1,0x53,0xf0,0x9,0xc2,0xb0,0x30,0xc2,0x3e,0x67,0x11,0xbe,0xbf,0x4c,0x7b,0xc6,0xc2,0x7b,0xd9,0xad,0x42,0x14,0x64,0xc5,0x42,0x92,0x17,0xf9,0x41,0x89,0x5b,0x1d,0x42,0x8a,0x74,0xcd,0x41,0xc6,0x70,0x8b,0x41,0x75,0x71,0x86,0xc2,0x30,0xf6,0xc2,0xc1,0x68,0x62,0x70,0x42,0xf5,0x78,0xcf,0x40,0x91,0x13,0x36,0x42,0x5e,0x5f,0xee,0xc1,0x55,0xdf,0x8b,0xc2,0x70,0x71,0xc3,0x40,0x34,0xb6,0x8e,0xc2,0xc1,0x70,0xc3,0x41,0x5a,0x38,0x38,0x40,0x17,0x82,0x60,0xc0,0xe9,0x9a,0x8b,0xc0,0x6e,0x66,0xa3,0xc0,0xf1,0x9e,0x4c,0x41,0x59,0xa5,0x25,0x42,0xeb,0xc2,0xd,0x42,0x2a,0xe9,0x5b,0x41,0xcd,0x11,0xb2,0x41,0x28,0x8a,0xd2,0xc1,0x6c,0x5a,0xd7,0xc0,0x7d,0x91,0x39,0x42,0xe5,0xf6,0xd,0xc2,0x6e,0x81,0x4b,0xc1,0xf3,0xfa,0x70,0x41,0x4e,0xf8,0xd0,0xc1,0x1c,0xa3,0x2,0x40,0x9f,0x15,0xaf,0xc1,0x99,0x71,0xa7,0x42,0x6f,0xf9,0x68,0xc0,0x68,0x74,0x6c,0xc2,0x1a,0x72,0x1c,0x42,0x7e,0x5e,0xa9,0xc0,0x70,0xa5,0x80,0x42,0x88,0x7c,0x94,0x41,0x7f,0x4a,0x25,0xc1,0x3b,0x88,0x1c,0x41,0xab,0x53,0x5e,0x41,0x17,0x7e,0xae,0x42,0x5a,0xb5,0xa8,0xc2,0x68,0x8,0xcf,0x42,0x3b,0x98,0x8f,0xc2,0x3c,0xc5,0x93,0xc2,0xe2,0x75,0x84,0x42,0xad,0x62,0x8,0xc2,0x5c,0xf7,0x1,0x42,0x75,0xca,0x75,0x42,0xcb,0x42,0x34,0xc2,0x2a,0xa,0x66,0xc2,0xd1,0x56,0xfb,0x41,0x23,0x42,0x9d,0xc2,0x1a,0xcd,0x7f,0x41,0xa1,0xd9,0x30,0x41,0xfb,0xee,0x64,0xc2,0x70,0xe8,0x3,0xc1,0xfc,0x75,0x86,0x42,0x9e,0xae,0xcd,0xc1,0x1c,0xa4,0x34,0xc1,0x58,0x6,0x1f,0x42,0x7c,0x4e,0xa3,0x41,0x12,0xc4,0x91,0x42,0xa0,0x5c,0xa7,0xc0,0xe,0x1c,0x73,0x42,0x50,0xae,0x6a,0xc2,0xda,0x7f,0x77,0xc2,0x88,0xb1,0x2d,0xc0,0xa4,0x24,0x86,0x41,0x39,0x2d,0x81,0xc2,0x34,0x51,0x1e,0x42,0x3f,0xc8,0x1d,0x42,0xd0,0xea,0xb1,0xc1,0xba,0xaa,0x99,0x41,0x2e,0xf3,0x31,0x42,0xbc,0x4a,0x88,0xc2,0xa0,0x76,0x7,0xc2,0x8b,0x7,0xab,0x41,0x40,0xcb,0x4f,0xc1,0x88,0x4,0xe2,0x41,0x1b,0x95,0x3,0x42,0x83,0x5b,0x7d,0x42,0x54,0x79,0x54,0x41,0x61,0xd0,0x8e,0xc1,0x48,0xd8,0xa8,0xc2,0xd5,0xc5,0x8d,0x41,0xac,0xd4,0xe6,0x40,0xfa,0x3b,0xdb,0x41,0xe8,0x35,0xe1,0x3f,0x5e,0x5f,0x48,0x42,0xce,0x45,0x4a,0xc1,0x36,0x3b,0xa2,0xc1,0x33,0x5,0x2c,0x42,0x71,0x73,0x59,0xc2,0xfa,0xa,0x2e,0x41,0xe2,0xbb,0x99,0x41,0xec,0xeb,0x3a,0x40,0x25,0xec,0x40,0x42,0xd6,0x7,0x9a,0xc2,0x1b,0xf6,0xa6,0xc2,0x66,0x76,0x9e,0x42,0x8c,0xa,0x66,0xc2,0x6,0x7a,0x17,0x42,0x7b,0xf1,0x39,0xc2,0x6f,0x9,0xaa,0x41,0xd4,0xf2,0xd8,0x42,0x28,0x66,0xb6,0x41,0xd5,0x1f,0x9c,0x41,0x7d,0xa6,0x4d,0x42,0x0,0xf0,0x93,0x42,0xfe,0xf,0xe6,0x41,0x16,0xe0,0xa1,0x41,0x36,0xb9,0x2b,0x42,0xe,0x6,0xf0,0xc1,0xe9,0xcb,0x36,0x42,0xf2,0x70,0x15,0x41,0xdb,0xfe,0x22,0x42,0x93,0xb,0xec,0xc2,0x2,0x32,0x75,0xc1,0xad,0x83,0x63,0xc1,0x80,0x9,0x25,0x41,0x8b,0x73,0xae,0xc0,0x74,0xb0,0x68,0x42,0xda,0x1d,0x43,0xc1,0x26,0x4e,0xd1,0x42,0xfc,0x24,0x9,0xc1,0x52,0x23,0x53,0xc2,0x94,0xdb,0xe8,0xc1,0xea,0xd4,0xb3,0xc2,0x77,0x5f,0x96,0x42,0xa9,0x76,0x91,0x42,0xa,0x40,0xca,0x41,0xbb,0x18,0x16,0x42,0xbf,0x13,0xa2,0xc2,0x3a,0x1,0x2e,0x41,0x6c,0xa,0x16,0xc1,0x94,0x23,0x3b,0xc2,0x10,0x7f,0xc0,0x40,0x75,0x25,0x7a,0x42,0x32,0xa9,0x1b,0xc1,0xcf,0xcd,0x8d,0x42,0xc,0xc8,0x4b,0xc2,0xe,0x9b,0xed,0xc1,0x7a,0x37,0x71,0xc1,0x70,0xc4,0x3d,0xc2,0x4c,0xb4,0xa2,0xc1,0xeb,0xc,0x75,0x42,0xf4,0xda,0xbf,0x41,0xa3,0x12,0xe2,0xc0,0x2d,0x67,0x7c,0x42,0x8c,0x8,0x2b,0xc1,0xd0,0xdc,0x1,0xc1,0xef,0xdc,0xa1,0xc2,0xa8,0x21,0x50,0x42,0xb8,0x86,0x41,0x41,0xb9,0xef,0x4d,0x42,0x96,0x2e,0xf0,0x40,0xf0,0xde,0xa4,0xc0,0x20,0x66,0xf2,0xbd,0xab,0x56,0xdf,0xc0,0x59,0x5d,0x3,0x42,0x55,0xf7,0x5e,0xc1,0x1,0xef,0x3d,0x42,0x97,0x3f,0xc3,0x41,0x80,0x7a,0xed,0x3d,0xac,0x65,0x46,0xc1,0x72,0x22,0xa8,0x40,0xd5,0x34,0xf9,0x41,0x16,0xd0,0x26,0xc2,0x4a,0x42,0x23,0x42,0x95,0xfd,0xed,0x3f,0xa0,0xcd,0x5a,0x40,0xb9,0x42,0xcc,0xc0,0x69,0xa3,0x2d,0x42,0x24,0xe,0x8a,0xc1,0x40,0x8a,0xc,0x42,0xd0,0xa9,0x6a,0x42,0x3e,0x6,0x5,0x41,0x38,0xf6,0xc5,0x42,0x2c,0xa2,0x3e,0x3f,0x32,0xe4,0x30,0xc2,0xa6,0x62,0xd4,0x40,0x9c,0x3f,0x18,0xc0,0x30,0x58,0x9f,0x40,0x6e,0x6e,0xa5,0x40,0x20,0x1b,0x21,0x42,0xa7,0xce,0x39,0x42,0x6c,0xad,0xb7,0xc1,0xa8,0xf8,0x93,0x42,0x34,0x3d,0x96,0x42,0x18,0x38,0xad,0xc1,0x81,0x64,0x0,0xc1,0x20,0xe1,0xe8,0x3e,0xd4,0x15,0x50,0xbf,0xe9,0x23,0x91,0x42,0xb1,0x44,0xf0,0xc1,0x24,0xc3,0x85,0x42,0x98,0xa0,0xbf,0xc1,0x1b,0xf1,0x81,0x42,0x2,0x62,0x8b,0x42,0x52,0x6b,0x81,0x41,0xb0,0x3e,0x64,0xc2,0xb5,0xe0,0x8b,0xc2,0x71,0x4,0x6b,0x41,0x5d,0x7c,0xba,0x3f,0x74,0x77,0xd0,0x41,0x76,0xbb,0xdc,0x41,0x92,0xad,0x4b,0x42,0x7e,0x4d,0xbf,0xc1,0x43,0x1e,0x72,0xc1,0x44,0xbd,0x85,0xc2,0xa0,0xea,0xc0,0x3e,0x8b,0x93,0x57,0x42,0x96,0x4,0x70,0x42,0xac,0x27,0x6e,0x42,0xfb,0xe0,0xc,0x42,0x68,0xdc,0x5e,0x42,0xf7,0xc0,0x97,0xc2,0xd2,0x24,0xa7,0x41,0x7c,0xbf,0x34,0x41,0x35,0xf3,0x39,0xc1,0x58,0xd7,0x8c,0x42,0x26,0x9c,0x20,0xc2,0x98,0xa1,0x9f,0x41,0x96,0x64,0xcf,0x41,0xbc,0xbe,0xd5,0x41,0x3c,0x28,0x78,0xc1,0x76,0x73,0x62,0x41,0xa,0x16,0x2b,0x42,0x37,0x81,0x91,0x41,0xa1,0x99,0xf5,0x41,0xa6,0x92,0xff,0xc1,0x66,0x1f,0x91,0xc2,0x10,0xc4,0x9b,0xc1,0xa6,0x89,0x1d,0xc2,0x5d,0xb6,0x1c,0xc2,0xf2,0xf5,0x4,0x42,0xde,0x30,0x7d,0x40,0xac,0x63,0xac,0xc0,0x8a,0x6e,0x79,0x42,0xa1,0x1b,0x4c,0xc2,0x56,0xe9,0xbd,0xc1,0x22,0x77,0x83,0xc0,0x27,0x58,0x49,0xc2,0x1c,0x4b,0xdd,0xbf,0xc8,0x11,0x24,0x41,0x17,0x70,0x27,0xc2,0xd0,0x9c,0x15,0xc2,0xf0,0x67,0xa2,0x42,0x1e,0x8d,0x98,0x42,0x29,0xff,0x8e,0xc2,0xd0,0x31,0xab,0x42,0xb6,0x3b,0xfb,0x41,0xfb,0x53,0x90,0x41,0x3e,0x75,0x6c,0xc1,0x32,0x4,0x85,0xc2,0xb1,0xe6,0xd0,0x40,0x32,0x8c,0x11,0xc2,0xb6,0xbf,0x95,0x41,0xd4,0x21,0x11,0x42,0xc7,0x51,0xaa,0xc1,0xe9,0xf7,0xf7,0x41,0xf6,0x99,0x68,0x40,0xd1,0x8c,0xa5,0x42,0xc5,0x5b,0x6,0xc1,0x83,0x11,0x6a,0xc2,0xcd,0xf1,0xa3,0x42,0xd0,0x44,0x74,0xc0,0xb1,0x8f,0xf5,0x40,0xc5,0xc4,0xb9,0xc2,0x92,0x2c,0x52,0xbf,0x59,0x8c,0xfa,0xc0,0x3f,0x9f,0x9e,0xc1,0x55,0x24,0x68,0xc2,0x11,0x53,0x66,0x41,0x3a,0xe5,0x91,0xc2,0x4b,0xd1,0x9c,0xc0,0x8b,0xe1,0xf0,0xc2,0xc4,0x2e,0x49,0xc2,0x4,0x7d,0xd5,0x41,0x6e,0x9,0xc1,0x41,0x8d,0x3c,0x1,0x42,0x8a,0xd7,0x2,0x41,0xb8,0x5e,0x89,0xc1,0xd4,0x28,0x9b,0x41,0xb7,0x2a,0x89,0xc2,0x3c,0xcf,0xbe,0xc1,0x0,0xe8,0x4,0x42,0xf3,0x30,0xd2,0x41,0xc,0x42,0x71,0xc2,0x57,0xe9,0x4c,0xc2,0xa4,0xdb,0xb8,0x41,0x79,0xa9,0xb2,0xc2,0x13,0x3d,0xed,0xc1,0xf3,0xfa,0x97,0x41,0x56,0x39,0x73,0xc2,0x90,0x1c,0x18,0x42,0x41,0xf3,0xe4,0xc2,0x8c,0x3b,0xd5,0xc2,0x3e,0x75,0x1e,0xc1,0xb8,0xda,0x6f,0xc2,0x1c,0xad,0x99,0x41,0xc2,0x61,0x18,0x42,0x6,0x9f,0x94,0xc1,0xa2,0x45,0xab,0xc1,0x61,0xc5,0x31,0x42,0x94,0x83,0xdf,0xc1,0x71,0x7c,0x4a,0xc1,0x30,0xbd,0x83,0xc1,0xce,0xdd,0x7b,0x42,0x2e,0xdd,0x45,0xc2,0xa5,0x99,0xcc,0x42,0x56,0xa2,0xd1,0xc0,0xec,0xbf,0x82,0xc1,0x80,0x3,0x8f,0x40,0xd3,0xc,0x81,0xc1,0x16,0x5,0xe,0x42,0xac,0xa,0xa0,0x41,0xd1,0xc4,0x88,0xc2,0x9e,0x23,0xd7,0xc1,0xce,0xcf,0xd6,0x41,0xdd,0x8c,0x50,0x42,0x98,0x54,0x8e,0x40,0x77,0x6a,0xb2,0xc1,0xcd,0xf,0xc,0x42,0x27,0x67,0x7,0x42,0x23,0x4f,0x19,0xc2,0xdb,0xdb,0xb2,0x42,0x38,0x64,0x72,0xc2,0xd,0x8e,0xc1,0x41,0xc6,0xcc,0x5c,0x40,0xd9,0x2c,0x4c,0x42,0xb4,0xfb,0xea,0xc1,0x52,0x89,0x99,0xc1,0x28,0xf3,0x93,0xc1,0xd7,0xad,0xef,0xc1,0xed,0x90,0x49,0x42,0x58,0x63,0x36,0xc2,0x27,0x8e,0x10,0xc2,0x91,0x26,0x70,0xc2,0xad,0xe0,0xe,0xc1,0x22,0x40,0x98,0x40,0x89,0x4b,0xb4,0x42,0xe4,0x74,0xcb,0x40,0xe0,0x5f,0x33,0xc2,0xc6,0xeb,0x22,0xc2,0x9e,0x7b,0xa3,0xc1,0xf0,0xef,0xe0,0x40,0xdc,0xdc,0xdc,0x40,0x2d,0xd3,0x14,0x40,0xd5,0x99,0xb2,0x41,0x5a,0xc9,0xfc,0x41,0x30,0x25,0x75,0x41,0x3e,0x39,0x66,0xc1,0x21,0x9e,0x18,0x42,0x5,0xab,0xc9,0xc1,0x1,0x9c,0x59,0x41,0x77,0x4b,0x20,0xc2,0x0,0x8a,0x10,0x40,0x73,0xcc,0x83,0x41,0xe5,0x5a,0x43,0x42,0xf2,0x50,0xdf,0x40,0x9b,0xa9,0x53,0x42,0xac,0xca,0xb9,0x41,0xb6,0x9,0x2f,0x41,0x83,0x83,0x2f,0xc2,0x19,0x6a,0x81,0x41,0xb5,0x51,0x19,0xc2,0xe5,0xa6,0x96,0x42,0x1f,0xed,0xbf,0x42,0x13,0x1c,0x80,0x42,0xdc,0x77,0x79,0xc2,0xc1,0xd6,0xc6,0xc2,0x55,0x3e,0x3f,0x40,0x5a,0xe8,0xae,0x40,0xc5,0x75,0x52,0x42,0x7,0x33,0xc6,0xc0,0x9,0xdf,0xbe,0x41,0x6,0x65,0x1a,0xc2,0x38,0x56,0xe4,0x41,0x35,0x3b,0xa8,0x42,0xc2,0xce,0x89,0xc2,0x5,0x1f,0x97,0x41,0x78,0x41,0xab,0x41,0x16,0xd0,0x95,0x42,0x47,0xb9,0x1a,0xc2,0x28,0x2a,0xcf,0x41,0x20,0x8c,0x52,0xbe,0x2c,0x8a,0xec,0xc1,0x38,0x37,0xb0,0x42,0xc4,0xaa,0xa5,0xc2,0x37,0xd3,0x1d,0xc1,0x46,0xdb,0x39,0x42,0xd8,0x73,0xfd,0x41,0xe7,0xf3,0x63,0xc2,0x8c,0xd7,0x37,0x41,0x8a,0xae,0x46,0x42,0x61,0xdf,0x1a,0x41,0xb0,0x65,0xaf,0xc0,0x4d,0x79,0x2c,0x42,0xfe,0xde,0xa3,0x41,0x3a,0x1c,0x2e,0x3f,0x82,0xe4,0xe,0x42,0xb2,0xc5,0x3a,0x41,0xba,0x90,0x6a,0x41,0x90,0xb9,0x88,0x42,0xf2,0x55,0x53,0xc0,0xce,0xb3,0xb0,0x40,0x79,0x91,0xc7,0x41,0x8f,0x58,0xf,0xc2,0xf5,0xb3,0x80,0x42,0x4,0x18,0x4c,0x42,0x2f,0x62,0x79,0xc2,0xba,0xa7,0xbc,0x41,0x27,0xc5,0x5f,0xc2,0x5b,0x7b,0xe0,0x40,0x84,0x33,0xe5,0x41,0x5e,0xf3,0x8e,0xc1,0xc8,0x64,0x95,0x3e,0x18,0xd2,0xf4,0xc1,0xd7,0xfb,0xb6,0x41,0xf2,0x32,0x65,0x41,0x14,0xc3,0xf6,0xc1,0xa,0x1e,0x22,0xc2,0x6b,0xf7,0x64,0x42,0x3,0xa8,0xbe,0x41,0x53,0x17,0x2b,0x42,0x9f,0x95,0xa2,0x41,0xf8,0x89,0xd2,0xc0,0x2c,0x4c,0x62,0xc2,0x60,0x67,0x8d,0x41,0x76,0x69,0xec,0x41,0x92,0xde,0xae,0xc2,0xb4,0xf7,0x76,0xc0,0x48,0xfe,0xc6,0xbe,0x30,0xa3,0xc4,0xc2,0x11,0x85,0x6e,0x42,0xa9,0x3d,0x3a,0xc0,0xc5,0xef,0xb9,0x42,0x58,0xdc,0xbf,0x41,0x35,0x7b,0x88,0xc1,0x47,0x9d,0xae,0xc1,0x28,0x56,0x91,0xbf,0x8e,0xb7,0x94,0x42,0x44,0xe5,0x55,0xc2,0xba,0xdf,0x8a,0xc2,0x66,0x85,0xc8,0xc2,0xca,0x4b,0x9d,0x41,0xbb,0x90,0xf5,0xc1,0x20,0x97,0x69,0xc1,0x72,0x10,0xd,0xc1,0x84,0x83,0x79,0x42,0x7f,0x45,0xd7,0xc0,0x69,0xfb,0x8c,0x41,0x8d,0x85,0x86,0x42,0xe9,0xe9,0x70,0xc2,0xd9,0xd0,0x7b,0xc2,0x26,0x2,0xfc,0x41,0x51,0x35,0xab,0x40,0xef,0x7c,0xd5,0xc2,0xf9,0xa1,0x58,0x40,0xbb,0x58,0x1d,0x42,0x3a,0xd9,0x93,0x41,0x24,0x11,0xa9,0xc0,0xa,0x9f,0x8,0xc2,0x44,0xfd,0xc7,0xc1,0x4a,0x79,0x18,0xc2,0x59,0x11,0xb,0xc2,0x19,0xe6,0x57,0xc2,0x62,0xdd,0x8c,0xc1,0x81,0x2c,0x7b,0xc2,0x84,0xab,0x32,0x41,0x91,0xbf,0x17,0x41,0x4c,0x10,0x1e,0x42,0x6c,0xe,0x54,0xc2,0x94,0x7b,0xd5,0xc0,0x80,0x62,0x86,0xbd,0x10,0x20,0x20,0xc1,0x6b,0x1b,0xae,0xc0,0x82,0x1f,0x5c,0x40,0xed,0xa5,0x1,0x42,0x72,0x59,0x68,0x42,0x7e,0xb6,0x8e,0xc1,0xfc,0xbb,0x1f,0xc2,0x1e,0x2b,0x7a,0xc2,0x39,0x58,0x88,0xc1,0x43,0xeb,0xe0,0x41,0x7b,0xfa,0x4f,0xc2,0xb9,0xe,0x50,0x42,0x73,0x4d,0x25,0xc2,0x68,0x35,0xe5,0xbf,0x37,0xe,0xd0,0x41,0x64,0xf7,0x88,0xc0,0x69,0xd4,0x70,0x42,0xe6,0xb2,0x96,0x42,0x19,0xc3,0x89,0x42,0x3c,0x45,0xb4,0xc2,0x72,0x64,0xa6,0x42,0x16,0x3f,0x16,0x42,0x68,0x46,0x94,0x41,0x10,0x62,0x22,0x42,0xac,0xf3,0x6b,0x42,0x64,0xf2,0x32,0xc1,0x29,0x53,0x98,0x42,0xe7,0x41,0x16,0xc2,0xf9,0xbb,0x88,0xc2,0xae,0x52,0xa8,0xc1,0x9e,0x66,0x41,0xc2,0x3d,0x3e,0xa0,0xc1,0xdd,0x71,0xef,0x40,0xd0,0xf4,0xcf,0xc2,0x72,0x25,0x7f,0x41,0xd1,0xe1,0x3e,0x41,0x6e,0xdd,0xcf,0xc2,0x41,0x36,0x10,0xc2,0xf3,0x15,0xb0,0x42,0x6f,0x11,0x18,0x42,0xac,0xb5,0xba,0x40,0x57,0x4,0x1b,0x41,0xd8,0x7d,0xf7,0x41,0x9c,0xc6,0x8b,0x3f,0xa6,0xbc,0x3e,0xc2,0xaf,0x4f,0x69,0x41,0xca,0xc4,0xb0,0x41,0x8d,0x96,0x48,0x42,0xfe,0x5d,0xf,0x42,0x2d,0xde,0x2,0xc2,0xda,0x8,0x9a,0x41,0x63,0x59,0xcd,0xc0,0xd0,0x9,0xb6,0xc1,0xce,0x8c,0x98,0x41,0xde,0x1b,0x54,0xc2,0xc6,0x30,0xfd,0xc0,0xe2,0x8d,0xd4,0xc0,0xfd,0x53,0x94,0xc1,0x2c,0x1f,0x6e,0x40,0x9,0x1,0x99,0x42,0xf3,0x1e,0xca,0x42,0x2c,0x45,0xd8,0x41,0x2c,0xec,0x2c,0x42,0x78,0xab,0x15,0x41,0xeb,0xd1,0x13,0xc2,0x61,0x4e,0x85,0x42,0xe7,0xe1,0x95,0xc1,0x1e,0xf6,0x23,0x42,0xd5,0x1c,0xd7,0x42,0xb0,0x4b,0x92,0xc2,0xf0,0x30,0x76,0xc0,0x6,0xdf,0x28,0x41,0x0,0xb1,0xcc,0x41,0x8,0x97,0xd4,0x42,0xe2,0x5,0x5,0x42,0xbf,0x89,0xca,0xc1,0x94,0xc3,0xef,0xc1,0xd1,0xa0,0x4f,0xc1,0xf8,0xe2,0xcc,0x40,0x5a,0xa5,0x91,0x42,0xa9,0x96,0x32,0xc2,0xf0,0x87,0x55,0xbf,0xe4,0xb0,0xe3,0xc2,0x9e,0xf1,0x4e,0x42,0xe0,0xa4,0x92,0x41,0xa8,0xf1,0x18,0xc1,0x96,0x2e,0x42,0x41,0x8,0xa0,0xec,0xc1,0xac,0x53,0x97,0xc1,0x46,0x14,0xcc,0x40,0x56,0x31,0xad,0xc1,0x36,0xcc,0xd7,0xc1,0x38,0x77,0xd6,0xc1,0x55,0x73,0xa,0xc2,0x26,0x4f,0xe5,0xbf,0x4c,0xad,0x1f,0xc1,0x0,0x35,0x2,0x41,0x6,0xad,0xcb,0xc2,0x86,0xb1,0xe1,0x41,0x71,0x52,0xc,0xc2,0xf1,0xe5,0x84,0xc1,0xc6,0xc7,0x10,0x42,0xfb,0x93,0x3b,0x42,0x6c,0x1d,0x8d,0xc2,0x17,0xa0,0x45,0xc2,0x9a,0x5e,0x2d,0x42,0xd7,0xda,0x62,0xc2,0xb4,0x3c,0x19,0x41,0x53,0xf1,0xa9,0x41,0x5a,0xa4,0xbd,0x41,0x77,0x52,0x15,0xc3,0x94,0x55,0x4e,0x41,0x6c,0x4,0x98,0xc1,0xdc,0x3d,0x47,0xc1,0x13,0x82,0x2d,0xc2,0x20,0xf3,0xd8,0x41,0x9b,0xf1,0x8a,0x42,0x3d,0xc,0xe,0x42,0xd0,0x78,0x7e,0x42,0x6d,0x64,0x7f,0xc2,0xe,0x6d,0x22,0x42,0xa6,0x1d,0xc2,0xc2,0xff,0x6,0xff,0xc1,0x3b,0xbc,0x74,0x42,0x26,0x6e,0x6b,0x40,0xf5,0x90,0xb9,0x42,0xbc,0xb,0x9c,0xc2,0xe,0x8c,0x6,0x42,0x9b,0x98,0x2f,0x42,0x96,0xed,0xe5,0x41,0x75,0x4d,0xd,0xc2,0x7c,0x84,0x8f,0x41,0x1,0x86,0x7f,0x41,0x8e,0x3e,0x8b,0xc2,0x90,0x30,0x95,0x42,0x6b,0xa0,0x81,0xc2,0x2c,0x18,0x32,0x42,0xcb,0x5e,0xbf,0xc1,0x1e,0x2c,0x67,0x41,0x97,0xe,0xa9,0xc2,0xde,0x25,0x93,0xc0,0x13,0xda,0xc7,0x41,0xb3,0x17,0x74,0xc1,0x74,0xe1,0xbc,0x41,0xca,0x50,0xea,0x41,0x6a,0x9f,0xc1,0xc1,0x35,0xfe,0xe7,0x41,0x31,0xcc,0x1f,0x42,0x4d,0x8f,0xd0,0xc1,0xa2,0xc2,0x2d,0x42,0xa7,0x85,0x8e,0xc2,0x6a,0xdd,0x24,0xc2,0xbc,0x87,0xc,0x42,0xc0,0xbb,0xba,0xc0,0xd2,0xae,0xa8,0x40,0x77,0x9,0x77,0xc2,0xee,0x17,0x2d,0x40,0xce,0x1c,0x18,0x42,0x63,0x32,0x34,0xc1,0x44,0x97,0x8d,0xc2,0xdd,0xb8,0xed,0x42,0xa2,0x8f,0x18,0x41,0x46,0x23,0x4d,0x42,0x9,0x91,0x23,0x42,0x5b,0xe6,0x79,0xc0,0xe5,0x25,0x8,0x41,0x84,0xe7,0xb0,0x41,0x5c,0xff,0x2e,0x41,0xe8,0x55,0x1d,0xc1,0x53,0x5,0x76,0x41,0x78,0x68,0xa0,0x41,0xd8,0x85,0xa9,0xc1,0x9,0xa0,0xa5,0xc1,0x4,0xd9,0x2b,0xc2,0xca,0x93,0x31,0x42,0x81,0xe0,0x44,0xc1,0x29,0xf8,0x21,0x42,0x35,0x5e,0xfe,0x41,0x34,0xa2,0x4c,0xc2,0x4a,0x1a,0x2e,0xc1,0x83,0xb,0xa0,0x40,0x7f,0x7f,0x2d,0xc2,0x47,0xa5,0xe5,0xc1,0x4a,0xbe,0x1e,0x41,0xf,0x17,0x4,0x42,0x82,0x61,0x21,0x42,0x7e,0x19,0x6a,0xc1,0xe4,0x1a,0x26,0x42,0x12,0x16,0xdd,0xc1,0xce,0xf8,0x67,0x41,0x87,0x5b,0x23,0x42,0xa,0x23,0xeb,0xc1,0xbb,0x6b,0xcd,0xc1,0xb0,0xc,0xd9,0x41,0x37,0x39,0x79,0x42,0x78,0x92,0x40,0xc2,0xf6,0xc5,0xba,0x41,0x42,0x4a,0xa2,0x41,0x9d,0x1c,0x38,0x42,0xc0,0x30,0xfe,0x41,0x50,0x90,0x12,0xc2,0xbd,0x52,0xfb,0x40,0xba,0xfb,0xb6,0x41,0x2e,0x41,0x32,0x42,0x83,0x7c,0xd3,0xc1,0x54,0xdc,0x62,0x42,0x2e,0xb,0xad,0x40,0x90,0xc4,0x70,0x41,0xbe,0xa4,0x31,0x42,0xc4,0xc1,0x35,0x3d,0x72,0xe8,0x19,0x41,0x67,0xcb,0x57,0x40,0x7c,0x2a,0x3a,0x42,0x8b,0x31,0x90,0xc2,0x6c,0xc5,0x38,0x42,0x4b,0x4f,0xc7,0x41,0x45,0x1,0x16,0x42,0xf6,0xfc,0x48,0x42,0x20,0x2a,0x16,0x40,0x6b,0x71,0x91,0xc2,0xe7,0xa6,0x3d,0x42,0xab,0x27,0x91,0xc2,0x72,0xb5,0x18,0x42,0x5c,0x45,0xb1,0x40,0xf8,0x19,0x16,0xc1,0x93,0x47,0x63,0x41,0x29,0xf1,0xab,0xc2,0x6a,0x7,0x28,0x42,0x72,0x63,0xf2,0xc0,0xc5,0xbe,0x85,0xc2,0xdb,0xf2,0x8d,0xc1,0x81,0x85,0x72,0xc1,0x51,0x8,0x5e,0xc2,0x41,0xbe,0x64,0x42,0x7,0xd,0xb3,0x40,0xb2,0xef,0xdf,0x41,0x34,0x4d,0x88,0xc2,0xbd,0x1e,0xe2,0xc1,0x1b,0xd0,0x13,0x42,0x8c,0x7e,0x1,0xc2,0x1e,0x27,0xff,0x41,0xc7,0x69,0x5,0xc1,0x9c,0xf6,0xc7,0xc1,0xee,0x4f,0x6c,0xc1,0xad,0x68,0x48,0xc2,0xe,0x56,0x81,0xc0,0xd4,0x8e,0xb1,0xc1,0xa0,0x7f,0xe7,0xc2,0xc2,0x4,0x8c,0xc2,0x1a,0xf0,0xd5,0x40,0x32,0xad,0x3a,0xc2,0x1c,0xf1,0xfd,0x41,0x1a,0xc,0xf6,0xbf,0x9e,0x70,0x95,0xc0,0x34,0x8d,0x27,0xc1,0x4b,0x3e,0xb0,0xc1,0xca,0xf7,0xd6,0xc1,0x8a,0xf7,0x76,0xc2,0x45,0x20,0x4a,0x40,0xfc,0xed,0x81,0xc1,0x27,0xa8,0x71,0x41,0xc9,0xfe,0xf8,0xc0,0xb1,0x4a,0x47,0xc1,0xf2,0xe1,0x4b,0xc2,0xd8,0xe7,0xd6,0xc1,0x9f,0xd9,0xc5,0xc1,0x72,0x4,0x6a,0xc2,0x7c,0x92,0x5a,0xc2,0x5e,0xca,0x8c,0xc2,0x87,0x2a,0xe2,0xc0,0xe3,0x68,0x25,0x41,0xea,0x26,0x2d,0xc2,0xce,0xa,0x13,0x41,0x89,0x72,0x31,0x42,0x82,0xa4,0xeb,0xc0,0x64,0xc7,0x11,0xc0,0x15,0x6c,0x74,0x41,0x6e,0xfd,0x17,0xc2,0x37,0xf4,0x76,0xc0,0xa5,0x3c,0xa8,0xc0,0x2,0x7c,0x8b,0xc1,0xf8,0xa8,0xf8,0xc0,0x2,0xec,0x7d,0x41,0x95,0xb1,0xe5,0xc1,0x4e,0xbe,0x39,0xc2,0x95,0xa0,0xc8,0xc1,0x40,0x42,0x1c,0x41,0x5a,0x95,0x2,0xc1,0x6f,0x1f,0x55,0x42,0x2c,0x84,0x90,0xc1,0xff,0x82,0x3d,0x41,0x7e,0xb4,0x1d,0xc1,0x9a,0xf4,0x33,0x41,0x15,0xb2,0xd7,0xc1,0xfc,0xe3,0x45,0xc2,0xcd,0x5b,0x1,0xc1,0xab,0xc0,0x87,0xc1,0xb2,0x5f,0x63,0x41,0xaa,0x21,0x36,0x42,0xe7,0xcb,0x82,0x42,0x80,0x3,0x85,0xc1,0x10,0x8c,0x74,0x3d,0x48,0x7a,0x66,0x3f,0x1c,0x8a,0xde,0xc1,0x0,0xf1,0x57,0xc2,0xe2,0x57,0x51,0xc2,0xd4,0x50,0xb3,0xc2,0xf5,0x16,0x10,0xc2,0x99,0xf,0x17,0x42,0xe7,0xa3,0x12,0xc1,0x45,0x46,0xe9,0x41,0x86,0x9e,0xe,0xc1,0xdb,0x13,0x46,0xc1,0xb6,0xb9,0x7d,0x42,0xed,0xc4,0x7c,0x42,0xfc,0x43,0xf4,0x3f,0xb3,0x5,0x9c,0x41,0xc4,0x73,0x67,0x40,0xc6,0x8d,0x3b,0xbf,0x95,0x3c,0x2a,0x41,0x6,0x45,0xd4,0xc1,0x2a,0xc5,0xae,0x40,0xae,0x0,0x94,0x41,0x5c,0x2d,0x39,0x42,0xc7,0x3e,0x2f,0x42,0xcb,0xe4,0x2b,0xc1,0xe7,0x71,0x14,0x42,0x21,0xa5,0x3d,0xc1,0x14,0x4a,0x8d,0x40,0xbc,0x50,0x1d,0x42,0x67,0xf8,0x67,0xc1,0xe7,0x5,0x40,0x42,0x96,0xb0,0x68,0x42,0x2b,0xca,0x76,0xc2,0xc0,0xc6,0xb,0x3d,0x2a,0xaf,0x1e,0x41,0xd7,0xd7,0x20,0x42,0xa5,0xfb,0x32,0x42,0x4a,0xce,0xdc,0xc1,0xcd,0xb9,0x7c,0xc2,0x65,0x54,0x3b,0xc2,0x9b,0x1d,0xc4,0x41,0x2e,0xae,0x30,0x42,0x6a,0x99,0xd,0x42,0x8d,0x2b,0x15,0xc2,0x74,0x54,0x24,0xc2,0xba,0xe3,0xc5,0x41,0x12,0x7f,0xba,0xc1,0xe2,0xb6,0xd4,0x41,0x89,0x57,0xb9,0x41,0x38,0x2d,0x7,0x42,0xdb,0x81,0xea,0xc1,0x86,0xfd,0x75,0xc1,0xc8,0x5,0xa7,0xc1,0x39,0x4d,0x74,0xc1,0xf3,0x90,0x69,0xc2,0xbd,0xcb,0x9f,0xc0,0x59,0xc0,0xac,0xc1,0x40,0xc6,0x41,0x3f,0x61,0x58,0x86,0x42,0x9b,0xad,0x6,0x42,0xd0,0x81,0xed,0xc0,0xaa,0xf1,0x3,0xc1,0x5f,0x30,0xb9,0xc1,0xad,0x28,0x58,0xc2,0xb5,0xc7,0xee,0x41,0x40,0x71,0x6a,0xc1,0x97,0x83,0x6f,0x41,0x2,0xb6,0xff,0xc1,0x8c,0xc9,0xa9,0x41,0x29,0x58,0xf1,0xc1,0x6f,0xff,0x54,0xc2,0xe7,0x23,0xb9,0xc2,0x5d,0x39,0x2d,0x42,0x39,0xa0,0x5f,0x42,0x70,0x9c,0x81,0xc0,0x81,0xa7,0x98,0x42,0xb2,0x77,0xa5,0x41,0x8a,0x57,0xb6,0xc1,0xc9,0x3d,0xc,0xc2,0xa4,0xb2,0x89,0x41,0x8,0x2d,0x5f,0xc1,0x87,0x9b,0x53,0xc2,0x8b,0x54,0x20,0x41,0x29,0x94,0xe1,0x3f,0xa0,0xd0,0xc2,0x3d,0xa1,0x8b,0xa5,0x41,0x70,0x31,0xd6,0xbd,0x76,0xf5,0xb9,0x41,0x6a,0xaa,0xf,0x42,0xfa,0x50,0xa6,0x41,0x46,0xcb,0x1f,0x42,0x50,0x37,0xb9,0x41,0xda,0xc9,0x8b,0xc1,0x4e,0xda,0xad,0xc1,0x7d,0x36,0xb6,0x41,0x17,0x7c,0x94,0xc1,0xa1,0x72,0x7b,0x42,0x99,0x64,0x7c,0x42,0x80,0x65,0xe8,0x40,0x88,0x6a,0xcc,0xc1,0x6,0xdb,0xa7,0x41,0xb3,0xbb,0x89,0xc0,0x1,0xc7,0x8,0xc2,0x34,0x17,0xb6,0xc1,0x21,0xce,0xb0,0xc1,0x66,0x3f,0x69,0x41,0x7c,0x27,0xaf,0x41,0xca,0x8c,0x63,0xc2,0xe,0xab,0x35,0x41,0xd5,0x97,0x54,0x42,0x85,0x4e,0x79,0x42,0x4,0x6a,0x85,0xc1,0x8a,0xdf,0x27,0x41,0x3e,0xfb,0x90,0x42,0xf2,0xa8,0xcc,0x41,0x39,0x92,0x2e,0xc2,0x52,0x81,0x3b,0x42,0x40,0x9d,0x7a,0x40,0x76,0x70,0x26,0xc2,0xc0,0xc1,0xf4,0xbd,0x5d,0x35,0x6,0xc1,0x7b,0x33,0x84,0xc0,0x4c,0x14,0x6b,0xc1,0xa,0xc7,0x63,0x42,0xc0,0xe1,0x3,0xc1,0x36,0x78,0x94,0x41,0x6e,0x6d,0x91,0xc2,0x14,0x7,0x15,0x42,0x71,0xcf,0xf5,0xc1,0x4c,0xdc,0x6d,0x42,0x8e,0x5d,0x58,0xc2,0x17,0xea,0x6d,0xc2,0x13,0x9a,0x45,0x42,0xb6,0xd,0x65,0x41,0x3,0x7a,0x76,0xc1,0x6c,0xd,0xea,0xc1,0x76,0x57,0x4c,0xc0,0x1b,0x6e,0x87,0x42,0x32,0x80,0x47,0xc2,0xb2,0xe4,0x4,0xc1,0x4a,0x42,0xf7,0xc0,0xc1,0x46,0xe,0xc1,0xb9,0x4b,0xb1,0x42,0xcb,0x6c,0xd,0x42,0x70,0x70,0xc4,0xc2,0xe0,0x77,0x60,0xbf,0x26,0xcb,0xba,0xc1,0x30,0xf3,0x1b,0x41,0xa1,0xed,0x12,0x41,0xcb,0x7f,0x2b,0x42,0xf9,0xa,0x33,0x42,0xc0,0x78,0xeb,0x41,0x70,0x23,0xa,0x41,0x28,0x89,0xb6,0xc1,0x28,0xfd,0x28,0xbe,0xac,0xdc,0x9a,0xc1,0x2c,0x62,0xba,0xc2,0xbb,0x3,0x5d,0x42,0xa6,0x21,0x21,0xc3,0xcf,0x7,0x81,0xc2,0xaf,0x82,0xa7,0xc2,0x28,0xf,0xac,0x40,0x0,0x8c,0x14,0xc2,0x7c,0x41,0x5d,0x42,0x3b,0xe,0xb3,0x42,0x28,0x47,0x61,0x40,0x1,0xa5,0x25,0xc1,0xdf,0x38,0x8,0xc2,0x84,0x43,0xca,0x41,0x9,0x72,0x82,0xc2,0xdc,0x43,0xb0,0x42,0x28,0x3b,0x34,0xc2,0xc6,0x8c,0x3b,0x42,0xa,0x6f,0x6c,0x41,0xed,0x5f,0x8,0xc2,0xfc,0xaa,0x6f,0x40,0x84,0xb2,0xe9,0xc1,0xe,0x6e,0x81,0x42,0x2b,0xd,0x19,0x42,0xf4,0xe7,0xdb,0xc1,0xb9,0x4a,0x7f,0x41,0xc5,0x9b,0xe,0xc1,0x83,0x4f,0xb8,0xc1,0x72,0x92,0xc6,0xc2,0xf9,0x70,0xd7,0x41,0xd7,0x27,0x37,0x42,0x27,0x1e,0xae,0x42,0xe4,0x33,0x7f,0xc1,0x5,0x39,0x83,0x42,0xc,0x2,0xce,0x41,0x8f,0x4,0xa1,0x42,0x7d,0xf7,0xa,0xc2,0x8a,0x2f,0x60,0x41,0x16,0x44,0x45,0xc1,0x4d,0x1f,0x1b,0xc1,0xb0,0x38,0xa,0x42,0xcc,0x14,0xff,0xc1,0x3e,0xa2,0x37,0xc2,0x5e,0xe3,0xc8,0xc0,0x49,0xd4,0x88,0xc1,0x2,0x2f,0xf8,0x41,0x3e,0xa9,0xf8,0x41,0x3b,0x1,0xc5,0x41,0x8,0x74,0x7f,0xbf,0xb,0xde,0x5d,0xc2,0x2f,0x42,0x51,0x42,0xbe,0x4d,0x7,0x42,0x2c,0x59,0x90,0x42,0xc9,0x90,0x11,0xc2,0xcc,0x4e,0x22,0x42,0xf6,0x36,0x84,0xc2,0xb,0xf3,0xad,0xc2,0xc8,0x4,0xb0,0xc1,0x38,0x2c,0xd6,0xc1,0x4a,0x41,0x69,0xc2,0xd9,0x4b,0xb7,0x41,0x63,0x1f,0x20,0xc2,0xaa,0xca,0x3c,0x40,0xb1,0x5f,0xa7,0x42,0x4f,0x12,0xde,0xc1,0x10,0x8b,0x1b,0xc2,0x14,0x1f,0x24,0x41,0xab,0xb2,0x6e,0x42,0x1a,0x0,0x91,0x42,0xaa,0xe8,0x61,0xc2,0x42,0xa2,0x32,0xbf,0x5c,0x5c,0xba,0xc0,0xa5,0xe1,0xe9,0xc1,0xea,0xf1,0x1c,0xc2,0x26,0x7a,0xc7,0xc1,0xd3,0x77,0xde,0xbf,0xb1,0x3e,0x11,0x41,0x14,0xa3,0xcc,0x41,0x1f,0xfc,0xb5,0x42,0xb6,0x91,0xda,0x41,0xb9,0x8e,0x1c,0x42,0x1e,0x67,0x8a,0x42,0x7e,0xd9,0x71,0x42,0xff,0xfc,0x1d,0xc2,0x4f,0x2e,0x92,0xc2,0xd9,0x9,0x39,0xc1,0x72,0x35,0xd5,0xc2,0x39,0xd4,0x74,0x41,0x2c,0x26,0x80,0xbe,0x90,0xbc,0xf8,0xc1,0x60,0x19,0x6,0x42,0x4d,0xa7,0xad,0x41,0xcd,0x94,0x58,0x42,0x1f,0x6,0x93,0xc1,0xe6,0xc7,0x5e,0x41,0x1c,0xba,0xd1,0x40,0xc9,0x3e,0x6c,0x41,0x11,0x20,0x9a,0xc2,0x7b,0xef,0xa4,0x3f,0x3e,0xbe,0xad,0x41,0x38,0x6e,0x10,0x41,0x32,0x10,0x8c,0xc2,0x2a,0x6f,0xa0,0x42,0xa2,0x7d,0x5,0x43,0x23,0x3b,0x7a,0xc1,0x19,0xbb,0x14,0x41,0x8e,0x36,0x27,0x42,0xb3,0x10,0x97,0xc2,0xa8,0xf5,0x7b,0xc2,0x1f,0xed,0x16,0xc2,0xcc,0x76,0x8a,0xc2,0xd3,0x9,0xce,0x41,0xc4,0xeb,0x7d,0xc0,0x66,0x54,0x67,0xc2,0xe3,0x47,0xaf,0x41,0x56,0xea,0xb6,0xc1,0x12,0xb8,0xb3,0xc1,0x30,0xd4,0xbe,0x40,0x75,0x2f,0x49,0xc2,0xde,0xb6,0xc3,0xc2,0x96,0xa7,0xa1,0x42,0xc3,0xd4,0x83,0x42,0x25,0x24,0xcf,0xc1,0x6b,0x39,0xbf,0xc2,0x3c,0x6a,0x9d,0x41,0xc1,0x75,0x1c,0xc2,0x74,0xef,0x3a,0xc1,0x22,0x3d,0x6f,0x42,0x9c,0xd1,0xa8,0x42,0x3d,0x1f,0x8d,0xc0,0x48,0x2c,0x1c,0xc2,0x28,0x4d,0x2d,0xc2,0xdf,0x2f,0xad,0xc2,0x5c,0x81,0xfe,0x41,0x4f,0xfe,0x26,0x42,0x49,0xcd,0xd7,0x41,0x29,0x96,0x9b,0x40,0xed,0x1,0x4f,0xc1,0xc1,0x64,0x9d,0xc2,0xbc,0x8c,0x3c,0xc2,0xff,0xa4,0xd,0xc2,0xf8,0x1f,0x42,0x41,0x6e,0xdc,0x63,0xc2,0xe7,0xe6,0xe9,0xc1,0xf5,0xad,0x87,0xc2,0x17,0x17,0xf7,0x41,0x62,0x3d,0xca,0x41,0xad,0xb6,0xa7,0x41,0xab,0x8c,0xbf,0x41,0x75,0xcf,0x53,0xc2,0xd0,0x87,0x99,0xc1,0xa6,0xe0,0xdf,0xc1,0xef,0xa3,0x9b,0xc2,0x17,0xb5,0x47,0xc2,0xce,0x74,0xb4,0x41,0x58,0x7d,0x84,0x41,0xa6,0x6d,0x34,0x42,0xa7,0x34,0xb3,0xc2,0xab,0x54,0x37,0x42,0x7b,0x72,0xca,0x41,0xed,0x99,0x35,0xc1,0xe9,0xdd,0x2b,0x42,0x36,0xf,0x6,0x42,0xaf,0x58,0x5b,0xc2,0x38,0x69,0x3f,0xc2,0x11,0x45,0x49,0xc2,0x3e,0x6a,0x19,0xc2,0xaf,0x7e,0x48,0xc2,0x64,0x16,0x65,0x42,0xc7,0x85,0x3f,0xc2,0x97,0x20,0x53,0xc2,0x3b,0x96,0xc,0x41,0x76,0x81,0x84,0x42,0xff,0x38,0x58,0xc2,0x7d,0xa7,0x15,0x42,0x7e,0xa1,0x88,0x41,0x78,0x1,0x60,0xc2,0xe4,0x1b,0xa7,0xc2,0xe3,0x74,0x1e,0xc2,0xb1,0xc1,0x5f,0x42,0x15,0x7,0xb,0xc2,0x3e,0x28,0xfe,0x41,0x1c,0xa4,0xb0,0xc2,0xf3,0xdb,0x3b,0xc1,0xa0,0xbd,0xa,0xc2,0x2d,0x2e,0x82,0x41,0x2,0xc8,0x59,0x41,0xb9,0x7e,0xe6,0xc1,0x25,0xd0,0x27,0x42,0x93,0x13,0x4b,0x42,0x64,0x41,0xfa,0x41,0xd8,0xa1,0xc,0xc2,0xb1,0x73,0x42,0xc1,0xf0,0x49,0x54,0xc0,0x97,0x2e,0x4,0x42,0x55,0x7b,0x8f,0x42,0xd2,0x67,0xc4,0x41,0x33,0xeb,0xfb,0x41,0xae,0x3b,0xa2,0xc2,0x23,0xf6,0x4e,0x41,0x3e,0x7f,0x5,0x41,0x6a,0xfa,0xaa,0xc0,0x8c,0x7d,0xc3,0x41,0x60,0xd6,0x68,0x42,0xd7,0x81,0x86,0xc1,0xd9,0x78,0xd1,0xc1,0x7c,0x9,0x3b,0xbf,0x66,0xf6,0x51,0xc2,0x9a,0x37,0xf5,0x40,0x92,0xd8,0xa6,0x42,0x5c,0xbf,0x0,0x41,0xa4,0xed,0x50,0x41,0x7a,0x6e,0x3a,0x41,0xf1,0x4a,0x9e,0x40,0xe4,0x22,0xfe,0x41,0xaa,0x52,0xa0,0x42,0x6b,0x11,0xa7,0xc1,0xe5,0x9a,0xa3,0x41,0x86,0x5a,0x10,0xc1,0x68,0xbd,0x27,0x42,0xf0,0x46,0x3b,0xc2,0x3b,0xe3,0x39,0x41,0xb6,0xb0,0x1b,0x41,0x3c,0xbb,0x3d,0x41,0xd0,0xaa,0xda,0xc1,0xef,0xb2,0x86,0xc2,0xbf,0x47,0x60,0x42,0xba,0x82,0x68,0x40,0x1,0x5a,0x97,0x42,0xf2,0x2a,0x33,0x42,0x68,0x59,0xd4,0xc2,0x9b,0x4a,0xf2,0x41,0x6b,0x5,0x19,0x42,0x74,0x35,0x4f,0xc1,0x29,0x47,0xa8,0x41,0x74,0x76,0xf9,0xc0,0xb4,0xf,0xa5,0xc1,0x2f,0xcd,0x21,0xc2,0x5c,0x61,0xa9,0x42,0xa7,0xb3,0x2f,0x42,0x1e,0x66,0x52,0xc2,0xa6,0x13,0x93,0x42,0x58,0x14,0xa6,0x41,0x38,0x58,0xa,0x42,0xa2,0xd7,0xdf,0xc0,0x26,0x37,0x82,0xc2,0x30,0x68,0xfc,0x41,0x64,0xf1,0x23,0x42,0x71,0x2,0x3e,0x42,0x26,0x96,0xe1,0x40,0x33,0xb3,0x5f,0xc2,0x9b,0xde,0xf7,0x42,0x8,0x16,0xd3,0xc1,0x40,0x36,0xbf,0x41,0xf4,0xc9,0x2a,0x42,0x34,0x2e,0x4c,0xc2,0x94,0xda,0x4e,0x42,0x90,0xa0,0xe0,0x40,0x10,0x98,0xd,0xc1,0xc4,0x29,0x96,0xc1,0x3d,0x95,0x24,0xc2,0x9d,0x9f,0x6,0x42,0xc4,0xda,0x11,0xc1,0x20,0x9d,0x3,0x3e,0x84,0xcd,0x78,0xc1,0x70,0x93,0x31,0xc1,0x67,0x6c,0xd9,0xc2,0x20,0xe6,0xda,0xc1,0x8e,0x1e,0x8f,0xc2,0x50,0xae,0xa9,0x41,0x89,0xb,0xed,0x3f,0x70,0xfb,0x68,0xbd,0x92,0xa8,0x9f,0x40,0xbc,0x8c,0x68,0xc1,0xd,0x5a,0xaf,0x3f,0xad,0x62,0xf6,0xc1,0x68,0x47,0xea,0x3e,0xb1,0x35,0xf6,0x41,0x6d,0x5d,0xe5,0x41,0x47,0xfb,0x3e,0xc2,0x9a,0x64,0x5d,0xc2,0xdc,0xe2,0x38,0xc1,0x5c,0xe3,0x81,0xc1,0x4e,0x34,0x19,0x42,0xd,0x7f,0x92,0x42,0x1,0xa1,0x77,0x42,0x5c,0x4a,0x3a,0xc1,0xb7,0xc8,0xe6,0x41,0x9e,0x8e,0x33,0xc2,0x45,0x8e,0x2,0x41,0x18,0xc,0x10,0xc2,0x73,0x75,0x15,0x42,0x6,0x69,0x9e,0x42,0x38,0x77,0xc0,0xc0,0xa6,0x5d,0x9e,0x41,0xa,0x2e,0x26,0x42,0x7,0x38,0x79,0xc1,0x9a,0xa,0x78,0xc2,0x0,0x89,0x4b,0xbc,0xa6,0x1d,0xbb,0x41,0x4,0x83,0x4,0xc2,0x6f,0xde,0xaf,0x42,0x29,0x26,0xd6,0xc1,0xb1,0xad,0x7a,0xc1,0xff,0x89,0x92,0xc2,0x4f,0x14,0xb0,0x41,0xe9,0xed,0xa8,0xc2,0x20,0x30,0x93,0x42,0xd6,0xfc,0x74,0x42,0xb3,0x11,0x1d,0x41,0xdb,0x7f,0xc3,0x40,0xec,0x78,0x88,0x41,0xf4,0xac,0xb6,0x41,0xf0,0xd6,0xce,0xc1,0x3b,0xbd,0x49,0xc2,0x82,0xd7,0x35,0x41,0x71,0x70,0x88,0xc1,0x56,0xaa,0xc1,0xc1,0x1d,0xf2,0x48,0xc2,0x86,0xc9,0xaf,0xc2,0x92,0x39,0x91,0xc1,0x6,0xfc,0x1e,0x41,0x9e,0x41,0x8b,0xc2,0x50,0xd2,0x11,0x42,0xf6,0x78,0x44,0xc2,0x84,0xc0,0xbc,0x40,0x8c,0xcf,0x86,0x42,0xe2,0xf4,0x79,0xc2,0x63,0x50,0x18,0x42,0x88,0xb6,0xce,0xbf,0xb7,0x95,0x2b,0x40,0x5e,0x18,0xbf,0x41,0x49,0x52,0xcb,0xc1,0x22,0xbc,0x41,0xc2,0xb5,0x19,0x9e,0xc1,0xe9,0x2f,0x91,0x41,0x8e,0xb2,0x51,0x42,0xec,0xa7,0x46,0x40,0x10,0xf0,0x6d,0x41,0x57,0x86,0x83,0x42,0xbe,0xf,0x5a,0x42,0xf5,0xa8,0x58,0x41,0x82,0xae,0xc2,0xc1,0x26,0x9a,0x5c,0xc1,0xde,0xc,0x7c,0x40,0x74,0xbe,0x3,0x42,0x11,0x2d,0x2c,0x42,0xa7,0xd6,0x39,0x40,0x6c,0x75,0x5a,0xbf,0x94,0xcd,0xa2,0xc1,0x64,0xfc,0x8b,0x42,0x4c,0xd5,0xbe,0x42,0xec,0x3b,0xb,0xc2,0xf3,0xee,0x95,0x42,0x38,0x4e,0x3,0xc2,0xea,0xc1,0xf,0xc2,0x23,0x26,0x13,0xc2,0x8b,0x1a,0x20,0x42,0xcc,0x63,0x96,0xc1,0x72,0xde,0x3e,0xc0,0xa0,0xa1,0xcc,0x41,0xe0,0x3,0xe4,0xbf,0x2a,0x2,0x7c,0xc1,0xc4,0x22,0xcf,0xbf,0x1e,0x1f,0xfc,0xbf,0x32,0x24,0x2c,0xc2,0x36,0x19,0x15,0xc2,0xd4,0xb1,0xf,0x41,0x75,0xd3,0xbc,0x41,0x93,0x9e,0x82,0xc2,0x2f,0xb5,0xc0,0xc1,0x78,0xb,0xda,0x41,0xc,0x80,0x3a,0xc2,0x1,0xbd,0x27,0x42,0x27,0x7e,0x5,0xc1,0xcd,0xb9,0xc2,0x40,0x13,0xa7,0xca,0x40,0x6d,0xb3,0x57,0x42,0x40,0xd1,0x27,0x40,0x4c,0xc9,0xf8,0xc1,0x8c,0x7a,0x92,0x41,0xa2,0x66,0xc4,0x41,0xc9,0x9f,0x3d,0xc2,0x12,0x68,0x8,0xc2,0x41,0x7d,0x5b,0x42,0x9a,0xb7,0x49,0x42,0xa8,0x17,0xf4,0xc1,0x37,0x90,0x91,0xc1,0x5,0xd4,0x72,0x42,0xc1,0xad,0xb4,0x41,0xe7,0xe8,0x68,0x41,0x74,0x4b,0x49,0x42,0x22,0xd2,0xa7,0x41,0xaf,0x49,0x9d,0x42,0x0,0x10,0xa2,0xc1,0xf4,0xa3,0x31,0xc2,0x9c,0xf4,0x1d,0xc1,0x30,0x50,0xe2,0xc1,0xd8,0x3d,0x58,0x41,0x86,0x38,0xdb,0x40,0x6b,0xe0,0xcf,0xc1,0x6a,0xd9,0x19,0xc2,0xfc,0x80,0xb5,0x42,0x12,0xdd,0x5a,0x41,0xec,0x37,0xa8,0xc1,0x67,0x71,0x8d,0x40,0xc9,0xa,0x15,0x42,0x66,0x3e,0x0,0xc0,0xd6,0x94,0x1d,0xc2,0x42,0xf9,0x8,0x41,0xcf,0xb2,0x18,0xc0,0x5a,0xde,0x5a,0xc1,0x8e,0x68,0xaa,0xc2,0xc6,0x4a,0x54,0x42,0x82,0x7,0xe,0xc2,0xc9,0x68,0x85,0x41,0x4e,0x96,0xc1,0x3f,0x92,0xc7,0xdc,0xc1,0x88,0x4d,0x41,0xc2,0x7a,0x9f,0x86,0x40,0x74,0x49,0x6b,0x3e,0xaa,0x9,0xd4,0xc1,0xb6,0xc,0x7,0x41,0x17,0x6a,0x2,0x42,0x7e,0xeb,0x83,0xbf,0x28,0xf4,0xeb,0x41,0x94,0xd5,0x60,0x42,0xe,0x60,0x8c,0xc1,0x9d,0xbf,0xfb,0xc1,0x82,0x92,0x5a,0xc2,0x6,0x70,0x2,0xc2,0x91,0x68,0xfe,0xc1,0x36,0xca,0xa9,0x40,0xb5,0x8e,0xd0,0x41,0xbe,0x7e,0x8e,0x41,0xd6,0xc0,0x36,0x41,0xd9,0xca,0x59,0x42,0x0,0xa8,0xc3,0x3b,0x83,0x6,0x1,0x42,0xf1,0x11,0x2b,0xc2,0x22,0x5b,0xe5,0x40,0x22,0xff,0x6e,0x41,0xde,0x9b,0xf7,0x3f,0x90,0xd0,0x16,0xc0,0xb6,0x9b,0x1b,0xc2,0x17,0xab,0x33,0xbe,0xe9,0xf4,0xce,0xc1,0xd8,0x38,0xa3,0x41,0x40,0x49,0x18,0x3f,0xee,0xd3,0xbc,0x42,0xc6,0x18,0x34,0x42,0x9c,0x3f,0x4e,0xc2,0x9c,0x18,0x0,0xc2,0xb5,0x99,0xf5,0x42,0xc,0x81,0xa9,0x41,0x9d,0x9f,0x60,0xc2,0xb5,0x79,0x66,0xc1,0xa8,0xf5,0xf3,0x40,0x92,0x39,0xf4,0x41,0xaa,0x7,0xf5,0xc1,0xa8,0x59,0xbf,0x41,0x70,0xad,0x58,0x42,0xcf,0x49,0x23,0xc2,0x44,0x8,0xaf,0xc2,0xf1,0xc3,0xdb,0xc1,0x2d,0xce,0x7c,0x41,0x86,0xe2,0x6b,0xc1,0x6,0xcd,0x57,0x42,0x1e,0x24,0x43,0x41,0xbc,0x67,0x64,0xc1,0xb3,0x26,0x6f,0xc2,0xac,0xd1,0x2f,0x41,0xd6,0xa3,0x5,0x42,0x89,0x8f,0x4d,0xc2,0xcd,0x72,0x88,0x42,0x38,0x1b,0x2,0xc1,0x38,0x8b,0x21,0x41,0x90,0x93,0x83,0x41,0xd5,0x61,0xa0,0x41,0x29,0xcf,0xe,0xc2,0x1a,0x18,0xb2,0x41,0xca,0x4c,0xf7,0xc1,0x90,0xe0,0xf,0xc2,0xe2,0x4f,0x1b,0x42,0xc5,0xec,0x3f,0xc2,0x28,0x23,0xcc,0xc0,0x4,0xe8,0xda,0x41,0x36,0x7b,0xae,0x41,0xaa,0x38,0xe3,0x41,0x4,0xd4,0xa3,0x41,0xe4,0x3b,0x9a,0xc2,0xa4,0xf4,0xb0,0x41,0x6b,0xe,0x6c,0x42,0x4a,0xcd,0x4c,0x42,0x9a,0xaf,0x45,0x42,0x9b,0x3c,0x69,0xc1,0x9,0x42,0xee,0xc1,0x5f,0x1a,0xaf,0xc2,0xbc,0x48,0x8a,0xc2,0xea,0x73,0xa3,0x42,0xef,0x65,0x65,0x42,0x1,0x7f,0x2a,0xc2,0x13,0x15,0x4e,0xc0,0xa4,0xd7,0xab,0x42,0x55,0x9f,0x14,0x42,0xad,0xaf,0x49,0xc1,0xe9,0xfb,0x5,0xc1,0xa1,0x73,0xc5,0x3f,0xe,0xba,0x57,0x42,0x96,0x5c,0xee,0xc1,0xa9,0xaf,0xb4,0xc1,0x8a,0x8f,0x9d,0xc2,0x78,0x91,0xa7,0xc1,0xda,0x88,0xa0,0xc1,0x7c,0xab,0x44,0xc1,0x64,0xdb,0x1b,0xc1,0x25,0xbf,0xce,0x40,0x4b,0xe3,0x95,0x42,0xb1,0x6a,0xe0,0x41,0x75,0xb0,0xb,0x42,0xf8,0xd1,0x8d,0xbe,0xaa,0x3e,0x2f,0x42,0xf1,0x3d,0x7c,0xc0,0x95,0x2a,0x6d,0xc1,0xbf,0xd9,0xcf,0xc1,0x54,0x29,0xe9,0xc2,0x93,0xef,0xc8,0xc2,0x7b,0x23,0x29,0xc2,0x49,0xc7,0x69,0x41,0xb7,0x8f,0x4d,0x41,0x6,0xe1,0x8c,0x41,0xde,0x6e,0x95,0x42,0xe,0x3b,0x9,0x42,0x40,0xdf,0x3,0x42,0x59,0xc3,0xe,0xc2,0x4f,0x9d,0xc4,0xc1,0xcf,0xcb,0xa3,0xc2,0x3f,0x6a,0x9b,0xc2,0x2,0x36,0x81,0xc0,0x56,0xc9,0x18,0x42,0x69,0x8c,0x8c,0xc2,0x62,0xe8,0x25,0x42,0x17,0x3e,0x14,0xc2,0xba,0xeb,0x90,0x42,0x79,0xc3,0x42,0x42,0xbb,0xac,0x9c,0xc2,0x7e,0x48,0x97,0xc1,0x50,0x89,0x99,0x42,0x60,0x45,0x84,0xc1,0x9b,0xfc,0x84,0x42,0x92,0x92,0x4c,0xc2,0x8f,0x9e,0xb2,0x42,0xc6,0xc7,0x10,0x42,0x59,0x9c,0xc0,0xc1,0xcc,0x1,0x3a,0x41,0x9b,0xf7,0x26,0xc2,0x76,0x7a,0xbf,0xc2,0x12,0x34,0x1f,0x42,0x65,0xb5,0xf4,0xc0,0x25,0x2a,0x5b,0x42,0xab,0x83,0x76,0x42,0x78,0xac,0x82,0x3f,0x33,0x82,0x1e,0xc2,0x24,0xa8,0xa1,0xc1,0x83,0x10,0x8f,0x42,0xd5,0x31,0xe,0xc2,0xdd,0xc,0x1a,0xc2,0x8a,0xb1,0x7a,0x42,0xdc,0xdc,0x5c,0xc1,0x9e,0x23,0x7d,0x41,0xaf,0xb4,0x7a,0xc2,0xc5,0x96,0x5a,0x42,0xdc,0xc0,0x12,0x42,0x46,0x9,0xb2,0x42,0x56,0xce,0x15,0x42,0xc1,0x12,0xe9,0xc1,0x28,0xbb,0xd0,0x41,0x76,0xe5,0x44,0x41,0x5f,0x69,0xc8,0x41,0xc9,0xbf,0xa,0xc1,0xe0,0xef,0x30,0x42,0x55,0x78,0xbe,0xc1,0xca,0xa,0x81,0xc1,0x52,0x43,0xe4,0xc2,0x21,0xc8,0xd3,0x42,0x47,0xa3,0x6e,0xc1,0x11,0x2b,0xb4,0x41,0x91,0x9d,0x77,0x42,0x68,0x17,0x5c,0xc0,0x69,0x27,0x15,0x42,0x23,0xc4,0x4e,0xc2,0x46,0x73,0xa8,0xc1,0xb7,0xc0,0xd,0x42,0x1a,0x3f,0x94,0xc2,0xc8,0xed,0x4e,0xc1,0x76,0x79,0x3,0xc2,0x4,0x3c,0x88,0x42,0x44,0x79,0x37,0xc0,0x56,0xbb,0xf1,0x3f,0xf7,0x46,0x77,0xc2,0xbe,0x8c,0xec,0x41,0xfb,0x79,0x61,0xc2,0x74,0x0,0x8,0xc2,0x9e,0x68,0xd6,0xc1,0x20,0xaf,0x72,0xc2,0x5b,0xb6,0x6d,0xc2,0xde,0x74,0xe9,0x41,0x4a,0x0,0x1f,0xc2,0x86,0xbf,0xec,0xc2,0x44,0xe7,0x83,0xc0,0xf8,0xa5,0x7,0xc3,0x22,0x97,0x50,0x42,0x90,0xbd,0x74,0xc2,0x82,0x24,0x54,0x41,0x45,0xb9,0x37,0x41,0xc1,0x5,0x79,0x41,0xa7,0x55,0xc,0xc1,0x58,0xd9,0x2a,0x42,0x8e,0x54,0x5a,0xc2,0x62,0x6c,0x97,0xc1,0x77,0x8f,0xd1,0xc0,0x75,0xb,0x2f,0x42,0x52,0x76,0x25,0x42,0xb4,0x4,0x7e,0x42,0xcf,0xab,0x55,0x41,0xb0,0xdc,0xdb,0x41,0x3f,0x26,0x81,0xc1,0x19,0xd6,0x5,0x42,0x30,0x41,0xed,0x41,0x3e,0x2f,0x5c,0xc2,0x2,0x3d,0xce,0xc0,0xa5,0x53,0x88,0xc2,0x54,0x54,0xd4,0xc0,0x8e,0x86,0x7f,0x40,0x50,0x54,0x35,0x42,0x60,0xc0,0xd8,0x40,0x56,0x39,0xb6,0xc2,0xf7,0xa2,0xa2,0x40,0xcb,0x19,0x23,0x42,0x71,0xeb,0xab,0x42,0x54,0xb8,0x57,0x42,0x3c,0x63,0xd8,0x41,0x70,0xf,0xd6,0xc1,0xaf,0x1,0x23,0x42,0x42,0x69,0x64,0xbf,0x74,0xe6,0x0,0x42,0xeb,0x6,0x0,0xc2,0x66,0x32,0x6d,0x42,0xed,0x90,0x18,0xc2,0xe5,0x2e,0x70,0xc2,0x10,0x5f,0x2a,0xc2,0xec,0xfc,0x8a,0x42,0x49,0x6e,0xa6,0x42,0x98,0xb3,0x11,0x42,0xa4,0xc9,0x26,0x42,0x35,0x48,0x83,0x42,0x27,0x28,0x3e,0xc1,0x2b,0x61,0xb8,0xc1,0x90,0x3a,0x77,0xc0,0xba,0xfa,0x1,0x41,0xaa,0x5e,0xb9,0x41,0xc0,0x29,0x7,0x42,0xef,0xd6,0xa5,0x42,0xb,0x90,0x4a,0x42,0x46,0xcd,0xed,0x41,0xde,0x81,0x6f,0x42,0x9a,0x9f,0xd4,0x40,0xce,0x96,0xc2,0xc1,0xac,0x7b,0x2e,0x42,0x4a,0xa1,0x55,0x42,0xd3,0xb7,0x78,0xc2,0x6a,0x52,0x87,0x40,0x9f,0xc4,0x14,0x42,0x9a,0xc1,0xd4,0xc0,0xe2,0x6b,0x9a,0xc0,0x2f,0xe7,0x85,0xc2,0x7f,0xce,0x8b,0xc0,0x65,0x88,0xbb,0x41,0xe2,0xd6,0x9b,0x40,0x1b,0xff,0x89,0xc2,0xc1,0x19,0x95,0x42,0x87,0xba,0x96,0x41,0xfe,0xf5,0xb0,0x41,0x4b,0x2e,0x58,0x42,0xdd,0x36,0xde,0xc2,0x18,0x70,0xd8,0xc1,0xc2,0xf2,0xc5,0x3f,0x19,0x3d,0x84,0x42,0x80,0xc1,0x1e,0xc2,0xa7,0x81,0x45,0x42,0x8c,0xf8,0x39,0x42,0x7c,0xcf,0xc5,0x42,0xc9,0x41,0x41,0xc2,0xad,0x14,0x17,0x42,0xb7,0x65,0x45,0xc1,0x99,0x54,0x8c,0xc2,0x4c,0xec,0x8e,0xbf,0xfd,0x8,0xbd,0x41,0xe2,0xd1,0xe8,0xc1,0xcb,0x5d,0x4,0xc2,0xeb,0x18,0xc0,0x42,0x94,0x85,0x72,0xc1,0x18,0x54,0x3e,0x42,0x3e,0xfe,0x25,0x42,0xbf,0xa1,0x91,0xc1,0xe0,0x43,0xe9,0x40,0x8e,0x90,0xe4,0x42,0xb8,0xea,0xc2,0x41,0xc4,0x9b,0x16,0x42,0xc2,0xff,0xde,0x41,0xa6,0x60,0x2c,0xc2,0x98,0x4,0xae,0x41,0xc5,0x57,0x41,0x41,0x2a,0x18,0xcf,0xc1,0x7a,0xb4,0x98,0xc2,0xee,0xa2,0x95,0x3f,0xde,0x1f,0x3,0x40,0x76,0x22,0x27,0xc2,0x21,0x7f,0xc1,0x42,0xf8,0x54,0x1b,0x42,0x54,0xfd,0xf9,0x41,0x29,0x24,0xf,0x41,0x22,0x7e,0x9e,0xc1,0x1c,0x4c,0xfa,0xc1,0xf5,0x76,0xa3,0xc2,0x60,0xd0,0x90,0xc1,0xf3,0xc5,0x90,0x40,0xa7,0x83,0xf0,0xc1,0xe3,0x9e,0xec,0xc1,0xff,0x98,0x8c,0x42,0x5e,0x93,0x61,0xc1,0xac,0x15,0x27,0x42,0x7,0xb3,0x84,0xc2,0x97,0x73,0xa0,0x42,0x82,0xa4,0x13,0x42,0x8d,0x95,0x7e,0x42,0xe6,0xb5,0x55,0x42,0x78,0x48,0x9a,0xc0,0xc3,0x9b,0xbf,0xc1,0x36,0x7d,0xeb,0x3f,0xa0,0x2b,0x34,0x42,0x95,0xb4,0x26,0x42,0x38,0x3d,0xc,0xc2,0xf2,0xb7,0xa5,0x41,0xd7,0x57,0xa7,0x41,0x19,0xe1,0x25,0xc2,0xdd,0xc3,0x6f,0x3f,0x8b,0xf9,0x93,0xc2,0x8,0xb2,0x5b,0x42,0xd6,0x6,0x17,0xc2,0x3a,0x99,0x86,0xc2,0x78,0x89,0x51,0x41,0xe4,0x2b,0x37,0xc2,0xc7,0x2d,0xc9,0xc1,0x2c,0x7a,0xa,0x42,0x8e,0xf0,0xe,0x41,0x7e,0xdd,0xd5,0xc1,0x6b,0xfd,0x44,0xc0,0xbe,0x23,0xfa,0x40,0x15,0xbf,0x5,0xc2,0xa6,0x69,0x49,0x42,0x96,0x7d,0x61,0xc1,0x4a,0x62,0x6e,0x42,0x6b,0x65,0xac,0xc2,0x18,0x11,0x91,0x42,0x32,0x22,0x8f,0xc1,0x9f,0xa8,0xd8,0x41,0xec,0xa,0xa8,0xc1,0x18,0xcb,0x7f,0xc1,0x70,0xd9,0x5c,0xc2,0x1f,0x47,0x93,0x40,0x80,0xb8,0x3b,0xc2,0x70,0xc9,0xfb,0x41,0x1f,0x1d,0xde,0xc1,0xfc,0x4c,0x26,0xc0,0x9e,0xea,0x59,0xc2,0x38,0x7d,0xcd,0x41,0x1c,0xc6,0x8b,0x42,0x70,0x39,0x18,0xc2,0x38,0xaf,0x11,0x42,0x12,0x83,0x86,0x42,0x4e,0x46,0x32,0x42,0x7,0xfe,0x85,0xc0,0x82,0xcf,0xd,0x3f,0xc1,0xe0,0xb,0x42,0x82,0xf7,0x14,0xc1,0x59,0xea,0xcd,0x41,0xc,0x7f,0x58,0xc0,0x1,0x9a,0x7,0x40,0x3a,0xec,0x3c,0x42,0x3b,0x5,0x5,0x42,0xb7,0xa6,0x9f,0x41,0x4d,0x2b,0x3c,0x42,0x27,0x39,0xd,0x41,0x66,0xf3,0x8,0xc2,0xb6,0x3f,0x37,0x41,0xee,0x99,0x64,0xc2,0x83,0x7a,0x1b,0x41,0x30,0x12,0x99,0xbd,0x26,0xf,0x57,0x41,0x7c,0x4a,0xa1,0xc1,0xc2,0xda,0x1c,0xc2,0xe3,0xc,0x97,0x42,0x38,0x8e,0x30,0xc0,0x13,0xe5,0x93,0x42,0xe0,0xa8,0xa2,0x42,0x12,0xcf,0x72,0xc2,0xc2,0x31,0xf9,0xc1,0x41,0xd3,0x53,0x42,0xa4,0x7b,0x19,0x41,0x56,0x75,0x53,0x42,0xa5,0x89,0x7a,0xc2,0xa5,0x9c,0x2c,0xc1,0x28,0xff,0xe5,0x41,0x58,0xb9,0x89,0xc0,0x0,0x60,0xae,0x42,0x86,0xc2,0xae,0xc0,0xb0,0x3f,0x53,0xc2,0x46,0x2b,0xb4,0xc1,0x15,0x85,0x5,0xc2,0x5e,0xe,0x2a,0xc2,0x44,0x1c,0x6b,0xc2,0xbc,0x37,0x69,0x42,0x9a,0xe7,0xfd,0x41,0x55,0xac,0x3c,0x41,0x54,0x43,0x44,0xc1,0xaa,0x59,0x83,0xc2,0x9c,0x3c,0x57,0x41,0xdc,0x70,0xb2,0x40,0x41,0xcc,0x4f,0xc1,0x64,0xfb,0x60,0x42,0xaf,0x39,0x89,0x41,0x9b,0xae,0x3f,0x42,0xcc,0x19,0x21,0xc1,0x6e,0x3d,0x9a,0xc1,0x29,0xc5,0x6c,0x42,0xae,0x49,0x36,0x42,0x34,0x55,0x96,0xc1,0x56,0x1d,0xbe,0x41,0xb8,0x44,0xa4,0xc1,0x3f,0x4a,0x4c,0xc1,0x92,0xfe,0x92,0x41,0xa4,0x86,0x33,0x41,0x4,0x49,0x27,0x42,0xb,0x68,0x56,0xc1,0xf3,0xe5,0x39,0xc0,0xb3,0xa7,0x2,0x42,0xd0,0x48,0xf2,0x41,0x7b,0x23,0x58,0x42,0xef,0x5f,0xab,0x40,0x25,0x4c,0xce,0x41,0xf4,0xaf,0x5d,0x40,0x60,0xb0,0x8f,0xc2,0x54,0xee,0x7b,0xc1,0xe3,0x76,0xbd,0x41,0x85,0xe,0x90,0x41,0xd,0xcc,0x35,0xc1,0x84,0x51,0x51,0x41,0xfd,0x31,0x8d,0x42,0xa1,0x5e,0x3,0x42,0x3a,0x95,0xf5,0xc0,0xba,0xfa,0x4d,0xc2,0xa9,0x6a,0x3a,0x40,0xa5,0xfd,0xa7,0xc1,0x8d,0x32,0x33,0x42,0xbc,0x32,0x95,0x41,0x47,0x41,0xd,0xc2,0x2a,0xe6,0x4f,0xc2,0xae,0x70,0x61,0x42,0x3d,0x95,0xee,0xc1,0xbb,0xe5,0x59,0xc2,0xa5,0xff,0xc2,0x41,0x8,0x94,0x41,0x42,0xb8,0xfb,0x94,0x41,0x67,0x84,0x83,0x40,0xdb,0x9a,0x19,0x42,0x5a,0xd2,0x17,0x42,0x9c,0x7d,0xcb,0x41,0xa8,0xbd,0xbc,0x42,0xb6,0x5e,0xe,0xc1,0xcd,0x34,0x2a,0xc2,0xfc,0x99,0x92,0xc1,0x68,0x89,0x1d,0x42,0x12,0x48,0xca,0xc2,0x7a,0x35,0x29,0x41,0x94,0x13,0xd,0xc2,0x32,0x6c,0x81,0xc1,0x70,0x33,0x23,0x41,0xd4,0xc,0x1b,0x41,0x92,0x3a,0xc6,0xc1,0x36,0xbf,0xcc,0x41,0x20,0x20,0xdf,0xc0,0xc4,0x64,0x56,0xc2,0xe0,0x86,0xac,0x42,0xab,0x23,0x26,0xc2,0x3d,0x2b,0xa9,0x42,0x67,0xf9,0x88,0xc0,0xe9,0x54,0x84,0xc2,0x20,0x65,0x48,0x41,0x13,0xdb,0x63,0x42,0x13,0x8a,0x40,0xc1,0x9,0x81,0x23,0x42,0xc2,0x22,0x78,0xc1,0x94,0x1e,0x71,0x42,0x6a,0x58,0x47,0xc1,0x6c,0x20,0x3d,0x42,0x0,0x61,0x67,0x42,0x60,0xd0,0x25,0xc2,0xde,0x91,0x2,0x40,0x4c,0xf,0xf,0x42,0x7d,0x3b,0x1,0xc2,0xd8,0x2a,0xd7,0x41,0x73,0x21,0x2,0xc0,0x7c,0xf0,0x7a,0xc0,0xf0,0xf5,0x2f,0xc2,0x1c,0x50,0xdf,0x41,0xc8,0x76,0xb,0x42,0x4c,0xd0,0x86,0xc1,0xba,0xe7,0x2f,0xc2,0xf3,0x1f,0xcd,0xc0,0xf0,0x3a,0xa6,0x41,0x22,0xb4,0x9c,0xc1,0x54,0x1b,0x8f,0xc0,0xc2,0xa9,0xcb,0x41,0xaa,0x55,0x81,0x42,0x10,0xae,0x30,0xc1,0x90,0x2c,0x18,0xc2,0x7,0xb8,0x3b,0x42,0x7f,0xdb,0xab,0x41,0x8a,0xf2,0xa,0x42,0xe2,0xad,0xb6,0x41,0xd0,0x71,0x8c,0x41,0x83,0x6,0x15,0xc2,0x9e,0x17,0x32,0xc1,0x18,0x92,0x87,0x41,0x22,0x9c,0x8b,0xbf,0x14,0xba,0xda,0x41,0x70,0x1e,0xf8,0x41,0xb6,0x6d,0x48,0x41,0x35,0x3f,0x60,0x42,0xb,0xf,0x6,0xc1,0x15,0x15,0x97,0xc1,0xfb,0x63,0xb3,0x41,0x7e,0x52,0xab,0x41,0x8a,0xd0,0x28,0x41,0x16,0xd3,0xd6,0x41,0x17,0xe6,0x4c,0x42,0x10,0xd6,0x76,0x42,0xc,0x32,0xc6,0x41,0x3a,0x20,0xd,0x42,0x92,0xa8,0xa7,0xbf,0x72,0xd,0x3c,0x40,0x3a,0xf2,0xd1,0xc1,0xd6,0x2d,0xa,0xc2,0x9f,0x99,0x8f,0x42,0x7d,0xce,0x68,0xc2,0xfd,0xa2,0xcf,0x42,0xb9,0xd0,0x10,0x42,0xda,0xd7,0xaf,0xc1,0x50,0xca,0xee,0x41,0x9b,0xf9,0x96,0xbf,0x4f,0xe8,0xfd,0xc1,0x16,0xc7,0xea,0xc0,0x97,0x37,0x77,0xc0,0x43,0xcf,0xd8,0xc1,0x34,0x2a,0x4f,0x42,0x14,0xeb,0x52,0xc0,0xeb,0xcf,0xe1,0x41,0x2c,0x53,0xa8,0xc1,0x92,0xf4,0xd5,0x41,0x90,0x16,0x8d,0xc1,0x97,0xef,0x90,0x42,0xe6,0x31,0x0,0xc1,0x5c,0xf2,0x66,0xbe,0x3c,0x8b,0xbb,0x41,0x1,0xae,0x5b,0xc1,0xb2,0xb5,0x3,0x42,0xbd,0x96,0x94,0x40,0x36,0xb2,0xc9,0x3f,0xa3,0xe3,0xc8,0xc1,0x80,0x9d,0x5,0xbe,0xb,0xe,0xc,0xc2,0xf0,0x46,0x8f,0x41,0x64,0xd2,0xe7,0xc0,0x50,0x8b,0x8f,0xbf,0xd7,0xe6,0x4b,0x42,0x33,0x1a,0x53,0x42,0xb0,0xd7,0x7,0x40,0x3c,0x6a,0x4d,0xc2,0x77,0xc3,0x43,0x42,0xf8,0xb5,0xd,0xc1,0x58,0x18,0xca,0x41,0xad,0x3,0x25,0x42,0xbf,0x4c,0x96,0xc0,0x2a,0xbf,0x77,0xc2,0x18,0xd0,0x8f,0x41,0x3d,0x86,0x82,0xc2,0x4e,0x6b,0x1b,0x42,0x82,0xa9,0x6d,0x40,0x2c,0xb7,0x61,0x41,0xfa,0xff,0x2,0x41,0xcf,0x1e,0x7f,0xc2,0xbb,0xb5,0xfc,0x40,0x80,0x4a,0x41,0x40,0x63,0x6b,0xde,0x41,0x35,0x9d,0xd1,0xc1,0xd7,0x82,0x8e,0x41,0x27,0x9e,0xb2,0x41,0xd8,0x3,0x44,0x41,0xf2,0xcf,0x41,0xc2,0x97,0xd8,0x2c,0xc1,0x33,0xf,0x71,0xc1,0x92,0xe2,0xf3,0xc1,0xa5,0x4,0x94,0x41,0x47,0x29,0x28,0xc0,0xc,0xad,0x98,0xc0,0x8a,0x49,0xb0,0xc1,0x68,0x8,0x49,0xc1,0x3,0x4c,0x70,0x41,0x50,0xd7,0xba,0xc1,0xf6,0xa1,0xe0,0x41,0x3a,0x51,0xe2,0xc0,0xb0,0x35,0x1b,0xc2,0x82,0xc9,0x36,0x41,0x4c,0x2a,0xe4,0x41,0xf3,0x94,0x7a,0x42,0xb4,0xa5,0xbe,0x41,0xc4,0x19,0x80,0x41,0x22,0x73,0x2e,0x42,0x51,0xfd,0x2,0xc2,0xc2,0xab,0xbc,0x41,0x26,0x7a,0xa2,0x40,0x5c,0xe7,0x40,0x42,0x8e,0x15,0x1c,0xc2,0x59,0xe7,0xef,0xc1,0xca,0x5e,0x90,0x3f,0x79,0x96,0xd9,0xc1,0x80,0x4b,0x47,0xbf,0xa1,0xa0,0x24,0x42,0x29,0x56,0x5f,0xc2,0x61,0x3,0xa2,0xc2,0xf4,0xdc,0x5e,0x42,0xce,0xe1,0x0,0xc2,0xa4,0xa1,0x27,0x41,0xa6,0x2b,0x7a,0xc2,0x6c,0x76,0x8b,0xc1,0x0,0xe,0x1f,0xc2,0xe0,0x17,0xf9,0xc1,0xb5,0x4a,0x1,0xc2,0x4e,0xa1,0x70,0xc2,0xd7,0x17,0x59,0x41,0xc2,0xd9,0x44,0x41,0xa5,0x69,0x92,0x41,0xb4,0x1a,0x12,0xc2,0x9a,0x1,0xdc,0x41,0xa7,0x91,0xe7,0x41,0x15,0xb1,0xef,0xbf,0xf2,0x30,0x38,0xc2,0x2a,0x35,0xd,0x42,0x76,0x40,0xee,0xc0,0xe5,0x97,0xe,0xc2,0xdf,0x6f,0xbd,0x40,0xcc,0xa6,0x30,0x41,0xfb,0xae,0x3b,0x41,0x20,0xeb,0x3d,0xc1,0x40,0xcc,0x8f,0xc1,0x2a,0x85,0x2,0xc2,0xfa,0x5,0xb2,0x41,0x61,0xb2,0xed,0xc1,0xec,0x74,0x16,0x42,0xf,0xbe,0xf5,0x3f,0x57,0xaf,0xcc,0xc1,0x10,0x87,0x4c,0xc1,0xd5,0xd0,0x8,0xc1,0x4f,0x9f,0x5e,0xc2,0x25,0x58,0xed,0x41,0xe4,0x56,0x12,0x42,0x81,0x41,0xa5,0xc1,0x7f,0xdd,0xa7,0xc1,0x70,0x6b,0xfa,0x41,0xb8,0x30,0x88,0x42,0xf4,0x2b,0xd9,0xc1,0xe3,0x34,0x85,0xc1,0xc1,0x5f,0x84,0xc2,0xc4,0xc6,0x89,0x42,0xf2,0x44,0x39,0xc2,0x8a,0x9e,0x76,0x40,0xbc,0x15,0x23,0x41,0x4d,0x8f,0x91,0xbf,0x20,0x1e,0xb9,0x41,0x4,0x84,0xb0,0xc1,0xac,0xb3,0x16,0x42,0x9d,0xa9,0x7a,0x42,0x68,0x88,0x62,0x42,0x4e,0x90,0xc9,0xc1,0xd0,0xc7,0x31,0x42,0x96,0x24,0xc6,0x3f,0x50,0xbd,0x24,0xc2,0xba,0x37,0x63,0x42,0xab,0xec,0xf5,0x41,0xa1,0x1b,0x72,0x42,0xec,0xa6,0x29,0xc1,0xa7,0xd4,0xca,0x40,0xb2,0x6f,0xf3,0x41,0x78,0xf5,0x2a,0x42,0x33,0xee,0xf5,0x41,0x23,0x9a,0xb8,0x42,0x99,0x97,0xba,0x42,0x2f,0x21,0xe,0x42,0xa4,0x91,0x4b,0xc1,0x60,0x67,0x39,0xc2,0xdc,0x19,0x73,0xbe,0xe0,0x4a,0x43,0xc2,0x77,0x87,0xdc,0x42,0x3b,0x1a,0xb3,0xc1,0xdb,0x3e,0x99,0xc0,0x47,0xae,0x8e,0x42,0xb1,0x4f,0x66,0xc2,0x8e,0x92,0x46,0xc0,0x58,0x97,0x30,0xc2,0x52,0x6,0x30,0xc2,0x50,0xc2,0xa,0x42,0x6,0xdf,0xf0,0x40,0x54,0x5a,0xfa,0x41,0x30,0x98,0x1a,0xc1,0x56,0x36,0x61,0x40,0x4e,0xdd,0x74,0x41,0x6f,0x24,0x53,0x41,0xc4,0xc1,0x2f,0x40,0x62,0x57,0x9b,0xbf,0x43,0xe5,0xaf,0x41,0x98,0xf3,0x8,0x42,0xdf,0x1e,0xa0,0xc0,0x72,0xa5,0xec,0x42,0xbc,0xc,0x8b,0x41,0xbd,0x1d,0x33,0xc2,0x67,0x82,0x6d,0xc2,0xc6,0x93,0x4c,0xc1,0x90,0x64,0x6d,0x42,0x27,0xd7,0xc2,0x41,0xce,0xf5,0x58,0xc2,0x77,0x33,0xc7,0xc1,0x69,0x71,0x71,0x41,0xc2,0x7e,0xdb,0x41,0xee,0xd7,0x39,0x40,0x70,0xdd,0x86,0xc1,0x21,0xa2,0x59,0x42,0x71,0xaa,0x3d,0x42,0x2a,0x56,0xb6,0xc2,0x1a,0xa7,0xfd,0xc1,0x70,0x98,0xef,0xc1,0xd1,0xc4,0xbb,0x42,0xac,0xd6,0x57,0xc2,0xcf,0xa0,0xd9,0x41,0xbc,0xcb,0xe1,0x41,0x5,0x5f,0xa6,0xc1,0x34,0x5,0x67,0xc2,0xca,0xf2,0xce,0x41,0xcd,0xde,0x91,0x40,0x9d,0xf6,0xa1,0x41,0x43,0xba,0x8a,0x42,0xda,0x63,0xab,0xc1,0x59,0xb7,0xc0,0x41,0xe4,0xa1,0x24,0xc1,0x46,0xa5,0xaf,0xc1,0xc2,0x97,0xb7,0xc2,0xa,0x46,0xc6,0xc2,0x26,0xeb,0x55,0x41,0x90,0x7c,0xd1,0xc2,0xa2,0xc8,0xb7,0x41,0xa3,0x8,0x14,0x41,0xba,0x4f,0xaa,0xc1,0x27,0x10,0x3b,0x42,0x36,0x62,0x18,0x42,0x6d,0x48,0x69,0xc2,0x9f,0xee,0x5,0x41,0x80,0x28,0xd1,0xc1,0x2a,0xa,0x94,0x41,0xa3,0x3d,0xf,0x42,0x93,0xa4,0xeb,0xc1,0xb9,0xc0,0x4,0x42,0x50,0x76,0xa4,0x41,0x8f,0x9,0x8f,0x42,0xae,0x86,0x20,0x42,0x83,0xe3,0xfc,0xc1,0x0,0xaf,0x7c,0x40,0x9e,0x25,0x68,0xc2,0x96,0xc8,0x19,0xc2,0xd,0x85,0x14,0x41,0xfb,0xe,0x9d,0xc0,0x27,0xa3,0x38,0x42,0x4e,0x30,0x29,0x41,0x13,0x54,0xb7,0x42,0x1a,0x1d,0x35,0x42,0x20,0xe0,0x38,0xc1,0x14,0x51,0x97,0x42,0x2,0x23,0x76,0xc1,0x6e,0xa8,0x40,0xc0,0xc9,0xb5,0x16,0x42,0x38,0x7,0xb8,0x41,0x58,0x6e,0xd4,0xc0,0x43,0x51,0xc4,0x42,0xf0,0x23,0xb7,0x41,0x76,0x5d,0x28,0xc1,0xb5,0x21,0xfa,0x41,0x8a,0xa2,0xb3,0x41,0x4d,0x8e,0x92,0xc2,0x52,0xfb,0x98,0x41,0xa,0xa9,0x23,0x41,0x8e,0xc8,0x12,0x41,0xb1,0xb0,0xb8,0xc1,0xb0,0xd9,0xc5,0x42,0x82,0xb4,0x42,0x42,0xe,0x2c,0x54,0xc2,0xc5,0x39,0xa5,0x41,0x34,0xf1,0xce,0xc0,0x7a,0x37,0x97,0xc0,0x78,0xc8,0x94,0x41,0x7,0x36,0xf6,0x41,0x4d,0xf6,0x26,0x42,0x16,0xdc,0xa5,0xc0,0x96,0x3d,0xc4,0x41,0x66,0x7c,0x38,0x42,0x7d,0x24,0x36,0x41,0xc6,0x54,0x6,0x42,0x4e,0xa5,0x2,0x42,0x5a,0xd0,0x28,0xc2,0xe2,0x8,0x59,0xc2,0xbc,0xf6,0x1a,0x42,0xa0,0x64,0x35,0x3f,0x52,0x65,0x65,0x40,0x4c,0xae,0x8e,0x41,0x92,0x50,0x48,0xc2,0xaf,0xb8,0x87,0xc1,0x98,0xcb,0x14,0xc2,0x70,0xd3,0x77,0x41,0xf1,0x9d,0x62,0xc1,0xa,0xa3,0xe3,0xc1,0x40,0xa3,0x14,0x42,0x5c,0xfb,0x77,0xc1,0xd8,0xd1,0xe7,0xc1,0xfa,0xe3,0x9,0x42,0xc7,0x64,0x3c,0x42,0x86,0x77,0x3c,0x42,0xc1,0x9e,0x1c,0xc2,0xcb,0x62,0xbc,0xc1,0xed,0x8b,0x99,0xc2,0x3d,0x75,0x9f,0x42,0xb,0xc9,0xe0,0xc2,0x7a,0x61,0x3e,0x42,0x30,0x89,0x6e,0xc1,0x22,0x73,0xa,0x41,0x3d,0x74,0xe5,0x41,0xde,0x9e,0xb8,0xc1,0x82,0x41,0x17,0xc2,0x11,0xde,0x59,0xc2,0x4d,0x61,0xef,0xc1,0x63,0xaa,0x99,0xc2,0x62,0x8,0x90,0xc1,0x97,0xa,0xf2,0x40,0xcc,0xd6,0x7b,0xc0,0xc4,0x9,0x92,0xc2,0xdf,0x88,0xaf,0x41,0xa8,0xf5,0xe2,0x40,0x48,0xc5,0xa5,0xc1,0x37,0x86,0x97,0xc2,0xfb,0xf,0x72,0xc2,0xe,0xd7,0xdd,0x41,0x6,0x1d,0xc5,0x41,0xa3,0x39,0x8f,0x41,0x44,0xec,0x9b,0x42,0x9c,0xe3,0x8c,0xc1,0x6a,0xdb,0x7,0xc2,0xe5,0x22,0x32,0xc1,0x98,0x61,0x31,0xc2,0xce,0xee,0x25,0xc0,0x33,0x9c,0xbf,0xc1,0xf7,0x68,0x50,0xc1,0x32,0xda,0x8b,0xc1,0xa,0xd,0x81,0xc2,0xf2,0xd7,0x6a,0xc1,0x70,0x41,0x31,0xc0,0x83,0x5d,0x0,0xc2,0x76,0xef,0x7c,0x41,0x14,0x6,0xe,0xc2,0xd9,0x60,0xa2,0xc1,0xfa,0x61,0x51,0xc0,0x5,0x94,0x8a,0xc2,0x11,0x5,0xd1,0xc0,0x18,0xc0,0x9d,0x41,0x6b,0x2a,0xc4,0x41,0x76,0x31,0xd,0x41,0x48,0x7f,0x45,0x3f,0xde,0x58,0x51,0xc1,0xa6,0x48,0xb5,0xc1,0x17,0x70,0x46,0x42,0x74,0xe7,0x94,0xc2,0x44,0x45,0x84,0x42,0x7a,0xf6,0x90,0xc1,0x2f,0x24,0x21,0xc2,0x3c,0xbc,0xb3,0xbf,0xa1,0x4d,0x5,0xc3,0x37,0xea,0x89,0xc2,0x60,0x4c,0x3c,0xc2,0xac,0x7b,0x0,0x40,0xdc,0xf6,0x83,0x3f,0x6,0x7d,0xc5,0x41,0xb7,0xfd,0x9,0x42,0xb7,0x37,0x6c,0x42,0xb,0x32,0x26,0xc2,0xe1,0xd6,0x1e,0xc1,0xb2,0x8e,0x32,0xc0,0x74,0x42,0xb,0xc3,0x30,0xba,0x30,0xc2,0x9a,0x41,0x7e,0xc2,0xce,0x72,0x2c,0x41,0x77,0x17,0x10,0x42,0xae,0x58,0x2d,0x42,0x2f,0x2d,0xf7,0xc1,0xdb,0xbb,0x5,0xc1,0x70,0xf8,0xfa,0xc1,0x82,0x9e,0x36,0x42,0x3,0xe9,0x93,0xc1,0x9e,0xbc,0xb4,0x41,0x35,0x6e,0x73,0xc2,0x10,0xc6,0x6e,0xc2,0x13,0x8,0xb7,0x41,0xee,0x8,0x7e,0xc1,0x71,0x1,0x10,0x42,0x83,0xdc,0xc0,0xc1,0x2c,0x52,0x1b,0xc2,0xaa,0x6f,0x6e,0x40,0xd7,0xdf,0x78,0xc2,0x1c,0x19,0xeb,0x41,0x2f,0xb2,0xee,0x42,0x23,0xde,0x70,0xc1,0x44,0xeb,0xef,0x42,0xa8,0xd,0x40,0x40,0x6e,0x73,0xbe,0xc2,0xa7,0x30,0x90,0xc2,0x60,0x1e,0x2f,0xc2,0x22,0xc7,0xb0,0xc2,0x5,0x1c,0xb4,0x41,0x87,0xcd,0xcb,0x41,0x6a,0x67,0x3d,0x42,0x2a,0x0,0x3a,0x41,0x30,0x75,0xcd,0xc1,0x7b,0x61,0xa1,0x41,0x74,0xdd,0x53,0x42,0x68,0x0,0x30,0x42,0xf3,0x89,0x65,0xc1,0xac,0xb2,0xa9,0xbe,0x30,0x7b,0xcb,0xc1,0xea,0x24,0x95,0xc1,0x29,0x86,0x92,0xc2,0x6e,0xd5,0x9f,0xc2,0x92,0x83,0x92,0xc2,0xbe,0xad,0x86,0x42,0xfe,0xfd,0x26,0x42,0x7d,0x42,0xf9,0xc1,0x23,0x1c,0xa4,0xc2,0xf3,0xf0,0xb7,0xc1,0xba,0x8,0xca,0xc1,0x31,0x44,0xc1,0xc0,0x86,0x23,0xb3,0x42,0x5c,0x2b,0x2d,0xc2,0xe,0x27,0x44,0x42,0x1,0xaa,0xe,0x43,0x2a,0xc7,0x33,0xc2,0x15,0x80,0x84,0xc2,0xc6,0xa1,0xc3,0xc1,0x49,0x46,0x6,0x42,0x60,0xc7,0xb5,0x42,0x6e,0x51,0x8b,0xc1,0x6c,0x7d,0x2c,0xc2,0xa9,0x92,0x47,0xc2,0xd2,0xdf,0xbb,0x41,0xaf,0xf4,0x74,0xc2,0x46,0x3f,0x8c,0x41,0xaa,0x7a,0x70,0x40,0x96,0x25,0x87,0xc0,0x6b,0x9b,0x35,0xc2,0x41,0xec,0x13,0x42,0xfa,0x6e,0x3c,0xc0,0x93,0xab,0x67,0xc2,0x7e,0x9b,0x3a,0xc1,0x2e,0xc2,0xb2,0x41,0x68,0xa0,0x5,0x40,0xe9,0x56,0x24,0x42,0x8,0x5a,0x3f,0x3f,0xed,0xc0,0x9,0xc0,0x8c,0x89,0x84,0xc1,0xf4,0xfc,0x18,0xc2,0x71,0xbd,0xf,0x41,0xda,0xed,0x3a,0x41,0x2f,0xfd,0x31,0x41,0xe1,0x6a,0x98,0x42,0x56,0x5e,0x31,0xc2,0x44,0xf5,0x79,0xc1,0x42,0xe3,0x2b,0xc2,0x4,0x75,0x39,0x42,0xaf,0xc3,0x68,0x42,0x73,0xfb,0x9f,0xc2,0x88,0x7,0x59,0x41,0x80,0x12,0x36,0xc2,0x84,0xb2,0x63,0xc0,0xaa,0xbd,0x8f,0x41,0x19,0xc6,0x80,0xc1,0xd2,0xf9,0xb5,0x41,0x9a,0xd6,0x51,0x42,0x1e,0x69,0x3a,0x42,0xce,0xa5,0x31,0x41,0x48,0x8b,0x29,0x41,0x62,0x11,0x2b,0xc1,0xba,0x40,0x1c,0x42,0xf6,0x8c,0xcc,0xc1,0x8e,0xd4,0xce,0x41,0xb8,0xae,0x87,0x41,0xd5,0xfe,0x7a,0x42,0x14,0x7f,0x62,0xc2,0xcd,0x8e,0x89,0x41,0xfb,0x1c,0x34,0x42,0xb5,0xd2,0x91,0x41,0x6,0xb1,0xc7,0x40,0xdc,0x7d,0xc1,0x41,0x44,0xc3,0x7,0x42,0xc8,0xf,0xde,0xc0,0x9f,0x9,0xd3,0x42,0x11,0x91,0x5c,0xc1,0xd9,0xf,0x8e,0x41,0xeb,0x2c,0x3e,0x42,0xf5,0x1,0x6d,0x42,0x13,0x85,0x97,0x41,0xff,0x21,0x1c,0x41,0x24,0x8e,0x8f,0x41,0x11,0xf6,0xcc,0xc1,0xa3,0x84,0x78,0xc1,0x25,0xb6,0x62,0xc2,0x58,0xaf,0xb9,0xc2,0xcc,0x3c,0xe2,0xc1,0x4,0x49,0x52,0x41,0x63,0xd7,0x1c,0x42,0xa1,0xff,0xab,0xc2,0xdb,0x97,0x38,0x42,0xa4,0x2f,0x14,0x40,0x25,0xbc,0xad,0x42,0xfc,0x3b,0x2a,0x41,0x7f,0xed,0x1b,0x41,0x49,0xf4,0x45,0x42,0x3a,0x9e,0x15,0x42,0x6a,0x7c,0xa3,0xc1,0x9d,0xf7,0x3a,0xc1,0xcc,0xb1,0xab,0x42,0x24,0x79,0x30,0xc2,0xc,0x61,0xbc,0x41,0x7f,0x28,0x35,0x41,0xa7,0x31,0x18,0x42,0xaa,0xd,0x83,0xc1,0x33,0x76,0x1,0x41,0xf8,0xe0,0x2c,0xc2,0xec,0x49,0xf5,0xc0,0xa,0x9c,0xc8,0xc0,0x20,0xa1,0xc,0xc1,0x16,0xfa,0xa9,0x41,0x13,0xba,0x82,0xc2,0x93,0x3a,0xbd,0xc0,0x58,0x7e,0x8,0xc2,0x84,0x8c,0xe7,0xc1,0x3c,0x5c,0xd2,0xc0,0xd8,0xc0,0x53,0x41,0x90,0x62,0xab,0x42,0xca,0x91,0xd6,0x41,0x79,0x2b,0x2e,0x41,0xe4,0xe5,0x92,0xc1,0xe6,0x63,0xed,0x40,0xd4,0x8c,0x3,0xc2,0x56,0x2d,0xbe,0xc1,0x7c,0x51,0x67,0xc2,0xc4,0x73,0x50,0x42,0xda,0x2c,0x30,0xc1,0xfb,0xca,0x0,0xc2,0x39,0xef,0x19,0x41,0x58,0x96,0xf0,0xc0,0xe,0xd9,0x94,0xbf,0xbc,0x36,0x1c,0x41,0x89,0x3f,0xc1,0xc1,0x4a,0x3c,0xeb,0xc1,0xfc,0x9c,0x4,0xc1,0x9a,0xb3,0x6f,0xc0,0xb5,0x91,0x55,0xc1,0x74,0xf6,0x7d,0x42,0x82,0x57,0x11,0xc2,0x20,0xdf,0xb4,0xc2,0x2f,0x45,0x7,0xc2,0xbc,0xee,0xfd,0xbe,0xa2,0xab,0xa5,0x41,0x5c,0x9b,0x54,0xc2,0x69,0x3d,0x96,0x40,0xe4,0x3c,0x3,0xc2,0x8a,0x7a,0xbf,0xc1,0xd6,0x3a,0xf7,0xc0,0x85,0xad,0xb,0xc2,0xbb,0x54,0x4,0xc2,0x86,0x3e,0x5e,0x41,0x42,0x2b,0x77,0xc1,0x66,0xef,0xb2,0xc0,0x4c,0x4a,0x49,0xc1,0x5c,0x43,0xcd,0xc1,0xff,0x2b,0x8a,0xc1,0x53,0xe7,0xff,0x41,0xe7,0xc,0x29,0x42,0x63,0x74,0x22,0x42,0xbe,0x62,0x29,0xc2,0xfa,0xe7,0x30,0x42,0xc2,0x39,0xd9,0xc1,0xd2,0x16,0x5f,0x42,0x52,0x47,0x20,0xc2,0x76,0x4c,0x91,0xc2,0x9f,0x7e,0xe2,0x42,0x94,0x36,0xd4,0xc2,0xb5,0x1,0x97,0xc2,0x18,0xa5,0x7a,0x41,0xd4,0xb9,0x64,0x42,0x1,0x83,0xd8,0xc0,0xf8,0x16,0x3,0x40,0x31,0xee,0xab,0x41,0x92,0x41,0x85,0x40,0xd8,0x8a,0x6d,0xc2,0x3a,0x68,0x45,0xc2,0x42,0x1b,0x65,0xbf,0x18,0x84,0x70,0x42,0xe0,0x64,0x91,0x40,0x91,0x4,0xe6,0x41,0xa7,0xb2,0xf0,0xc0,0x10,0x1c,0xc6,0x40,0xcb,0xb2,0x68,0xc1,0x30,0xa1,0x52,0x41,0x72,0xbf,0xc9,0x41,0x5a,0x49,0x50,0xc2,0x7d,0xfc,0xb1,0x42,0xb9,0x34,0x16,0x42,0x30,0xed,0x6c,0x41,0x63,0x32,0x5a,0x42,0x93,0xa7,0x5c,0xc2,0x8a,0x1e,0xac,0x41,0xf2,0xca,0xa1,0x3f,0x18,0x26,0x89,0x3f,0x1c,0x49,0xe,0xc2,0x6a,0xae,0x91,0x40,0x2c,0x49,0x44,0xc2,0x50,0xe6,0x34,0x42,0xe,0xb2,0xe5,0xbf,0x73,0x3b,0xcc,0xc1,0xe5,0x89,0x24,0x42,0xa9,0x70,0x53,0x41,0xd7,0x8c,0x80,0xc2,0xec,0xe6,0xc,0x41,0x94,0x28,0xfe,0x41,0x6d,0x3a,0xc4,0xc1,0x7d,0xd3,0xe1,0x41,0xc2,0xfc,0x4b,0x41,0x72,0x84,0x3b,0xc2,0x90,0xbc,0x48,0xc2,0xde,0x71,0xb2,0x42,0x43,0x46,0xe8,0x41,0x51,0x82,0xe6,0x42,0x24,0xba,0xc6,0xc1,0x4f,0x24,0x84,0x41,0x21,0x2a,0x9e,0x42,0x4b,0x95,0xc6,0x41,0xf9,0x6d,0x4d,0xc2,0x4c,0x8b,0x8c,0x42,0x2c,0x1b,0x64,0x42,0xb5,0xf,0x79,0x41,0xe0,0xac,0x6,0x42,0xdd,0xd3,0x98,0x41,0x16,0x5,0x8d,0x41,0x90,0xb3,0x9e,0xc1,0x90,0x3c,0xc4,0xc1,0x3f,0xea,0x8d,0x3f,0x9e,0x7b,0x3a,0xc1,0x6b,0x4,0x8a,0xc2,0x1c,0x1e,0x1b,0x42,0xe4,0x83,0x19,0x42,0xf2,0x5e,0x88,0xc2,0xc4,0x52,0x82,0xc1,0x91,0x56,0x8f,0x40,0xd9,0xcd,0x43,0x42,0xcf,0xe,0x9b,0x42,0xdb,0xd3,0x4b,0xc2,0x6e,0xbf,0x1f,0xc2,0x74,0xc5,0x92,0x41,0x24,0x7a,0x80,0xc2,0x99,0xda,0xbc,0xc1,0x66,0x23,0x93,0x42,0x2,0x7f,0xb,0xc2,0x8c,0xd4,0x8e,0x42,0xbb,0xf8,0x2b,0xc2,0x5,0xc0,0xc7,0x42,0xf5,0x24,0xce,0x42,0xe1,0xe6,0xe,0xc2,0x7c,0x6c,0xd3,0x41,0x38,0x9a,0x52,0x40,0x4a,0xcd,0x56,0x42,0xae,0x7f,0x5,0x42,0x4,0xe6,0x7,0xc1,0x6,0xc4,0xf,0xc1,0x80,0x42,0xa7,0x41,0x70,0xe2,0xfd,0x41,0x28,0x39,0x5c,0x3f,0xe6,0x6,0x15,0xc1,0x5a,0xbf,0x9c,0x42,0x1e,0x3f,0x30,0xc1,0x46,0x25,0xac,0xc2,0x25,0x3e,0x30,0x41,0x54,0xc2,0xa9,0x42,0x9e,0x72,0xeb,0x42,0x20,0xac,0xb3,0x42,0x80,0x93,0xa,0x42,0xa0,0x3,0xd2,0x41,0x3,0xc8,0x5f,0x42,0xad,0x9b,0x1,0x42,0x8,0xf7,0xd6,0xc2,0xf4,0x8c,0x9d,0x41,0x98,0xf9,0x73,0xc1,0x2f,0xba,0xbb,0x41,0xa8,0xa,0x3e,0x42,0xa2,0x36,0x2,0x42,0x68,0xf1,0xba,0x41,0x7e,0xf,0x49,0xc1,0xcb,0xbb,0xa7,0xc1,0x9a,0x2b,0xca,0x41,0xaf,0x44,0x0,0xc2,0x51,0x68,0x19,0x42,0x50,0x44,0x2,0x41,0x7a,0x7c,0x33,0x41,0xe,0x24,0xc1,0xc2,0x13,0x6f,0x84,0x42,0x48,0x33,0x4c,0xc0,0x1b,0x82,0x46,0xc1,0x96,0x79,0x3b,0xc1,0x78,0xb,0x6,0xc2,0x7b,0x44,0xc6,0x41,0xdd,0xf6,0x73,0xc2,0xe5,0x8a,0x85,0xc2,0x64,0x5c,0x55,0xc1,0x2d,0xdc,0xef,0x3f,0x73,0xf5,0x12,0xc1,0x22,0x3a,0x99,0x42,0xb,0x57,0x3a,0x42,0xe6,0x64,0xbd,0x41,0x4,0xef,0x30,0x42,0x4a,0x86,0x3f,0xc2,0xec,0xd6,0x67,0x41,0x8f,0xa1,0x91,0xc2,0xf5,0xa8,0x31,0x42,0x7b,0xe6,0xf,0xc2,0x96,0x57,0xa4,0xc1,0x78,0xe9,0xc5,0x3f,0xd9,0x80,0xf9,0xc1,0x43,0x85,0xa6,0xc2,0x91,0xa1,0x9,0xc0,0x61,0xe2,0x96,0x41,0x7b,0x20,0x7,0x41,0x8f,0xe2,0x86,0x42,0x30,0x23,0x6a,0xc2,0xf8,0x16,0xfc,0xc0,0x6d,0xac,0xd1,0x3f,0xe2,0xce,0x9d,0x42,0xf3,0x33,0xe9,0x41,0x89,0x41,0xb4,0x42,0x8f,0xd7,0xb,0x42,0xe0,0xa2,0x42,0xc2,0xac,0xb5,0x7e,0x42,0xf,0xe9,0x56,0xc2,0xe,0x4b,0xce,0x41,0xc2,0xce,0x48,0x42,0x27,0xae,0xd,0x42,0xb6,0x5,0x78,0xc1,0xe1,0x22,0x95,0xbf,0x38,0x4a,0x2c,0x42,0x71,0x57,0xf,0xc2,0x91,0xed,0x96,0xc1,0x2e,0x97,0x9b,0xc1,0x35,0x9d,0x8,0x41,0x49,0x4b,0x8a,0xc1,0x45,0xf4,0xdc,0xc0,0x7f,0x74,0x46,0x41,0x78,0x56,0x24,0x42,0xc6,0x7f,0x7,0xc2,0xe,0x63,0x14,0xc0,0xe4,0x4f,0x9f,0xbf,0x35,0x1e,0x85,0x41,0x9c,0x62,0xf8,0xc0,0x6d,0xa8,0x88,0x42,0xb6,0x4c,0x82,0xc1,0x9b,0x9c,0xa3,0x41,0xe9,0x5b,0xcd,0x41,0x39,0xaa,0xaf,0xc1,0x17,0x39,0x4b,0xc2,0x10,0xb9,0x5c,0xc2,0xe1,0xa2,0x7c,0x41,0x79,0x73,0x73,0xc2,0xa2,0xea,0x85,0xc2,0x86,0x4a,0x20,0x42,0xd0,0xcb,0x94,0x42,0xeb,0x58,0x4f,0xc2,0xbb,0x50,0xa6,0xc1,0x23,0xc8,0x9e,0x41,0x9e,0xaa,0x9a,0x41,0x67,0x9f,0x9e,0xc2,0x23,0x5,0xa2,0x41,0x46,0x2f,0x1f,0x40,0x88,0x2a,0xa6,0xc2,0x78,0xb8,0x5f,0xc1,0x30,0xb2,0xfb,0xc0,0xd8,0x8a,0xd4,0x41,0x70,0xff,0x2d,0xc2,0x4b,0x8c,0x3c,0x42,0x62,0x49,0xde,0x40,0x44,0x21,0x29,0x42,0xc4,0x7f,0x5,0x42,0x2f,0x88,0xf1,0xc1,0x54,0xf6,0x68,0x41,0x5c,0x3,0x80,0xc0,0x3b,0x58,0xb8,0xc1,0x88,0x22,0x54,0xc2,0x30,0x30,0x19,0xc2,0xc1,0xb4,0x75,0xc2,0x26,0x18,0x30,0xc1,0xb0,0x99,0x65,0x40,0xbb,0x3,0x19,0x42,0x90,0xe2,0xad,0x42,0x78,0x77,0x25,0xc0,0x34,0x64,0x2a,0x42,0x40,0xe5,0x68,0x41,0xe,0x43,0xaa,0x41,0x25,0xf9,0x5f,0xc1,0x48,0xc0,0xbb,0xc2,0x42,0x5f,0xe3,0x40,0x2c,0xa6,0x4c,0x40,0xe8,0x49,0x21,0xc1,0xd1,0xb4,0x17,0x42,0xf7,0x28,0xb3,0xc1,0x3e,0x6b,0xc3,0x40,0x7e,0x58,0xfa,0xc0,0x4f,0x32,0xd8,0x41,0x55,0x28,0x1,0x42,0xc6,0xb0,0x11,0x42,0xda,0x73,0x49,0xc1,0x2c,0xbc,0x9f,0xc2,0x1c,0xad,0x3d,0xc2,0x5,0x83,0x85,0x42,0xd2,0x2f,0x22,0xc1,0x64,0x59,0x30,0xc2,0x60,0xe4,0x0,0xc2,0xe3,0x79,0x98,0xc2,0x92,0xc6,0xeb,0x40,0xf5,0xd1,0x5b,0xc2,0x97,0x3d,0x9,0x41,0x98,0x38,0xb,0x41,0x4e,0x7c,0x64,0x41,0x9e,0x1c,0x8a,0x42,0x6a,0x1f,0xcb,0x41,0x64,0x74,0xc9,0xc1,0x9f,0xa6,0x2d,0x42,0xcc,0xf5,0xb3,0x41,0xae,0xbc,0x58,0xc2,0xc2,0xa4,0x53,0x42,0x8c,0x10,0xe1,0xc1,0x77,0x2d,0xa8,0x40,0x3e,0xe6,0xb0,0xc1,0xc4,0x6c,0xb6,0xc1,0x3e,0xdc,0xd6,0xc1,0xc0,0x3a,0x4e,0xc0,0x44,0xf6,0xfd,0xc1,0xe0,0xe,0x5,0xc2,0x73,0x60,0x1c,0x42,0x93,0x33,0xa3,0xc1,0x28,0x12,0x50,0xc2,0xb3,0xa4,0x7a,0xc1,0x44,0xd7,0x97,0xc2,0x67,0x29,0xc3,0xc2,0x36,0xe3,0x9e,0x41,0xc4,0x57,0x8,0xc2,0x4f,0x59,0x97,0xc1,0xf5,0xef,0x49,0xc1,0x2,0x10,0x88,0xc1,0x3a,0x42,0x81,0x41,0x72,0xaa,0x2f,0x41,0x3e,0xc2,0xcf,0x42,0x95,0x6f,0x52,0xc2,0x3,0xde,0x7e,0x42,0x4c,0x5e,0x5f,0x42,0xb3,0xd1,0x6c,0xc1,0x86,0xfc,0x4,0xc2,0xeb,0x78,0x9b,0xc1,0xff,0xe,0x24,0x42,0xac,0x45,0x12,0xc1,0x5e,0xfd,0xb7,0xc1,0xc,0x7e,0x7a,0xc2,0x8e,0x7c,0xa,0x42,0x79,0x2b,0x50,0x42,0xff,0xa6,0x9d,0xc1,0x68,0x7d,0x1,0xc2,0x41,0xe,0x73,0x42,0x1c,0xd1,0xa6,0x41,0x5e,0xb5,0xe9,0xc2,0x2e,0x2b,0x25,0x42,0x62,0xbc,0xa4,0x40,0xd3,0x9d,0xa2,0x41,0x8e,0x64,0xd,0x41,0x8d,0xad,0x2c,0x42,0x97,0xb5,0x27,0x41,0xf2,0xd6,0xf2,0xc0,0xe6,0x18,0x2a,0x42,0x11,0x45,0xa0,0x41,0x12,0xd0,0x68,0x41,0x4a,0x12,0x70,0x42,0xc3,0x4d,0x47,0xc2,0x42,0x6a,0x70,0x41,0x70,0xe5,0x83,0x41,0x1f,0x55,0xf,0xc2,0x1e,0x40,0xa0,0x42,0x9f,0xd9,0x89,0xc2,0x3f,0x53,0x3e,0x42,0x3b,0x25,0x8b,0x42,0x28,0x48,0x84,0x42,0x6e,0xab,0x28,0xc2,0xe5,0x54,0x3a,0x42,0xc2,0x48,0x97,0xc1,0x6c,0xa7,0x46,0xc2,0xe4,0x2,0xe8,0xc1,0xb,0xe8,0xda,0xc0,0x7f,0xcd,0x1f,0x42,0x3,0xde,0x19,0x42,0x5e,0xd2,0x49,0x42,0xa7,0xac,0xc4,0xc1,0x85,0x86,0xa9,0xc1,0xd2,0xca,0xaf,0xc1,0xd0,0x73,0xc,0xc0,0x68,0x7e,0xf2,0xbf,0xb8,0xac,0x39,0x41,0x41,0xe4,0x50,0x42,0x90,0x5d,0x10,0xc2,0x7c,0x34,0xba,0xc0,0x11,0xbe,0x51,0x42,0x24,0x35,0x87,0x40,0xd1,0x59,0x43,0x42,0x3f,0xa5,0x59,0xc1,0x36,0x66,0x19,0xc2,0xc6,0xe9,0xa1,0x41,0xc4,0x15,0x34,0xc2,0x41,0xbd,0x8a,0x42,0x26,0x14,0x1f,0x42,0x5b,0xb6,0x9e,0xc1,0x54,0xe4,0x47,0xc1,0xc3,0xc1,0xa5,0x42,0x32,0x2a,0xcc,0xc1,0x2e,0x8f,0xf9,0xc1,0x4,0xb5,0xb8,0xc1,0xee,0xd7,0x12,0x42,0x44,0x57,0xc2,0xc1,0xc3,0x32,0x16,0x42,0x8f,0xe2,0x79,0x42,0x4f,0xee,0x6,0xc2,0xf1,0x24,0xf2,0xc1,0x2b,0x4c,0xbf,0x42,0x37,0xe2,0x97,0x41,0xbc,0xd,0x86,0xc0,0x3e,0xdd,0xcf,0x42,0x6c,0x9a,0x9d,0xc0,0xd4,0x0,0xda,0xc1,0x9d,0x4b,0xbf,0x42,0xd6,0xd4,0x46,0x41,0x67,0x64,0x97,0xc1,0x21,0xc2,0x9b,0xc2,0x93,0xe9,0x34,0x42,0xbf,0x6f,0xef,0xc1,0xb2,0x59,0x83,0xc1,0xaa,0x63,0x9e,0xc1,0x42,0xad,0x1b,0x42,0x17,0x67,0x1e,0xc2,0x7b,0x4b,0xe4,0xc1,0xd8,0x24,0x28,0xc2,0xd6,0xd8,0x1d,0xc2,0xbf,0x61,0x3,0xc2,0x4a,0xb2,0xfd,0xc0,0x1a,0x77,0xba,0x41,0x5a,0x33,0x22,0x42,0x8e,0x53,0x2a,0x42,0x7,0xa9,0xec,0xc1,0xe6,0x78,0xb1,0x3f,0xca,0x8d,0x2f,0xc2,0x45,0xd3,0x78,0x41,0x8a,0xae,0xc,0x42,0x48,0xcc,0xc3,0x41,0xa6,0xa3,0xb,0x42,0xe1,0x31,0xcf,0xc1,0xe0,0x1c,0x14,0x41,0xb3,0x16,0xad,0x41,0xf1,0xa,0xd0,0x41,0xf2,0xfa,0xdb,0x40,0x3a,0xf5,0x14,0xc0,0xac,0x54,0x20,0xc2,0xbf,0x26,0xce,0x42,0x6d,0xe8,0x1d,0xc2,0xfe,0xed,0xab,0x40,0xf0,0xbb,0x2a,0x42,0x52,0x94,0x72,0x41,0xad,0x1a,0x5f,0xc1,0xf6,0x46,0x12,0x42,0xb6,0xf9,0x86,0x41,0xcc,0x36,0x1d,0xc2,0xeb,0xb5,0xdd,0xc1,0x52,0x2b,0xaa,0xbf,0x98,0xae,0xb9,0xc1,0x8b,0x57,0x2f,0xc2,0x66,0xd5,0x13,0x42,0xe,0xf5,0x4a,0xc2,0x1d,0x1c,0x28,0x42,0x42,0x3a,0xb3,0x41,0xcc,0x3d,0xe8,0x41,0xda,0x2,0xb,0xc2,0x64,0x7f,0x6a,0xc2,0xf8,0xb3,0x67,0x40,0xf4,0x8c,0x84,0xc1,0x53,0xe6,0xa4,0xc1,0x6b,0xbd,0xc0,0xc1,0xb1,0xac,0x2,0x43,0x89,0x63,0xa0,0x41,0xcf,0x88,0x6a,0x41,0xe2,0x50,0x3b,0xc2,0x1a,0x83,0x0,0xc0,0x91,0x17,0x49,0x42,0x22,0x47,0xf5,0x41,0x5e,0xb8,0x6d,0xc0,0xa6,0x2d,0xb4,0xc0,0x20,0x18,0x17,0x42,0xd6,0x17,0x26,0xc1,0x9f,0x9d,0xa4,0xc1,0x4,0xb,0xd2,0x41,0x7,0x2,0x17,0xc2,0x32,0xb1,0x9a,0x42,0x4f,0x7e,0x2f,0x42,0x4a,0x2d,0xbb,0xc2,0x56,0x41,0x95,0x41,0xee,0x3e,0x91,0x42,0x82,0x5b,0x87,0x41,0x60,0xb0,0x6f,0x41,0x95,0xf6,0xd,0xc1,0x5f,0xfb,0x9d,0x41,0xd6,0x0,0x19,0xc2,0x3b,0xbb,0x46,0x42,0x5e,0x34,0x8f,0x40,0x99,0xd3,0x21,0xc2,0x41,0x5a,0x2e,0x41,0x34,0xd0,0x2e,0x41,0x74,0xa4,0x17,0xc2,0x7e,0x6,0xf9,0x41,0x2c,0x2c,0x8c,0x41,0xba,0xa7,0xa6,0x41,0x6c,0x28,0xba,0x41,0x60,0x45,0x7,0xc2,0xbd,0xb6,0x81,0xc2,0x4f,0x10,0xac,0x42,0xb0,0x89,0x4d,0x40,0x45,0xe8,0x8,0xc2,0x65,0xc2,0x93,0xc1,0x25,0x62,0x1a,0x42,0x96,0xa,0xa0,0x42,0x5b,0xf2,0x24,0x42,0xf7,0x35,0x89,0x42,0xce,0xd3,0x67,0xc2,0x7c,0xdf,0xbd,0xc1,0x1d,0xd1,0x8c,0xc1,0x71,0xb,0x2c,0x41,0x3c,0x4,0xd7,0xc1,0xf6,0x3a,0x3d,0x42,0xf2,0x42,0xf7,0xc0,0x5c,0x8a,0xa3,0x40,0x32,0x42,0xb0,0xc0,0xea,0x30,0x78,0xc2,0x22,0x54,0xc2,0x41,0x97,0x61,0xc2,0x41,0x98,0x26,0x73,0xc1,0xaf,0x7d,0x94,0x41,0xcb,0x4e,0x9e,0x41,0xe1,0xaf,0xe6,0x40,0x5,0x75,0x5d,0xc0,0x6a,0xd2,0x8b,0x42,0xc9,0xfc,0xf4,0xc1,0xf3,0xbb,0x8f,0xc2,0x89,0xea,0x2d,0x41,0x38,0x5d,0x55,0xc1,0x3,0x25,0x86,0xc2,0xe,0x1a,0x70,0x3f,0x5b,0xb2,0x41,0x42,0x50,0x84,0xfe,0xbe,0xca,0xc3,0x51,0x41,0xef,0xe1,0xa4,0xc0,0x4e,0x1a,0x8f,0x42,0x6c,0x30,0x89,0xc0,0x5b,0xa4,0x82,0x42,0x7a,0x2b,0xe,0xc2,0xfd,0xe9,0xaf,0x41,0x8,0x1d,0xc8,0x41,0xb0,0x57,0xf1,0xc1,0xd4,0xf7,0x1c,0xc0,0x6,0x62,0x63,0x41,0x76,0x53,0x3,0x42,0x19,0x22,0xb5,0xc2,0x14,0x65,0xfa,0xc1,0x0,0x75,0xb8,0x3e,0x40,0xc3,0x24,0x42,0x2e,0xb9,0xe2,0xc0,0x2f,0x39,0xa6,0x41,0xa3,0xef,0xcc,0x42,0x3c,0x4b,0x92,0x41,0x33,0x28,0x84,0x41,0xd2,0x35,0xa7,0xc2,0x64,0x7c,0xcd,0xbf,0x69,0x81,0x2a,0x41,0x3,0x42,0xdb,0x41,0x28,0xd2,0xb,0x40,0xda,0x24,0xb7,0x41,0xba,0xa1,0xc9,0x41,0xa9,0x87,0xf4,0x3f,0x20,0x24,0x24,0x42,0x72,0x48,0x5e,0x41,0x6b,0x1d,0xe5,0x41,0x78,0x5,0x5a,0x41,0x21,0xb5,0x36,0x42,0xf4,0x6d,0x32,0x42,0x3b,0xa2,0x41,0xc2,0x31,0x14,0xbd,0xc2,0x7d,0x3f,0xc9,0x41,0x58,0x26,0x94,0x41,0xee,0xd9,0x29,0x42,0xbf,0x74,0x43,0xc2,0x52,0xa8,0xda,0x41,0x66,0xc0,0xc2,0xc1,0xb,0xd4,0x47,0x42,0xeb,0x18,0x1a,0xc1,0xd4,0xfb,0xee,0x41,0xb4,0x44,0x9c,0x40,0xcc,0x35,0x9d,0x42,0xb7,0x37,0x2e,0xc2,0x43,0xe7,0xcb,0xc2,0xbc,0x8,0xd,0xc2,0x7d,0x9,0x18,0x41,0xfe,0xc6,0xbc,0x41,0x3c,0x6,0xb3,0x40,0xa6,0xbc,0x32,0x41,0xf1,0xfa,0x87,0x42,0xd4,0x44,0xe4,0x41,0x1,0x8f,0x13,0x42,0xd7,0x7f,0x89,0x41,0x70,0x6c,0x62,0xc0,0x86,0x57,0x6c,0xc0,0x92,0x17,0x60,0xc2,0xf8,0xcd,0x5,0x3f,0x90,0xb0,0x9a,0xc2,0x17,0x73,0x86,0xc2,0x4d,0x1d,0x5f,0xc2,0x7a,0x9a,0x37,0xc2,0x7,0xd0,0xa3,0x41,0xcd,0x4e,0x6c,0x42,0x4d,0xdf,0x19,0x42,0x6,0x46,0x8,0x42,0x42,0x35,0x26,0x42,0x89,0x1b,0x91,0xc2,0x31,0x4,0x69,0xc2,0x14,0x91,0xc4,0xc1,0xa8,0x43,0xcf,0x40,0xa8,0xbb,0x9,0xc2,0xa7,0xa7,0x8e,0x42,0x43,0xec,0xd8,0x40,0xc9,0xe4,0x2b,0xc2,0x40,0x89,0x81,0xc2,0xca,0xc3,0x2a,0x41,0x28,0xd9,0x31,0xc0,0x82,0x16,0x15,0x42,0x7d,0x7,0xfd,0x40,0xe0,0x39,0x8e,0xc2,0xe4,0xa4,0x5d,0xc2,0x60,0x18,0x92,0xc1,0x81,0x90,0x9c,0xc1,0xbd,0xa9,0x89,0x42,0xf3,0xb2,0x21,0xc2,0x72,0x3a,0x5,0x42,0x61,0x88,0x5c,0xc1,0xe1,0x22,0xa,0xc2,0x6,0x76,0x52,0xbe,0xc8,0x31,0x20,0x42,0xf4,0x9c,0x7a,0xc2,0xe2,0x8,0x38,0x41,0x14,0x1d,0x1c,0xc2,0x8,0xeb,0x43,0xc2,0x25,0x5f,0x30,0xc1,0xa9,0x6f,0xa9,0x41,0xec,0xbb,0x7c,0x42,0x61,0x49,0xc5,0x41,0xb8,0x68,0x89,0x42,0x6c,0xf5,0x88,0xc2,0x2c,0xf9,0x42,0x41,0x39,0xbe,0x6e,0x42,0xaa,0xfd,0xa8,0xc2,0x22,0x73,0xf5,0x40,0xe5,0x2b,0x3c,0x41,0x1f,0x48,0x67,0x42,0x87,0xd3,0x1b,0xc1,0xb4,0x15,0xb0,0xc1,0xdf,0x20,0x14,0x42,0x5d,0xbd,0x12,0xc0,0x86,0xe4,0x5e,0x42,0xba,0x91,0xe2,0xc1,0x30,0xe1,0x0,0xc2,0x8e,0xa8,0xc4,0xc1,0x2c,0xe3,0xa3,0xc0,0x20,0xa8,0x5d,0xc1,0x76,0xfb,0x50,0x40,0xd7,0x36,0xed,0x41,0x6a,0x3d,0x68,0x41,0x2a,0x51,0xdc,0x41,0xc,0x30,0xd,0xc2,0xb9,0x1d,0x48,0x40,0x77,0x48,0x50,0x42,0x70,0x2f,0xa1,0x41,0xd,0x10,0x88,0xc1,0x46,0x71,0x11,0xc1,0xe4,0x2d,0x46,0xc2,0x4e,0x45,0xf4,0xc0,0x63,0x5f,0x7c,0xc1,0x7f,0x6c,0x1f,0x41,0x1,0xfd,0x44,0x41,0xb0,0xa6,0x4b,0xbf,0x79,0xf2,0x83,0x42,0x62,0xe6,0x2c,0xc2,0x2f,0xa8,0x81,0xc2,0x26,0x61,0x45,0x41,0xe0,0xac,0x18,0x41,0xf0,0x87,0xba,0x41,0x1f,0xc0,0xdc,0xc1,0x70,0xc4,0x9b,0x41,0x58,0x9c,0x5c,0xc2,0x8a,0x3d,0x1b,0x42,0x47,0x54,0xc1,0x40,0xca,0xdf,0x31,0x41,0x14,0xc7,0xbf,0x41,0x46,0x7d,0x18,0xc2,0x3b,0xc8,0xeb,0x41,0x63,0x1e,0xa8,0x41,0x8a,0xd7,0x36,0xc1,0x68,0xb8,0x9e,0xc1,0x19,0xc1,0x10,0xc2,0xc3,0xd7,0xbd,0x41,0xac,0x48,0xb3,0x41,0xe2,0x8e,0x4a,0x41,0x64,0x30,0xc0,0xc1,0xa6,0x73,0xdd,0xc1,0x1,0xb7,0x28,0xc2,0x98,0x3b,0x60,0xc2,0x49,0x2a,0xe,0xc2,0x3e,0xce,0xc7,0xc1,0x92,0x68,0x44,0xc1,0xb7,0xf0,0xb7,0x41,0xdc,0xe6,0x6f,0xc2,0xe,0xbc,0xc9,0x41,0x2,0xd0,0xad,0x41,0xc6,0x72,0xe3,0xc1,0x3c,0xad,0x92,0x41,0x6c,0x16,0x72,0xc0,0x68,0x95,0xc1,0xc1,0x82,0x40,0xbb,0x3f,0xad,0x13,0x92,0xc1,0x8,0xb1,0xda,0xc1,0x47,0xa,0x16,0xc2,0x9,0xb9,0x42,0x42,0xc5,0xa7,0xc9,0x41,0xd4,0xc5,0x30,0x41,0xe1,0x6f,0x13,0xc2,0xa4,0x73,0x14,0x41,0x20,0x3a,0x42,0xc2,0x20,0xe6,0x75,0x41,0x0,0xb,0xf8,0xc1,0xe0,0x4a,0x2a,0xc1,0x6,0x90,0x21,0x42,0xf,0xf1,0xbf,0x41,0x1f,0x57,0x36,0xc2,0xf0,0x1a,0x99,0x3e,0xf0,0xbf,0xd7,0xc1,0xe0,0xb1,0xc4,0xc1,0xf,0x44,0x84,0xc1,0xfa,0x84,0x3b,0xc1,0x62,0xeb,0x28,0x41,0xf6,0x68,0xc9,0x41,0xad,0x64,0xe5,0x41,0x41,0xc3,0xb9,0xc1,0xca,0x7,0xaf,0x40,0x8e,0xf8,0x44,0x42,0x77,0xb2,0x8a,0xc1,0x74,0xa,0x1f,0x3f,0x34,0x3d,0x60,0x40,0xd2,0xb6,0x47,0x42,0xda,0xe4,0x82,0xc2,0x15,0x1,0x86,0x41,0x5c,0xe4,0x84,0x41,0xcd,0xb5,0xcf,0xc1,0xa6,0xf3,0x15,0x42,0xba,0xb4,0x54,0x42,0xba,0x19,0x4d,0x41,0xc,0xae,0xfb,0xc0,0xa3,0x54,0xb3,0xc1,0x4a,0x40,0xdc,0xc1,0x74,0xec,0x45,0xc2,0x4,0x67,0x5e,0xc1,0xde,0xec,0x37,0xc2,0x17,0x74,0x12,0x42,0x4c,0x96,0xe7,0x41,0x3c,0x2b,0x6b,0x41,0x41,0xe5,0xce,0x40,0xd0,0x52,0x39,0x41,0x69,0x95,0xce,0xc1,0x42,0x1e,0x39,0x42,0x3e,0x88,0x83,0x41,0x30,0x5d,0x48,0xc1,0x1e,0x61,0x1f,0xc1,0xf5,0xc6,0xdd,0xc1,0xf9,0x6,0x1e,0xc2,0x44,0xec,0xe1,0xc1,0x84,0xc4,0x41,0x40,0xd7,0x89,0x1f,0x40,0x2b,0x80,0x16,0xc1,0xc6,0x40,0x99,0xc1,0xa0,0xa3,0xbc,0x41,0x13,0x91,0x11,0xc2,0x98,0xb1,0x60,0x41,0x87,0xb5,0x1e,0x42,0x27,0x6e,0x10,0xc2,0xda,0x7f,0xee,0x41,0x52,0xd3,0x23,0xc2,0xa8,0x10,0x52,0x42,0xd,0x27,0x36,0x42,0xc,0xea,0xf,0xc2,0xdc,0xc7,0xd4,0x40,0x22,0x48,0xd,0xc1,0xd4,0x18,0x6c,0x42,0xa9,0x10,0x7e,0x42,0xe9,0xe1,0x59,0xc2,0xa0,0xf7,0x13,0xbf,0x12,0x66,0x52,0x42,0xcb,0xcd,0x49,0x42,0x6b,0x96,0x8c,0x42,0x60,0x74,0x80,0x41,0x46,0x52,0xe0,0x42,0x2,0x71,0x82,0x41,0x3b,0xda,0xff,0x41,0xc0,0x4b,0x51,0xbe,0x38,0xcb,0x66,0xc1,0x84,0xdd,0x22,0xc2,0x6a,0x9d,0xf2,0x41,0x77,0xf9,0x85,0xc0,0x11,0x9,0xc,0xc1,0xd,0x29,0x9b,0x41,0x10,0x75,0xe1,0xc1,0x2c,0xc5,0xe8,0xc0,0xf0,0x76,0x71,0x41,0xc5,0xb3,0xfb,0x41,0x1c,0x4b,0x8,0x41,0xaa,0x8e,0x4e,0x42,0x2c,0x9a,0xd5,0xc1,0x5,0xec,0x3a,0x42,0x56,0x79,0xc3,0xc0,0x98,0x9a,0x81,0x41,0xdc,0x4a,0xe2,0xc1,0x3,0x9d,0x8c,0x41,0xf7,0x4d,0xef,0x41,0xa2,0x15,0x57,0x42,0x9c,0x4,0x93,0x42,0xb5,0x57,0x24,0xc2,0xf0,0x55,0x11,0x41,0x5b,0x49,0x35,0xc2,0x2d,0xa1,0x87,0x41,0x86,0x56,0xca,0xc1,0x1b,0xad,0x1,0x41,0x5a,0x6,0x9f,0xc1,0x38,0x6b,0xe,0xc2,0xa7,0x62,0x75,0x42,0x3a,0x89,0x69,0xc2,0xda,0x4f,0x41,0x42,0x32,0x10,0xaf,0xc1,0xe4,0x7,0x5d,0xc1,0x52,0xe4,0x2f,0x42,0x9d,0x63,0xb8,0x41,0x6a,0xff,0x3c,0xc1,0x32,0xd0,0x71,0x42,0xa8,0x4f,0x84,0xc1,0x87,0x5d,0xf3,0xc1,0x6c,0xa0,0x7c,0xc1,0x7c,0x3a,0x4f,0x41,0x34,0x9c,0xe1,0x40,0xaf,0xf8,0x84,0xc2,0xe6,0x22,0x7,0xc1,0x11,0x5d,0x2a,0xc2,0x9c,0x4a,0xa,0xc0,0xbc,0xd0,0xe2,0x41,0x81,0x97,0x18,0x42,0x78,0x3,0x91,0x40,0x12,0x65,0x89,0x41,0x3d,0x18,0x39,0xc1,0xcb,0xde,0xa2,0xc1,0x2b,0xe2,0x9b,0xc2,0x93,0xde,0xb5,0xc1,0x6d,0xc7,0x24,0x42,0x60,0xd2,0xf9,0x3e,0xb0,0x56,0x33,0x42,0xa9,0x1c,0x3c,0xc2,0x37,0x11,0x0,0x42,0x34,0x11,0x49,0x42,0x6a,0x2d,0xc5,0x40,0x33,0x85,0x42,0x40,0x5d,0x5c,0x2b,0x41,0xb2,0xdd,0xcf,0x40,0xa9,0x71,0xb3,0x41,0x70,0x5a,0x99,0xc1,0x5d,0x23,0x38,0x42,0x6e,0x4f,0x65,0x42,0x7e,0xc6,0x9a,0xc1,0x50,0x7f,0x8b,0xc1,0x90,0x1,0xfb,0x3f,0xfc,0xa7,0xe9,0x40,0xcf,0x2d,0x30,0xc1,0x2f,0xb4,0x27,0x42,0x3e,0x46,0x74,0x40,0xfb,0x46,0x30,0xc1,0x44,0xfc,0xd7,0xc1,0xb5,0x71,0xc7,0x41,0x74,0xd2,0x88,0x41,0x12,0x8a,0x6,0x42,0x16,0x73,0x5e,0x41,0x38,0x99,0xed,0x41,0x54,0xe5,0xc0,0x40,0x9e,0x0,0x70,0xc1,0x78,0x4b,0xab,0x41,0xb7,0xb6,0x17,0xc2,0xa6,0x1f,0x85,0x41,0x8a,0xbe,0x7,0xc1,0x10,0x1b,0xe1,0xc0,0x8d,0xee,0x45,0x41,0xb1,0xde,0x8,0xc2,0x88,0x12,0xb8,0x41,0x88,0x7c,0x64,0xc1,0x23,0x16,0xeb,0x41,0x38,0x9,0x36,0xc2,0x17,0xce,0x7b,0x42,0x30,0xb,0x13,0xc1,0x36,0x13,0x97,0xc1,0xb,0xb0,0xf9,0xc1,0x7f,0xb8,0xe,0x42,0x68,0x3a,0x11,0xc2,0xd,0x6d,0xde,0xc1,0x6d,0x6c,0xcd,0x41,0x26,0x4,0x41,0x40,0xc8,0x89,0xac,0x40,0xd3,0x98,0x2b,0xc2,0xa9,0x9c,0x4d,0x42,0x79,0x7b,0x11,0xc1,0xa8,0x59,0xfe,0xc1,0x6c,0x8f,0x54,0x41,0x59,0xf0,0xc3,0x41,0xa2,0xf9,0x88,0xc1,0xe0,0xb8,0xd,0xc2,0xad,0x60,0x7a,0x42,0xa2,0x5f,0xd9,0xc1,0xe7,0x7c,0xab,0x41,0x5,0x0,0x5d,0xc2,0x45,0x86,0xa9,0x41,0x0,0xf2,0x85,0x40,0xa7,0x17,0xf0,0x41,0xcb,0xaf,0xd0,0xc2,0x1d,0x95,0xcb,0x41,0x25,0x6e,0x11,0xc2,0xb8,0xa8,0xab,0x41,0x7f,0xc2,0x4a,0xc1,0x9f,0xdf,0x9c,0xc1,0xba,0x42,0x34,0x41,0xc3,0x1e,0xc5,0xc1,0x4b,0xaa,0xe4,0x41,0x82,0xd8,0xcb,0xc1,0xe8,0x67,0xf0,0xc1,0x44,0x1b,0x9,0xc2,0x96,0x98,0xf3,0x41,0x95,0x5d,0x53,0xc2,0x12,0x9d,0xc8,0xc1,0x8c,0x56,0x39,0xc0,0x4c,0x11,0x1e,0xc2,0x9c,0x77,0x13,0x41,0xe8,0x1c,0x5,0xc2,0xdc,0xc9,0x3,0x40,0x8b,0x83,0x3d,0x42,0x89,0xbe,0xac,0xc2,0x21,0x76,0x44,0xc2,0x1f,0x4b,0x51,0x42,0xa8,0x8a,0xe,0xc1,0xfd,0xe9,0xec,0xc1,0x6c,0xcc,0x46,0xc1,0xdc,0xb9,0xd5,0xc1,0x6f,0xc2,0x6,0xc2,0x78,0x77,0x1c,0xc2,0xb8,0xbd,0x21,0xc1,0xb7,0x76,0x18,0xc2,0xc5,0xb0,0x1,0xc2,0x47,0x5c,0x28,0x42,0x5b,0x6a,0x89,0x41,0x60,0xa9,0xcf,0xbd,0x8f,0x61,0x1c,0x42,0xb9,0x27,0x3c,0x42,0xd7,0xc9,0xe5,0xc1,0xab,0x7d,0x40,0x42,0x66,0x42,0xee,0x41,0xb1,0x18,0x22,0x42,0x30,0xe,0x1d,0x40,0xfb,0xdf,0x38,0xc2,0x7e,0x52,0x1b,0xc1,0x76,0x4,0x62,0x42,0x6,0x41,0x91,0xc1,0x3d,0xc7,0xa4,0x41,0xc3,0xa7,0x68,0xc0,0x17,0x43,0x2f,0xc1,0x56,0x56,0xe3,0xc0,0x2f,0x6,0x8,0x42,0xcc,0x83,0x30,0xc2,0x3d,0xb1,0x1f,0x41,0x57,0xda,0x16,0x42,0x3b,0x45,0xa7,0xc0,0x9a,0x5a,0xb4,0x41,0x47,0x44,0x1e,0xc2,0xe7,0x46,0x50,0x41,0x30,0xf2,0x7e,0xc1,0x7a,0xb9,0xb2,0x40,0x8b,0x66,0x34,0xc1,0x77,0xf6,0x24,0x42,0x8d,0xd4,0x9b,0x41,0xea,0xb8,0xd3,0xc1,0x85,0xfb,0x44,0xc2,0xe9,0xc3,0xd7,0xc1,0xb6,0x72,0x17,0x42,0x10,0xba,0x6,0xc2,0xc7,0xe7,0xd5,0xc1,0x53,0xbe,0x9a,0xbf,0xc4,0x90,0x77,0x41,0xa9,0x66,0xf2,0xc1,0xa6,0xfe,0x56,0x41,0xbd,0x9b,0x91,0xc2,0x56,0xe4,0xb5,0x40,0x57,0x12,0x13,0x42,0x64,0xa9,0x7d,0xc0,0xf3,0xab,0x0,0xc1,0xba,0xf7,0x9,0xc2,0x52,0x3d,0xa6,0x40,0x30,0xc1,0x32,0x42,0x31,0x85,0x89,0xc1,0xe6,0x66,0xaa,0x41,0x7b,0xb5,0x97,0x41,0x53,0x23,0x94,0x42,0x5c,0x15,0x0,0xc1,0xe6,0x16,0x31,0x42,0x5b,0xde,0x9e,0x41,0x18,0x51,0xf,0xc1,0xa,0xd6,0xb4,0x41,0x27,0xdd,0x4c,0xc1,0xb3,0xad,0xe3,0x41,0x86,0xd2,0xfd,0xc0,0xbd,0x22,0x8f,0x41,0x41,0x71,0x68,0xc2,0x52,0xd,0x64,0x41,0xda,0x6f,0x29,0x40,0x50,0x21,0xb2,0x41,0x3e,0x54,0xd3,0xc1,0xfc,0x9,0xe8,0x41,0x8e,0x29,0x0,0x42,0xc4,0xa0,0xe3,0xbf,0x5f,0xe9,0x25,0x42,0x65,0xc8,0x18,0x42,0x74,0x16,0x7,0xc2,0xc0,0xef,0x7e,0x40,0x2,0xe8,0x9a,0xc2,0x76,0xfc,0x34,0xc1,0x26,0x9e,0x57,0x42,0x6d,0x1d,0x4d,0xc0,0x57,0x85,0xb6,0x41,0x76,0x1b,0xc5,0xc1,0xcd,0xcc,0xb1,0x40,0xb2,0x9b,0xd5,0x40,0xe9,0xe1,0x82,0x41,0x6a,0x41,0x87,0xc2,0xfd,0xad,0xc5,0x41,0x4a,0x8a,0x33,0x42,0x9a,0xd4,0xdf,0x40,0xc6,0x45,0xe,0xc2,0x6e,0x97,0x9f,0x41,0x40,0xf7,0x23,0xc2,0xf4,0xb9,0x8,0x42,0x81,0xff,0xd1,0x41,0xd0,0x3f,0xb6,0xbf,0x90,0x48,0xa6,0xc0,0x62,0x29,0x38,0x42,0x43,0xa8,0x4f,0x42,0xf9,0x12,0x70,0x42,0xb6,0x8b,0x1,0xc1,0x74,0xa4,0x45,0xc0,0x4b,0x3,0xac,0x41,0x66,0x61,0x27,0xc2,0x8f,0x6e,0x8f,0x40,0xfa,0x43,0x86,0x41,0x8d,0x85,0xce,0x41,0xf0,0x4a,0xf5,0xbf,0xf1,0x25,0x36,0x42,0x41,0x7e,0x96,0x41,0xdb,0x6a,0xd2,0xc1,0x57,0x24,0xe4,0xc0,0x3c,0xcf,0x91,0xc1,0x84,0x8,0x74,0xc1,0x84,0xc7,0x31,0x42,0xf0,0xc4,0x3f,0xc1,0x37,0x84,0xfe,0xc1,0x36,0xc,0x40,0xc2,0x30,0x21,0x2,0x3f,0x16,0x55,0x4f,0xc0,0xa6,0x91,0x59,0x41,0x5a,0xab,0xdc,0x40,0x3b,0x2a,0x14,0x40,0x38,0xa9,0x4c,0x42,0xf9,0x94,0x8c,0x3f,0xd6,0xb9,0xc,0xc2,0xa6,0xf5,0x95,0x40,0x95,0x7c,0x1e,0x41,0xa0,0xa8,0x3c,0x3e,0x3b,0x38,0xce,0xc1,0xee,0x80,0x4f,0xc2,0xa4,0xea,0x76,0xc2,0xe4,0x85,0x16,0x41,0xd,0xb8,0xf4,0xc1,0xca,0xb2,0xd4,0x41,0x1b,0xfb,0x9,0x42,0xf2,0x58,0xb7,0x41,0xa,0xc6,0xb8,0xc1,0xee,0xde,0x1,0xc1,0x1e,0x63,0x4d,0xc2,0x33,0x9e,0x82,0x41,0x85,0xdd,0xa1,0x40,0xc2,0x4c,0x99,0xc0,0xc8,0x15,0x80,0x41,0x2e,0xc0,0xcd,0x41,0x19,0x78,0x8,0xc1,0x78,0x74,0xeb,0xc0,0xb5,0x3,0x85,0x40,0x43,0x31,0x1d,0x42,0xd7,0x8,0x73,0x41,0xcb,0xfb,0x1c,0xc2,0xe2,0xa8,0xb,0xc0,0x78,0x2f,0x2a,0x42,0xc,0xdb,0x44,0x41,0xa4,0x16,0x2e,0xc0,0xec,0xea,0x1e,0x42,0x3e,0x7e,0x2,0x42,0xb3,0x31,0xe9,0x41,0xe,0x67,0x6d,0xc1,0x19,0x7f,0xee,0x41,0x1d,0x6c,0x4f,0xc1,0xe6,0x9f,0x3f,0x41,0xa0,0x3f,0x5b,0xc2,0x1d,0xd5,0xfe,0xc1,0x71,0x5a,0x3f,0xc2,0x6b,0x64,0xdc,0x40,0x64,0x40,0xb,0x40,0x78,0xed,0xf4,0x41,0x65,0x8c,0x29,0xc2,0x2,0x79,0x20,0xc1,0x8c,0x55,0x17,0xc1,0x3a,0x6b,0x69,0x42,0xa4,0x7,0xa,0x42,0x64,0xb6,0xee,0xc0,0xac,0x93,0x34,0xc1,0x73,0x8a,0x90,0x40,0xc,0x76,0xad,0x41,0xba,0xe,0xb6,0x41,0x9e,0xd4,0xd0,0x41,0x8f,0x6a,0x21,0xc1,0xfd,0x63,0x4d,0x42,0x4e,0x36,0xb1,0x41,0xf5,0x74,0x7,0x42,0x65,0xb3,0x32,0x42,0x65,0xc,0xe2,0xc1,0x77,0xc8,0x77,0xc1,0x98,0x26,0x5e,0x42,0x6a,0x7d,0x10,0x41,0xc1,0xc7,0xef,0x40,0xc2,0x87,0x6c,0xc1,0xae,0x5b,0x6f,0xc2,0x40,0x58,0xe1,0x40,0x54,0x42,0x8c,0x3f,0x46,0x6b,0x38,0xc2,0x27,0x26,0xda,0xc0,0x55,0xa1,0x7d,0x42,0xdb,0x51,0x63,0x3f,0xce,0x0,0x82,0xc2,0x1b,0x42,0xa8,0xc1,0xba,0x16,0xd,0xc0,0xb5,0xa,0x7,0x42,0x33,0xb3,0xb8,0x41,0x40,0x7a,0xd1,0x41,0x7f,0x26,0x6c,0x42,0xae,0xa9,0x54,0x41,0xc3,0x7c,0xae,0xc1,0xf8,0xf0,0x3f,0xc1,0xd,0xe1,0xbe,0xc1,0xc4,0x1e,0x58,0xc1,0x6d,0xf5,0xb8,0xc1,0x5,0x61,0xb2,0x41,0x2c,0xee,0xa,0x42,0x86,0x9d,0x37,0xc0,0x9d,0xe1,0xe0,0xc1,0xde,0x5b,0x6c,0xc1,0xa0,0x3d,0xe3,0xc0,0x42,0x53,0x8f,0x41,0x2f,0x8d,0xe5,0x40,0x68,0x8f,0xfd,0x40,0x8b,0x41,0x19,0x41,0xae,0x3c,0x8f,0x41,0xb5,0x3e,0x23,0x42,0x52,0xe1,0x56,0x42,0xd1,0x15,0xbe,0xc1,0xcc,0x19,0xc8,0x40,0xc,0x5,0x92,0xc1,0xc8,0xc2,0xad,0x40,0x60,0x1d,0xd8,0xc1,0x80,0x42,0x32,0xc1,0x92,0xa5,0x87,0xc1,0x80,0xad,0x8c,0xc1,0x6c,0x6f,0x8c,0x40,0x3c,0x9,0x29,0x42,0xc5,0x60,0x40,0xc1,0x19,0x21,0x45,0x42,0xe1,0x5,0x92,0x41,0xb3,0x34,0x95,0xbe,0xf1,0x70,0xb6,0x40,0xe6,0xf,0xae,0xc1,0x36,0x5f,0x4e,0xc1,0xc8,0xad,0x7c,0xc2,0xc4,0xa3,0xac,0x41,0x80,0x47,0xdd,0xc0,0x8d,0x9,0x1d,0x41,0x59,0xe9,0x15,0xc2,0xd8,0x7d,0x4c,0x42,0x90,0x72,0xa2,0x41,0x2e,0xea,0x83,0xc0,0x12,0x2b,0xe9,0xc1,0x98,0x74,0x24,0x40,0xc,0x3e,0x1e,0xc2,0x22,0xb8,0x77,0xc2,0x85,0x61,0x56,0x41,0x5,0x68,0x4b,0xc1,0x5,0x5f,0xe1,0x41,0xc1,0xb0,0x1e,0xbf,0x5a,0x71,0x6,0x41,0xaa,0x91,0x26,0xc1,0xa,0x1,0xb1,0xc1,0xe6,0xa,0x3,0xc1,0x76,0x97,0xc5,0xc1,0xb9,0x3b,0x7,0x42,0xc1,0x52,0xc4,0x41,0x30,0x81,0x24,0xc0,0xb7,0x81,0xca,0x41,0x48,0x95,0x37,0xc2,0x94,0xe9,0x4,0xc2,0x44,0x17,0x1c,0xc2,0xad,0x5e,0x41,0x41,0xc8,0xa9,0x57,0x40,0x0,0xab,0xe1,0x41,0xa2,0x66,0xee,0xc1,0x30,0x4,0xac,0xc1,0x9e,0xf0,0xd8,0x40,0x70,0xf,0xb6,0xc1,0x26,0x71,0x7f,0xc1,0xcc,0x72,0x42,0x40,0x4e,0x45,0x7,0x41,0xc9,0xb6,0xce,0x41,0xba,0x86,0x1f,0x42,0x19,0x3d,0x2c,0x42,0x2c,0x51,0x2b,0xc1,0x2,0x9f,0xa0,0xc1,0xc4,0x29,0xa2,0x41,0x6f,0xa2,0xa8,0xc0,0x20,0x1c,0xd4,0x3e,0x4b,0xb2,0x9f,0x41,0x3b,0x84,0x9d,0xc2,0x1f,0xe,0xfb,0xc0,0xea,0x55,0xcf,0xc1,0x3,0x86,0xb6,0x41,0xfc,0x8a,0x2f,0xc2,0x36,0xc6,0x5a,0x42,0xbd,0xbe,0xcc,0xc1,0x50,0xb3,0x6c,0x40,0x48,0x9b,0x79,0x41,0x42,0xe5,0x7,0xc2,0x23,0x9e,0xfd,0xc1,0x34,0x75,0x35,0xc1,0xf8,0x36,0x1c,0x41,0x9b,0xc8,0x8f,0xc1,0xda,0x86,0x13,0x40,0xb1,0x8e,0x1c,0x41,0xd7,0xa5,0xf9,0x41,0xb4,0x23,0xdb,0x40,0x9a,0x38,0x11,0xc2,0x88,0x5,0x91,0xc1,0x4f,0xd3,0xcc,0x41,0x1c,0xc,0x4e,0xc2,0x1,0xc2,0x3f,0xbf,0x15,0x4d,0x97,0x41,0xd4,0xa4,0x82,0xc2,0x6,0xa5,0x8e,0xc1,0x40,0xc8,0xe4,0x41,0x3b,0x7a,0xd4,0x40,0xab,0x7d,0x92,0xc1,0xe3,0x7b,0x83,0xc0,0x6,0xc,0x9e,0x41,0xa,0xb,0xd0,0x41,0xa0,0x14,0xec,0x41,0xd,0x1b,0x35,0xc1,0x66,0xa7,0x6a,0x42,0xf2,0xc1,0x9e,0x40,0xc0,0x72,0x39,0x42,0xf6,0x79,0x2b,0xc1,0x2a,0xb2,0x6a,0x41,0x94,0xc4,0x5,0x42,0x21,0x37,0x96,0x41,0xb2,0x3e,0x5e,0x41,0x8c,0xca,0xcb,0xc0,0x10,0x7a,0x82,0xc1,0xc7,0xac,0xe,0x42,0x88,0xe0,0x86,0xc0,0x6,0xed,0x40,0x41,0x18,0x35,0xf4,0xc1,0x37,0xd1,0xc8,0xc1,0x24,0xa0,0x7f,0x42,0xa9,0xfb,0xa0,0xc2,0xda,0x11,0x49,0x42,0x20,0x9,0xd6,0x41,0x20,0xff,0x76,0x41,0x27,0x83,0x49,0xc2,0x7,0xe9,0x6f,0xc2,0x77,0xf9,0x5b,0xc0,0xf0,0x54,0x3,0xc2,0xc0,0x47,0x46,0xc2,0xda,0xf0,0xba,0x42,0x98,0x73,0x11,0xbf,0x24,0xa6,0x2f,0xc2,0x9f,0xb8,0xf7,0x41,0xe8,0x99,0x1,0xc1,0x1d,0xd5,0x3,0xc1,0x2c,0xdd,0x6,0x42,0xba,0x9d,0x66,0xbf,0x32,0xa2,0xe2,0xc0,0x57,0x77,0x47,0x42,0x23,0x61,0xe7,0x41,0x4f,0x1b,0x26,0xc2,0xc2,0x4b,0x14,0x42,0x38,0xd1,0xae,0xbe,0x38,0x68,0x12,0xc2,0x4,0x7c,0x92,0x41,0x3c,0xf0,0x3c,0xc2,0x9a,0xf3,0xbf,0xc2,0x0,0x44,0x38,0xc2,0xfc,0x62,0x41,0xc2,0x82,0x34,0x5c,0xc1,0xe2,0xf9,0x92,0x42,0x49,0x69,0x71,0x42,0xba,0x6b,0x1d,0x42,0xa9,0x1c,0x43,0xc1,0x13,0x58,0xe6,0xc1,0xd,0x34,0x1f,0xc2,0x7f,0x5c,0x28,0xc2,0x44,0xc1,0xce,0x41,0x70,0xf1,0x0,0xc2,0xf6,0xe7,0x25,0x42,0x4f,0x4b,0x7c,0x42,0x4e,0x95,0x1,0xc2,0x2a,0x5e,0x8e,0xc1,0x56,0x88,0x44,0x41,0x8d,0xc6,0xba,0xc1,0xee,0xf8,0x96,0x42,0x17,0x63,0x10,0xc2,0x1,0xd4,0x2b,0x41,0xef,0xb0,0xfd,0xc1,0xf0,0xef,0x2d,0x42,0xfa,0xd5,0xaa,0xc1,0x35,0x87,0xb9,0xc1,0xee,0xb6,0xba,0xc0,0xc6,0xe7,0xd9,0x41,0xec,0xbe,0xb8,0x40,0x4c,0x7e,0xe9,0xc1,0x22,0x26,0xc8,0xc1,0xb9,0xd4,0x34,0xc1,0xcc,0xa2,0xc,0xc2,0x59,0xad,0x56,0xc2,0xde,0xad,0xcb,0x41,0x12,0x65,0xc3,0x40,0xa,0x79,0x1c,0xc2,0xc2,0xee,0x25,0x41,0x3f,0xb4,0x5c,0xc2,0x90,0x1c,0xaa,0xc1,0xab,0x31,0x50,0x41,0xe6,0x70,0x18,0xc1,0xe,0x21,0xd6,0xc0,0x3b,0x30,0x1a,0x42,0xea,0xfe,0x9b,0x40,0x86,0x2c,0x35,0xc2,0xb8,0xc1,0x2e,0x41,0xb1,0x23,0x47,0x41,0xb4,0x33,0x7d,0x42,0xba,0xf,0x84,0xc2,0x38,0x83,0x0,0x42,0xf0,0x48,0x56,0xc1,0xd0,0xd3,0xcf,0xc1,0xde,0x76,0xfb,0x41,0x82,0x33,0x1d,0x41,0xbc,0xe2,0x3e,0xc2,0x3d,0x85,0x13,0x42,0x3c,0x43,0xae,0x40,0x4,0xcb,0x3f,0x40,0x5f,0x65,0x4,0x41,0xbf,0xf0,0x87,0xc0,0x55,0x10,0xaa,0xc1,0x80,0xee,0x27,0x41,0x6,0x4f,0x8b,0x42,0xec,0x8e,0x4b,0xc1,0xb6,0xaa,0xa0,0xc0,0xb4,0xf2,0x21,0x3f,0x17,0x8a,0xbd,0x41,0xc,0x87,0xc2,0x40,0x7,0x76,0xfc,0x41,0x7d,0x7d,0xe8,0x3f,0x1a,0x50,0x87,0xc2,0xda,0xfa,0x4,0x42,0xa8,0xce,0xc0,0x40,0x95,0x5b,0xa7,0x41,0x50,0xf0,0x39,0x42,0x16,0xf6,0x26,0x42,0x4d,0x31,0xa1,0x40,0xbe,0xfd,0x35,0x42,0x70,0x2c,0xb9,0xc0,0x84,0xc7,0x2a,0xc1,0x41,0x13,0x52,0xc1,0xe4,0x71,0x47,0xc2,0xa3,0xc3,0x53,0x41,0xd5,0xc6,0x34,0xc1,0x62,0xc2,0x1a,0xc1,0x87,0x48,0xfa,0xc0,0x53,0x2c,0xd0,0x41,0x10,0x3a,0x71,0x42,0x91,0xf1,0x44,0xc2,0xc3,0x82,0xa1,0x42,0xa,0x9c,0x24,0xc1,0x7a,0x83,0x14,0x41,0x48,0x95,0xf9,0xc0,0x8,0x81,0x8c,0x40,0xf2,0x58,0xb2,0x40,0x3b,0xc1,0xa8,0x40,0x72,0x5d,0x8e,0xc1,0x32,0xca,0x1c,0xc1,0xb,0xba,0x17,0x42,0xb7,0x1f,0x67,0xc1,0xc8,0xb6,0x12,0x42,0xa,0xce,0xe,0xc1,0xe4,0xcb,0xd0,0xc1,0xf4,0xeb,0x6d,0xc1,0xcc,0xaa,0xe0,0x41,0xb,0x37,0xda,0xc1,0xd7,0x7,0x93,0xc2,0x44,0x1c,0x95,0x42,0x39,0x4d,0x55,0x42,0x56,0x5,0x1c,0xc0,0xc5,0xd8,0xf8,0x41,0xae,0x11,0xdd,0xc2,0xb9,0xe8,0x5,0xc1,0x36,0xfb,0x25,0x42,0x7f,0x6b,0x73,0x41,0xb2,0x2,0x77,0x41,0xae,0x40,0x69,0x42,0x0,0x5d,0x13,0x42,0xa3,0x43,0xa0,0x41,0x8c,0x69,0xe4,0xc1,0x80,0xd1,0xa9,0x42,0x18,0x47,0xc9,0x41,0x68,0xad,0x8e,0xbe,0xa0,0xae,0xc9,0xc0,0xa9,0x44,0x99,0x41,0x1f,0x57,0xaa,0xc2,0xdf,0x93,0x91,0x40,0xe,0xe4,0x92,0xbf,0x9f,0x21,0x6c,0xc1,0x6e,0x8c,0x88,0xc0,0x32,0x2e,0x45,0x41,0x4e,0xd5,0x7a,0xc1,0x13,0xd0,0x88,0x41,0xbc,0x2f,0x5b,0x42,0x74,0xe,0x82,0x41,0x80,0x1c,0xbf,0x41,0x3c,0xd8,0xf5,0x41,0x14,0x73,0x5b,0xc1,0x8a,0xa,0x1e,0xc1,0x22,0x1a,0x76,0xc1,0xd0,0xe5,0x80,0x41,0x51,0x38,0x4b,0xc2,0xec,0xa0,0x52,0x41,0x8c,0x94,0x3a,0x42,0x1,0xf9,0xe6,0xc0,0x1a,0x6a,0x39,0x41,0xed,0xce,0x5f,0xc1,0x5e,0x46,0x21,0xc1,0xb2,0xf2,0xd1,0xc1,0xea,0x7a,0x50,0xbf,0xf6,0x77,0x47,0xc2,0xf3,0x40,0x38,0xc2,0x46,0xbc,0x36,0xc2,0xb7,0xdf,0x2e,0x42,0xe5,0xf6,0x38,0xc1,0x3,0x53,0xaa,0x41,0x4a,0x4,0x47,0x42,0xa2,0xc5,0x4d,0xbf,0xee,0xc4,0xca,0x41,0xd9,0x6e,0x8a,0x40,0x2b,0xa2,0x7d,0x42,0x0,0xfa,0x5c,0x42,0x6c,0xe,0x3f,0xc2,0xc3,0xb2,0x5f,0x41,0xf7,0x72,0x9c,0x41,0x52,0x66,0xec,0xc1,0xce,0x3e,0x93,0xc2,0x62,0x19,0x4,0xc1,0x49,0xaf,0xdc,0xc1,0x4,0xc3,0x5e,0xc2,0x5f,0xd4,0x41,0xc1,0x9a,0xe6,0x95,0x41,0xed,0x6e,0x91,0xc1,0xe,0x86,0x2f,0x40,0x4c,0xa0,0xfb,0x3f,0x2d,0xda,0x73,0xbf,0x2d,0x2c,0xae,0xc1,0xfc,0x65,0x84,0xc2,0x3b,0x12,0x79,0x42,0x5f,0x75,0xda,0x40,0xe5,0x57,0xa0,0xc1,0x15,0xbd,0x3,0xc1,0x81,0xff,0x50,0xc2,0x68,0x4f,0x44,0x42,0x6a,0x72,0x45,0x42,0x59,0x23,0x4e,0x3f,0x3c,0xea,0x7d,0x41,0xd8,0xff,0xd4,0x40,0x24,0xb2,0x8e,0xc0,0x83,0xb9,0x11,0x42,0x46,0x6e,0xea,0xc1,0x96,0x0,0xdc,0x42,0x5a,0xba,0x87,0x42,0x5b,0x2d,0x87,0x42,0x1a,0xb7,0x6a,0x42,0x7a,0x5f,0xc7,0xc1,0x89,0xb3,0x32,0xc1,0x10,0x64,0xa4,0x41,0x91,0x94,0xd1,0x40,0x41,0xa5,0xaf,0x41,0x17,0x76,0xf7,0xc1,0x0,0x79,0x3c,0xbe,0xc6,0xbc,0x8d,0x41,0xe9,0xcd,0x1,0x42,0x42,0x37,0xe7,0x41,0x2,0x3c,0xce,0xc0,0x93,0xb7,0x88,0x42,0xd2,0x4e,0x94,0xc1,0x19,0x3b,0x32,0x42,0x8e,0x95,0x86,0x42,0x50,0x34,0x7d,0x41,0xd2,0x86,0x2a,0x42,0x66,0x8c,0x35,0x42,0xd2,0xb0,0x93,0x42,0x5a,0x9f,0x88,0x40,0xb0,0xca,0x9c,0xbf,0x8e,0x7d,0x15,0x41,0x9,0xe5,0x8d,0xc1,0xb9,0x91,0x6,0xc2,0x9,0x1d,0x93,0x41,0x10,0x83,0x24,0x42,0x7a,0x5b,0x52,0x40,0xaa,0xe3,0xd1,0x41,0xe0,0x71,0xe6,0x3e,0xcb,0x1b,0x7e,0x42,0xd0,0x7c,0x19,0xc2,0x77,0xe1,0xb1,0xc1,0x8b,0xed,0xad,0xc1,0xc0,0xc7,0xf2,0x3f,0xf7,0xf9,0x43,0x42,0x75,0x9,0x39,0xc2,0xa2,0x50,0x65,0x42,0xd0,0x19,0xa1,0x42,0x4f,0x94,0x22,0xc2,0xb2,0x82,0x8,0x42,0x34,0xc4,0x66,0x3f,0x84,0x4f,0x12,0x42,0xed,0x33,0x8e,0x40,0x51,0x65,0x2,0xc2,0x89,0x36,0x59,0xc2,0xd8,0xe3,0x40,0x40,0xf8,0xa7,0xb2,0xc1,0x38,0xda,0x4f,0x42,0xbc,0x8f,0xca,0xc0,0x83,0xcf,0x96,0x41,0xa4,0x47,0x31,0xc0,0xb1,0x5,0x65,0x41,0xf3,0xb4,0x93,0xc2,0x54,0xc2,0x25,0xc2,0x86,0x7d,0xbb,0xc0,0xf3,0xaa,0x22,0x42,0xfe,0x4d,0x47,0x40,0xa6,0x1c,0xe4,0x41,0x3d,0x3b,0x72,0xc2,0x76,0xc0,0x8f,0xc1,0xf4,0x91,0xfa,0x41,0xc7,0x57,0x8c,0xc1,0x5d,0xce,0x18,0x41,0x37,0x31,0xf7,0xc1,0x96,0x58,0x1,0x41,0x4,0x4d,0x12,0x41,0xee,0x86,0xc9,0xc1,0x37,0xd1,0x33,0x42,0x90,0x37,0x52,0x42,0xbc,0x43,0x9d,0xc1,0x43,0x60,0x1,0xc1,0xc1,0x65,0x2a,0xc2,0xb2,0x33,0x1,0xc2,0x12,0x1,0x9a,0x41,0x92,0xd9,0x5f,0x42,0x51,0x4c,0xe9,0x41,0x38,0x25,0xa8,0xc0,0xea,0xd0,0x84,0x40,0x34,0x45,0xd3,0xc1,0xa6,0x65,0xfa,0x40,0x9a,0xa6,0xb,0x42,0x7c,0x77,0x81,0xbf,0x60,0xe4,0xac,0x41,0xe6,0x1b,0xf,0xc1,0xf0,0x9b,0xfb,0xc1,0xf4,0x8c,0x5b,0x40,0x6d,0x83,0xfc,0xbf,0x83,0x4c,0x8e,0x41,0x1f,0x5,0x8f,0x41,0x48,0x9,0x60,0x41,0x30,0xd2,0x9,0x41,0xea,0x90,0x34,0xc1,0xc0,0x4,0x84,0xbf,0x91,0x3c,0xb4,0xc2,0x24,0xab,0x93,0x40,0xbd,0xb5,0xb,0xc1,0x72,0xd4,0x35,0x42,0x55,0xf5,0x46,0xc1,0xc3,0x4c,0x23,0xc0,0xb4,0x96,0x5f,0xc1,0xef,0xe8,0x2f,0x42,0x51,0xef,0xe7,0xc1,0x3c,0x21,0xa7,0xc2,0xd6,0xd4,0x77,0x42,0xc8,0x11,0x4a,0x41,0x17,0x72,0xa3,0xc0,0x2c,0xb1,0xcd,0x3f,0xc4,0xdb,0xe5,0xc0,0x85,0x1a,0x6e,0x41,0x9e,0x78,0x7b,0xc1,0xd7,0xb7,0x4b,0x42,0xb4,0xa5,0x8,0x42,0xcf,0xf4,0x8d,0x41,0x66,0xfe,0x21,0xc1,0xe9,0xcc,0x6f,0x42,0x65,0xef,0x5a,0xc2,0xfc,0x8b,0x3c,0xc0,0x8c,0x13,0x1e,0x40,0xac,0x34,0x8f,0xc1,0x4e,0x5d,0x83,0x41,0x52,0xad,0x77,0xc0,0x2e,0xda,0x7c,0xc2,0xa5,0x9b,0x98,0x42,0xa3,0xf8,0xae,0xc1,0x9c,0xe3,0xc4,0xc1,0x8,0xd2,0x5c,0x42,0x42,0x82,0xad,0x41,0xc2,0x73,0x40,0x42,0xb4,0x4d,0x64,0x41,0xc9,0x7c,0x6,0xc2,0x1c,0x46,0x21,0xc2,0x71,0xcd,0x2b,0xc2,0xd6,0xb3,0x2,0x42,0x4,0x1e,0x91,0xc1,0x2c,0x26,0xca,0x41,0x2,0x4c,0xac,0x41,0xb5,0x66,0xd6,0xc1,0x76,0x93,0x3b,0xc2,0xc1,0xf1,0x9f,0xc1,0xb4,0x46,0x9d,0xc1,0xae,0xd0,0x39,0x42,0x2b,0x97,0x1d,0xc1,0xf4,0xd6,0xd1,0x3f,0x98,0x71,0xc8,0xc1,0xb6,0x85,0xd9,0xc1,0xf8,0xfd,0x2b,0x41,0x86,0x45,0x4,0xc1,0x83,0x7e,0xd4,0xc1,0xcf,0x6f,0x83,0x41,0xc0,0xf4,0xdb,0xc1,0x2a,0xb6,0xef,0xc0,0x26,0x87,0x24,0x41,0x98,0xd9,0x2e,0x3f,0xd5,0x38,0x7,0xc0,0xc3,0xd6,0x22,0x42,0xbb,0xf8,0x8a,0xc0,0x7e,0xed,0x1e,0x40,0x96,0x4c,0x34,0x41,0xdc,0x57,0xe8,0x41,0x1f,0x43,0x1f,0xc2,0xc,0x2,0x93,0xc1,0xae,0x8d,0x98,0xc0,0xca,0x73,0xaf,0xc1,0x9b,0x24,0x3f,0x42,0x91,0x9a,0x12,0xc2,0x3c,0xc,0xcf,0xbf,0x22,0xf,0xb2,0x40,0xfe,0x11,0xd9,0xc1,0x5f,0x3b,0xb,0xc2,0xd4,0x13,0xd8,0xc1,0x3b,0x92,0xeb,0x41,0xc2,0x76,0xa5,0xc0,0xa5,0x8a,0x1,0x42,0xe7,0x2b,0xe3,0x41,0x6b,0x7c,0xd9,0x3f,0xfd,0x72,0x12,0xc2,0x9,0xa1,0xf6,0xbf,0x2b,0x64,0x91,0x41,0x99,0xb7,0x40,0x42,0x4d,0x5b,0x69,0x42,0xef,0xe7,0x3b,0xc2,0x6d,0xe5,0xc9,0x40,0x9f,0xe4,0x0,0x42,0xab,0x97,0xd2,0xc1,0xa,0x35,0x18,0xc2,0x2,0xb3,0xf5,0xc1,0x3f,0xe9,0x7,0xc1,0xb6,0x44,0x9a,0xc2,0xab,0x17,0x80,0x42,0x6e,0x63,0xb0,0x40,0x58,0xc7,0x69,0xc2,0x4a,0x31,0x4b,0x41,0xfa,0x25,0xb8,0xc1,0xbc,0xca,0x42,0xc1,0x4b,0x91,0x15,0x42,0xfd,0x5c,0xb3,0xc2,0xb3,0xfb,0xb3,0x41,0xfd,0x20,0x7c,0x42,0xc4,0x3d,0xa5,0x3f,0xf7,0xef,0x12,0x42,0x3,0xbf,0xf7,0xc1,0x6a,0x2e,0xf3,0x41,0x27,0x3e,0x31,0x42,0xed,0x4d,0xb7,0x41,0x5a,0x99,0x11,0xc1,0x91,0x5b,0x79,0x3f,0xc1,0xb0,0x89,0x42,0x55,0xe0,0xff,0x41,0x74,0xc2,0xf7,0xc0,0x68,0xf4,0x2a,0x42,0x31,0xfc,0x3b,0x41,0x68,0x85,0x62,0x42,0xdc,0xda,0xb,0xc2,0x45,0x1c,0x1c,0xc2,0xa1,0x9b,0x3f,0x42,0xee,0x50,0x3a,0x40,0xe0,0x6a,0xb7,0x40,0x4a,0x9d,0xe7,0xc0,0xb,0xc2,0x6a,0xc1,0xaa,0xf0,0x12,0xc2,0xe0,0xec,0x9f,0x41,0xc4,0xc0,0x3c,0x40,0x0,0xeb,0xda,0x41,0xb2,0xa,0x9c,0x41,0xd2,0xa6,0x8b,0x42,0x54,0x3f,0x7a,0x41,0x1c,0x83,0x5e,0x41,0x6d,0x46,0x7c,0x42,0xc8,0x3b,0xca,0xc1,0x74,0xc5,0x57,0x42,0x32,0xa7,0xe8,0x41,0x53,0x7f,0xc4,0x41,0xc1,0x18,0xdb,0x40,0x5e,0xda,0x3f,0xc1,0xf1,0x84,0xc9,0x40,0x61,0x78,0xee,0x41,0x45,0x8c,0x38,0x42,0x52,0x72,0xa6,0xc0,0x35,0x20,0x8f,0x42,0xa0,0x82,0xb8,0x41,0xa4,0x5c,0x91,0xbf,0x90,0x30,0x17,0xc0,0xf3,0xf8,0x4b,0xc0,0x29,0x33,0xd8,0xc1,0x42,0xcd,0x1c,0x42,0xec,0x73,0xf9,0xc1,0xdd,0xe5,0xd4,0xc1,0x73,0xb9,0x37,0x42,0xb2,0xc0,0x83,0xbf,0x81,0xfc,0x5b,0x42,0x22,0xd7,0x8b,0x42,0xa2,0x6b,0x5,0xc2,0x5c,0x93,0xdb,0xbe,0xc1,0xe3,0x16,0x42,0xdc,0x2d,0xb4,0xc1,0x6,0x9d,0x18,0xc0,0x6f,0x6b,0x2c,0xc2,0x2d,0xfb,0x62,0x41,0x34,0x89,0xb9,0xc1,0x47,0xe9,0x4,0x41,0x46,0xb9,0xa7,0x42,0xdf,0xd8,0x46,0xc2,0x4c,0xe,0xb9,0x42,0x9a,0x59,0x4b,0xc1,0x3d,0xb5,0xb,0xc2,0x25,0x62,0x3b,0x41,0x4d,0xba,0x94,0xc1,0xab,0xcf,0x50,0xc2,0x3e,0x78,0x26,0x42,0x3c,0x1b,0x50,0xc1,0xaf,0x7b,0xbb,0xc1,0xaf,0xba,0x60,0x42,0x94,0xf6,0xc1,0x41,0xdb,0xbf,0xb8,0xc1,0x29,0x37,0x81,0x41,0xfd,0x2b,0x59,0x42,0x27,0xd5,0x33,0xc2,0x4d,0xb1,0xcb,0xc1,0x22,0xc0,0xae,0x41,0x37,0xd9,0x73,0x41,0x26,0xda,0x5c,0x42,0xf0,0xe6,0x3d,0x42,0x20,0xf4,0x69,0xc0,0x48,0x25,0xf0,0x3f,0x4c,0x81,0xd9,0xc1,0x8e,0x67,0x2f,0x42,0x2c,0x6c,0x6c,0xbf,0x60,0xc6,0x36,0x41,0x7e,0x49,0x14,0xc0,0xe5,0xbe,0x9e,0xc1,0x9e,0x1b,0x58,0xc2,0xd0,0x1d,0x9c,0x41,0x5a,0xaf,0xea,0x41,0x14,0x94,0x62,0xc1,0xd6,0x96,0xcc,0xc1,0x28,0x89,0x3e,0x42,0xb8,0x19,0x8a,0x41,0x73,0x3c,0x8f,0x40,0xbc,0x12,0x76,0x41,0x6c,0x20,0xe9,0xc0,0xa1,0xee,0xeb,0x41,0x66,0xe6,0x1,0x41,0x46,0xec,0x93,0xbf,0x81,0x9a,0x71,0x41,0x81,0x33,0xd2,0xc0,0xe3,0x1d,0x74,0xc1,0x9f,0x18,0x24,0x40,0xe,0x96,0xc9,0x40,0xdc,0x7c,0xbe,0xc1,0xac,0x74,0x53,0x42,0x88,0xa8,0x72,0x42,0x15,0x7f,0xe9,0xbf,0x80,0xf5,0xab,0x40,0xe0,0x50,0xa6,0xc1,0x9c,0x4f,0x17,0xc1,0x91,0x2c,0xed,0xc1,0xce,0xc5,0x1e,0xc2,0x3e,0xeb,0x20,0x42,0xd3,0x25,0xdd,0xc1,0x22,0xbc,0x1c,0x41,0xa9,0x10,0x81,0xc1,0x26,0xc4,0xec,0x40,0xdd,0xda,0x87,0xc1,0x28,0x18,0xae,0xc1,0x6,0x4e,0x80,0x40,0xf3,0x4c,0x7,0xc2,0xc3,0xc4,0xe2,0x41,0x2c,0x17,0xc0,0x41,0x8b,0x27,0x39,0xc1,0x66,0xff,0x57,0x41,0xf2,0x0,0x47,0xc2,0xad,0x84,0x88,0x41,0xd0,0xea,0x39,0x41,0x56,0x69,0xa,0x42 }); + Tensor *actual = NN_zeros(4, (size_t[]){ 1, 16, 16, 71 }, DTYPE_F32); + + cycles = read_cycles(); + NN_conv2d(actual, x, w, b, (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 1); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(x); + NN_delete_tensor(w); + NN_delete_tensor(b); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("nchw_to_nhwc: "); + + // [[[[-3.6866636 -1.0975718 -3.5210352 ] [ 3.8849897 2.385294 -2.120533 + Tensor *x = NN_tensor(4, (size_t[]){ 1, 2, 3, 3 }, DTYPE_F32, (uint8_t[]){ 0x4c,0xf2,0x6b,0xc0,0x3c,0x7d,0x8c,0xbf,0xa4,0x58,0x61,0xc0,0xac,0xa3,0x78,0x40,0xa8,0xa8,0x18,0x40,0xd0,0xb6,0x7,0xc0,0xde,0x3b,0x6a,0xbf,0xe9,0xd9,0xaa,0x3f,0xfb,0x81,0x8b,0xc0,0xc8,0x92,0x10,0x3e,0x56,0xa5,0x18,0x40,0x8e,0x62,0x20,0x3f,0xec,0x8b,0xeb,0xbe,0x92,0xba,0x4d,0x40,0x24,0x32,0xb,0x40,0x3a,0x3d,0x8e,0xc0,0x2,0x53,0x3c,0x40,0x92,0x64,0x7c,0xc0 }); + + + // [[[[-3.6866636 0.14118493] [-1.0975718 2.3850913 ] [-3.5210352 0.626 + Tensor *golden = NN_tensor(4, (size_t[]){ 1, 3, 3, 2 }, DTYPE_F32, (uint8_t[]){ 0x4c,0xf2,0x6b,0xc0,0xc8,0x92,0x10,0x3e,0x3c,0x7d,0x8c,0xbf,0x56,0xa5,0x18,0x40,0xa4,0x58,0x61,0xc0,0x8e,0x62,0x20,0x3f,0xac,0xa3,0x78,0x40,0xec,0x8b,0xeb,0xbe,0xa8,0xa8,0x18,0x40,0x92,0xba,0x4d,0x40,0xd0,0xb6,0x7,0xc0,0x24,0x32,0xb,0x40,0xde,0x3b,0x6a,0xbf,0x3a,0x3d,0x8e,0xc0,0xe9,0xd9,0xaa,0x3f,0x2,0x53,0x3c,0x40,0xfb,0x81,0x8b,0xc0,0x92,0x64,0x7c,0xc0 }); + Tensor *actual = NN_zeros(4, (size_t[]){ 1, 3, 3, 2 }, DTYPE_F32); + + cycles = read_cycles(); + NN_nchw_to_nhwc(actual, x); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(x); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("nhwc_to_nchw: "); + + // [[[[ 2.8086348 4.2102356 ] [ 0.46079934 -1.6898549 ] [-2.58273 -2.220 + Tensor *x = NN_tensor(4, (size_t[]){ 1, 3, 3, 2 }, DTYPE_F32, (uint8_t[]){ 0xac,0xc0,0x33,0x40,0x40,0xba,0x86,0x40,0xe4,0xed,0xeb,0x3e,0x2a,0x4d,0xd8,0xbf,0x73,0x4b,0x25,0xc0,0xb9,0x17,0xe,0xc0,0xea,0xf1,0x6b,0xbf,0x8a,0xaa,0x4,0xc0,0x80,0xd5,0x9e,0x40,0xd0,0x7,0xa,0xc0,0x44,0xdc,0x4,0x40,0x4c,0x5f,0x94,0xc0,0x4a,0x31,0x22,0x40,0x66,0x25,0x88,0x40,0xc8,0x65,0x65,0xc0,0xa8,0x4a,0xa3,0xbf,0x92,0x89,0x98,0x3f,0x7,0x28,0x99,0xc0 }); + + + // [[[[ 2.8086348 0.46079934 -2.58273 ] [-0.92166007 4.963562 2.075944 + Tensor *golden = NN_tensor(4, (size_t[]){ 1, 2, 3, 3 }, DTYPE_F32, (uint8_t[]){ 0xac,0xc0,0x33,0x40,0xe4,0xed,0xeb,0x3e,0x73,0x4b,0x25,0xc0,0xea,0xf1,0x6b,0xbf,0x80,0xd5,0x9e,0x40,0x44,0xdc,0x4,0x40,0x4a,0x31,0x22,0x40,0xc8,0x65,0x65,0xc0,0x92,0x89,0x98,0x3f,0x40,0xba,0x86,0x40,0x2a,0x4d,0xd8,0xbf,0xb9,0x17,0xe,0xc0,0x8a,0xaa,0x4,0xc0,0xd0,0x7,0xa,0xc0,0x4c,0x5f,0x94,0xc0,0x66,0x25,0x88,0x40,0xa8,0x4a,0xa3,0xbf,0x7,0x28,0x99,0xc0 }); + Tensor *actual = NN_zeros(4, (size_t[]){ 1, 2, 3, 3 }, DTYPE_F32); + + cycles = read_cycles(); + NN_nhwc_to_nchw(actual, x); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(x); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("conv2d: "); + + // [[[[-3.1635952 1.7389232 4.708226 ... -4.831943 -2.7696085 -1.648354 + Tensor *x = NN_tensor(4, (size_t[]){ 1, 12, 12, 16 }, DTYPE_F32, (uint8_t[]){ 0x58,0x78,0x4a,0xc0,0x9,0x95,0xde,0x3f,0xca,0xa9,0x96,0x40,0x36,0x32,0xbf,0xbf,0x80,0x83,0x3a,0xbd,0x18,0x74,0x9a,0xc0,0x5a,0x93,0x99,0xc0,0xfe,0x25,0x8b,0x40,0xf6,0xc6,0x87,0x40,0x5c,0xd,0xc3,0xbf,0x5f,0x11,0xfd,0xbf,0x14,0xb9,0xa5,0xbe,0x26,0x7a,0x14,0x40,0x47,0x9f,0x9a,0xc0,0x44,0x41,0x31,0xc0,0x48,0xfd,0xd2,0xbf,0x7c,0x48,0xb,0xc0,0xc8,0x41,0x7,0xbe,0x18,0x69,0x69,0x40,0x8f,0xbc,0x8b,0x3f,0x8,0xcc,0x90,0xc0,0x2f,0xfb,0x93,0x40,0x8e,0xd4,0x80,0x40,0xdc,0x81,0xc9,0x3f,0x39,0xa2,0x1c,0x40,0xad,0x3f,0xef,0x3f,0x6f,0x25,0x83,0x40,0x2d,0xe3,0x99,0xc0,0x5c,0x34,0x47,0xc0,0x34,0x8d,0x22,0xbf,0x4a,0x7b,0x73,0xbf,0x66,0x85,0x54,0xc0,0x90,0x70,0x99,0xc0,0x54,0x64,0x74,0xc0,0x3e,0xcd,0x46,0xbf,0xe2,0xd1,0x87,0x40,0x52,0x27,0x54,0x40,0xcd,0x79,0xb8,0x3f,0xed,0x89,0x44,0xc0,0x18,0xbc,0x0,0xc0,0xe8,0x9d,0xf6,0x3e,0xf,0x4e,0x94,0xc0,0x88,0xba,0x69,0xbe,0x12,0x25,0x82,0x3f,0x63,0xa7,0x90,0x40,0xb7,0xff,0xa7,0xbf,0x65,0xd,0x9d,0x40,0xe4,0x22,0xc1,0x3e,0xfe,0x2,0x5e,0xc0,0x45,0x38,0x97,0x40,0x66,0xb7,0x8a,0x40,0xab,0xd9,0x7c,0xc0,0x5e,0xa1,0x39,0xc0,0x8,0x2,0x19,0x40,0xee,0xe5,0x44,0xc0,0xac,0x95,0x59,0x40,0xa2,0xae,0x18,0xc0,0xfb,0xa1,0xc6,0xbf,0x16,0xb9,0xb7,0xbf,0x26,0xa5,0x98,0x40,0xb,0x6c,0xd8,0xbf,0xfa,0xe3,0x78,0xbf,0xe4,0x9f,0x41,0x40,0x33,0xf1,0x5a,0xc0,0xc0,0x4c,0xc5,0xbc,0xf9,0x2c,0x77,0xc0,0x36,0xad,0x93,0xc0,0x95,0x1e,0x92,0xbf,0x98,0x7f,0xd,0x3f,0x5f,0x71,0x88,0x40,0x4f,0x70,0x99,0xc0,0x33,0x28,0xb8,0xbf,0xbe,0x6b,0xa8,0x3f,0xbc,0xab,0xf1,0x3f,0x6,0xf6,0x3a,0x40,0x7d,0xa7,0x80,0xc0,0x83,0x76,0x9c,0xbf,0xe7,0xfc,0x93,0x3f,0xd2,0x41,0x80,0xc0,0x84,0x40,0x21,0x40,0xb4,0xaa,0x98,0xc0,0xde,0xac,0x47,0x40,0xc7,0x12,0xd0,0x3f,0x7f,0xca,0xb5,0xbf,0x25,0xa1,0xcf,0x3f,0x42,0x84,0x87,0x40,0xa4,0x67,0x6b,0x40,0xd4,0x18,0x42,0x40,0x16,0x48,0x3a,0xc0,0xe6,0xe8,0xb7,0x3f,0x27,0x24,0x70,0x40,0x52,0xc1,0x61,0x3f,0xb0,0xdc,0x53,0x40,0x5a,0x75,0x46,0xc0,0xb7,0xe9,0x60,0x40,0xd0,0xd5,0x29,0xbe,0xc0,0x8c,0x8f,0xc0,0x86,0xe7,0xa5,0xbf,0x5e,0x6a,0x8d,0x40,0x72,0x94,0xdf,0xbf,0xc,0xb1,0x5d,0xbf,0x2a,0x3,0x0,0xc0,0x2e,0xfe,0x2d,0xc0,0x88,0xc1,0x5d,0x3f,0x64,0x1f,0x42,0x40,0x90,0x5a,0x17,0x3f,0x4,0xe5,0x9d,0xbe,0x8c,0x16,0x94,0x3e,0xff,0xf6,0x6f,0xc0,0x78,0x9b,0x28,0xc0,0xe8,0x19,0x80,0x3e,0x32,0xc6,0x7f,0xc0,0x2a,0x7f,0x1e,0x40,0xec,0x18,0x43,0x3f,0x40,0xa6,0x57,0x3d,0xa4,0x48,0xa4,0xbe,0xae,0x22,0x87,0x40,0x19,0x5,0x92,0x40,0x62,0x3f,0x1c,0x40,0x3f,0xef,0x1e,0x40,0x48,0x29,0x1b,0xc0,0xb0,0xcf,0x2,0x40,0xd8,0x6f,0x58,0xc0,0xcf,0x4b,0xa,0x40,0xf4,0x39,0x63,0xc0,0x0,0xb,0xe0,0xbc,0x65,0xee,0x67,0x40,0x6a,0x7d,0x54,0x40,0x12,0x79,0x8d,0x40,0x88,0x51,0xda,0x3f,0x10,0x6f,0xf8,0x3f,0x63,0xa0,0xab,0x3f,0x24,0xab,0x69,0x40,0xbc,0xeb,0x27,0x40,0x33,0xd8,0xbc,0x3f,0x7c,0x4e,0xdf,0xbf,0x4f,0xde,0x1a,0xc0,0x12,0x3b,0x9e,0xbf,0x66,0xb7,0x18,0x40,0x71,0x30,0x2e,0xc0,0x58,0xda,0xae,0x3f,0x2,0xfc,0x8b,0x40,0xc0,0x7a,0x87,0x40,0x5e,0x99,0x6b,0xc0,0xfb,0x6b,0xb6,0x3f,0x3c,0x3d,0x51,0x40,0xd9,0x54,0x91,0xc0,0x72,0x84,0x4c,0x40,0x93,0x63,0x47,0xc0,0x28,0x60,0x67,0xc0,0x50,0xa5,0x7,0xc0,0xdc,0xb9,0xf0,0xbf,0x24,0x4d,0x4,0xc0,0x60,0x41,0xb8,0x3f,0xc7,0xef,0xf7,0x3f,0xdc,0xbb,0xf8,0x3f,0xf1,0xef,0x5c,0x40,0x86,0x77,0x4a,0xc0,0xba,0xec,0x97,0xc0,0x44,0x5b,0x80,0xc0,0x4b,0xe1,0x2f,0xc0,0xf2,0x5e,0x12,0xc0,0xbd,0x9c,0xc,0x40,0x53,0x92,0x67,0xc0,0xa,0xf7,0x69,0xc0,0xc3,0x5e,0x2b,0x40,0xee,0x9c,0x4b,0xc0,0x6e,0x14,0x70,0x3f,0x22,0xff,0x73,0xc0,0xf2,0x31,0xf4,0x3f,0x4e,0xf5,0x47,0x40,0x78,0x95,0x86,0xc0,0xbe,0xb2,0xd9,0x3f,0x5a,0xc4,0x27,0xc0,0x97,0x15,0x4b,0x40,0xb0,0xe7,0x8f,0x40,0xd6,0xfa,0x86,0xc0,0x15,0x64,0xef,0x3f,0x29,0x1c,0x58,0x40,0xa1,0x77,0x91,0x40,0xaf,0xae,0x71,0x40,0x1e,0xbd,0x7b,0x3f,0x20,0xa9,0x95,0x3e,0x67,0xdd,0x83,0x3f,0x1c,0xc7,0x3e,0xc0,0x8,0xca,0x7a,0xbf,0xd0,0xeb,0x9d,0xbd,0xec,0x7d,0x4a,0xc0,0x18,0x4,0x63,0xbe,0x0,0xa,0x2a,0xbf,0xe9,0xd,0xe0,0xbf,0xd6,0x91,0xc4,0xbf,0x24,0x59,0x9f,0xc0,0xb1,0x7a,0x98,0x40,0x98,0xba,0x1d,0x40,0x6c,0x59,0x67,0x40,0xb2,0x32,0x88,0xc0,0x16,0xa4,0x9c,0xc0,0xc,0xf9,0x6d,0x40,0x86,0xc5,0x60,0xbf,0x66,0x86,0x47,0x3f,0xe9,0x75,0x20,0x40,0xfc,0x96,0xa3,0x3e,0x60,0x91,0x29,0xbe,0xc2,0x24,0x3e,0x40,0x72,0xa4,0x7f,0x40,0x2f,0x5a,0xb2,0xbf,0xff,0x99,0x88,0xc0,0xc6,0x77,0x2f,0xc0,0x1a,0xae,0x64,0x40,0xe0,0x9a,0xde,0x3e,0xaf,0xff,0x88,0x40,0xa7,0xe1,0xdf,0xbf,0x84,0x9a,0x97,0xc0,0xb5,0xbf,0xc6,0x3f,0x38,0x5d,0x8,0xc0,0x92,0x50,0x3f,0xc0,0x58,0x80,0x47,0x40,0x0,0x7,0xb2,0x3e,0x18,0x99,0xda,0xbe,0xb4,0xd1,0x9b,0x40,0xb9,0x61,0x8b,0x40,0x19,0xb5,0x82,0xc0,0xc8,0x14,0x93,0xc0,0x7e,0x3d,0x1e,0xc0,0x60,0x74,0x78,0xc0,0x6c,0x36,0x28,0xc0,0xbc,0xe3,0x57,0x40,0x51,0xed,0x54,0xc0,0x9e,0xbe,0x92,0x40,0xd4,0xae,0xc7,0x3f,0xb0,0x61,0x5e,0x3e,0x92,0xf1,0x5a,0x3f,0xf9,0x15,0x87,0x3f,0x63,0xec,0xcd,0x3f,0x8b,0x20,0x82,0xc0,0x30,0x18,0xb2,0xbd,0x40,0x48,0x54,0x40,0xf4,0xf5,0x9e,0x40,0x9c,0x6d,0x87,0xbe,0xe4,0x98,0x64,0xc0,0xca,0x10,0x13,0x40,0x45,0x64,0x92,0xc0,0xbf,0x9c,0x8e,0x40,0x5b,0xad,0x44,0x40,0xe9,0x21,0x10,0x40,0xba,0xd7,0x2e,0x3f,0x1e,0x9e,0x68,0x40,0x58,0x44,0x1,0xc0,0x19,0x74,0x85,0xc0,0x54,0xe4,0x30,0xc0,0x20,0x20,0x6e,0x40,0x64,0xee,0x1f,0xc0,0x69,0x28,0x7f,0xc0,0x12,0x2f,0x8c,0x3f,0x1e,0xc7,0x46,0xc0,0x0,0xb8,0x58,0xbe,0x4,0x1c,0x4b,0xc0,0x30,0x39,0x87,0x3f,0xf2,0xf5,0x50,0xbf,0xa6,0xe2,0x28,0x3f,0x8b,0xea,0x13,0x40,0xe4,0xb,0x4e,0xc0,0xb4,0x34,0xda,0xbf,0x4,0x62,0x55,0xc0,0xbf,0x3c,0x85,0x40,0x8a,0x26,0xe5,0xbf,0xd6,0x5,0xf1,0x3f,0x5d,0xb4,0x93,0x3f,0x5f,0xda,0x9d,0xc0,0x6d,0x2c,0x63,0xc0,0xe0,0x7a,0xa4,0xbf,0xa5,0x50,0x75,0xc0,0x18,0xae,0x29,0x40,0xd3,0x26,0x49,0x40,0x80,0x48,0x16,0xbc,0x5c,0xbb,0x1c,0x3f,0xeb,0xa7,0xa8,0x3f,0xa8,0xdc,0xd4,0x3f,0xe2,0x93,0x77,0xbf,0xc,0xd4,0xfb,0xbf,0x3e,0xdd,0x45,0xc0,0x30,0xe0,0x4b,0x3e,0x16,0xa,0x7d,0x40,0x18,0x1b,0x1f,0xbf,0xa,0xac,0x89,0x40,0x15,0xdd,0xdf,0x3f,0xac,0xa6,0x24,0xc0,0x1f,0x97,0xf8,0x3f,0x5c,0x2d,0x0,0x40,0x24,0x6b,0xe,0xc0,0x22,0x5c,0x60,0xbf,0x8c,0xee,0x4,0xbf,0x45,0xec,0xe1,0x3f,0xfe,0xb1,0x79,0x40,0x5c,0xc1,0x8c,0xbf,0x12,0x16,0x50,0x40,0xd7,0x8a,0x2c,0x40,0x9,0xa3,0x8a,0xc0,0x6c,0xef,0x69,0x40,0xa8,0x5f,0x4f,0xbe,0x50,0xfe,0x76,0x40,0x52,0x42,0x79,0x40,0x60,0xef,0x9a,0xc0,0xdf,0x3f,0x85,0xc0,0xe2,0xb3,0x11,0xbf,0x43,0xa8,0xcd,0x3f,0x50,0xb6,0x4b,0xbf,0xd2,0x8,0x9a,0xc0,0x9b,0x10,0x2e,0x40,0x6,0xfc,0x36,0xc0,0xbf,0x45,0x11,0x40,0xc4,0x6,0x62,0x40,0x5e,0xdd,0xd7,0xbf,0xf5,0xb7,0x40,0x40,0x42,0x36,0x2a,0x3f,0x82,0xeb,0xc8,0xbf,0xac,0x11,0xa6,0x3e,0xfd,0x25,0xe6,0x3f,0x48,0xcd,0x23,0x40,0xa8,0x9f,0x37,0xc0,0x1d,0x2f,0x6f,0x40,0x2,0x59,0x17,0xc0,0x5,0xd4,0x89,0xc0,0x82,0x55,0xa,0xc0,0xd0,0xa6,0x8d,0xc0,0x4b,0x33,0xb3,0x3f,0x24,0x57,0xac,0x3e,0x80,0x53,0x79,0xbe,0xb7,0x92,0x58,0xc0,0xf8,0xb0,0x28,0x40,0xe8,0x9f,0x51,0x3f,0xdd,0x9f,0xa0,0xbf,0xe6,0xc7,0x62,0x3f,0xb5,0xb8,0xe1,0x3f,0x1c,0x41,0x40,0xc0,0x42,0x55,0xb8,0xbf,0x70,0x51,0x11,0xc0,0xae,0x9c,0x8d,0x40,0x35,0x40,0x9e,0x3f,0x4,0x80,0x71,0xc0,0x6a,0xfe,0x61,0x40,0x2c,0x3f,0x4b,0xbf,0xb8,0x32,0xb0,0x3e,0x58,0x9d,0x25,0x3f,0x3c,0x7e,0x15,0xbf,0x7d,0x78,0x97,0x40,0x4b,0x9d,0xa,0x40,0xe7,0xca,0x89,0x3f,0x9b,0xad,0xe8,0xbf,0x47,0x4d,0x93,0x3f,0xce,0xfe,0x68,0xc0,0xff,0x45,0xdd,0xbf,0x1e,0x41,0x22,0x40,0xf2,0x78,0x9d,0xc0,0x28,0xcf,0x0,0xbe,0x8c,0xe1,0xeb,0xbf,0x71,0x7c,0x23,0x40,0xc6,0xe2,0x47,0xc0,0xd6,0x8c,0x5d,0x3f,0xf7,0x81,0xb8,0xbf,0x1,0x3b,0x86,0x40,0xb0,0xfe,0x3e,0xbf,0x53,0xae,0x69,0xc0,0xdc,0xd4,0xc6,0xbf,0x3e,0x96,0x61,0x40,0x43,0x8,0xf5,0x3f,0x51,0x7,0x89,0x3f,0x85,0x8a,0x47,0x40,0x88,0x25,0xf7,0x3f,0xc,0x1d,0x24,0xbf,0xf6,0x7b,0x29,0xc0,0xfe,0x1c,0x99,0xc0,0x2,0xe4,0x19,0x40,0xf2,0x8d,0x79,0x40,0xf1,0x9b,0xf4,0xbf,0xbf,0xd3,0xf,0xc0,0x12,0xb1,0x5c,0x3f,0x54,0x87,0xec,0xbe,0x9c,0xb3,0x75,0x40,0x50,0x44,0xb1,0xbd,0x28,0x38,0x1a,0xbe,0x1,0xc0,0x94,0xc0,0x35,0x57,0xc3,0x3f,0x80,0x55,0x8e,0x3c,0x3f,0xfc,0x96,0x3f,0x4e,0xa4,0x43,0x40,0xa2,0x22,0x8,0x40,0x0,0x9,0x1c,0x3c,0x98,0x3d,0xc5,0xbe,0xce,0xa0,0x21,0xc0,0x56,0x7c,0x90,0x40,0xd6,0x2c,0x85,0x40,0x80,0xf7,0xa5,0xbc,0x12,0xd0,0x9f,0x40,0xfe,0x7f,0x8c,0x40,0x70,0xf8,0x37,0x40,0x55,0x7e,0x24,0x40,0x29,0x60,0xfd,0x3f,0x18,0x89,0x60,0xbf,0xe0,0x66,0xfe,0x3e,0xf6,0x2a,0x82,0x40,0x76,0xac,0x57,0xbf,0x80,0xbc,0xc7,0x3f,0xc8,0x8b,0xce,0xbf,0x42,0xe,0x52,0x3f,0xf6,0xd9,0x39,0x40,0xac,0x4,0x47,0x40,0xa,0x95,0x1c,0x40,0xa0,0x44,0x18,0x40,0xcc,0xa3,0x99,0xbf,0xcb,0xb1,0x91,0x40,0xbd,0xd4,0x60,0x40,0xe5,0x77,0x97,0x40,0xb7,0x5d,0x81,0xc0,0xd6,0x1,0x11,0xc0,0x3a,0xdb,0x84,0xc0,0xc4,0xc6,0xe2,0x3e,0x83,0x82,0x74,0x40,0xc9,0xb5,0x5a,0xc0,0xb,0x7f,0xa7,0x3f,0x10,0xe6,0xcc,0xbd,0xe1,0xf7,0x94,0xc0,0x78,0xe,0x49,0xbe,0x7a,0x49,0x16,0xbf,0x30,0x34,0x1b,0xc0,0x32,0xb3,0x47,0xc0,0x4b,0x2e,0x3d,0x40,0xb8,0x5a,0x3,0xbf,0x38,0xb0,0x7d,0xbf,0x5e,0xef,0xb1,0xbf,0x4e,0xa9,0x23,0xbf,0xe,0x87,0xb0,0xbf,0xa4,0xb4,0x3f,0xc0,0xfc,0x87,0x8,0x40,0x70,0x61,0x97,0xbd,0xc5,0x14,0x8f,0xc0,0xd1,0xb0,0x20,0xc0,0x3b,0x92,0x82,0xbf,0x7c,0x1b,0xf4,0xbf,0x41,0xfa,0x96,0x3f,0x23,0xaf,0x95,0x40,0xea,0xf3,0x66,0xc0,0x90,0x42,0x96,0xbd,0xca,0x5,0x8b,0x40,0xd8,0x87,0x3a,0xc0,0xd8,0xc1,0x79,0xc0,0x2d,0xb4,0xaa,0x3f,0x40,0x9e,0x6e,0xbd,0x80,0xf4,0x85,0xbd,0xca,0xa,0x49,0x40,0xa3,0xe7,0x88,0xc0,0xa,0x72,0x3f,0xc0,0x31,0x18,0x5e,0x40,0xf6,0xa7,0x60,0xc0,0xd0,0xd8,0x2b,0xbf,0xfa,0x90,0x14,0x40,0x4e,0xc1,0x2e,0xc0,0xe4,0x25,0x78,0xc0,0xbc,0x18,0x3f,0xc0,0xe8,0x21,0x6e,0xc0,0x16,0x1c,0x89,0xc0,0xc2,0xc5,0x51,0xbf,0xe,0x85,0x94,0xc0,0x45,0xa2,0x42,0xc0,0x3c,0xed,0xbc,0x3e,0x6e,0xfd,0x94,0x40,0x24,0xc4,0x9d,0x40,0x49,0xbd,0x85,0x40,0x7c,0xb4,0xd,0x3f,0x2b,0x3f,0x47,0x40,0x5b,0x18,0xc8,0xbf,0x22,0xbd,0x4d,0xc0,0xa6,0x97,0x20,0x40,0x9c,0x7a,0xfc,0x3f,0xd3,0x45,0xe1,0x3f,0x37,0xe8,0x14,0x40,0x87,0xd2,0xa0,0xbf,0x25,0x67,0x6b,0x40,0x8e,0x65,0x2e,0x40,0x7c,0x3b,0xb,0xc0,0xd3,0x2c,0x6b,0x40,0xbf,0xa4,0xe6,0x3f,0xc8,0x83,0x2e,0x3e,0x20,0xd2,0x99,0x3d,0x96,0x85,0x89,0x40,0x60,0x58,0x26,0x3e,0xac,0x12,0xe1,0x3f,0x38,0x86,0x69,0x40,0xac,0x5f,0x8a,0x3e,0x69,0xf2,0x90,0x40,0x2,0x6b,0x3d,0xc0,0xc8,0x1e,0xfa,0xbe,0xc8,0x3,0xcf,0x3e,0xc,0xd2,0x8a,0x3e,0x8c,0x99,0x68,0xc0,0x45,0xaf,0x98,0x40,0xe2,0x8f,0x33,0xc0,0x92,0xf7,0x66,0x40,0x81,0x51,0xff,0xbf,0x91,0x79,0xfe,0x3f,0x5e,0x52,0x30,0xc0,0xda,0x5b,0xb,0xc0,0x64,0xbb,0xa8,0x3f,0xd2,0xc,0x5c,0x40,0x2c,0xbf,0xcd,0xbe,0x58,0x2,0xf0,0x3f,0x8a,0x83,0x30,0xc0,0x32,0x4e,0xca,0x3f,0x8,0xd1,0xf,0xbf,0x15,0xd1,0x91,0xbf,0xc5,0x8d,0x1d,0x40,0xa0,0x71,0xd4,0xbf,0x64,0x6e,0x43,0xc0,0xf7,0x89,0xb5,0xbf,0x2c,0x95,0x1f,0x40,0xf8,0x2b,0x99,0x40,0xe0,0xa2,0x90,0x40,0xea,0x87,0x5f,0x40,0x66,0x7b,0x45,0xc0,0xa,0xe2,0x8e,0x40,0x92,0x45,0x2,0x40,0x44,0x82,0x63,0x3f,0x46,0x82,0x39,0xc0,0x66,0x3,0x2a,0xc0,0xbc,0x1b,0xa5,0x3f,0x90,0xfa,0xe2,0xbe,0x8c,0xcd,0xb4,0xbf,0xba,0x43,0x74,0xc0,0xe,0x60,0x88,0x40,0x4e,0x22,0xc6,0x3f,0xf0,0x2f,0x28,0x3f,0x84,0x85,0xf0,0x3e,0xc2,0x31,0x2c,0x40,0xae,0xf9,0x40,0xc0,0xf0,0x74,0x4c,0xbe,0x6b,0x39,0x8d,0x40,0xba,0xb0,0x46,0xbf,0xb6,0xfe,0x88,0xc0,0xc6,0xe5,0x3e,0xc0,0xb2,0x63,0x46,0x40,0xac,0x84,0x28,0x40,0x92,0xde,0x5c,0x40,0x4c,0x30,0xe2,0xbf,0xea,0xc8,0x14,0xc0,0xd5,0x73,0x8d,0xc0,0x64,0x9f,0xb0,0x3e,0x83,0x56,0x8a,0xbf,0xa9,0xce,0x97,0x40,0x6e,0x29,0x10,0xc0,0x60,0x56,0x4b,0xc0,0x92,0xc5,0x1,0x40,0x61,0x82,0xe9,0xbf,0x4c,0xac,0xed,0xbe,0x42,0x9d,0x9f,0x40,0x28,0x97,0x47,0x40,0x62,0x78,0x9f,0xc0,0x98,0xed,0x76,0x3e,0x88,0x21,0x21,0x3e,0x8,0x7b,0x9c,0x40,0xf2,0x53,0x8a,0xc0,0x3e,0xfe,0x44,0x40,0x68,0x1b,0x9d,0xc0,0x6c,0x49,0x9d,0xc0,0xf8,0x8,0x24,0xc0,0x8b,0x7,0x99,0xc0,0xe0,0x7c,0x9d,0xbe,0x8b,0x34,0x81,0x40,0x6b,0x8d,0xb1,0xbf,0xf,0xad,0x72,0xc0,0x3c,0x3c,0xdc,0xbe,0x93,0x39,0x82,0xc0,0x3c,0x19,0x59,0x40,0x9a,0x10,0x39,0x3f,0x10,0xe7,0x8d,0x40,0xfe,0xbf,0x7,0x40,0xde,0xd7,0xe4,0x3f,0x2b,0xa7,0xd7,0x3f,0x5e,0x9e,0x94,0x40,0x2e,0x2f,0x48,0xc0,0x7d,0xaf,0x43,0xc0,0xec,0x19,0x76,0x40,0x2d,0x44,0xe8,0x3f,0x2e,0xb8,0x92,0x40,0xfe,0x2a,0x95,0x3f,0xb7,0xb5,0xe7,0x3f,0xfe,0x38,0x45,0x40,0xa8,0x81,0x50,0x40,0xd0,0x96,0x2f,0x40,0xe8,0xf1,0x7a,0xc0,0x62,0x43,0xb9,0x3f,0x6,0xfd,0x5a,0xc0,0xf4,0x38,0x25,0x3f,0x2e,0x2e,0x2f,0x40,0xd0,0xea,0xd5,0xbf,0x8b,0xd1,0x8a,0x40,0xf4,0x74,0x8e,0x40,0x4d,0x40,0xb8,0x3f,0xba,0x7e,0x67,0xc0,0x30,0xb8,0xd5,0x3d,0x41,0xfc,0x78,0x40,0xa6,0xe6,0x65,0x3f,0x14,0x63,0x8b,0x40,0x48,0x3f,0xb9,0x3e,0x65,0x33,0x14,0xc0,0x9c,0xd1,0x50,0x40,0xe3,0xca,0xd3,0x3f,0xa4,0xad,0x30,0x40,0x70,0x34,0x3f,0xc0,0xc8,0xa1,0x72,0xc0,0xcb,0x53,0x56,0x40,0xae,0xe4,0xdf,0x3f,0xc8,0x1c,0x6a,0x40,0xd8,0x65,0x85,0xc0,0x9b,0x3f,0x13,0xc0,0x90,0x40,0x22,0xbe,0x4a,0x34,0x26,0xc0,0x64,0xec,0x47,0x40,0x56,0x26,0x7e,0x40,0xfe,0xad,0x8a,0x40,0x9c,0xbe,0x33,0x3f,0x10,0x4b,0x91,0xc0,0x3a,0x8f,0xe5,0xbf,0xa,0x7a,0x94,0x3f,0x31,0xb8,0xac,0xbf,0x52,0xa9,0x8,0x40,0x2e,0x8,0xab,0xbf,0x6d,0x36,0x84,0x40,0xa0,0x98,0x8a,0x40,0x7e,0x88,0x9e,0x40,0xfa,0xf4,0xd3,0x3f,0x21,0xa1,0x58,0xc0,0xed,0xa3,0xa5,0xbf,0x62,0xc5,0x2a,0xc0,0x38,0xee,0xf,0x40,0xd4,0x9a,0xe0,0xbe,0x41,0x20,0x0,0x40,0xf3,0xc5,0xb9,0x3f,0x68,0x6e,0xc4,0xbf,0xa2,0x56,0x31,0x3f,0x60,0x99,0x44,0xbf,0x34,0x9d,0x5d,0x3f,0xd0,0xd6,0x53,0xc0,0x50,0x92,0xbd,0x3d,0x67,0xea,0x73,0x40,0xc8,0x8f,0x25,0x40,0x6f,0xc4,0x46,0xc0,0x40,0x7e,0x85,0x40,0x9d,0xae,0xf4,0xbf,0x47,0x2,0x8f,0x40,0x1c,0x7f,0x82,0xbf,0xcc,0x57,0x9a,0x40,0x9c,0x2e,0x3c,0x40,0xd8,0x9e,0xd3,0xbe,0xfb,0x9a,0x57,0x40,0x4b,0xe6,0x87,0x40,0xe7,0x4a,0x7a,0xc0,0xfe,0x15,0x66,0x3f,0x75,0xe,0x5b,0x40,0x90,0x8b,0x4,0xbf,0x80,0x8c,0x4a,0x40,0xaf,0x9c,0x79,0x40,0x60,0xcc,0x7d,0xc0,0x3f,0x7b,0x2e,0x40,0xe1,0x2,0x93,0xc0,0xe4,0x5a,0x48,0x40,0xa,0xf1,0x30,0xc0,0xa7,0x31,0xc7,0xbf,0xa1,0x85,0x9c,0x3f,0x4,0xc6,0x89,0xc0,0x98,0x7f,0x30,0xbe,0x8d,0xe7,0xdf,0xbf,0x7f,0x7e,0xca,0x3f,0xc8,0xbd,0x97,0xbe,0xa2,0x67,0x91,0xc0,0xff,0x2,0x9e,0xbf,0xd2,0xa6,0x47,0x3f,0x20,0x37,0x2f,0x40,0x5b,0xb1,0x36,0xc0,0x14,0x8d,0x42,0xc0,0xa6,0x2a,0x10,0x40,0xbe,0x15,0x40,0xc0,0xde,0xf6,0xfc,0xbf,0x18,0xec,0x9f,0xc0,0xfc,0x2c,0x9a,0xbf,0x40,0x29,0x7f,0xc0,0x3a,0x89,0x48,0x3f,0x5e,0x91,0x81,0x40,0xf6,0x1b,0xe,0x40,0x6e,0x63,0x85,0xc0,0xbd,0x6c,0x8f,0x40,0x57,0xfc,0x8e,0xc0,0x10,0x90,0xf5,0xbf,0xb6,0x88,0x33,0x40,0xe,0xd7,0x17,0x40,0x7a,0x59,0x30,0x40,0xec,0x4d,0x98,0xbf,0xec,0x1d,0x8c,0xc0,0x4c,0xa8,0x9c,0xc0,0x74,0xc3,0xd1,0x3e,0xf1,0xc9,0x9a,0xc0,0x18,0xf1,0x52,0xc0,0x68,0x1e,0x51,0x40,0xf0,0xd,0x45,0xbf,0x8e,0x5f,0xdf,0x3f,0x7b,0xbf,0x7b,0xc0,0x40,0xe5,0x4a,0x3f,0x67,0x2c,0x90,0x40,0xbc,0xb4,0x68,0x3f,0x52,0xc6,0x61,0x3f,0x7a,0x79,0x45,0xc0,0x49,0x60,0x67,0xc0,0x84,0x8c,0x3a,0x40,0xa9,0x3e,0x8f,0xc0,0x2c,0xd2,0x9c,0xbe,0xa2,0x34,0x80,0xc0,0x50,0xec,0xb3,0x3e,0x3b,0xc8,0x9c,0xc0,0x5b,0xdf,0xd3,0x3f,0x0,0x65,0xb,0x3c,0xe2,0x6b,0x52,0xc0,0xaa,0x4d,0xee,0xbf,0x89,0xc1,0xff,0xbf,0x7,0xa5,0xf,0xc0,0x36,0x98,0x9f,0xbf,0xee,0xd4,0x6b,0x3f,0x42,0x1e,0x38,0xc0,0x24,0x85,0xa1,0x3f,0xd5,0xd7,0x83,0xc0,0xb8,0xad,0x96,0x40,0xa8,0xcb,0x3f,0xc0,0x40,0x12,0x8,0x40,0xb1,0x9,0x5b,0xc0,0x5,0x6b,0x5a,0xc0,0xca,0xe2,0x3b,0xbf,0x3c,0x4b,0x36,0xc0,0xce,0xf,0xb3,0xbf,0x48,0x31,0xb,0xc0,0x18,0xfd,0xb2,0xbf,0xe2,0x5f,0x77,0xc0,0xfe,0xb,0x9c,0x40,0x46,0x7b,0x34,0x40,0x7e,0xa1,0xe4,0xbf,0x2c,0x60,0x68,0x40,0xf3,0x91,0xe,0xc0,0x50,0xb4,0x82,0xc0,0x34,0xfe,0xcc,0x3f,0x60,0x3b,0xdc,0xbf,0x5c,0xaa,0x70,0x40,0x66,0x38,0xac,0xbf,0xa0,0x45,0x82,0xc0,0x88,0xea,0x86,0x40,0x4a,0xa8,0x8f,0x3f,0xab,0x3c,0xc2,0x3f,0x8c,0x94,0xf7,0xbe,0x5c,0x72,0x7e,0xc0,0x8d,0x8,0xce,0x3f,0x0,0x40,0x5d,0x3c,0x61,0xde,0x53,0xc0,0x20,0x5b,0x36,0x40,0x95,0xd3,0x95,0xc0,0xe5,0x99,0x46,0xc0,0x8b,0x39,0x95,0xbf,0x7c,0xf8,0x95,0xc0,0x5a,0xa,0x90,0xc0,0x6b,0x47,0xc0,0xbf,0x28,0x4a,0x71,0xbf,0xad,0xbc,0x6a,0x40,0xf0,0x53,0x15,0x40,0x7e,0xc3,0x94,0x40,0x40,0xcb,0xc6,0x3f,0x92,0x30,0x2b,0x3f,0x84,0xac,0x76,0xbf,0xf2,0xfe,0x6,0xc0,0x2d,0x56,0x8f,0xc0,0x6b,0x24,0x92,0xc0,0xae,0x28,0x8,0x40,0x93,0x8d,0x4a,0xc0,0xa2,0x45,0x3,0xc0,0xcf,0x8b,0x15,0x40,0x7a,0xd0,0x45,0xc0,0xe,0xa0,0xec,0x3f,0x50,0xa9,0x8d,0xbe,0x43,0x10,0x84,0x3f,0x40,0xc4,0x11,0xc0,0xdc,0x54,0x69,0x40,0x53,0xde,0x82,0xc0,0x57,0x5f,0x95,0xc0,0x70,0xab,0x79,0x40,0x2,0x31,0x58,0xc0,0x6e,0x97,0x99,0x40,0x4a,0x22,0xe,0x40,0xde,0x1,0xf7,0x3f,0x84,0x82,0x1e,0xbf,0xd8,0xc2,0x70,0x3f,0xc8,0x1f,0xa4,0x3f,0xe5,0x79,0x16,0xc0,0x2f,0x8a,0x6b,0x40,0x88,0xad,0x44,0x40,0xa8,0x84,0x96,0x3e,0x90,0x80,0xb7,0x3f,0x40,0x5b,0x1b,0xbf,0x28,0x2c,0xe7,0xbf,0xfa,0xa9,0x76,0xc0,0x8c,0xdc,0xf5,0xbf,0x78,0x39,0x99,0xc0,0xb,0x44,0xc9,0xbf,0xd8,0x6b,0x27,0x40,0x4a,0x3d,0x9b,0x40,0x26,0x69,0x92,0xc0,0xc2,0x1,0x85,0xc0,0xfe,0xe,0x84,0x40,0x30,0xe8,0xe1,0xbf,0x0,0xa9,0xdd,0x3b,0x99,0xca,0x48,0x40,0xc8,0xb8,0x8d,0x40,0xa8,0x5f,0xf2,0x3f,0xa7,0x87,0x9e,0x3f,0x70,0xe8,0xf6,0xbd,0xf0,0x6,0x1,0x3e,0xa1,0x1e,0x1,0x40,0x7c,0x81,0x96,0xc0,0x6e,0xe3,0x9a,0xc0,0x71,0xc5,0x57,0x40,0xc8,0x9e,0x9c,0xc0,0x9e,0x29,0x28,0x40,0x72,0xa0,0x67,0x40,0x92,0x34,0x54,0x40,0x1,0x36,0xc3,0x3f,0x54,0x36,0xe,0x3f,0x8a,0xc8,0x13,0x40,0x78,0xaf,0x3e,0x40,0x30,0x38,0x21,0x3e,0xc4,0x40,0x66,0xc0,0xe2,0x16,0x47,0x40,0x6,0x98,0xe,0x3f,0xec,0xc3,0x40,0x40,0x0,0x72,0x56,0xc0,0x8c,0xfb,0x9f,0xbf,0x4e,0x91,0x4d,0xc0,0xf0,0x9f,0x92,0x3e,0x94,0xf7,0x87,0x40,0x3a,0x4a,0x73,0x3f,0x86,0x1,0x88,0x40,0xb2,0x1d,0x6b,0x40,0x4c,0x1a,0x5c,0xc0,0x97,0x96,0x99,0x40,0xa0,0x30,0x8e,0x3e,0x29,0xf7,0x85,0x40,0x1c,0xdc,0x77,0x3f,0x80,0x8b,0x5a,0xbf,0x8,0xd4,0x87,0x40,0x52,0xc7,0x6c,0xc0,0xa0,0xb0,0xe5,0x3d,0xdc,0x4c,0x33,0xbf,0x38,0x58,0x67,0x3e,0xf0,0x9d,0xb7,0xbf,0xda,0x10,0x7e,0x40,0xd8,0xce,0x85,0xbe,0x72,0x39,0x4,0x40,0x3c,0xcd,0x9,0x40,0x38,0xc8,0x91,0x40,0xe4,0x20,0xe6,0x3f,0x90,0x7f,0x9f,0xc0,0xd7,0xa4,0x84,0xc0,0xb1,0x29,0x97,0xc0,0x22,0xdc,0x9c,0xc0,0xf,0x1f,0x85,0xc0,0x10,0x41,0x95,0xbd,0x8e,0x6e,0x97,0x40,0x15,0x1b,0x4f,0xc0,0x15,0xa0,0x6,0x40,0xda,0x1,0x12,0xc0,0x35,0xe6,0x77,0x40,0xf4,0x1e,0x50,0x40,0x5a,0xaf,0x14,0x40,0x75,0xf4,0x8c,0x40,0xd4,0x5a,0x71,0xc0,0xa1,0xdc,0x87,0xc0,0x78,0x7c,0x23,0xc0,0xbd,0xb6,0x81,0x3f,0xba,0x72,0x8d,0x40,0xd4,0x46,0x53,0x40,0x9e,0xc,0xc8,0x3f,0x9e,0x3c,0x63,0xbf,0xf0,0xb0,0x35,0xc0,0x1c,0x1f,0x9f,0x40,0x63,0xc,0x8c,0xc0,0x2c,0xbd,0x5c,0xc0,0xbe,0x52,0x3c,0x40,0x77,0xa2,0x79,0x40,0x2c,0x35,0xa8,0x3f,0xe0,0xe4,0xb2,0xbd,0xf4,0x13,0x18,0xbf,0x38,0xb7,0x26,0x3f,0x32,0x2,0x21,0xc0,0x33,0x2f,0x9e,0x40,0xd6,0xcb,0x9f,0x40,0xbd,0xae,0xf7,0xbf,0x64,0x2d,0x5e,0x40,0xc1,0x1e,0x98,0xbf,0x87,0x21,0x68,0xc0,0x62,0xc1,0x5b,0x3f,0x7c,0xa2,0x74,0xbf,0x0,0xe,0x85,0x40,0x7c,0x68,0xb1,0x3e,0x9a,0x60,0x8c,0xbf,0xde,0x31,0x7e,0xc0,0x68,0x57,0x51,0x40,0x42,0x94,0x55,0x40,0x3e,0x8,0x34,0x3f,0xe8,0x45,0xe0,0xbe,0xd3,0x69,0xd6,0xbf,0x3b,0x58,0x94,0x3f,0x67,0x8b,0x99,0x40,0x8a,0xe3,0x52,0xbf,0xb0,0x92,0xe9,0x3e,0x34,0x70,0x98,0xc0,0xef,0x62,0xa3,0x3f,0xac,0x1a,0x9,0xc0,0xbe,0xbd,0x97,0xbf,0x74,0xb4,0x29,0xc0,0xd0,0x2b,0x94,0x40,0x84,0xe7,0x59,0x40,0x50,0xce,0x9,0xc0,0x7f,0xf7,0x9c,0xbf,0xb1,0xef,0xc2,0x3f,0x3d,0xd6,0xf0,0x3f,0x12,0xa7,0x16,0xc0,0x42,0xf5,0x1,0x40,0x8c,0x84,0x4b,0x3f,0xd8,0xe2,0x37,0x40,0xa0,0xec,0x2c,0xc0,0x6f,0x9e,0x4e,0xc0,0xcf,0xc8,0x14,0x40,0x48,0xc7,0x47,0xbe,0x8a,0x71,0xb,0xc0,0xb4,0x27,0x7b,0x40,0x4,0x63,0xe,0xbf,0x80,0xb5,0x55,0xc0,0x74,0xb1,0x36,0xbf,0xed,0x41,0x14,0xc0,0x74,0x8,0xdd,0xbf,0x3c,0xb7,0x83,0xc0,0x2e,0x70,0x7f,0x40,0x76,0xc8,0x8c,0x40,0xb6,0xf9,0x86,0xc0,0xc,0x2e,0x48,0x40,0xca,0x10,0xbb,0x3f,0x74,0xc3,0x1,0xc0,0x75,0xb5,0xbb,0xbf,0x30,0x31,0x5a,0x3f,0x98,0xc6,0x87,0x3f,0xd3,0xd6,0x87,0x40,0x3a,0xe3,0x98,0x40,0xe4,0xbe,0x93,0x3e,0x54,0x80,0x96,0x40,0x1,0x41,0x3d,0xc0,0x20,0x5f,0x2d,0x3d,0xf2,0x24,0x84,0xc0,0x8c,0x4a,0x19,0x40,0x8c,0x4b,0x7f,0x3f,0x34,0xd7,0x41,0xc0,0xcb,0x2b,0x74,0xc0,0x92,0x28,0x7e,0xbf,0x30,0xba,0xf1,0xbf,0x72,0x67,0x2,0xc0,0xd2,0x59,0x8b,0xc0,0x42,0xe2,0x4b,0xc0,0xe8,0xcb,0x84,0x40,0xac,0x62,0x1d,0xc0,0x60,0x40,0x2,0x40,0xc4,0x5a,0xae,0x3e,0x2c,0xb6,0x2e,0xbf,0xdd,0x5f,0xd1,0x3f,0xa0,0xf5,0x70,0x40,0x58,0x6c,0xc7,0x3f,0x3a,0xc2,0xa,0x3f,0x34,0xe0,0x81,0x40,0xec,0xd5,0xd3,0x3e,0x94,0xac,0x8c,0x3f,0xbd,0x0,0x9c,0x40,0xf8,0xa8,0x67,0xc0,0xcc,0x79,0x68,0x40,0xd5,0xb8,0x19,0xc0,0x64,0x7c,0x83,0xbe,0x83,0x31,0x39,0xc0,0xbe,0x25,0x53,0x40,0x2c,0xb0,0x80,0xc0,0xee,0xc4,0xd,0xc0,0xe0,0x28,0x5d,0x3f,0x1f,0xf0,0xf4,0xbf,0x96,0x8a,0x9,0x3f,0x1e,0xeb,0x92,0x40,0xdd,0x84,0x8d,0xc0,0xdc,0xec,0x4f,0xc0,0xda,0xd6,0x78,0xc0,0xf2,0xff,0x98,0x40,0x93,0x53,0x9b,0x3f,0x2c,0x34,0x67,0xc0,0x86,0x26,0x8b,0xc0,0xd0,0x2a,0x6d,0x40,0xe5,0xef,0x92,0x40,0x48,0xa3,0x41,0xc0,0x25,0xcd,0xa3,0x3f,0xc9,0xe2,0x9e,0xbf,0x3e,0xca,0x3d,0x40,0x5c,0x10,0x33,0xc0,0xd5,0x8b,0x5a,0x40,0x4e,0xc1,0x9f,0x40,0xa0,0xcc,0x41,0x40,0xba,0x0,0x5b,0xbf,0xf0,0x67,0x27,0x3f,0xe2,0x12,0xa,0x40,0x8,0x7d,0x38,0xc0,0x33,0x14,0x15,0xc0,0x36,0x84,0x9c,0xc0,0xe4,0x6,0x62,0x40,0x36,0xaf,0x14,0xc0,0xd1,0x78,0x89,0x40,0xdc,0xe,0x7b,0xbf,0x79,0x76,0xec,0xbf,0xe6,0xec,0x22,0x40,0xd4,0x4,0xf9,0xbe,0x1a,0xf1,0x58,0xc0,0x2,0x7e,0x9,0x3f,0xf1,0x0,0x15,0xc0,0xc5,0x93,0x67,0xc0,0x8f,0xe7,0x49,0xc0,0x60,0x20,0xde,0x3f,0x30,0x75,0xd7,0x3e,0xf4,0xb1,0x1,0xc0,0x84,0x73,0xe4,0x3f,0x62,0x57,0xc8,0xbf,0xbd,0xfa,0x76,0xc0,0x1b,0xcc,0xdb,0x3f,0x62,0xf0,0xd9,0xbf,0x5b,0xa5,0xbd,0xbf,0xbe,0x3,0x66,0x40,0xd1,0x2f,0x6f,0x40,0x48,0x9b,0x9c,0xc0,0x5e,0x39,0x89,0x40,0x3a,0x16,0x8f,0x40,0xc2,0xc1,0x66,0xc0,0x60,0x85,0x9f,0xc0,0x80,0xcd,0x79,0xc0,0xe0,0xe8,0xa9,0xbf,0xa0,0x32,0x66,0xbe,0xe7,0x62,0xb0,0x3f,0xe6,0xa3,0x98,0x3f,0xb6,0xfb,0x77,0x3f,0xae,0xd1,0x79,0xc0,0x5d,0xff,0x99,0x40,0xf1,0xd3,0x89,0x40,0xe2,0xe7,0x1b,0x40,0x19,0xc9,0x8b,0x3f,0x4,0xb0,0x32,0xc0,0x1c,0x14,0xbb,0x3e,0xe1,0x5c,0x64,0xc0,0xb8,0xf,0x93,0x40,0xc3,0x18,0x8e,0xc0,0x4f,0x2d,0x88,0x40,0x2b,0xa3,0x96,0x40,0x78,0xea,0x1a,0xc0,0x3c,0xc5,0x8e,0xc0,0x41,0xc8,0xe1,0x3f,0x26,0x9a,0x75,0xc0,0x22,0x9f,0x93,0xc0,0xaa,0xc9,0x40,0xc0,0xaa,0x36,0x62,0x40,0xe4,0x91,0x48,0xc0,0xb4,0x11,0x0,0xc0,0x4,0xc7,0x1,0xc0,0x57,0x6f,0x63,0x40,0xac,0xfb,0xf7,0x3f,0x7c,0x6c,0x37,0x40,0xe,0x20,0x6f,0xbf,0xfc,0x36,0x3d,0xc0,0x88,0xa9,0xe6,0x3f,0xc2,0x1b,0x1,0x40,0xc2,0x6e,0x84,0x40,0xc6,0xec,0x95,0xc0,0xcd,0xce,0x6a,0xc0,0x92,0xf2,0x51,0x40,0xe2,0x8b,0xa5,0x3f,0x60,0x72,0x54,0x40,0x9b,0xd6,0xa1,0xbf,0x39,0x8a,0x9f,0x40,0x3c,0x1e,0xfa,0x3f,0x13,0xb8,0xf7,0xbf,0xcd,0x97,0x1a,0xc0,0x91,0x25,0xa8,0x3f,0x40,0x2c,0xfc,0xbd,0x36,0x17,0x1b,0xc0,0x88,0x85,0x2b,0xc0,0xce,0xa4,0xd7,0x3f,0xd8,0xf5,0x1d,0x40,0x2a,0x62,0x98,0x40,0x6f,0x9,0x7,0xc0,0x2a,0xeb,0x3c,0xc0,0xbe,0xbb,0x49,0xc0,0x96,0xc5,0x58,0xc0,0xd6,0xc,0x9e,0x40,0xa8,0x7e,0x1c,0xc0,0xb6,0x87,0x16,0xc0,0x16,0xc4,0x6a,0x40,0x4a,0x78,0x7e,0x40,0x49,0x6e,0x92,0xc0,0x1e,0x18,0xd,0xbf,0xd0,0x50,0xc0,0x3f,0x9e,0xc0,0x43,0x3f,0x5a,0xed,0x35,0xc0,0xb4,0xef,0x80,0xc0,0xa,0xe8,0x66,0xc0,0x24,0x2e,0xd5,0x3f,0x24,0xfb,0x14,0xc0,0xe7,0x7b,0x91,0xc0,0x7a,0xbe,0x9d,0x40,0x11,0xa2,0x12,0x40,0xdc,0xf0,0xbe,0xbf,0x52,0x40,0x4c,0x3f,0x4c,0x70,0xe3,0xbf,0xb2,0xf2,0x52,0xc0,0xb1,0xd3,0x93,0xc0,0x41,0x98,0x50,0x40,0xfe,0xc0,0x93,0xc0,0xf,0x5e,0x71,0xc0,0xb8,0x82,0x85,0x40,0x49,0x88,0x49,0xc0,0x1a,0xe1,0xd6,0xbf,0xc0,0x27,0xbd,0x3c,0xc9,0x0,0x9e,0xc0,0xea,0x45,0x91,0xc0,0xd6,0xc8,0x81,0xc0,0x4a,0xf4,0x40,0xbf,0x31,0xa0,0xe7,0xbf,0x0,0xa8,0x6d,0x40,0x84,0xd8,0x4d,0x40,0x3c,0xaa,0x9b,0x40,0x96,0x72,0x8a,0xc0,0xe9,0x78,0x18,0xc0,0xe2,0xfc,0x59,0x40,0x8f,0xdd,0xdd,0x3f,0x8a,0x72,0x50,0xc0,0xb0,0xeb,0x6f,0x40,0xe4,0x6f,0x23,0xc0,0xc,0xed,0x97,0x40,0xe4,0x66,0x7f,0xc0,0x86,0xdd,0x25,0x40,0xe0,0x88,0x91,0xbe,0x5,0x7e,0x8a,0xc0,0x85,0x93,0x25,0x40,0xfa,0xe2,0xea,0xbf,0x70,0x32,0xb2,0x3d,0x3c,0x64,0xc3,0xbf,0xce,0x10,0x8f,0xbf,0x6c,0xcc,0xa3,0xbf,0xf6,0xa8,0xf,0x40,0x7c,0xc3,0xce,0xbe,0x3e,0xa3,0x5a,0x40,0xe1,0x42,0x1,0x40,0x40,0xfa,0xf1,0xbc,0x78,0x4a,0x0,0x40,0xd8,0x4a,0xd7,0xbf,0x24,0x97,0x76,0xc0,0x3c,0xc8,0x52,0xc0,0xcb,0x21,0x5b,0xc0,0x19,0x29,0x81,0xc0,0x9c,0xcd,0x4c,0x3f,0x8,0xc8,0xe3,0xbe,0xce,0xde,0x8f,0xc0,0x58,0xb,0x26,0x40,0x51,0x4c,0x46,0x40,0xa8,0xea,0x87,0x40,0xa8,0xf3,0x51,0x3e,0xdc,0x6c,0xbb,0xbe,0xb0,0x36,0x3c,0x40,0x14,0xc1,0x8a,0xc0,0xd0,0x40,0x9e,0x3e,0x36,0x66,0x51,0x40,0x39,0x75,0x5d,0x40,0xea,0xd3,0x16,0x3f,0x98,0x4c,0xd4,0xbe,0x14,0xb1,0xe4,0x3f,0x38,0xd,0x88,0x3f,0xa8,0xe7,0x2b,0xbe,0xfa,0x77,0x7d,0x40,0xd6,0x94,0x88,0x40,0x60,0xc9,0x35,0xc0,0x20,0xfe,0x8f,0x40,0x30,0x14,0xa7,0xbf,0x93,0xb0,0x89,0x3f,0x82,0x80,0x8e,0x40,0x30,0x36,0x17,0xc0,0xfc,0x5c,0x15,0x40,0x9e,0x85,0x2e,0xbf,0x8b,0x14,0x35,0xc0,0xac,0xda,0x9b,0xbe,0x78,0xc5,0x88,0x40,0x3c,0x93,0x32,0x40,0x18,0x7c,0x25,0xc0,0x14,0xd4,0x90,0x40,0x4a,0x33,0x82,0x3f,0xfe,0x90,0x88,0x40,0xf8,0x2f,0x98,0x40,0x1a,0x53,0xba,0xbf,0xa4,0x79,0x7f,0x40,0xd6,0xbb,0x3d,0xbf,0x86,0xe,0x4a,0x3f,0xd8,0x8f,0x26,0x3e,0xd0,0xf2,0x8c,0x3d,0xa4,0xa3,0xc6,0xbe,0xa0,0xa7,0x92,0xc0,0x90,0xbd,0xde,0x3e,0xa7,0xd0,0x92,0x40,0xd4,0xea,0xd1,0x3f,0xfc,0xd6,0x93,0xc0,0x94,0xf4,0x6e,0x3f,0xf8,0x55,0x4f,0xbf,0xc3,0xa7,0xbc,0x3f,0xd8,0xef,0x92,0xc0,0x76,0xf9,0x55,0x3f,0x5e,0xb2,0x64,0xc0,0x46,0x21,0x36,0x3f,0x4e,0x99,0x40,0x40,0xf0,0x6,0x60,0x40,0x58,0x88,0x53,0xbf,0xf1,0x20,0x8e,0x40,0xe4,0x93,0x96,0xbe,0x84,0x2c,0x38,0xc0,0xc9,0x91,0x15,0x40,0x98,0xc0,0x5d,0x3e,0xac,0x79,0x7c,0xc0,0x6e,0x75,0x4b,0x40,0x2,0x32,0x9a,0x40,0x21,0x39,0x2f,0x40,0x84,0xd2,0x4b,0xbf,0x3e,0x3c,0x86,0xc0,0x1a,0x13,0x89,0x40,0x94,0x6d,0x2a,0xc0,0xf8,0xcd,0x40,0x3f,0x55,0xc5,0x90,0xc0,0x14,0x67,0x45,0x40,0x48,0x7d,0x80,0x3f,0x16,0x51,0x98,0x40,0xd0,0x4a,0x1b,0x40,0x98,0xce,0x98,0xc0,0x60,0xde,0x7c,0x40,0x15,0x4c,0x81,0xc0,0xf6,0xf0,0x18,0xc0,0xfe,0x38,0x25,0x40,0xd8,0x28,0x2e,0xc0,0x49,0xd2,0xa7,0x3f,0xb0,0xd5,0x3,0x3f,0xdc,0x59,0xb5,0x3e,0x3a,0xce,0x2d,0xc0,0x26,0xf4,0x5f,0x40,0xfe,0xfd,0x37,0x3f,0xc0,0x9c,0xed,0x3f,0x4c,0xa,0x15,0x3f,0xda,0x30,0x1f,0xc0,0xcc,0x8d,0xf0,0xbf,0x96,0x2,0x55,0x40,0x6a,0xc6,0x8b,0xc0,0xeb,0x31,0xdd,0xbf,0x41,0x76,0x92,0xc0,0x9c,0x4e,0x3f,0xc0,0xfa,0x3,0x2c,0x3f,0xec,0xcc,0x91,0xbf,0xb2,0x45,0xd5,0x3f,0xf2,0xd4,0x73,0x40,0xae,0x9d,0x86,0x3f,0x19,0xf5,0x97,0x40,0x0,0x6d,0x58,0xbc,0x6,0x5c,0x9a,0x40,0x5e,0x82,0x4e,0x3f,0x80,0x6a,0x3,0xbe,0xa4,0xdf,0xb2,0x3f,0x34,0x4f,0x7c,0xc0,0x88,0x79,0x82,0x40,0xfc,0x65,0x92,0x40,0xe5,0xb6,0x8c,0xc0,0x80,0x73,0x3e,0xc0,0xc4,0xe8,0x7c,0x40,0x3,0xde,0xa0,0x3f,0xea,0x5f,0xe7,0xbf,0x24,0x70,0x1f,0xc0,0xd8,0xa3,0x92,0xbf,0x46,0xeb,0x70,0xbf,0x20,0x99,0x93,0x40,0xfc,0x90,0x42,0xc0,0xb6,0x3,0x34,0x3f,0x42,0x67,0xb5,0x3f,0x83,0xba,0x1e,0xc0,0x1c,0x9e,0x9f,0xbe,0x42,0x67,0x67,0xbf,0x4a,0x28,0x74,0x40,0x76,0xf4,0x64,0x40,0x28,0x3,0x77,0xbe,0x91,0xfc,0x23,0xc0,0xc0,0xb6,0x37,0xc0,0x24,0x3d,0x8,0xc0,0x2e,0xcd,0x8a,0x40,0xa3,0x10,0x82,0x40,0xb8,0x84,0x7e,0x3f,0x7e,0x13,0x95,0xc0,0x94,0x62,0xcc,0x3f,0x22,0xe5,0x6d,0xbf,0x5d,0xea,0x32,0x40,0xea,0x52,0x26,0x40,0x67,0x3a,0x86,0x40,0xf4,0x69,0xba,0x3e,0x38,0xea,0xc3,0x3e,0x40,0x6c,0x14,0x3d,0xbe,0x13,0x5d,0x40,0x80,0xa1,0x71,0x40,0x70,0xc6,0x16,0x40,0x44,0xf2,0x7f,0xbf,0x91,0xcd,0xb9,0xbf,0x13,0x45,0x94,0x40,0x7c,0x88,0x25,0xc0,0x3e,0x2b,0x5c,0x3f,0x67,0x38,0xc9,0x3f,0xf8,0xb4,0x25,0x40,0x98,0x16,0x42,0xc0,0xdc,0x1c,0x77,0xbf,0x68,0x8e,0x15,0xbe,0xc,0x82,0xe9,0xbe,0xf7,0x51,0x89,0xc0,0xb4,0x14,0xa,0x40,0xd2,0xab,0x74,0xc0,0x98,0x9d,0xa1,0xbf,0xbe,0x2c,0xc4,0x3f,0x97,0x9e,0x7b,0x40,0xfa,0x9e,0x5e,0xbf,0x3,0x2d,0x31,0xc0,0x1c,0xb2,0xe,0xc0,0xa0,0x66,0x3c,0xbd,0x2,0xf1,0x2e,0xc0,0x94,0x1d,0x9e,0x3f,0xfc,0xac,0x10,0x40,0x60,0x0,0x97,0x40,0x5e,0x8d,0x86,0x40,0x7e,0xcc,0x82,0xbf,0x7e,0x3,0x8,0x40,0x18,0xef,0x27,0x3f,0xc0,0xb6,0x17,0x40,0xd4,0x74,0x11,0xc0,0x47,0x46,0x96,0x40,0xc0,0x2f,0x8,0x3d,0x20,0xad,0x4a,0x40,0xb7,0x55,0x6d,0x40,0x19,0x91,0x87,0xbf,0x74,0x34,0x75,0x40,0xc8,0xa0,0xa5,0xbf,0x18,0x31,0x1f,0x40,0x7c,0xa8,0x46,0xbf,0x65,0x10,0x7d,0xc0,0x67,0x27,0xa3,0xbf,0x9a,0x8,0xf3,0x3f,0xee,0x9d,0x7f,0x40,0x36,0x8f,0x82,0xc0,0xda,0xb1,0x39,0xc0,0xa8,0xc7,0x26,0x40,0xc6,0x79,0x23,0xc0,0xb4,0x66,0x85,0x3e,0xc0,0x39,0x5f,0xc0,0x64,0xb8,0xa1,0x3e,0xdf,0xd5,0x1a,0xc0,0xa5,0xee,0x8e,0x3f,0x85,0x5a,0xfc,0x3f,0x76,0x7a,0x75,0x3f,0x50,0xa9,0x7b,0xc0,0xd2,0xec,0x6f,0x40,0x77,0xad,0x86,0x40,0x94,0x76,0x8f,0xc0,0x6b,0xb,0x83,0x40,0x4e,0xe7,0x89,0xc0,0x49,0x6b,0x16,0x40,0x10,0x30,0x97,0xbe,0x94,0x99,0xcc,0xbe,0xb0,0xcf,0x1b,0xc0,0xa4,0x2,0x7c,0x40,0x44,0xdd,0x4e,0x3f,0xc4,0x1,0xb2,0xbe,0x8,0x1a,0x35,0xbe,0xd2,0xef,0x67,0x40,0xec,0x8a,0x9e,0x40,0x40,0x4c,0x36,0xc0,0xa5,0xe9,0x8d,0xc0,0x94,0x7c,0x58,0xc0,0xa0,0xbe,0x2d,0xc0,0x75,0xb7,0x82,0xc0,0xf8,0xf7,0xe6,0xbf,0x6b,0x97,0xf7,0xbf,0xc0,0x6b,0x12,0xbd,0xe1,0x85,0xb6,0x3f,0x7e,0x8d,0x4d,0x40,0x38,0x23,0x53,0xc0,0xa0,0x47,0x65,0xc0,0x99,0x62,0xb,0xc0,0xfd,0xd4,0x6b,0xc0,0x10,0xe3,0x89,0x3e,0x5d,0xaa,0x72,0xc0,0x68,0x1e,0x6c,0xbe,0x44,0x2a,0x2f,0xbf,0x5a,0xcd,0x77,0xc0,0xf4,0x78,0x10,0xc0,0x7,0xe0,0xb,0x40,0x0,0x7a,0xb7,0xbf,0x5f,0x37,0x8d,0xc0,0x79,0x2b,0x82,0x40,0x4f,0x89,0xc7,0xbf,0x2a,0x45,0x1a,0x3f,0xe8,0xaa,0x80,0x40,0x91,0x56,0x1f,0x40,0x5c,0x53,0x81,0xc0,0x87,0x53,0x8d,0x40,0xf5,0x66,0xb2,0xbf,0xf7,0x41,0xa3,0x3f,0xcc,0x75,0xe,0x40,0x1b,0x64,0xdf,0x3f,0xad,0xb8,0x5a,0x40,0xf4,0x68,0x10,0xc0,0xff,0xd0,0x6d,0x40,0x97,0x6a,0x4b,0x40,0x67,0x53,0x8c,0xc0,0x3c,0x9d,0xee,0xbf,0x5c,0x45,0x8a,0x40,0x25,0x83,0x6d,0xc0,0x68,0xc6,0x90,0xc0,0x2c,0xa1,0x45,0x40,0x75,0x85,0xe1,0x3f,0x80,0x57,0xc,0x3f,0xcc,0x2c,0x7f,0x40,0x28,0x1c,0x7c,0x3e,0xfe,0x2,0x9c,0x40,0x3c,0x5b,0x54,0xc0,0x35,0x82,0x89,0xc0,0xde,0x2c,0x8b,0xbf,0xc2,0x8b,0x9b,0x40,0xaf,0xcc,0x88,0xc0,0xce,0x4,0x4,0x40,0xda,0xe0,0xa3,0x3f,0x5a,0x80,0x7,0xc0,0x38,0x37,0x83,0xc0,0x3a,0xfe,0x5,0x40,0x57,0x3,0xf0,0x3f,0x58,0xea,0x5,0xbe,0x20,0xe2,0xfc,0x3f,0x3c,0xfe,0x2e,0x40,0xe6,0x61,0x61,0xc0,0xe6,0x4e,0x8a,0xc0,0x10,0xd9,0x54,0xbf,0xc,0x36,0x38,0xbf,0x58,0xd4,0xf5,0xbf,0x49,0x72,0xa8,0x3f,0x30,0x90,0x75,0xc0,0x42,0x79,0x9b,0x40,0x46,0xca,0x80,0xbf,0xba,0xbf,0x32,0xc0,0x84,0x86,0x4c,0xbf,0x94,0x63,0x7d,0xc0,0xe6,0x72,0x8a,0xc0,0xd7,0x37,0xb9,0x3f,0x1b,0xa3,0xaf,0xbf,0x5e,0x49,0x2d,0xc0,0x20,0x94,0x13,0x40,0xf0,0xf8,0x79,0x40,0x4a,0x85,0xf,0x3f,0x67,0x76,0x1f,0xc0,0xa0,0x22,0x2e,0x40,0x4d,0x67,0xdc,0xbf,0x48,0x21,0x14,0xc0,0xfe,0x8e,0x79,0xbf,0xc1,0x84,0x9b,0xbf,0x6a,0x76,0x9a,0x40,0xd4,0xb8,0x65,0xbf,0xb0,0xf,0x90,0xc0,0xe9,0x40,0xcb,0xbf,0xe3,0xc7,0xea,0x3f,0x28,0x5f,0xa,0x40,0xc5,0xa9,0x56,0xc0,0x6d,0x6a,0x61,0xc0,0x80,0x19,0xb6,0xbf,0x6c,0xb3,0xa3,0x3e,0x16,0xac,0x83,0xc0,0x28,0x51,0x13,0x40,0x92,0x3b,0x70,0xbf,0xfa,0x25,0x3a,0x40,0x64,0xbe,0xbe,0x3f,0xf6,0x41,0x4c,0xbf,0x88,0x8,0xe7,0xbe,0xa6,0xbc,0xc4,0x3f,0xa,0x4a,0x26,0xc0,0xac,0xe9,0xa5,0xbf,0xa9,0x73,0x12,0x40,0x44,0xce,0x8e,0xc0,0x28,0xd3,0x7e,0xbf,0xab,0x38,0x85,0x3f,0x49,0x7,0x25,0xc0,0x8b,0x7d,0x17,0x40,0x5f,0x84,0x1e,0x40,0x12,0x93,0x39,0xbf,0xfc,0xa3,0xcd,0xbf,0x75,0xe0,0x1a,0x40,0x4c,0x37,0x90,0x3e,0x18,0x6f,0x77,0xc0,0x9a,0x6d,0x38,0x40,0x64,0x82,0x9d,0x40,0xf0,0xef,0x88,0x40,0xf1,0x85,0x30,0xc0,0xa9,0x8b,0x94,0x40,0x5,0x5c,0x5,0xc0,0x38,0x7d,0x72,0xc0,0x54,0x27,0x65,0x40,0xdd,0xa9,0x61,0xc0,0x1,0x11,0x93,0x40,0xec,0xce,0x9c,0x40,0x1c,0x13,0x57,0xc0,0xe8,0xeb,0x53,0x40,0x96,0x15,0x74,0xbf,0x5,0x68,0xa6,0xbf,0xac,0x31,0x42,0x3f,0x3,0xba,0xf1,0x3f,0xcd,0xcb,0x59,0xc0,0xad,0xe6,0x9c,0x40,0x3c,0x38,0x60,0x40,0xb4,0xdf,0x38,0xc0,0xe0,0x1b,0x17,0x40,0x40,0x40,0x63,0x3f,0x50,0xdc,0x2f,0x40,0x60,0x74,0xee,0xbd,0x4e,0x83,0xd8,0x3f,0xb5,0xdd,0xb2,0x3f,0xdf,0x86,0x95,0x40,0xda,0x70,0x34,0x3f,0xbe,0x6a,0x82,0x40,0x38,0xc6,0x53,0x3f,0xd5,0x24,0xce,0x3f,0x1a,0x8e,0xe,0xbf,0xa2,0x4,0xb,0xbf,0xc,0x82,0x70,0xc0,0xd7,0xcb,0x99,0x40,0x28,0x22,0x2d,0xc0,0x95,0x7c,0x27,0x40,0xa4,0xa9,0x93,0x3f,0x6c,0x84,0x4f,0x40,0x27,0x6e,0x97,0xc0,0x88,0xd3,0xee,0xbe,0x96,0x57,0x99,0xc0,0x80,0xe2,0x7b,0xc0,0x31,0x0,0xe2,0x3f,0x64,0x31,0x97,0xbf,0xde,0xbb,0x55,0x40,0x7f,0xb9,0x6e,0x40,0x80,0xb1,0x48,0x3c,0x13,0xb,0xbe,0xbf,0xb1,0xf7,0x5d,0x40,0xc8,0x8d,0x98,0x40,0xa2,0xb8,0x1a,0x3f,0xca,0x86,0x85,0xc0,0x1a,0xc9,0x5,0x40,0xde,0xa5,0x55,0xbf,0xfe,0xc6,0x6b,0xc0,0x5f,0xc6,0x89,0x3f,0xb0,0x6e,0xef,0x3d,0xe0,0xbe,0x97,0x3d,0x54,0x2e,0x9f,0x40,0x52,0x6d,0x22,0x40,0x8c,0x3,0x4a,0x40,0x20,0x3a,0x2a,0x3d,0xb8,0x17,0x7d,0xbf,0x68,0xfc,0xef,0x3f,0x93,0x6d,0x6f,0xc0,0xfc,0x32,0x97,0x40,0xdc,0x15,0x1f,0x3f,0xb6,0xb8,0x94,0xc0,0x8d,0xc8,0x38,0xc0,0xe2,0x4e,0x1a,0x40,0x18,0xb3,0x93,0x3f,0x95,0xd,0x1e,0x40,0x35,0xc8,0x9d,0xc0,0x80,0x5,0xca,0xbc,0xfe,0xa9,0x3e,0x40,0x88,0xc6,0x30,0x40,0x4,0x7,0x8b,0x3e,0x5d,0x31,0x9e,0xc0,0x36,0xd4,0x8b,0x40,0x27,0xd3,0xf5,0x3f,0x41,0x0,0xfa,0x3f,0x12,0xde,0x40,0x40,0x31,0x20,0x3d,0x40,0xfc,0x95,0x10,0xbf,0xc0,0xf4,0x53,0x40,0x4e,0x75,0x59,0x40,0x71,0x86,0x9e,0x3f,0x47,0x94,0x76,0xc0,0xf1,0x92,0x5f,0x40,0x26,0xc6,0x1c,0xc0,0xa,0x73,0x88,0x40,0x1c,0x50,0x47,0xc0,0x7c,0x69,0xb0,0xbe,0xed,0x74,0xf7,0xbf,0xa,0x37,0x2f,0xc0,0x57,0x16,0xd3,0xbf,0x2e,0x3d,0x4e,0x40,0x7e,0x71,0xd3,0x3f,0x98,0x1b,0xec,0xbe,0xe,0x81,0x80,0xc0,0x88,0x46,0x31,0xc0,0xa1,0xbc,0x35,0x40,0x46,0x7b,0x15,0xc0,0xe,0xc0,0x76,0xc0,0x20,0x83,0x2f,0xc0,0x9c,0x0,0xd6,0xbf,0x55,0x35,0xe,0xc0,0xd8,0x58,0x29,0x40,0xc0,0x21,0x75,0xbd,0xc,0x6,0x97,0x40,0x8a,0x4a,0x93,0xc0,0x24,0xac,0x20,0xc0,0xee,0x9b,0xd4,0x3f,0x92,0x32,0x44,0x40,0xd3,0x67,0x3,0xc0,0xc0,0x0,0x0,0x40,0x32,0x47,0x30,0xc0,0x32,0xcf,0x41,0xc0,0xcb,0xfd,0x2e,0x40,0x7c,0xe2,0x9b,0xbe,0xbb,0x2c,0x6a,0xc0,0xb8,0x8,0x46,0xbe,0xd6,0xd0,0x8c,0x40,0x90,0x1e,0x92,0x3f,0x11,0x14,0x80,0xbf,0xa,0xe0,0x67,0xbf,0x62,0xb6,0x3e,0xc0,0x34,0x6,0x36,0x40,0xc0,0x36,0xa9,0x3d,0x5f,0x50,0x25,0xc0,0xb0,0x56,0x94,0x3e,0xef,0xd1,0xc5,0x3f,0x68,0xcd,0x58,0x3e,0x94,0x5d,0xd1,0xbe,0xd9,0x67,0x96,0xc0,0x58,0x58,0x1a,0xbe,0xc5,0xbd,0xcc,0xbf,0x90,0x1e,0x83,0xbd,0xa,0x92,0x44,0xc0,0x80,0x79,0xf1,0x3f,0xd0,0x20,0x46,0xc0,0x94,0xce,0xce,0xbf,0xf9,0x1d,0x13,0xc0,0x6e,0x18,0x21,0xc0,0xc0,0xe4,0x91,0x3d,0x21,0x64,0xe,0xc0,0xa6,0x83,0xa,0xc0,0x2c,0xe8,0x6,0x3f,0x52,0x7e,0x6,0x40,0x8,0x43,0x18,0xc0,0x6,0x97,0x2a,0x40,0x4e,0xe4,0xbd,0x3f,0xbb,0xb,0x77,0x40,0x8,0xaa,0xf7,0x3e,0xfa,0x48,0x83,0x40,0xea,0x2d,0x90,0xc0,0x38,0x76,0xba,0x3f,0x52,0x7e,0x89,0xc0,0x83,0x4a,0x7,0x40,0xb4,0x87,0xf5,0xbf,0x46,0x36,0x83,0xbf,0xb3,0x84,0x87,0x40,0x58,0xca,0x95,0x40,0xf6,0x7c,0xa0,0xbf,0x17,0x35,0x38,0xc0,0x7a,0xdd,0x2e,0x40,0x8f,0xbf,0xd,0xc0,0x78,0x7b,0x16,0xc0,0x9e,0xa5,0x70,0xc0,0xda,0xff,0x9e,0x40,0x38,0xd5,0x97,0x3e,0x2a,0x44,0x7a,0x3f,0x16,0x13,0x3a,0xc0,0x5e,0x2c,0x15,0x40,0x9e,0xb7,0x97,0xc0,0xa3,0xca,0xb9,0xbf,0xa4,0x9c,0x43,0xbf,0x6,0x54,0x3c,0x40,0x18,0x85,0xee,0xbe,0x34,0xd2,0x37,0x3f,0xfe,0xaf,0x74,0x40,0xb7,0x57,0xe1,0x3f,0x84,0xfc,0x81,0x40,0x88,0x1a,0xda,0xbf,0x2c,0xce,0x45,0x40,0xd2,0x66,0x46,0xbf,0x88,0x77,0xb9,0xbe,0x31,0xc3,0x88,0x3f,0x33,0x42,0x9a,0x40,0x0,0xeb,0xa5,0x3c,0xd2,0xb3,0x8,0xbf,0x95,0x7e,0xfa,0xbf,0x22,0x22,0x4a,0xc0,0x5e,0xd0,0x37,0x40,0x1f,0xca,0x84,0xbf,0x47,0x95,0xd7,0xbf,0x9a,0xee,0x8a,0x3f,0xda,0x81,0x5a,0x3f,0x30,0xc8,0x4f,0xbf,0x82,0xb7,0x85,0x40,0x64,0xcd,0x43,0x40,0xa8,0xed,0x9b,0x3f,0x80,0x97,0x17,0xc0,0x30,0x91,0x4,0xc0,0xef,0x20,0x8b,0x40,0xc4,0x20,0x84,0x3f,0xe7,0x40,0x91,0xc0,0x46,0x4e,0x2c,0xbf,0xe7,0xfb,0x8f,0x3f,0xc9,0xc5,0xac,0x3f,0xce,0xbf,0x87,0x40,0x58,0x3a,0x24,0x3e,0x1a,0x41,0x1a,0xbf,0x5b,0x44,0x62,0x40,0xe4,0xd,0x3d,0xbf,0x1c,0x33,0xce,0x3f,0x76,0xb0,0x6f,0xc0,0x4d,0xfd,0xe1,0xbf,0xea,0x5d,0x71,0xc0,0x84,0x90,0xfe,0x3e,0x4b,0xe1,0x7a,0xc0,0xb0,0xc4,0x73,0x40,0x7a,0xe1,0xd,0xc0,0x51,0x50,0x5b,0xc0,0x4c,0xf,0x9a,0x3e,0x5c,0xcd,0x16,0xc0,0x68,0x93,0x3f,0xc0,0x10,0x53,0x6a,0x40,0x3e,0xee,0xcd,0x3f,0x8a,0xbc,0x51,0x3f,0xd2,0x5a,0x1d,0x40,0x7,0xdc,0xd5,0xbf,0xca,0x5,0x5,0x3f,0x89,0x64,0x9a,0x40,0xb8,0x6e,0xa,0xc0,0x57,0xf0,0x0,0x40,0xbe,0x89,0x86,0x40,0x3c,0xe3,0x32,0xbf,0x5e,0xa7,0x83,0x40,0xdb,0x21,0xa8,0xbf,0xe2,0x8b,0x7f,0xbf,0x81,0x26,0xa3,0x3f,0xac,0xe7,0x45,0xbf,0x75,0xf,0xa8,0xbf,0x52,0x8b,0x79,0xbf,0x65,0xf9,0x82,0x3f,0xb5,0xc1,0x30,0xc0,0xda,0x60,0x74,0xc0,0xfa,0xc8,0x7a,0xc0,0x2b,0x65,0x9d,0x40,0xb8,0x59,0x9,0x3e,0x7e,0x3f,0xf,0x40,0x54,0x3f,0x99,0xc0,0x28,0x4e,0x3b,0xbf,0xf2,0x38,0x7a,0xc0,0x4c,0x12,0xdd,0xbe,0x7b,0x87,0x8e,0x40,0x1b,0x3d,0x68,0x40,0x20,0x16,0xe7,0xbf,0xc,0xd5,0x2d,0xc0,0x23,0xeb,0x82,0xc0,0x4,0xce,0x1d,0xc0,0x2f,0xe1,0xda,0x3f,0x34,0x7c,0x3d,0xc0,0xae,0xe4,0x2f,0x40,0xa4,0xe3,0xe5,0xbf,0x72,0x3c,0x94,0x40,0x20,0xd6,0x9a,0xbf,0x68,0xcc,0x63,0xbf,0xfa,0xa7,0x3c,0x40,0x6c,0x53,0x60,0x40,0xb9,0x9,0x67,0x40,0x78,0xcf,0x67,0x40,0x9c,0x48,0x97,0xc0,0xd8,0x73,0x30,0x40,0x34,0x5d,0x27,0xc0,0x66,0x8,0x63,0x40,0x9a,0xfb,0x78,0x40,0x1c,0x77,0xd5,0xbe,0xbb,0xad,0xdc,0x3f,0x11,0x67,0x87,0x3f,0x72,0x99,0xc,0x40,0x78,0x9e,0x56,0x40,0xaf,0x3c,0xb9,0x3f,0x6e,0x65,0xd6,0xbf,0x80,0x60,0x49,0x3e,0x48,0xd3,0x13,0x3f,0xd7,0x34,0x84,0xc0,0x8f,0x5c,0xd2,0x3f,0x92,0x80,0x50,0xc0,0x50,0xf0,0x4a,0x40,0x7d,0x61,0x8f,0x40,0xd0,0x35,0x2e,0x3f,0xae,0xf8,0x85,0x40,0x60,0xdb,0xdc,0x3d,0x3e,0x3b,0x49,0x40,0x5e,0xa4,0x1f,0x40,0x92,0x55,0x85,0xc0,0x84,0x53,0x80,0xc0,0xa0,0xa7,0x99,0xbf,0xcf,0xbd,0xfe,0x3f,0xa,0x2f,0x6e,0xbf,0x45,0xca,0x81,0xbf,0x14,0x81,0x41,0x40,0xe2,0x60,0x8f,0x40,0xc0,0x7d,0x7,0x40,0xe0,0xb1,0xbd,0x3f,0x9,0xa4,0x22,0x40,0x32,0x38,0x2e,0x3f,0xa6,0x18,0x90,0xc0,0x2e,0xba,0x9e,0xc0,0x50,0xa,0x95,0xc0,0xde,0xb3,0x8c,0xc0,0x55,0x5d,0x72,0x40,0x0,0xd2,0xb4,0xbe,0x76,0xd0,0x5d,0xc0,0xdd,0x6e,0x8b,0x3f,0x0,0x37,0xd7,0x3c,0xbe,0x0,0x40,0xc0,0x24,0x1a,0x99,0xc0,0x2b,0x27,0x94,0x3f,0xf0,0x9f,0x9c,0x3d,0xd9,0x1f,0xe3,0xbf,0xd6,0x6a,0x32,0xc0,0x20,0x59,0xa9,0xbf,0x76,0x17,0x8b,0x40,0x68,0xd,0x80,0xc0,0xc9,0x9c,0xfd,0xbf,0xae,0xa3,0xcb,0xbf,0x78,0xa7,0x92,0x40,0x68,0x0,0x9c,0x3e,0xd2,0x27,0x5a,0x40,0x4,0xc,0xfe,0xbe,0xf8,0x3e,0x48,0xbf,0x2c,0xde,0x35,0x40,0x6b,0x3e,0xf6,0xbf,0x47,0x4f,0x3e,0x40,0x4c,0xf7,0x8b,0x40,0xfe,0x47,0x2,0x40,0x66,0x80,0x45,0x40,0x76,0xfd,0x77,0xc0,0x87,0x9d,0x93,0x40,0x78,0xf5,0x40,0xc0,0x44,0x7,0x34,0x40,0x6a,0xc8,0xc7,0x3f,0x48,0x51,0xbb,0x3e,0xd6,0xc4,0xa5,0x3f,0xd8,0xfa,0x9c,0xc0,0x10,0xcf,0x98,0x40,0xb0,0xff,0xa4,0xbe,0x25,0xe7,0x8e,0x40,0xb0,0xb3,0xfa,0x3d,0xb2,0x70,0x2,0xc0,0x60,0x4a,0x48,0x40,0x10,0x4,0xc3,0xbd,0x48,0x39,0x4b,0xc0,0x5c,0xd5,0x20,0x3f,0x2a,0x42,0x9f,0xc0,0x3e,0x99,0x45,0xc0,0x7c,0x5,0x82,0xc0,0xb8,0x7d,0x83,0x3e,0x26,0x2b,0x30,0xc0,0xb0,0x60,0xdf,0xbd,0x3f,0x54,0x73,0xc0,0x6c,0xd9,0x89,0xc0,0xd0,0xd7,0x13,0xbf,0x6e,0xcd,0x16,0x3f,0xc5,0x44,0x66,0x40,0xd7,0xd4,0xda,0xbf,0xf,0x35,0x98,0x40,0x78,0xd4,0x64,0xc0,0xa,0x90,0xdd,0x3f,0x8e,0xf1,0x8f,0xc0,0x7f,0x77,0x90,0x40,0xb7,0x8d,0xf1,0xbf,0x2e,0xbd,0x31,0x40,0xe8,0xa2,0x76,0x3e,0xba,0xae,0x0,0xc0,0x51,0x93,0x98,0xbf,0x80,0x17,0xef,0xbf,0x18,0xad,0x43,0x40,0xc0,0xb6,0x69,0x40,0x7f,0x46,0x98,0x40,0x7,0x38,0x98,0xbf,0x26,0xf0,0xc0,0xbf,0xe8,0xa0,0x20,0xc0,0x38,0x27,0xaf,0xbe,0x5f,0xc9,0x9a,0x3f,0x90,0xb5,0xd2,0xbe,0x7c,0xc5,0x4e,0xc0,0xb4,0xd4,0xbc,0x3e,0x80,0x1e,0x18,0xbe,0xe1,0xf5,0x7f,0xc0,0x9e,0x12,0xae,0xbf,0x20,0x86,0x51,0xbe,0x55,0x65,0x9b,0xc0,0xfc,0x0,0x32,0x3f,0xb5,0xbd,0xaf,0x3f,0x8,0xf8,0xef,0xbe,0x4e,0xdd,0x30,0xbf,0xe0,0x6a,0xf5,0x3d,0x36,0x21,0xa3,0x3f,0xe2,0x51,0x19,0xc0,0xd8,0x42,0xee,0xbe,0x94,0xc0,0x37,0x40,0x80,0xaa,0xbb,0xbf,0x0,0x4b,0xe6,0xbb,0xe2,0xfc,0x93,0xc0,0x77,0x94,0x73,0xc0,0xbc,0x56,0xf6,0xbe,0xb4,0x22,0xdd,0xbf,0xd8,0x90,0x9b,0x40,0x6c,0xf1,0x88,0xbf,0x46,0x84,0x85,0xc0,0xf6,0x6e,0x88,0x40,0x10,0xd8,0x4e,0xc0,0x53,0x6e,0x84,0x40,0x3a,0xf8,0x1,0xbf,0xd0,0x56,0x7b,0x3f,0x8c,0xe5,0x9c,0xc0,0xec,0x2f,0x91,0x40,0xc0,0x5d,0x66,0xbd,0x3a,0x77,0x20,0xc0,0x42,0x5d,0x64,0xc0,0xc8,0xda,0x68,0x3f,0x44,0x10,0x97,0xc0,0x94,0x3e,0x6d,0x40,0xda,0x5f,0x2f,0x40,0x59,0xae,0x8a,0x40,0x92,0x77,0x8e,0x40,0x88,0x88,0x3c,0xc0,0xbe,0x4d,0xad,0xbf,0x5c,0x5,0x44,0x40,0x7c,0xc5,0x4c,0x40,0xf3,0x9b,0x9c,0x40,0x6a,0x3b,0x4,0xc0,0xfa,0x1,0x38,0x3f,0x28,0xd4,0x2d,0xbe,0xcc,0x4a,0x38,0x40,0xc9,0xc6,0x1c,0xc0,0x84,0xd9,0x90,0x40,0x1,0x78,0xbd,0xbf,0x95,0xf3,0x1e,0x40,0x88,0x73,0x71,0x40,0x51,0xcd,0x9f,0xc0,0xb8,0x7b,0x6e,0x3f,0xef,0x6b,0x5b,0xc0,0xb6,0xe,0x1a,0x40,0x59,0x4,0x89,0x40,0xc5,0x69,0xcb,0xbf,0xcd,0xd6,0x58,0xc0,0x8e,0xa4,0x22,0xc0,0xbc,0x3d,0x79,0x40,0x34,0x60,0x4f,0xbf,0x95,0x30,0x6e,0xc0,0x8a,0xf5,0x82,0x40,0x6c,0xcb,0x51,0x40,0x92,0x8d,0xa,0xbf,0xbc,0x55,0x13,0x3f,0xb6,0x29,0x1d,0x3f,0xea,0xa4,0x9a,0x40,0xe6,0x98,0x39,0x40,0xd2,0xa5,0x66,0x3f,0x20,0x5f,0xe4,0x3d,0xc7,0x19,0xce,0x3f,0x36,0x67,0x6c,0xc0,0xbf,0x7e,0x2d,0x40,0xe,0x72,0x6,0x40,0x3c,0x2f,0x14,0x3f,0xdc,0xbc,0x39,0x40,0x9e,0xd8,0x76,0xbf,0x34,0x3e,0x92,0xc0,0x2c,0x2a,0x85,0xc0,0x40,0xd9,0x96,0x40,0xda,0x1a,0xd3,0xbf,0x90,0x9b,0x69,0xc0,0x37,0x91,0x9c,0x40,0xee,0x35,0x62,0xc0,0x87,0x6,0x82,0x40,0x34,0x83,0x8e,0x40,0x44,0x87,0x22,0xbf,0xa4,0x55,0x3a,0x40,0x86,0xeb,0x74,0x40,0x12,0x8b,0x96,0xc0,0x1b,0x48,0x2b,0xc0,0x64,0x7c,0x26,0x3f,0xcd,0xa5,0xc8,0x3f,0xd7,0x70,0x5a,0xc0,0xee,0xbf,0x83,0xc0,0x84,0x56,0x99,0x40,0x47,0xd1,0x16,0xc0,0x64,0x11,0x9c,0xc0,0x8e,0x92,0xc,0x40,0x36,0x8c,0x24,0xc0,0x19,0x5c,0xdf,0xbf,0x11,0x77,0xe0,0xbf,0x8d,0xb1,0x93,0x40,0x74,0x8d,0xf3,0x3f,0x4c,0xc7,0x9c,0x40,0x6b,0x2f,0xe2,0xbf,0x9a,0xf2,0x67,0x40,0xb6,0xd5,0x81,0xc0,0x4,0xc9,0x41,0x40,0xe8,0x8b,0x51,0x3e,0x58,0x33,0x3f,0x3e,0xe4,0x45,0x88,0x40,0xa0,0x13,0xc4,0x3e,0x4e,0x18,0x8,0xc0,0x8f,0x7e,0x30,0xc0,0x56,0x66,0x4f,0x3f,0x13,0x1b,0xd6,0xbf,0xdc,0xca,0x21,0x40,0x24,0xa1,0x85,0xc0,0x2a,0xa,0x57,0xc0,0xf3,0x8a,0x8b,0x40,0xb0,0xc0,0xf7,0xbf,0xd4,0xb0,0x9d,0xc0,0x65,0xf1,0x64,0x40,0x18,0xa8,0xad,0xbf,0x40,0x9,0xf2,0x3c,0x34,0x44,0x46,0x40,0x70,0xa5,0xd5,0x3f,0xe,0x82,0x99,0xc0,0x90,0xa2,0x65,0x3f,0x91,0x6,0x9b,0x40,0x68,0xea,0x93,0xbe,0x2e,0xb4,0x68,0x40,0xdc,0x2b,0x8c,0x40,0xa1,0xdb,0xeb,0x3f,0x10,0xe3,0x93,0xc0,0x7f,0x42,0x89,0x40,0xa4,0xbd,0x7c,0x40,0xd8,0xda,0xbf,0x3f,0x14,0xc8,0xd2,0xbe,0xa0,0x69,0x5c,0xc0,0x4c,0x17,0x8d,0x3f,0xe5,0x54,0xde,0xbf,0x4b,0x61,0x8f,0x40,0x22,0x81,0x9f,0xc0,0x8c,0xfd,0x89,0x3f,0x40,0x19,0xd8,0xbd,0x0,0xec,0x56,0x3c,0xc6,0x1c,0x1f,0xbf,0xd0,0x6e,0x7,0x40,0x10,0x62,0x89,0xc0,0xe0,0xbd,0x89,0x3f,0xf7,0x14,0x55,0xc0,0xd7,0x9d,0xcb,0x3f,0xb4,0x58,0xd9,0xbe,0xa8,0x6e,0x22,0x3f,0xdd,0x72,0x34,0x40,0xeb,0x79,0xfe,0xbf,0x8c,0xc4,0x80,0xc0,0x41,0x47,0x15,0xc0,0xa0,0x6b,0x82,0x40,0x71,0x3d,0x82,0xc0,0x8d,0xed,0x4a,0x40,0x81,0xfb,0xe1,0xbf,0x90,0xa2,0x86,0x3e,0xf6,0x10,0x3,0x40,0xe3,0xa3,0xe1,0xbf,0x9a,0x6d,0x5c,0xc0,0xe3,0x98,0xd8,0x3f,0x35,0x40,0x41,0x40,0xc,0x78,0xee,0x3f,0x0,0x57,0x32,0xbe,0x6a,0x7b,0x8,0x3f,0xbf,0x5a,0x6,0x40,0xbc,0xf4,0xcb,0x3f,0x24,0x9c,0x1e,0xc0,0x13,0xab,0x66,0x40,0xb4,0x54,0x2b,0xbf,0x1d,0x7c,0xfc,0xbf,0x13,0x17,0xc1,0xbf,0x58,0xfd,0x29,0x3f,0x1e,0x93,0x25,0xc0,0x10,0x77,0x69,0xc0,0x92,0x71,0x32,0x40,0x76,0x91,0x82,0x40,0x24,0x6,0x9f,0xc0,0x96,0xa6,0x7e,0x40,0xeb,0xc,0x3c,0xc0,0x83,0x2b,0x97,0x3f,0x32,0x13,0x94,0x40,0x78,0x1c,0x48,0xc0,0x54,0x91,0x3,0xc0,0x43,0x77,0xb8,0x3f,0xe2,0x29,0x48,0xc0,0x12,0x17,0xf9,0xbf,0x64,0x20,0x86,0xc0,0x12,0x62,0x15,0x3f,0xe0,0xca,0x47,0x40,0x82,0x68,0xab,0x3f,0x58,0xcd,0x63,0xbf,0x72,0xab,0x97,0x40,0x6c,0xc4,0x79,0x40,0xca,0x15,0x2e,0xc0,0x56,0xd,0x37,0x40,0xa2,0xd4,0x92,0xbf,0x11,0x66,0xce,0x3f,0x32,0x10,0xb,0x3f,0x2,0xf,0xc,0x40,0x4a,0xc7,0x22,0xc0,0x29,0x3c,0x1a,0xc0,0xbf,0x7f,0x36,0xc0,0x98,0x31,0x4f,0xc0,0xb4,0xfb,0x9,0xc0,0xd0,0x9f,0x99,0x3f,0x2,0x2e,0xb6,0x3f,0xb8,0x8b,0x72,0x3f,0xc1,0x22,0x6e,0x40,0xc3,0x5c,0x73,0x40,0x2e,0x1e,0x81,0x40,0x54,0x2a,0x47,0x40,0x20,0x94,0x20,0xbd,0x51,0xcf,0xa2,0x3f,0x56,0x23,0x21,0xc0,0x70,0xa2,0xab,0x3d,0xdc,0x15,0xc2,0x3e,0x26,0xd1,0x82,0xc0,0xda,0xf3,0x82,0x40,0x36,0xd7,0x8d,0xbf,0xd8,0xe3,0x74,0x40,0x8e,0xfe,0x17,0x40,0xff,0xcf,0x2d,0xc0,0x9,0x95,0xbb,0x3f,0x68,0x0,0xd,0xc0,0x34,0x80,0x1d,0xc0,0xd4,0x28,0xcb,0x3f,0x2e,0x7d,0x1c,0x40,0x9,0xc7,0x36,0xc0,0xb3,0xc8,0x21,0xc0,0x9f,0xaa,0x71,0x40,0x3b,0x47,0xeb,0xbf,0xb6,0xc7,0x56,0xc0,0x64,0x7c,0x87,0xc0,0x42,0xf8,0x38,0x40,0xf0,0x85,0x66,0x40,0x32,0x9c,0x9e,0x40,0x2e,0x42,0x70,0xc0,0x60,0x7e,0x19,0x3f,0x92,0xf6,0x78,0x3f,0x44,0x45,0xfd,0x3e,0xea,0x34,0x81,0x3f,0xd2,0xcb,0x93,0xc0,0xf9,0xcf,0x99,0xc0,0x82,0xad,0x4,0xc0,0x64,0x69,0xeb,0x3e,0x70,0xeb,0xc1,0x3e,0x7e,0xf7,0x36,0xbf,0x94,0xcb,0x9f,0xc0,0x1f,0xd2,0x47,0x40,0xfa,0x85,0x56,0xc0,0x0,0xf4,0x97,0x3f,0xe6,0xd2,0x69,0xc0,0x40,0xae,0x66,0x40,0x75,0xc8,0x80,0x40,0x90,0x39,0x27,0xc0,0x3c,0x47,0x89,0x40,0x6a,0xd4,0xc0,0xbf,0x84,0x7a,0x9b,0xc0,0xc0,0x1a,0x4f,0xbf,0xd6,0x89,0x71,0xc0,0xdb,0x7b,0x85,0x3f,0xc2,0x59,0x77,0x3f,0x6,0x2b,0xd,0xc0,0x71,0x8a,0xb8,0xbf,0xac,0xa5,0xbc,0x3f,0xe8,0x32,0x2f,0xc0,0x30,0x90,0x3,0x40,0xb,0xf8,0x6c,0xc0,0x6a,0x4,0x3b,0x40,0xb2,0x41,0x18,0xc0,0xbc,0x8c,0x85,0xc0,0x58,0x93,0x75,0x3f,0xd0,0xe9,0x6,0x3f,0x5e,0x53,0x6c,0xc0,0x33,0xa8,0x8c,0x40,0xf3,0xde,0xe6,0xbf,0x94,0xde,0x52,0x40,0xa8,0x48,0xa5,0xbf,0x2,0xff,0x55,0x40,0x9,0x43,0x1a,0xc0,0xe7,0x6b,0x5e,0xc0,0xc9,0x9a,0x82,0xc0,0xa2,0x5a,0x23,0xc0,0xf8,0x91,0x2e,0xc0,0xb7,0xfc,0x11,0x40,0xa2,0x39,0x53,0xc0,0x6,0xee,0x58,0xbf,0x77,0x86,0xe8,0xbf,0x3e,0xa2,0xf1,0xbf,0x70,0xca,0x1c,0xbf,0xa6,0x91,0x30,0x40,0xc0,0xf7,0x3,0xc0,0x9b,0x11,0x86,0xc0,0x94,0xda,0x59,0x40,0xc1,0xf2,0x39,0xc0,0xc2,0xd3,0x5c,0x40,0xf2,0x49,0x2,0xbf,0x70,0x52,0x17,0xbf,0x5d,0x11,0x96,0x40,0x52,0x6c,0x66,0x3f,0xe6,0xbe,0x90,0xc0,0xc8,0x5e,0x99,0xc0,0xa1,0xaa,0x95,0xc0,0xae,0x25,0x6c,0xc0,0x8f,0x56,0xe7,0x3f,0xec,0xe8,0x4,0x40,0x79,0xd1,0x25,0x40,0xde,0x39,0x93,0xc0,0xce,0x4a,0x40,0x40,0x2d,0xd7,0x8d,0x40,0xb5,0x35,0xfb,0x3f,0x48,0x51,0xfc,0xbf,0x23,0xbf,0x8a,0xc0,0xda,0x2f,0x9e,0x40,0xb4,0x27,0xfb,0x3e,0x9c,0x1,0x8a,0x3f,0xe0,0xbc,0x41,0x3e,0x5a,0xd8,0x56,0x40,0x76,0x41,0x9d,0xc0,0xd6,0xc5,0x21,0x40,0x48,0x7b,0x59,0xc0,0xe1,0x67,0x94,0x40,0x61,0xbd,0x79,0xc0,0x1c,0x24,0x8d,0xbf,0xe1,0x7c,0xd3,0x3f,0xbd,0xcc,0xd4,0x3f,0x5c,0x13,0xd6,0x3f,0xe8,0x9d,0x4e,0x3e,0xd9,0xb2,0xaf,0x3f,0xe0,0x60,0x57,0xc0,0x28,0x40,0x97,0xbe,0x3,0x72,0xb2,0x3f,0x88,0x58,0x80,0x40,0x48,0x41,0x82,0xc0,0xa2,0xa1,0xfc,0xbf,0xfe,0x81,0x56,0xc0,0xa3,0x5c,0x25,0xc0,0xd6,0x2,0x3b,0xc0,0x92,0x59,0x43,0xbf,0x55,0x40,0xe7,0x3f,0x8e,0xf0,0x78,0xbf,0xd6,0x3f,0x80,0x3f,0x63,0x50,0x97,0xbf,0x12,0xf7,0x99,0xc0,0x6a,0xca,0x22,0x3f,0x68,0x2f,0x60,0x3e,0x62,0x50,0x59,0xc0,0x8b,0x10,0x9a,0xc0,0x76,0x4,0x9e,0x3f,0x4c,0x1c,0xb0,0xbf,0x20,0x2d,0x80,0x3f,0x85,0xe4,0x8b,0xbf,0x71,0x96,0x9d,0xbf,0x12,0x57,0x0,0xc0,0x54,0xbf,0x99,0x40,0x41,0x80,0x8e,0xc0,0xb7,0xe5,0x9e,0xbf,0x55,0x6f,0xae,0xbf,0xc7,0x42,0xe1,0xbf,0xe2,0x3e,0x22,0x40,0x79,0x42,0x8e,0x40,0x2a,0xf5,0x83,0x40,0x28,0xb7,0x1b,0xc0,0xf4,0xa0,0xb,0xc0,0xd5,0x12,0xfe,0x3f,0xad,0xc4,0x2b,0x40,0x6a,0x26,0x86,0xc0,0xb6,0x15,0x11,0xc0,0xae,0xd6,0x16,0xc0,0x38,0x2d,0xf9,0xbe,0xb,0xfa,0xe0,0xbf,0xea,0x5c,0x77,0xc0,0xfc,0xe5,0x56,0xbf,0x6c,0xf5,0x93,0xbf,0x20,0x84,0xc4,0x3e,0x43,0xf0,0xf3,0xbf,0xe3,0x5e,0x15,0xc0,0x1e,0xdb,0x8e,0x40,0x9d,0x6d,0xb8,0xbf,0x72,0x99,0x3e,0x40,0x56,0x4e,0x51,0xc0,0x8a,0xb8,0xa,0xc0,0xd6,0x36,0x2,0x40,0x6,0xbb,0x7c,0x3f,0xe8,0x4d,0x71,0xc0,0x2a,0x62,0x77,0x40,0x2,0x3b,0xae,0xbf,0x0,0x60,0xb8,0xba,0x4,0x48,0x2e,0xbf,0x91,0x65,0x74,0x40,0xb3,0xed,0x9a,0x3f }); + // [[[[ 2.3296685 -1.0875499 4.985183 1.9457787 2.4680734 -0.9700763 - + Tensor *w = NN_tensor(4, (size_t[]){ 3, 3, 1, 16 }, DTYPE_F32, (uint8_t[]){ 0x4a,0x19,0x15,0x40,0xd6,0x34,0x8b,0xbf,0x9e,0x86,0x9f,0x40,0x47,0xf,0xf9,0x3f,0xea,0xf4,0x1d,0x40,0xec,0x56,0x78,0xbf,0x98,0x73,0x84,0xc0,0x9a,0x3e,0x67,0x40,0x21,0x7c,0x8e,0xc0,0x68,0x2d,0x9e,0xc0,0xc8,0x2a,0xf3,0x3e,0x42,0x6b,0x77,0xbf,0xd0,0x8c,0x66,0xc0,0x46,0x52,0x76,0x40,0x48,0x13,0x1,0x3f,0xbc,0x4d,0x14,0xc0,0x86,0xc7,0x4d,0x40,0x8e,0x93,0xe2,0x3f,0x28,0xda,0x79,0xc0,0x2a,0x93,0x53,0xbf,0x87,0xdb,0x89,0xc0,0x7c,0x53,0x32,0xc0,0x58,0xc0,0x66,0x3f,0xb4,0x4e,0xb1,0x3f,0xcb,0x87,0xf7,0xbf,0xf4,0x51,0xe1,0xbf,0xe9,0xa1,0x88,0xc0,0x8d,0xd4,0x45,0xc0,0x4c,0xb1,0xa2,0xbe,0xa0,0xf7,0x37,0x3e,0xda,0xa,0x34,0x40,0x98,0x95,0x54,0x40,0x73,0xa1,0x8b,0x40,0xb4,0xe8,0x78,0x3f,0x3d,0xc6,0x6c,0xc0,0x7d,0xf5,0xb4,0xbf,0x47,0xcc,0x8c,0xc0,0x30,0xdd,0xc4,0xbe,0x34,0x92,0x27,0x40,0x60,0x76,0x12,0x3f,0x82,0x20,0x12,0x40,0x90,0x16,0x87,0x40,0xea,0x7b,0x26,0x40,0xe9,0x13,0x85,0xbf,0x62,0xc5,0x91,0x40,0xb4,0x64,0x31,0x40,0xec,0x7c,0x6d,0xc0,0x56,0xf1,0x37,0x3f,0xd8,0x57,0x1a,0x40,0x60,0x45,0xcd,0x3f,0x68,0x7,0x9a,0x40,0xb5,0xff,0x51,0xc0,0xda,0x3e,0x34,0x3f,0x72,0x1e,0x9b,0x40,0xa8,0xaf,0x48,0xc0,0xfa,0x58,0x2c,0xc0,0xc,0xd4,0x58,0x40,0xcc,0x35,0x21,0x40,0xba,0xd3,0x7b,0x40,0x68,0x4a,0x5e,0xbf,0x4c,0xaf,0x3d,0x40,0x6e,0x83,0x89,0xc0,0x4e,0x80,0x38,0xc0,0x5c,0x35,0x4d,0x3f,0x10,0x16,0x63,0xc0,0xd0,0x65,0xb0,0xbd,0x68,0xcb,0xee,0xbf,0x5a,0x2b,0x9e,0x40,0x5c,0x34,0xbf,0xbf,0xdf,0xb9,0xde,0x3f,0x7a,0xc1,0x75,0x3f,0xdb,0x29,0x9a,0x40,0x20,0x87,0x55,0x3d,0xdc,0xcc,0x35,0x40,0xb0,0x27,0x59,0xc0,0xb6,0xd7,0x66,0xc0,0xa9,0xa6,0x25,0x40,0x20,0xcf,0x46,0x40,0xd2,0xd,0x22,0xc0,0xf2,0x2c,0x80,0x40,0xae,0xa,0xd3,0x3f,0x9c,0x5a,0x35,0xc0,0x48,0x52,0x1a,0x40,0x27,0x17,0x9f,0x40,0xdb,0xc,0xa4,0xbf,0xc8,0x8b,0x78,0x40,0x57,0x8d,0xc5,0xbf,0xae,0x2c,0x96,0xc0,0xa1,0xd9,0x7c,0xc0,0x8,0x34,0xd7,0xbf,0x5,0x55,0x97,0x40,0xc0,0x79,0x6,0x40,0x3b,0xf5,0x89,0x40,0x46,0x2d,0x22,0x40,0x30,0x98,0x91,0xbd,0xa4,0x71,0x53,0xc0,0x2e,0x6a,0x91,0xc0,0xef,0x4d,0xd6,0xbf,0x6a,0x50,0xd,0xc0,0x69,0x0,0x90,0x40,0xde,0x95,0x9a,0xbf,0xf2,0xb3,0x1a,0xbf,0x18,0x2c,0x68,0x3f,0x2c,0x58,0x83,0x40,0x58,0xb5,0x3,0xbf,0x68,0xcf,0x27,0x40,0x44,0xc5,0x5c,0xc0,0xdf,0x6f,0x98,0xc0,0xfc,0x61,0x44,0xbf,0x71,0x9c,0x12,0x40,0x56,0x74,0x48,0x40,0xa7,0x5a,0xe9,0x3f,0x86,0x88,0x72,0x40,0x9e,0x27,0x3c,0xc0,0x93,0xeb,0x8f,0x3f,0x19,0x1f,0x85,0x40,0x2e,0x10,0x46,0xc0,0xdc,0x75,0x5d,0x40,0x8,0x9b,0x81,0xc0,0x66,0x23,0x50,0x40,0x90,0xd4,0x26,0x40,0x42,0xc5,0x8b,0x40,0x7a,0x69,0xa,0xbf,0x8c,0xc3,0x8c,0xbe,0x8f,0x41,0x40,0xc0,0x82,0xb2,0x92,0x40,0x28,0x3f,0x31,0xbe,0xd1,0x55,0xa6,0xbf,0xf0,0x3a,0xa7,0x3e,0x20,0x66,0x26,0x40,0x82,0x50,0x22,0xc0,0x86,0xd1,0x7e,0xc0,0x67,0xcf,0x9b,0xbf,0x93,0x41,0xc1,0x3f,0x80,0xc7,0x0,0x3f,0x51,0x40,0xaa,0xbf,0xf6,0x76,0x26,0x3f,0x38,0x1f,0xd0,0xbe,0x88,0xf4,0x77,0x40,0xe2,0x8,0x3c,0xc0,0xc5,0x4b,0x9a,0x40,0x0,0x7e,0x42,0x3d,0xc4,0xc3,0x60,0x40,0xd,0xd6,0x0,0x40 }); + // [-3.7606459 3.586495 -1.750384 -3.3630772 2.1881926 0.9455222 -2.5148 + Tensor *b = NN_tensor(1, (size_t[]){ 16 }, DTYPE_F32, (uint8_t[]){ 0x6c,0xae,0x70,0xc0,0x22,0x89,0x65,0x40,0x95,0xc,0xe0,0xbf,0xa8,0x3c,0x57,0xc0,0x59,0xb,0xc,0x40,0xbe,0xd,0x72,0x3f,0xc4,0xf2,0x20,0xc0,0x40,0x59,0x16,0xc0,0xe7,0xe2,0x8b,0x40,0x4c,0xf6,0x9f,0xc0,0x68,0xd,0x37,0x3f,0xf0,0xe0,0xce,0x3d,0xe8,0x7d,0x7f,0xc0,0x72,0x19,0xb,0x40,0x4c,0xb2,0x8f,0xc0,0x70,0x9c,0x18,0xbe }); + + + // [[[[-1.58899307e+01 -9.07565594e-01 -7.15839863e-02 ... 4.07287216e+00 -1.1 + Tensor *golden = NN_tensor(4, (size_t[]){ 1, 12, 12, 16 }, DTYPE_F32, (uint8_t[]){ 0x28,0x3d,0x7e,0xc1,0x38,0x56,0x68,0xbf,0xa0,0x9a,0x92,0xbd,0x92,0x74,0xea,0xc0,0xe8,0xd9,0xba,0x41,0x8c,0x5d,0x59,0xc1,0x28,0xea,0xdc,0xc1,0xb,0xb,0x33,0x41,0xef,0xa2,0x9f,0xc0,0xc3,0x4f,0x32,0xc0,0x8f,0xd5,0xdf,0x41,0xf1,0x27,0xf1,0xc0,0x22,0x74,0x49,0x40,0xf8,0x54,0x82,0x40,0x46,0x38,0x38,0xc1,0x19,0x91,0x3,0x3f,0x80,0x2a,0x12,0xbe,0x12,0xe6,0x35,0xc1,0x5b,0x2e,0x5f,0x41,0xe2,0xb9,0x42,0x42,0x8c,0x28,0x9a,0x41,0xd4,0x1d,0x75,0xc1,0xe,0xe,0x98,0x41,0x50,0x6d,0xfb,0xc0,0x70,0x58,0x15,0x41,0x58,0x32,0xc0,0x41,0xf3,0xda,0x88,0xc1,0xf4,0xde,0x2,0x42,0x13,0xa2,0x40,0xc0,0xed,0xa8,0x3b,0x42,0xbe,0xbb,0x9a,0x41,0x2,0xe0,0x92,0xc1,0xc1,0xa4,0x86,0x40,0xf0,0xe8,0xdb,0x3f,0x21,0x92,0xd,0x42,0x5e,0x25,0x1f,0x41,0xc2,0xf0,0xcd,0x40,0xcf,0x24,0x65,0x42,0x58,0x3e,0x8f,0xc1,0x38,0x6e,0x34,0xc2,0xa,0x8a,0xc4,0x41,0xa0,0x6d,0x68,0x40,0xa,0x96,0xf9,0xbf,0x10,0x91,0x36,0x40,0x13,0xa3,0xc2,0xc1,0x68,0xd8,0xba,0x41,0x6a,0x95,0xc1,0xc1,0x80,0x24,0x89,0xc0,0xb6,0x97,0xad,0xc0,0x70,0xfb,0x1,0xbf,0x3f,0xc8,0xd5,0xc1,0xd,0xc0,0xb0,0xc0,0x48,0xee,0xec,0x3f,0x8e,0xa5,0x14,0x42,0x7,0x74,0x9,0x41,0xb9,0xb5,0x24,0x42,0x3,0x29,0xe6,0xc0,0xbe,0x95,0x25,0xc2,0x91,0x5a,0xf0,0x40,0xb4,0xe7,0x59,0xc1,0x6c,0x5a,0x4e,0x41,0x18,0x21,0x4c,0xc0,0x54,0xe4,0xb8,0xc1,0x43,0x40,0xa7,0xc1,0xce,0x59,0xb7,0xc0,0x26,0x86,0x70,0x41,0x4b,0xd9,0xb,0x42,0xe0,0x7c,0x59,0x41,0xfc,0x1b,0x14,0xc1,0xbc,0x1a,0x34,0x42,0xa1,0x90,0x35,0x41,0xa3,0xf,0xb0,0xc1,0xfc,0x83,0x89,0xbf,0x4a,0xf,0x23,0x40,0xee,0xc6,0x62,0x41,0xc5,0x5b,0x8c,0xc1,0x26,0x47,0x1c,0xc0,0xc,0xa9,0xeb,0xc1,0xc8,0xf3,0xdb,0x40,0x9c,0x19,0xb6,0xbf,0xa,0xee,0xe6,0xc0,0x71,0x79,0x61,0x40,0x45,0xed,0x17,0xc1,0xc3,0xb0,0x78,0xc1,0x44,0x91,0x4b,0xbf,0x20,0x58,0xd8,0x41,0xf1,0xe1,0x48,0x41,0xd6,0x6,0x59,0x40,0x7d,0x5a,0x93,0xc0,0x30,0x81,0x56,0xbf,0x5a,0x28,0x4b,0xc1,0x9b,0x37,0x9e,0xc1,0xe8,0x4b,0x73,0xc1,0x72,0xf6,0x27,0xc1,0x80,0x7b,0xcf,0x3e,0x28,0x3d,0xb5,0x40,0x86,0x37,0xe1,0x41,0xf,0x78,0xa8,0xc0,0x1e,0xf6,0x78,0xc1,0xea,0x35,0x17,0xc1,0x74,0x8,0xbe,0x40,0x6e,0x87,0x34,0x42,0x2,0xa2,0x10,0xc2,0x50,0x7f,0xe4,0xc1,0xfc,0x3e,0x80,0x41,0xf8,0xea,0x9b,0x3f,0x1c,0xac,0x5d,0x41,0x93,0xae,0x97,0xc1,0x5e,0x67,0xcd,0xc1,0x54,0x3c,0xb,0x42,0xe2,0x9e,0x8c,0xc0,0x79,0xa,0xa4,0xc1,0x4c,0x7a,0x26,0xc2,0x90,0xac,0x94,0x40,0x3f,0x48,0x13,0x42,0xca,0xbe,0x8a,0x41,0xe9,0xee,0xb,0x41,0xa2,0xa5,0x30,0x41,0xd4,0x31,0xaf,0x41,0x99,0x1e,0x8f,0x41,0xb8,0xa6,0xfb,0x41,0x96,0x80,0xae,0x40,0x76,0x28,0x37,0x42,0xdf,0xa7,0x6,0xc2,0x36,0xae,0x9c,0xc1,0x47,0x75,0xb,0x42,0xe0,0xe,0x59,0x40,0x15,0x23,0x7a,0x40,0x77,0xf3,0x62,0xc0,0x90,0x52,0xa4,0xc1,0xef,0xfe,0x5,0xc2,0x98,0xf1,0xc6,0xc0,0xdc,0x5e,0xa6,0x41,0x64,0x1,0xfb,0x3f,0xe3,0x53,0x62,0xc1,0x6e,0x4a,0xab,0x3f,0x1c,0xbb,0xa,0x40,0x24,0xfa,0xc5,0xc1,0x43,0xc,0xa0,0xc0,0x9a,0x9c,0x17,0x40,0x8,0x17,0x61,0x41,0x9e,0x4c,0x49,0x41,0x42,0x3d,0x7f,0xc1,0x52,0xa8,0x10,0x40,0xd0,0x88,0x8a,0x40,0xc8,0x3e,0x9c,0x41,0x31,0x29,0x30,0x42,0x54,0x8e,0xbd,0xc1,0xfa,0x8,0xf5,0x41,0x7b,0x17,0x12,0x42,0x80,0xfb,0xac,0xbf,0xf5,0x34,0x1c,0xc1,0xff,0x7,0x40,0x41,0x83,0xe0,0xa2,0xc1,0x16,0xfa,0x70,0x40,0xc7,0xcf,0xe4,0xc0,0x8,0x4,0xd2,0x40,0x14,0xed,0x1c,0xc2,0xe8,0xb6,0xe4,0x40,0x1b,0x75,0x2,0xc2,0x32,0xfa,0x5e,0x40,0xeb,0xb,0xa3,0x40,0x1a,0xfc,0x4,0xc2,0xbe,0x6f,0xce,0x40,0x11,0x9a,0x85,0x41,0xe5,0x4,0xf,0x40,0xa5,0x45,0x68,0x41,0x2b,0xae,0x12,0x41,0x47,0x3d,0x59,0x40,0xb1,0x11,0xb1,0x41,0xc3,0xbf,0xa2,0xc1,0x1b,0x85,0x5a,0xc1,0x64,0xbe,0x51,0x41,0x47,0x6f,0x8f,0x41,0x90,0x42,0x3c,0xc1,0xe3,0x41,0x6c,0x41,0x34,0xff,0xc1,0x41,0x32,0x9d,0x22,0xc1,0xf2,0xb9,0x4a,0x41,0xf4,0x2a,0x9b,0x41,0xd1,0x1a,0x30,0x41,0x5b,0x4e,0xb3,0x41,0x4d,0x22,0x2e,0xc1,0xbb,0xc1,0x24,0xc0,0x80,0x11,0x5d,0xc1,0x6a,0x9b,0x3c,0x41,0xfe,0xbf,0x80,0x41,0xf3,0x5,0xfc,0x41,0xd4,0x98,0xf6,0x3f,0x86,0x12,0x96,0x41,0xa9,0xf5,0x19,0xc0,0x4b,0x86,0x2e,0xc0,0xb3,0xd5,0x20,0xc1,0x81,0xf9,0x46,0x40,0x38,0xcb,0xfc,0xc1,0x84,0x76,0x18,0x42,0xcf,0x4f,0x3,0x42,0xc2,0x4e,0x66,0xc1,0x94,0x80,0x84,0x41,0x32,0x23,0xa7,0x41,0x73,0x5a,0xd0,0x41,0x58,0xca,0xcc,0x40,0x7c,0x70,0x50,0x41,0xbd,0x84,0xc,0xc1,0xc5,0x9f,0x90,0x41,0x39,0xfe,0xb,0x42,0x8f,0xcb,0x9b,0xc1,0x9f,0x84,0x55,0xc1,0x7a,0xd7,0x33,0xc2,0x4f,0x40,0x53,0x40,0x4e,0x3c,0x14,0xc0,0xdc,0x45,0x2a,0x42,0x4,0xe,0x64,0x41,0xd,0x6e,0x98,0xc1,0x1f,0x42,0x80,0xc1,0xb4,0x84,0x9,0x42,0x2a,0x1a,0x73,0xc1,0x56,0xc5,0x8c,0x40,0xc3,0x31,0x1d,0xc2,0xff,0xec,0xbb,0xc1,0x8a,0x89,0x70,0x41,0xf4,0x27,0x42,0x41,0xc5,0x1,0x2c,0xc1,0x0,0xe8,0xdf,0xc1,0xb6,0x37,0x76,0xc2,0x7a,0x83,0x6c,0xc1,0x88,0xfa,0xa,0x3e,0x8c,0xc4,0x95,0x41,0x6a,0x6b,0xeb,0xc0,0x65,0xc9,0x9a,0xc1,0x99,0x3c,0x57,0xc1,0xa2,0x5b,0xdc,0x40,0xde,0x3c,0x88,0xc1,0xfe,0x27,0x83,0xbf,0xe6,0x4c,0xcb,0xc1,0x0,0x21,0x32,0xc0,0x67,0x7a,0xaa,0x41,0x7e,0xe4,0x78,0xc1,0xe2,0x2d,0xeb,0xc1,0x3,0xe3,0x33,0x41,0xba,0x9f,0xc6,0xc0,0x49,0x81,0xb6,0x41,0xb1,0x5b,0xa8,0xc1,0x74,0x32,0x90,0x41,0x46,0x6c,0xe4,0x41,0xeb,0xda,0xb7,0x41,0xae,0x2a,0xc8,0xc0,0xa4,0x46,0x51,0x41,0xb6,0x8f,0xf5,0x41,0xcf,0xd8,0xdc,0x41,0x7e,0x27,0x9a,0x41,0xba,0x57,0xb5,0xc1,0xd6,0x9f,0x66,0xc2,0xf9,0x48,0x5b,0xc2,0xaa,0xe8,0x1,0xc0,0xa0,0xcc,0xf9,0xc1,0x77,0x77,0x27,0xc2,0xe8,0x92,0x2f,0xc0,0xaa,0xa4,0x1d,0x40,0x20,0x20,0x81,0xc2,0x44,0xce,0x90,0xc0,0xb3,0x45,0x9c,0x41,0x56,0xb2,0xb4,0x41,0x39,0x77,0x3b,0xc1,0x96,0x9e,0x1e,0x41,0x40,0xa,0x34,0x41,0x70,0x5d,0x7a,0x41,0x63,0x9e,0xa4,0x3f,0xcd,0x3f,0xec,0x41,0x5a,0xfc,0xbc,0xc1,0xa9,0xe7,0xa5,0xc1,0x5a,0xb6,0xf6,0x41,0xc9,0xa2,0x9,0xc2,0x70,0x28,0x1a,0x41,0x8,0x78,0x6f,0xc2,0x10,0x88,0x45,0xc0,0x46,0x2a,0xd,0xc1,0xb9,0xf9,0x46,0x41,0xa8,0x46,0x5f,0x40,0xc3,0xf9,0xfd,0xc0,0xac,0x6,0xa3,0xc1,0x4c,0x5,0x58,0xc1,0x2e,0x25,0x51,0xc1,0x53,0xe1,0x72,0x41,0x9b,0x2e,0xba,0xc1,0x75,0x66,0xdc,0x41,0x6c,0x22,0xb7,0x40,0xdb,0x89,0xc0,0xc1,0xc5,0x6f,0x9,0xc2,0x54,0x22,0x66,0xc1,0xb7,0x18,0xab,0xc0,0x31,0xcc,0x92,0x41,0xb3,0xb7,0xf,0xc1,0xa9,0x6d,0xf8,0x41,0x3a,0x8b,0x1c,0xc1,0xe6,0x28,0x92,0xc0,0x38,0x1,0x8f,0xbf,0x58,0xb6,0xc3,0x40,0xa,0x4,0xb6,0x41,0xcc,0xa1,0x94,0xc1,0x68,0xea,0x2,0xc2,0xc4,0x50,0x88,0xc1,0xeb,0x2a,0xb8,0xc1,0x23,0x5a,0xcf,0xc1,0x90,0xc8,0x5c,0x42,0x7,0x68,0xa5,0xc0,0x9c,0xcb,0x35,0xc0,0x9c,0x49,0x41,0xc2,0x94,0xb9,0x12,0xc2,0x47,0x5e,0xa0,0xc1,0xd3,0x2a,0x6,0x41,0x60,0x2f,0xf9,0x41,0xf4,0xde,0x42,0x41,0x94,0xc0,0x2e,0xc1,0x63,0xf2,0xd8,0xc0,0x70,0xe4,0x77,0x41,0x42,0x3a,0x26,0xc1,0xec,0x40,0x2c,0xc1,0xed,0x5e,0xd2,0xc1,0x84,0xf9,0xa8,0x41,0x7,0x32,0x10,0xc1,0x19,0xa4,0x1b,0x42,0xd2,0x83,0x88,0x41,0x4d,0xe9,0xba,0xc1,0x97,0x53,0x21,0xc0,0x88,0x48,0xf9,0x41,0xb4,0x89,0xb7,0xc1,0x9f,0xae,0xea,0xc0,0xe0,0xc,0x15,0x42,0xb6,0x34,0x39,0xc1,0xf8,0x21,0x89,0xc0,0x1,0xfe,0xe0,0x41,0x5e,0x2d,0x2a,0x42,0xbc,0x2a,0x8d,0xc0,0x6f,0x19,0xce,0x41,0x28,0x1d,0x91,0xc1,0xaa,0x5d,0x53,0xc1,0x98,0xc0,0x69,0xc1,0x5,0xaf,0x1f,0xc1,0xba,0x61,0x1e,0x42,0x3c,0xb1,0x8,0x42,0xbc,0x51,0xa7,0x40,0x7c,0x30,0xad,0xc0,0x7e,0x57,0xf0,0xc1,0x3b,0xe8,0xba,0x41,0xac,0x7c,0x7,0xc1,0xde,0xfa,0x30,0x41,0x3f,0x1e,0x1a,0xc1,0xdc,0xc7,0x24,0xc2,0xc7,0x87,0xcd,0x41,0xfa,0x36,0x14,0xc2,0x26,0xc4,0x4a,0xc1,0x7b,0x24,0x4c,0xc1,0x7e,0x52,0x15,0x40,0x28,0x4f,0xe3,0xc0,0xa8,0x44,0xca,0xbe,0x48,0x49,0x44,0xc1,0x99,0xf8,0x2d,0x41,0x76,0x70,0xf3,0x40,0x1,0x7f,0xab,0x40,0xa5,0xad,0x89,0x41,0x9c,0x25,0x52,0xc1,0xbd,0xc3,0x8b,0x41,0xb3,0xb4,0x6c,0x42,0x1f,0x46,0x1c,0x41,0xa2,0xc9,0x53,0x41,0xd0,0x78,0xd8,0x41,0xc6,0x5,0x60,0x41,0xe1,0x18,0x33,0xc2,0xd0,0x2a,0x3a,0x41,0xfb,0x2,0x3,0xc2,0xc2,0x97,0x50,0xc2,0x78,0xcd,0x70,0xc1,0x64,0xc2,0x40,0xc0,0xb2,0x8b,0xb6,0x41,0x21,0x21,0x46,0x41,0xbf,0x77,0x9b,0x41,0x11,0xc0,0x8b,0xc1,0x5a,0x4,0x7d,0xc1,0x40,0x7d,0x27,0xc1,0xa7,0xf2,0xa9,0xc1,0x67,0x44,0x9e,0xc1,0x78,0x40,0xeb,0xbf,0x51,0xa5,0x22,0xc0,0x4a,0xee,0xbf,0xc1,0xaa,0xfa,0xc0,0x40,0x95,0x10,0x34,0xc1,0x79,0x53,0xc3,0xc1,0xcb,0x44,0x9,0x42,0xa6,0x9b,0x9,0x42,0x28,0xc4,0x32,0xc1,0x7f,0x2c,0x89,0x41,0xb3,0xf5,0xfa,0xc0,0xaa,0x65,0xe7,0x40,0x64,0x4,0xe5,0xc0,0xd7,0x80,0xe5,0xc0,0x83,0x63,0xa3,0x41,0xa9,0xfa,0x88,0x41,0x7c,0xa1,0xf2,0x40,0xe3,0xe8,0x69,0xc0,0xc0,0xbe,0x48,0xc2,0xfc,0xde,0x9b,0xc1,0x86,0x76,0xbb,0x41,0xf8,0x16,0xbf,0xc1,0xc0,0xec,0x75,0x3d,0x4b,0xaa,0x4a,0x41,0x84,0xde,0xa4,0x41,0xf8,0x38,0x6c,0x41,0xee,0x22,0x4,0x42,0x0,0xa,0x76,0xbe,0x54,0xf3,0x6e,0x41,0x63,0x44,0x12,0xc2,0x48,0xf9,0xdf,0x40,0xfe,0xb8,0x9,0x42,0xb8,0x28,0x2,0xc2,0xda,0xf7,0xa6,0xc1,0x6,0xe4,0xa,0xc2,0xd0,0x34,0xb1,0x41,0x11,0xa2,0x1,0x42,0xb2,0x37,0x81,0xc1,0x34,0x2c,0xa5,0xc1,0x51,0xea,0xae,0xc1,0x56,0x7,0x2e,0xc1,0xf6,0xd6,0x67,0xc0,0xc6,0xdc,0xac,0x40,0x5f,0x60,0xfc,0xc1,0xff,0x5b,0x3,0xc2,0xe0,0xc5,0xe5,0xc0,0x2a,0xd5,0x87,0x40,0x56,0x5f,0xe,0xc2,0x37,0x53,0x97,0x41,0xd0,0xd0,0x61,0x40,0xcb,0x74,0x97,0xc1,0xdc,0x3a,0x44,0x41,0xf7,0xa3,0xa4,0x41,0xc2,0x9,0x6f,0x41,0xb2,0xc3,0x4,0xc2,0x32,0x31,0xac,0x41,0x63,0xb0,0x1,0xc1,0x6,0xc4,0xa1,0xc1,0x25,0x2d,0x8c,0xc1,0xe2,0x88,0xa9,0x41,0x6b,0xe2,0xe4,0xc1,0xf8,0xca,0x52,0xc2,0x9e,0x81,0x6b,0x40,0x2c,0xf5,0x96,0xc1,0x4,0xc6,0xa,0x42,0xd6,0x34,0x99,0x41,0xa,0xb5,0xe,0xc2,0x2e,0x45,0x39,0xc1,0x8b,0x80,0x8,0xc2,0xcd,0x22,0xf5,0x41,0x7e,0x6a,0xa5,0xc1,0x74,0x3,0xa5,0xbe,0x70,0x18,0x4e,0x40,0x43,0x78,0x52,0x41,0x13,0xab,0xc6,0x41,0xc6,0x63,0xc9,0x40,0xfa,0x67,0x4,0xc0,0x23,0x1f,0xce,0x40,0x46,0xdb,0x29,0x41,0x52,0x7,0x9c,0xc0,0x3f,0x86,0x55,0xc1,0xf6,0x7a,0x5,0xc2,0x6d,0xab,0x3d,0xc1,0x54,0xda,0xdd,0xbf,0x7e,0xc1,0x3,0x42,0xac,0xe8,0x1a,0x42,0x4c,0xa0,0xa2,0xc1,0xb6,0x93,0x33,0x42,0xe8,0x50,0x40,0x42,0x90,0x89,0xb2,0x40,0x5c,0x30,0x63,0x41,0x17,0x34,0x8d,0x41,0x2a,0xdb,0x76,0xc1,0xae,0x51,0xe,0xc2,0xd0,0xc7,0xdd,0xc1,0xb6,0xe7,0x2a,0xc1,0xd4,0x34,0x17,0xc1,0xd1,0x60,0xe1,0x41,0xcc,0xd,0x2,0x41,0xa8,0xfe,0xe5,0x3e,0xb7,0x7,0xa3,0x41,0x50,0xa9,0x83,0xc1,0x33,0xfb,0xbb,0x41,0x17,0x8f,0x90,0x40,0xdc,0x45,0x27,0xc1,0x15,0xa3,0xf7,0xbf,0x40,0x29,0xf5,0xbf,0x54,0xe8,0x43,0x40,0xda,0x50,0xa0,0x41,0xca,0xca,0x98,0xc0,0x50,0x4c,0x88,0xc1,0xe4,0x65,0x2f,0xc0,0x60,0x55,0x88,0x3e,0x4,0xc0,0x1b,0xc2,0x9b,0xb,0x41,0xc2,0x35,0xc4,0xaa,0x41,0x5,0xa1,0x9b,0x3f,0xb4,0xb3,0x19,0xc2,0xf1,0xed,0xcf,0x41,0xb1,0x54,0x11,0x42,0xea,0x42,0x1d,0xc2,0x28,0x74,0x66,0x41,0x9e,0xa5,0xc7,0xc1,0xcc,0xcc,0x6a,0xc2,0x6c,0xc8,0x84,0x41,0xa0,0x37,0xe,0x42,0x30,0xd4,0xf,0xbe,0xab,0xc3,0xa4,0xc0,0x44,0x57,0xba,0x40,0xb1,0xb4,0x15,0x42,0x86,0x58,0xb3,0xc1,0x63,0x1b,0xc0,0x40,0xc,0x72,0x97,0x41,0xfa,0xdc,0xd4,0x41,0xda,0x43,0x2e,0x41,0xb2,0xea,0x87,0x41,0x8a,0x27,0x12,0x42,0xca,0x6b,0x51,0xc1,0x36,0xdd,0x16,0xc1,0xe4,0x58,0xa0,0xc1,0x7d,0x92,0xe7,0xc0,0xb6,0xd7,0xba,0xc0,0x88,0x4b,0x89,0x40,0xed,0x4b,0x94,0xc1,0xfc,0x34,0xa,0x41,0xb2,0x58,0xbd,0xc1,0x48,0x8,0x17,0xc2,0x2e,0x25,0x3a,0x41,0xfc,0x8a,0xaf,0xc1,0xe0,0xa4,0x5b,0x40,0x5f,0x19,0x6a,0x41,0xfd,0x65,0x99,0x41,0x12,0x87,0x91,0xc1,0x91,0x26,0x8f,0xc1,0x54,0xa4,0x1c,0x41,0xb8,0xa0,0x32,0x42,0x9d,0x77,0xf2,0x41,0xfe,0x2d,0x1f,0x42,0x0,0xf,0xa6,0xbd,0x92,0x8b,0xa,0xc1,0x25,0x66,0xbf,0xc1,0xd5,0x62,0x85,0xc1,0x4c,0xa5,0x36,0x40,0xb5,0xf6,0xc2,0x41,0xf,0xb7,0x23,0x42,0x44,0x93,0x1d,0xc2,0x86,0x77,0x36,0x40,0xc2,0xfc,0x2b,0xc1,0xde,0xa,0x90,0x41,0x6c,0x87,0x63,0x40,0xd4,0xa,0x4c,0x41,0xc0,0x9f,0xdf,0xc0,0xfb,0x36,0xcf,0xc1,0xbb,0x59,0xf9,0xc0,0x1c,0xdc,0xd9,0xc1,0x77,0x30,0xdb,0xc1,0x78,0x12,0x4a,0x40,0x30,0x83,0xa6,0x41,0xf4,0xa0,0xb4,0x41,0xe,0x51,0x7b,0xc0,0xdf,0xa8,0x26,0xc1,0x30,0x67,0x60,0xc2,0x9f,0xd1,0x68,0x41,0x6c,0xa,0xe9,0xc1,0xbe,0x87,0xd,0x42,0x75,0x2a,0x11,0x42,0x8e,0x43,0xb,0xc0,0x2,0xd2,0x7d,0xc2,0x7e,0x33,0x94,0x41,0x11,0x7d,0x53,0x41,0x32,0xe7,0xc8,0x40,0x1a,0x81,0xde,0x40,0xc4,0x7c,0x23,0xc2,0xe2,0x33,0x8e,0x41,0xec,0x15,0xa4,0x3f,0xb4,0x71,0x1d,0xc0,0xa0,0x4b,0x32,0xc1,0x8c,0x2c,0xa1,0x41,0x54,0xf3,0xca,0x40,0xee,0xf6,0xca,0x3f,0x46,0x8b,0xf5,0x41,0x99,0xa1,0x17,0x41,0xb,0x2d,0xd3,0xc0,0x9c,0x7d,0x9b,0xc0,0xf6,0x5c,0xd,0xc1,0x58,0x6b,0x6,0xc2,0x7e,0x3b,0xc5,0x40,0x15,0xf0,0xa3,0x41,0x8a,0x19,0xb9,0x41,0x84,0x1f,0xe2,0xc1,0x59,0xa2,0x27,0xc2,0xab,0x18,0x44,0x40,0x39,0xfa,0x2,0x42,0xb4,0x9e,0x2e,0x42,0x2f,0x40,0x95,0xc1,0x83,0xdd,0x59,0xc1,0x10,0x4d,0xfc,0xc1,0xae,0x28,0xfe,0xc0,0x52,0x99,0xa2,0x3f,0xe,0xde,0xd4,0xc1,0x1b,0xe6,0xd5,0x40,0xd2,0xb3,0x1f,0xc2,0x2f,0x63,0x3b,0xc1,0xef,0x5,0x3b,0x42,0xfd,0x25,0x5,0xc1,0xe5,0xb7,0xc,0x41,0x22,0xa1,0x8b,0x40,0xa7,0xce,0xac,0xc0,0x53,0xdd,0x1b,0xc2,0x3d,0xe4,0x9f,0xc1,0xd2,0xd4,0x48,0x40,0xc7,0xb9,0xa2,0xbf,0xbd,0x2f,0xd1,0xc0,0xd3,0x2,0xe,0x42,0xde,0x78,0xbf,0x41,0x20,0x10,0x4f,0x3e,0x12,0x40,0xfb,0x41,0xf3,0xd8,0x3c,0xc2,0xda,0xcd,0xaa,0x41,0xfe,0xc9,0x74,0xc0,0x60,0xe8,0xa8,0x41,0x88,0x8f,0x14,0x41,0x78,0xbc,0xa8,0xc1,0x8d,0xa7,0xb7,0xc1,0x88,0x1d,0x7c,0x40,0xca,0x86,0xf9,0xc0,0xa8,0xc8,0xab,0x41,0xf6,0x6d,0x54,0xc1,0xd,0x29,0x17,0x42,0xbe,0x16,0x79,0xc1,0x53,0xf,0xcc,0xc0,0x1d,0xf5,0xb1,0xc1,0xf1,0x54,0xbe,0x41,0xbe,0x3a,0xc4,0xc1,0xda,0x38,0x5f,0x41,0x24,0x4c,0x35,0x41,0x65,0xc3,0xaf,0x41,0xbf,0xce,0x48,0xc0,0xe4,0x31,0x8,0xc2,0x61,0x49,0x97,0x41,0xb,0xb5,0xd5,0xc0,0x98,0x85,0x12,0xc2,0x5c,0x6d,0xe2,0xc1,0xc,0xa2,0xe4,0x41,0x2c,0xc3,0x9e,0x40,0x1c,0x22,0x7,0x41,0x6a,0x7b,0x52,0x40,0x98,0x2e,0x3d,0x41,0x78,0x20,0xbd,0x40,0x69,0xfd,0xe,0xc2,0x36,0x18,0x12,0x41,0x26,0x4,0x38,0xc2,0x29,0xa5,0x5c,0xc1,0xb6,0x9c,0xd7,0x3f,0x28,0x59,0xa8,0x40,0xf0,0xee,0x6d,0x3f,0xc1,0x6a,0x1e,0xc2,0x58,0x97,0x3b,0x41,0x5c,0x62,0x95,0xc1,0x48,0x9a,0x7,0x42,0x4a,0x45,0xcd,0x41,0x80,0x79,0xa0,0xc0,0xa6,0x70,0x46,0xc1,0x9e,0x4b,0x65,0x42,0xff,0x4,0xf7,0x40,0x68,0x5e,0x10,0xc2,0x6e,0xb1,0xc8,0x41,0x6b,0x5e,0xb2,0xc1,0x10,0xa3,0xa2,0xc0,0xc,0x24,0xf4,0x3f,0xdf,0x38,0x2b,0xc2,0xb1,0xff,0x2f,0x42,0x1b,0xae,0xc6,0x41,0x36,0x16,0xb1,0xc1,0x50,0xa7,0x4b,0x41,0x4d,0x50,0x10,0x42,0x40,0xd0,0x4c,0x3d,0x62,0x16,0xd1,0xc1,0x44,0xe,0xa4,0x3f,0xec,0x74,0x54,0x41,0xb3,0xa,0xcf,0xc1,0x42,0x80,0x82,0x41,0xe6,0xae,0x22,0xc2,0xba,0x31,0x54,0xc1,0xb2,0x9c,0x14,0x41,0xaf,0xd3,0x23,0xc1,0xee,0x0,0xb3,0x41,0xb0,0x4f,0x29,0x41,0x6b,0xd1,0x27,0xc1,0x3a,0xae,0xd4,0xc1,0x87,0xc3,0xa5,0xc1,0x51,0x41,0xc4,0x40,0xae,0xa,0x2a,0xc0,0xb1,0xa7,0x18,0x42,0xea,0x1c,0x8b,0xc1,0xa,0xc8,0x55,0x41,0xf4,0x46,0x50,0xc1,0xac,0xf5,0x12,0x41,0xf4,0xa,0x86,0xc1,0x46,0x55,0x18,0xc1,0xdd,0x7,0xdc,0xc1,0x57,0xcb,0x54,0x41,0xf2,0xfe,0xe9,0xc0,0x2e,0x33,0x6c,0xc1,0xea,0x19,0x1b,0x41,0x52,0x2c,0x21,0x42,0xf6,0x24,0x48,0xc1,0x14,0x3d,0x15,0xc1,0xa0,0x3d,0x22,0xc0,0x96,0xd2,0x4b,0xc2,0xcc,0xe8,0x6b,0x41,0x11,0xd1,0xf9,0xc1,0xa8,0x93,0x22,0xc2,0x92,0xbf,0x91,0x41,0xc0,0x2c,0x2c,0xc2,0x8c,0x78,0x3b,0x41,0x57,0x48,0xcb,0xc1,0xbf,0xe7,0x4d,0xc0,0x3a,0x38,0x38,0xc2,0x23,0x86,0x6b,0x40,0x98,0x2b,0x8a,0xc0,0x5c,0x75,0x27,0xc2,0x9c,0x47,0x15,0xc1,0x93,0x80,0x46,0xc1,0xb4,0x79,0xac,0xc1,0xe6,0xc0,0xc3,0xc1,0x13,0x28,0x83,0xc1,0x4,0xa4,0x97,0xc1,0x71,0x36,0x40,0x42,0xcc,0xf5,0xe6,0x41,0x86,0x22,0x13,0xc1,0x3f,0xe3,0x89,0x41,0xa8,0xb1,0x15,0xc0,0x3e,0x5f,0x10,0xc2,0x62,0x6f,0x20,0xc2,0xda,0x33,0x17,0xc1,0x77,0xad,0x79,0x41,0x2c,0xa7,0xef,0xc1,0xb0,0x17,0x20,0xc1,0xd0,0xb1,0x90,0x40,0xcc,0x75,0x1b,0x41,0x7c,0x4c,0xf9,0xc0,0x46,0x1,0x6e,0xc1,0x68,0x86,0x1a,0xc0,0x53,0x8a,0x2e,0xc2,0x1b,0x7e,0xc0,0xc1,0x37,0x8b,0x8,0x41,0xc5,0xe1,0xee,0x40,0xc4,0xf8,0x86,0xbf,0x1a,0x53,0xc5,0x41,0x2e,0x81,0x93,0xc0,0xc1,0x84,0xc3,0xc0,0xd7,0xe6,0xd9,0x40,0xc0,0x8d,0x8c,0x41,0x6b,0xa9,0xc5,0x41,0xc6,0xab,0xc8,0x41,0x76,0xa2,0xa6,0x41,0x98,0xec,0x83,0x41,0xa2,0x58,0x34,0x41,0x88,0x2b,0x5b,0x41,0xb4,0x36,0x68,0x41,0x41,0x91,0x2f,0x42,0x7a,0x22,0x9a,0xbf,0x46,0x41,0x68,0xc1,0xb5,0x29,0x86,0x41,0x7e,0xf8,0x37,0x41,0xae,0xbf,0x16,0x40,0x6e,0x85,0x41,0xc0,0xdd,0x9f,0x20,0xc2,0xf4,0x52,0x31,0xc2,0x1a,0xb1,0xc1,0xc0,0xc2,0x48,0xd2,0xc1,0x64,0x4,0x7a,0xc1,0x9d,0x6c,0x3d,0xc2,0xdb,0x1d,0xcc,0xc0,0x36,0x61,0xbc,0x40,0xb1,0xc,0xd4,0x3e,0x88,0xa8,0xd2,0xc1,0x98,0xd9,0x57,0xc2,0x8e,0xc7,0xb2,0x41,0x79,0xd9,0x54,0xc0,0xae,0xd4,0x71,0xc1,0x78,0xfc,0x35,0x3f,0xa3,0x95,0xa3,0x41,0xec,0x4,0x43,0x42,0xb4,0xc9,0x79,0xc2,0x6e,0x94,0x28,0xc2,0x16,0x95,0x6a,0xc1,0xe5,0x16,0x73,0x41,0x57,0xe4,0xbd,0x41,0xb6,0x4f,0x6,0xc2,0xd8,0xef,0x77,0x40,0xe,0xbb,0x12,0xc1,0x2b,0xdf,0x5,0xc1,0x63,0xe7,0x6c,0xc1,0xb1,0xc0,0x4,0xc2,0x4c,0xb0,0x7b,0x41,0x98,0xfb,0xd,0x41,0x5e,0x18,0xe9,0xc1,0x9a,0xe2,0x43,0xc0,0xe9,0xba,0x61,0xc2,0xc6,0x3,0x59,0xc1,0xeb,0x34,0xb,0xc1,0x5,0xda,0x86,0xc1,0x36,0x9a,0x80,0xc0,0x65,0x35,0xe2,0xc0,0x22,0x5b,0xfb,0x3f,0xc6,0xc8,0xf8,0xc1,0x3f,0xc4,0xc8,0x41,0xca,0xe7,0x46,0xc2,0x26,0xfc,0x32,0x40,0xeb,0xa1,0xe9,0xc0,0x6a,0x76,0xd,0xc1,0xd4,0x57,0xa3,0x40,0x98,0x52,0x40,0xc1,0xd8,0xe1,0xf4,0x3e,0xa9,0xd,0x4a,0x42,0xf2,0x2d,0xc,0x41,0x6d,0x67,0xcf,0xc1,0x2e,0x15,0x3c,0xc2,0xbb,0x1c,0x79,0x41,0x26,0x4,0x29,0xbf,0x5b,0x28,0x9e,0x41,0x75,0x93,0x8d,0x41,0x50,0x50,0x7d,0xc2,0x9d,0x7f,0xc5,0xc0,0xbe,0xbb,0x68,0x41,0x7e,0x59,0xa,0xc2,0xcf,0x9d,0x7f,0xc1,0x82,0x18,0xa1,0x41,0x3d,0xf5,0x35,0xc2,0xe5,0xea,0x8d,0x40,0x95,0xf4,0x14,0xc2,0x67,0xd1,0xc1,0x41,0x28,0xf9,0x42,0xbf,0xc0,0xd0,0x27,0xc2,0xf9,0xa9,0x47,0xc1,0x8d,0xd3,0x42,0xc2,0xd8,0x8f,0x1,0x3f,0x8d,0xf0,0xdb,0x41,0x83,0x9f,0xb4,0x41,0x6,0x69,0x10,0xc2,0x7a,0x42,0x37,0x42,0x35,0xc1,0x84,0xc1,0x60,0x1d,0xe9,0x3f,0xd4,0x25,0xdc,0x41,0xb6,0x56,0x12,0xc2,0x94,0xb1,0x89,0xbf,0x1f,0x94,0x12,0x41,0x28,0x7a,0x50,0xc2,0xd7,0x4b,0xd7,0x41,0x4,0x44,0x9a,0xc1,0x77,0x8a,0x7a,0x41,0x87,0xc5,0xc,0x41,0x5,0x5e,0x12,0x42,0xc7,0x52,0xeb,0xc1,0x9,0x8f,0xc6,0x41,0xdd,0x35,0xb4,0x40,0x34,0xef,0x4a,0xc1,0xa3,0x36,0xc5,0x41,0xc7,0x88,0xc3,0xc1,0x26,0x9f,0xb6,0xc1,0xe5,0x7f,0x1d,0x42,0xc6,0xc7,0x38,0xc1,0x39,0xad,0x2a,0x41,0xbf,0x15,0x1,0xc2,0xc3,0x7c,0xa,0x42,0xd1,0xf1,0x95,0xbf,0x6,0x8f,0x26,0xc1,0x59,0xa0,0xbb,0x41,0x17,0x8,0x86,0x41,0x6c,0x45,0x9c,0xc0,0x6c,0xdd,0x5f,0xc1,0x37,0x84,0x9b,0x41,0x72,0x61,0x86,0xbf,0x0,0x8c,0xf6,0xc1,0x49,0xda,0xa7,0xc0,0xc8,0x19,0xcc,0x41,0xa1,0xd,0x6e,0x41,0xad,0xf7,0x35,0xc2,0x6,0x46,0x7c,0xc2,0xfa,0x42,0x66,0x42,0xc6,0xa2,0x9c,0x41,0x1e,0x4d,0xb3,0xc1,0x4f,0x42,0x49,0x41,0x25,0xdb,0x1d,0xc2,0xa1,0x34,0xcb,0xc0,0x5a,0xb,0xcc,0xbf,0xf1,0x6d,0xaa,0x41,0x28,0xca,0xb3,0x41,0x6e,0x48,0x5a,0x41,0x3f,0x4,0x95,0x41,0xb,0xf3,0x89,0x41,0x48,0x3c,0x17,0xc2,0xe7,0x44,0x15,0xc1,0xae,0xf9,0x3f,0x41,0xb1,0x88,0x1b,0x42,0x13,0x45,0xff,0x41,0xfa,0x6a,0xe2,0x3f,0x2f,0xf6,0x3d,0xc2,0x9c,0x1b,0xd4,0xc1,0x98,0x62,0x18,0x42,0x78,0x98,0x27,0xc1,0x2f,0x7a,0x86,0x42,0xb8,0x78,0x54,0x42,0xef,0xee,0xb1,0x41,0xe7,0x50,0x86,0xc1,0x4b,0xd4,0x95,0xc1,0x46,0xf,0x80,0x40,0xd2,0xbb,0x8d,0xbf,0x58,0x5a,0x9f,0xc1,0xa5,0xc4,0xf1,0xc0,0x1a,0xea,0x87,0x41,0xfa,0x80,0x86,0x41,0x62,0x24,0x3d,0xc1,0x60,0x1c,0x29,0xc2,0xce,0xe0,0x17,0xc1,0xb8,0x60,0xd2,0xc1,0x3a,0x8a,0x45,0x40,0x3,0x2,0xc2,0xc1,0x58,0xc6,0xab,0x3f,0xe4,0xcd,0x48,0x41,0x8a,0x9,0x3,0x41,0x46,0x32,0xf3,0xc1,0x95,0x68,0x80,0x41,0x65,0x58,0x0,0x41,0xb5,0xbf,0x6c,0x41,0x80,0x7c,0xcf,0xbd,0xca,0xbf,0x8e,0xc1,0x8,0x4c,0x2f,0x41,0x94,0x10,0x4,0xc2,0x82,0x8c,0x60,0xc2,0xa0,0x94,0x83,0x41,0xac,0xea,0x7e,0x41,0x4d,0x1c,0x8a,0x40,0xdc,0x6d,0x52,0xc2,0xd8,0x8,0x33,0x42,0xda,0x68,0x28,0x42,0x6d,0x72,0xe2,0x41,0xca,0x66,0x0,0xc2,0x2d,0xd5,0xa5,0xc1,0x74,0xc3,0xd4,0x41,0x63,0xd9,0x4c,0xc1,0x9,0x1b,0xa1,0x40,0xf4,0xdf,0x8c,0x41,0xfc,0x68,0x21,0xc2,0x8,0x7e,0xd4,0x40,0x4a,0xbb,0xcd,0xc0,0x36,0xf3,0x89,0xc1,0x5,0xc,0xcf,0x41,0xae,0x48,0xdb,0x41,0x1f,0x54,0xd8,0x41,0x4,0x7c,0x69,0xc1,0xe1,0xe8,0x2a,0x42,0x88,0xa4,0x25,0xc1,0x84,0x99,0x51,0xc1,0xf4,0xed,0xbd,0xc0,0x5a,0xe5,0xc1,0xc1,0x22,0x8e,0x96,0xc1,0xaa,0x37,0x45,0x41,0x2,0xc2,0x1,0x42,0x2e,0xc6,0xe8,0xc1,0x46,0xfe,0x28,0xc1,0xfe,0xca,0x17,0x42,0x38,0x25,0x36,0x41,0x3,0x56,0x7,0xc2,0x60,0x4f,0xa9,0x41,0x76,0xfe,0x3c,0x41,0xdd,0x29,0xd6,0x40,0x7c,0x1c,0x90,0xc1,0x98,0x70,0xf5,0xbf,0x1a,0x8d,0x21,0xc1,0xcc,0xe9,0xad,0xc1,0x5e,0xef,0x6,0x42,0x57,0x58,0x57,0x41,0x1b,0xcc,0xca,0xc0,0xae,0x75,0x7e,0xc1,0x18,0x60,0xb2,0xc0,0xc0,0xce,0x27,0xc1,0xf0,0x1a,0x51,0x42,0x87,0xc4,0x76,0x41,0x93,0x36,0x2d,0x42,0x1f,0x38,0x90,0x41,0xa3,0x23,0xb1,0xc1,0xc4,0xae,0xb,0x41,0x43,0x8f,0xaa,0xc1,0x68,0xea,0xc8,0xc1,0xe4,0xe8,0xfd,0xbf,0x62,0x1f,0x26,0xc1,0xba,0xc1,0x9,0x40,0x2c,0x59,0x2d,0x41,0x88,0x6a,0x6a,0xbf,0xf5,0xfc,0x0,0x42,0x6e,0x59,0x95,0xc1,0x1f,0xbd,0x81,0x41,0x5c,0x4,0x8d,0x42,0xd8,0x6e,0x40,0xc1,0x40,0xe0,0x2,0xc0,0xa6,0x67,0x4d,0xc0,0x50,0xed,0x1a,0xbf,0x24,0xd,0x3b,0xc1,0x2d,0x69,0x68,0xc1,0x7e,0xd0,0x88,0xc1,0xd8,0xaf,0x96,0x41,0x38,0xe7,0x9a,0x3f,0x34,0x3f,0xfa,0x40,0xec,0x8a,0xd1,0xc1,0x52,0xc0,0xf,0xc0,0x55,0x8e,0x6f,0xc2,0x50,0xff,0xf8,0x40,0x2d,0xed,0xee,0xc1,0x9e,0xa3,0x3c,0x42,0x4,0x1a,0xf0,0xc1,0x92,0x15,0x98,0x41,0x69,0x68,0xdb,0xc1,0x1a,0x14,0x38,0x42,0xa0,0xa0,0x8e,0xc1,0xf5,0xa,0x16,0xc2,0xc2,0x65,0xd8,0x41,0xb0,0xb4,0x23,0xc1,0x8,0xc5,0xa,0xc1,0x81,0x64,0x57,0xc1,0x44,0x92,0xc4,0x41,0xb6,0xf6,0x16,0xc1,0x8c,0x1c,0x3f,0x40,0x38,0x2d,0xe1,0xc1,0x78,0xbe,0xfb,0x41,0x4d,0xf2,0x28,0x41,0xc,0x32,0x39,0x42,0xda,0x82,0xbc,0x40,0x7a,0x76,0x5,0x41,0x12,0xab,0x34,0x41,0x49,0x1d,0x93,0x41,0x62,0x59,0x1b,0xc2,0x74,0xc1,0x1f,0x42,0x8e,0xed,0x93,0x41,0xb4,0x9a,0x7e,0xc1,0x15,0xc0,0x3e,0x41,0x0,0x4c,0xa5,0x3f,0x6c,0xba,0x50,0xc1,0xa3,0x6a,0xf7,0x40,0x10,0x66,0x37,0x42,0xfc,0xd7,0x2c,0x42,0x82,0xf7,0xbe,0x40,0xee,0xdd,0x12,0xc2,0xcc,0x6c,0x95,0x3f,0x4,0xc7,0xd8,0x41,0xcb,0x43,0xf8,0xc1,0xec,0x6,0x8c,0xc1,0xe3,0x3a,0x4,0xc2,0x9f,0xe7,0xeb,0xc1,0xc6,0x2a,0x47,0x41,0x51,0x2a,0xb2,0x41,0x25,0xe2,0x95,0xc1,0x34,0x47,0xc3,0xc0,0x64,0x3a,0x6f,0xc1,0x4c,0x73,0x6,0x42,0xe0,0xf9,0x54,0x42,0x40,0xf3,0xe5,0xbd,0x43,0x60,0xdb,0xc1,0x2a,0x8,0xa6,0x41,0x46,0x3a,0x2b,0xc2,0x30,0x81,0xe6,0x40,0x21,0x82,0x3d,0xc1,0xee,0x4c,0x58,0x40,0x43,0xa9,0x12,0x41,0x5c,0x57,0xd9,0x3f,0xa4,0x66,0x74,0x41,0x54,0x47,0x39,0xc2,0xcb,0x40,0xb5,0xbf,0xde,0x34,0xe3,0x41,0xea,0xc3,0x4,0x42,0xfa,0x2c,0x70,0xc2,0x54,0xe5,0x14,0xc2,0xe7,0x65,0x1e,0x41,0x4f,0x54,0x67,0x41,0x5d,0xbf,0xf4,0xc0,0x98,0x2d,0x45,0x3f,0x20,0x11,0x80,0x41,0x14,0x21,0x33,0xc2,0x1d,0xab,0x4a,0xc2,0x15,0x56,0xa9,0xc1,0xa9,0x96,0x6f,0xc1,0xf2,0xcb,0x6a,0xc1,0x86,0xcf,0x67,0x41,0x4f,0x65,0x7,0x41,0x20,0x5b,0x8f,0x41,0x32,0x6f,0x8,0x42,0xed,0x5a,0xfe,0x41,0x54,0x25,0xfd,0x3f,0x12,0x57,0x8a,0x40,0x4c,0xa7,0xf1,0xc0,0xaa,0x84,0x4a,0xc1,0x19,0xc,0x18,0xc1,0x36,0x33,0xb,0x42,0x40,0x86,0xc6,0xbf,0xbe,0x5a,0x31,0x41,0x1c,0xb8,0x12,0x41,0x11,0xb,0xe9,0xc1,0xbe,0x4,0xba,0xc1,0x2b,0xbf,0x66,0xc1,0x5c,0xc8,0x60,0x41,0xe0,0x3f,0x87,0x3e,0x14,0x70,0x3c,0x3f,0x45,0x18,0x7a,0xc2,0x1e,0x2c,0x67,0xc2,0x79,0xc4,0x23,0x41,0x58,0xe5,0x7d,0xc1,0xed,0xbc,0x8d,0xc0,0x36,0x5b,0x31,0xc2,0x29,0x2e,0xa5,0x40,0x7,0xcd,0x27,0x41,0x76,0x39,0x99,0xc1,0xf,0xad,0x53,0xc1,0x8,0x43,0xa6,0xc2,0x1e,0x9d,0x8,0x42,0x4f,0x54,0x7a,0xc1,0x50,0x6c,0x56,0xbf,0x14,0xe0,0x8b,0xc1,0xa8,0x43,0xd4,0x40,0xfc,0x99,0xab,0x42,0x7c,0x1a,0xff,0xc1,0x52,0x83,0x21,0x3f,0x95,0xa5,0xfc,0x41,0x8c,0xc3,0xd,0xc1,0xf5,0x33,0x89,0x42,0x9a,0x59,0xa8,0xc1,0x74,0x7,0x8f,0x3f,0x61,0x92,0xed,0x41,0x78,0xe8,0x92,0x41,0xa1,0xd5,0xe9,0x41,0xd,0xa3,0x2f,0xc2,0x86,0xdc,0x6c,0x41,0x2,0xc3,0x1b,0xc2,0x5c,0x50,0xcd,0xc1,0x88,0x90,0xba,0xbe,0x4f,0x7e,0x91,0xc1,0x48,0xe4,0xa4,0x40,0x2c,0x2d,0x48,0xc1,0x1f,0x5b,0xef,0x40,0xde,0x21,0xf,0x40,0xd0,0x47,0x96,0xc1,0xba,0xb1,0x3b,0xc0,0x4,0x31,0x25,0xc2,0xf9,0xa5,0x1f,0xc2,0x45,0x1b,0x7,0x41,0x2c,0x9,0x62,0xc1,0xdd,0x8b,0xe5,0x41,0x12,0x88,0xd6,0x40,0xf8,0x96,0xa2,0x40,0xee,0x6a,0xdf,0x41,0xe5,0xf1,0xac,0xc0,0xeb,0x48,0x3a,0xc0,0xb3,0x5,0x54,0xc1,0xc0,0xa8,0x3d,0xc1,0x18,0xf0,0xc9,0x41,0xd6,0xe8,0xe8,0xc1,0x12,0x1a,0xbc,0x41,0x4e,0xca,0x2c,0xc1,0xe3,0x94,0x21,0x41,0x0,0xf2,0xd5,0x40,0x7c,0xec,0x37,0xbe,0xd2,0x69,0x8,0xc2,0xbe,0x34,0xf6,0xc1,0xc0,0xd8,0xa4,0x41,0xb8,0xa4,0xb4,0xc1,0x15,0xa3,0x27,0x41,0xa2,0x55,0x4,0x41,0xc,0x9a,0xa1,0xc1,0x66,0xdb,0x3,0x42,0xf9,0x10,0x4f,0x41,0xa0,0x76,0xa2,0x41,0x48,0x53,0xe2,0x41,0xb5,0x4e,0x7f,0xc1,0x62,0x3,0x54,0xc0,0x57,0xc5,0x35,0xc0,0x92,0xa4,0x6c,0x42,0x5e,0x71,0x3d,0xc2,0xb,0x97,0x61,0xc1,0x64,0xb2,0x96,0x41,0x1b,0xc9,0x91,0xc1,0x5b,0xb8,0x95,0xc1,0x6e,0xa5,0xcd,0x40,0x16,0x1b,0x8a,0x41,0xf8,0xc4,0x3e,0x41,0xc4,0x1c,0x37,0x42,0x19,0x82,0xad,0x41,0x7f,0x84,0x8c,0x3f,0x6e,0x83,0xb6,0xc1,0xe6,0x31,0xb6,0x41,0x73,0x75,0x92,0x41,0x8c,0x8f,0x19,0xc1,0xf1,0x9b,0x21,0xc2,0xd0,0xf4,0xb9,0x40,0x94,0x5c,0x3e,0xbf,0xdb,0xc3,0xce,0xc1,0x91,0x15,0x6f,0xc1,0x88,0x6e,0xeb,0xc0,0xd4,0x4c,0xe,0xc2,0xc6,0x11,0x57,0x41,0xd4,0xe1,0xfe,0xc0,0x18,0xcd,0xe3,0xc0,0xec,0x52,0xcc,0xbf,0x88,0x31,0xcd,0x41,0x84,0xe4,0xba,0x41,0xa1,0xf5,0x24,0xc2,0x24,0x85,0x1,0x42,0xef,0xbc,0x83,0xc2,0x3a,0xa6,0x23,0xc1,0xe1,0x2c,0xd8,0xc1,0xd9,0x9c,0xbf,0xc1,0x44,0x1b,0xc7,0xc1,0x1c,0x94,0xf9,0xc1,0x97,0xfa,0xe,0x41,0xc8,0xc3,0x69,0x40,0x7b,0x90,0x87,0x41,0xe0,0x64,0x9,0x42,0x5a,0x8c,0x8,0x42,0xd6,0x96,0x41,0x42,0xb4,0xaa,0xfe,0xc1,0x53,0x2a,0x17,0xc2,0x44,0xde,0xcf,0xc0,0xe2,0x73,0x8b,0x41,0x10,0x2c,0x4b,0x41,0xb2,0x2a,0x4e,0x42,0x63,0x7d,0xf1,0xbf,0xc0,0xb6,0x34,0x42,0xd4,0x9d,0x5,0x41,0x8e,0x0,0x43,0xc2,0xe5,0x43,0x89,0xbd,0xad,0x93,0x16,0xc2,0xa4,0x49,0x62,0x3f,0x11,0x8c,0xc5,0xc1,0xa3,0xce,0x54,0xc1,0x1a,0x3c,0xb6,0x41,0xde,0x49,0x42,0xc1,0xa4,0xaa,0x32,0x42,0xdc,0xc9,0x8c,0x40,0xac,0xe2,0x56,0xc1,0x1c,0x1d,0x80,0x41,0xb5,0xb9,0xdd,0xc0,0x1c,0xa,0x54,0x41,0x2e,0x50,0x46,0xc2,0xb6,0xe5,0x2e,0x41,0x9,0xbc,0xee,0x41,0xd3,0xf3,0x89,0x41,0xcc,0x63,0xe8,0xc1,0x60,0x8d,0x94,0x41,0xaa,0x9c,0x18,0x42,0xee,0x83,0x11,0xc2,0x57,0x64,0x86,0x41,0x87,0x6f,0x0,0xc2,0x3e,0xd8,0xac,0xc1,0x57,0x1c,0x5,0x41,0x0,0xe3,0xa8,0xbc,0xeb,0xef,0x1,0xc2,0x60,0x1c,0x2f,0x41,0x79,0xef,0xce,0x40,0x33,0xb5,0xa5,0x41,0xe6,0x3f,0x8f,0x40,0x6b,0xd2,0xbe,0xc1,0x40,0x6c,0xdc,0xc1,0xb4,0xef,0xaf,0xc1,0x4d,0x52,0xe8,0x41,0x68,0x46,0x7d,0xc0,0xe0,0xa6,0x1e,0x42,0x1b,0x85,0x8,0x40,0xb8,0x26,0x2e,0x40,0xfb,0x96,0xaa,0xc0,0xf6,0x7,0xc5,0x40,0xa9,0xe3,0x2a,0x42,0x5a,0xa9,0xde,0x40,0xab,0x55,0xd,0xc2,0x2f,0x53,0xb0,0x41,0x9e,0x41,0xc6,0xc1,0x50,0xc6,0x5c,0x41,0x74,0x46,0x2f,0xc2,0xbd,0xd1,0x2,0x42,0x7b,0x8c,0x1d,0xc2,0x5e,0x84,0x63,0x40,0x1b,0x26,0xb3,0xc1,0x68,0xfb,0xb8,0x40,0x78,0xb1,0xe5,0xc0,0xed,0x38,0xcb,0x40,0x64,0xac,0x90,0xc1,0xa5,0xe8,0x2b,0xc2,0xf6,0x47,0x26,0xc1,0xb0,0xdc,0xb8,0x41,0xcc,0xd4,0x61,0x42,0xee,0x9c,0x1c,0xc1,0xae,0x67,0xc1,0xc1,0xdb,0xf0,0xbd,0x41,0x38,0xa4,0x5b,0x41,0x9d,0x87,0xaf,0xc1,0x6a,0x84,0xb5,0xbf,0xca,0x85,0x93,0x40,0xe5,0x68,0x9c,0xc1,0x43,0x4,0x14,0x41,0xfe,0xe8,0x7d,0xc1,0x60,0xfa,0xa,0xc0,0xe4,0x9d,0xb1,0x41,0xe1,0x20,0x7d,0xc0,0xce,0xb0,0x11,0x41,0x2,0x3e,0x35,0xc2,0xad,0xd6,0x9e,0xc1,0x8a,0x7e,0xeb,0x41,0x6a,0x66,0xad,0xc1,0x4d,0xc6,0xdb,0x40,0x9c,0x1f,0xb6,0x3f,0x93,0xb,0xfe,0xbd,0x42,0xda,0x18,0x41,0x44,0x38,0x74,0xc1,0x7e,0xba,0x63,0xc0,0x7d,0x84,0x87,0xc0,0x4f,0x42,0xa7,0xc1,0x5c,0xc0,0xc9,0x41,0x52,0xa9,0xd,0xc2,0xc,0x4b,0x52,0xc0,0x75,0x31,0x68,0x42,0x25,0xbc,0xcf,0xc1,0x12,0x38,0x2b,0x41,0xb8,0xb8,0xe7,0x3f,0x5c,0x4c,0x3f,0x42,0xa9,0xf7,0x2f,0x42,0x8a,0x64,0x26,0x41,0x9f,0x2e,0x57,0x41,0xa2,0x24,0x38,0x42,0x49,0x60,0x1d,0x41,0x88,0xf4,0x77,0xc1,0xf2,0x96,0x26,0xc2,0xec,0xa5,0x28,0x41,0x1e,0x92,0x86,0xc1,0x90,0x67,0x19,0x40,0x5a,0x38,0x8c,0xc1,0x9,0xee,0xf4,0xc0,0xfc,0xde,0x6a,0x41,0x6,0x14,0x8,0x41,0x14,0xd3,0xe9,0xc0,0xad,0x4a,0x37,0x41,0x2f,0xd0,0xbc,0x41,0x78,0xa4,0x42,0xc1,0x1a,0xa1,0x80,0xc0,0xa4,0x2e,0x78,0xc0,0x70,0xdc,0x75,0xbe,0xf5,0x22,0xf1,0x3f,0xae,0x97,0x48,0xc1,0x4a,0xdd,0xfe,0xc0,0xbe,0xe3,0x1f,0xc1,0xaa,0x5e,0xb8,0x41,0xad,0xc4,0xde,0x41,0x52,0x64,0x20,0x41,0x96,0x38,0x8f,0xbf,0x7c,0x63,0x62,0x41,0x70,0xdd,0x5f,0xc0,0xec,0x38,0x18,0xc1,0x98,0xf6,0xd3,0xbf,0x5d,0xa6,0x6,0xc1,0x37,0x88,0x76,0x41,0x74,0x12,0xff,0x3f,0x17,0x3b,0x9b,0x41,0x3,0x40,0x1f,0x41,0x4,0x6,0xde,0x41,0x42,0xda,0xf4,0x40,0xe1,0xec,0xcc,0xc1,0x90,0x13,0x2b,0xc2,0x0,0x56,0xd6,0x41,0x44,0xb8,0x63,0x3f,0x46,0x1c,0x63,0xc0,0x40,0xa3,0x90,0xc0,0xbe,0x7e,0xc9,0xc1,0x76,0x8f,0x9,0xc1,0x4c,0x47,0x22,0x41,0x86,0x52,0x79,0xc2,0x41,0xc8,0x16,0x40,0x78,0x84,0x19,0xc1,0x74,0x1,0xd,0x41,0x33,0xd5,0x8d,0xc2,0xbb,0x9e,0x94,0x41,0xea,0x4,0x85,0xc0,0xa3,0x33,0x94,0x40,0x69,0x0,0x34,0x42,0xc6,0xb2,0x40,0x42,0x1a,0x99,0x3e,0xc1,0x7a,0xd1,0x9c,0xbf,0xc5,0x42,0xa0,0xc0,0xf1,0x8f,0x7,0xc2,0xae,0x7f,0x4c,0xc2,0x1c,0xc7,0x46,0xc1,0x20,0x60,0xfd,0x3e,0xa4,0xb9,0xb3,0xc0,0x6,0x4d,0x3b,0xc1,0xbc,0x8e,0x27,0xc1,0x41,0x23,0x78,0x41,0xd2,0x4d,0xf5,0x40,0x9e,0x45,0x68,0xc1,0xdc,0xe9,0x8,0xbf,0x1c,0x17,0x9,0xc2,0xe6,0xd,0x4d,0xc0,0x64,0x58,0x3a,0x41,0xc6,0x1,0x23,0xc1,0xcc,0xa0,0x64,0x40,0xdb,0xdf,0x35,0xc1,0xe2,0xe3,0xf,0xc1,0x6c,0x47,0x11,0x40,0xb,0xf6,0x8e,0xc0,0x58,0x13,0xa0,0xc0,0x1e,0xbf,0x4d,0xc2,0x80,0xac,0x42,0x40,0xc1,0xa6,0xbe,0xc1,0xf4,0x15,0x19,0xc2,0xf6,0x36,0x2f,0x42,0xc2,0xf0,0xd9,0xc0,0x10,0x92,0x99,0xbe,0xe4,0xfa,0x73,0x41,0xfa,0xcd,0xae,0xc1,0x90,0x38,0x42,0xc2,0x82,0xc4,0x82,0x41,0x84,0x41,0xb9,0xc1,0xe5,0x47,0x9f,0x42,0x28,0xa,0x84,0xc1,0xac,0xf9,0xbb,0x41,0x95,0x42,0x25,0xc1,0x45,0x32,0x8e,0xc2,0x66,0x1c,0x7d,0x41,0x2,0x6,0x1c,0xc2,0x8c,0x49,0x11,0xbf,0xaa,0x65,0x9b,0x40,0x35,0xb7,0x33,0xc1,0xd0,0x36,0xdc,0xc0,0x78,0x97,0x68,0x41,0x5e,0xa,0xa4,0xc1,0xac,0xaf,0x8b,0xc0,0x46,0x15,0xf,0xc0,0xbe,0x4d,0xe6,0xc1,0xe6,0x1c,0x31,0xc2,0x18,0x4c,0x2f,0xc2,0x4,0x5c,0x26,0xc2,0xa0,0xe3,0xd2,0x40,0xc,0x44,0x5d,0xc1,0x14,0xf9,0x9c,0x40,0x56,0xf4,0x86,0x41,0x74,0x6f,0xa,0x42,0xf0,0x99,0xd7,0x41,0x58,0xd6,0x8d,0xc1,0x63,0x7,0x59,0x41,0x3f,0x85,0x50,0x41,0xd8,0xc6,0xb7,0x40,0x44,0x7e,0x14,0x42,0x3a,0x7e,0x8f,0x41,0x79,0x6a,0xd,0x42,0xf1,0x56,0xc0,0x41,0xe6,0x9c,0xd6,0x41,0x72,0x6a,0x7,0x42,0x74,0xee,0x16,0xc2,0x14,0xcc,0xc6,0xc1,0xd1,0xa4,0xca,0xc1,0xe,0xc6,0xda,0x41,0x16,0xa3,0xbd,0xc1,0x9e,0xf9,0x16,0x41,0x6c,0x50,0x26,0xc2,0xc1,0x76,0x33,0xc1,0x4a,0x16,0x55,0xc2,0x57,0x9c,0x3,0xc2,0x58,0x2,0x74,0x41,0xe1,0x5d,0xf,0xc2,0x7b,0x2c,0xae,0xc1,0x3e,0x32,0x47,0xc1,0xda,0x21,0x49,0x3f,0xb1,0xa0,0xb7,0xc1,0xbf,0x82,0x7,0x42,0x7,0xa1,0x73,0x42,0x3,0x4e,0x2c,0x40,0x11,0x3,0x22,0x42,0x36,0x2e,0x2b,0xc2,0x0,0x80,0xde,0xb9,0x7,0x5f,0xcb,0xbf,0x7a,0x66,0xd8,0x40,0x3e,0x0,0x50,0x41,0x9e,0x9f,0x6d,0xc0,0x46,0x57,0xd7,0xc1,0x82,0x3b,0xca,0x41,0x7,0x4c,0x83,0x41,0x5b,0xd0,0xed,0x41,0xaa,0xe2,0x36,0x41,0x42,0xce,0x90,0x41,0x7a,0xac,0xb5,0xc0,0xd0,0x6b,0x8d,0xbe,0x6f,0xd4,0x35,0x41,0xf7,0xb5,0x57,0xc2,0xa6,0x54,0xde,0xc1,0xa6,0x84,0xa3,0x41,0xec,0x17,0x9d,0x41,0x8f,0xff,0x57,0x41,0xeb,0x99,0xf,0x42,0xae,0x1d,0x79,0xc1,0xda,0x49,0x99,0xc1,0x2f,0x8,0x99,0xc1,0x50,0x3e,0x19,0xc1,0x49,0x9e,0x80,0xc2,0xf0,0x8f,0x9e,0xc0,0xf4,0xe7,0x35,0x41,0x11,0x1d,0xcb,0x41,0x5d,0xdd,0xde,0xc0,0x68,0xef,0x92,0xbf,0xbc,0xf9,0x1,0x40,0xc6,0xe,0x7f,0xc1,0xb8,0xd8,0x7e,0xc1,0x74,0x6b,0x31,0x3e,0x64,0x6e,0xd6,0xc0,0x4e,0xe4,0x28,0x41,0xe0,0x73,0x9c,0x41,0xe5,0x90,0x25,0xc1,0xb6,0x26,0x75,0xc1,0xb1,0x5d,0xd,0xc2,0x7e,0x7c,0xc2,0xc1,0xe,0x35,0x43,0x42,0xa0,0x27,0x28,0xc2,0xe3,0x15,0x1d,0xc2,0x53,0x7b,0x1e,0xc2,0xf8,0x13,0x7a,0x41,0x22,0x5d,0xe3,0x41,0x2a,0xc7,0xce,0x41,0xac,0xce,0x74,0x41,0x71,0x17,0xf8,0x40,0x26,0xc2,0x56,0xc1,0x83,0x2a,0x4c,0x42,0xdf,0x78,0x3d,0x42,0xe2,0xd2,0x36,0xc1,0xce,0x4b,0x3,0xc1,0x32,0x39,0xc2,0xc1,0x72,0x27,0xd9,0xbf,0xf6,0x58,0xe2,0x3f,0xc0,0xde,0x2d,0xbe,0x43,0x69,0x90,0x41,0xb2,0x2f,0xbd,0x40,0x96,0xb3,0xf1,0x40,0xc6,0x4d,0xd,0xc1,0x4e,0xda,0x1f,0x42,0x8c,0x53,0x84,0xc0,0x82,0x64,0x9e,0xc1,0x8e,0xca,0x9b,0xc1,0x2b,0x7a,0xb3,0xc0,0x94,0x4,0x1f,0xc1,0x2a,0x91,0xbf,0x41,0xd4,0x18,0x4b,0x41,0xc6,0x1e,0xca,0xc1,0xa9,0xfb,0x8c,0xc2,0xb0,0x56,0xa9,0x40,0xe0,0x5b,0xcb,0xc1,0x92,0xe,0x17,0xc1,0x3e,0x17,0x32,0x42,0x52,0x77,0x20,0xc1,0x61,0x5c,0x2e,0x42,0x0,0xdf,0xa7,0x41,0x4e,0xd0,0xb0,0x41,0x20,0xa3,0x7f,0x3d,0x8e,0xe5,0x97,0x41,0xb4,0xd7,0x28,0xc1,0x50,0xf,0x88,0xbe,0x27,0x5,0x99,0xc1,0x7a,0xe2,0xf,0xc2,0xbe,0x35,0x6,0xc0,0xfe,0xd2,0x86,0xc1,0x23,0x1f,0xa,0xc2,0x2a,0x57,0x34,0x42,0xdd,0x7,0xcb,0xc1,0xb0,0x39,0x88,0x40,0xab,0x2d,0xc3,0xc1,0x1b,0x6f,0x9e,0xc1,0x88,0x22,0x52,0xc2,0x4d,0xb5,0x1e,0xc1,0xae,0x3d,0x68,0x41,0x56,0x2a,0xde,0xc1,0x1e,0xb9,0x87,0x41,0x94,0x2d,0xa2,0xbf,0xa8,0x13,0x7b,0xc2,0x6d,0x85,0x1f,0x42,0x43,0x42,0xe5,0xc1,0xe,0x4,0x1a,0x40,0xcc,0xbe,0x70,0xc1,0xea,0x2b,0xab,0x40,0x8b,0x4,0xbb,0x41,0x14,0x6e,0xe5,0x41,0x8c,0x4f,0x9f,0x41,0x45,0x16,0x76,0x42,0xdc,0x9d,0xe,0xc2,0x3f,0x1,0xa,0xc1,0x13,0x59,0xd5,0x40,0xb8,0xe2,0x46,0xc1,0x67,0x59,0xa2,0xc0,0x14,0x9a,0x72,0x41,0xd3,0x66,0xbd,0xc0,0x43,0xa4,0xb9,0xc1,0x39,0x98,0x89,0xc0,0x22,0xfb,0x57,0x41,0xeb,0xa,0x25,0xc2,0x1e,0xab,0xe0,0xc0,0xc4,0x6b,0xae,0xc1,0x14,0xc0,0x34,0xc1,0x9e,0x1c,0x3,0xc0,0xdf,0x2e,0x97,0x41,0x26,0x7,0x2f,0x42,0x74,0x6e,0xd8,0x3f,0x34,0x28,0x8d,0xc1,0x86,0xc3,0x72,0xc0,0xc1,0xbf,0x65,0xc2,0x7,0x45,0x4f,0x42,0xe4,0x9d,0x4f,0x40,0x5f,0xd0,0x84,0x41,0x7,0x89,0xd3,0xc1,0x82,0x43,0x75,0x40,0x36,0xb8,0x49,0x41,0x18,0x27,0x6c,0x40,0x30,0x79,0xba,0x40,0x4,0xe2,0xea,0x41,0x58,0xf3,0x1b,0xc1,0xa9,0xc5,0x70,0xc1,0xec,0xe1,0xd2,0x41,0x2c,0xac,0x79,0x40,0xda,0x91,0x85,0x41,0x35,0xdd,0x29,0xc2,0xc4,0xcd,0xde,0x41,0xae,0x65,0x87,0x41,0xd4,0x54,0x20,0xc0,0x73,0x3,0x92,0xc1,0xac,0xe0,0xb0,0xc1,0x86,0x56,0x67,0xc2,0xee,0x99,0xdf,0x40,0xc1,0x5c,0x1,0x41,0x44,0x6b,0xa3,0xc0,0x98,0xb8,0x89,0x41,0x2c,0x16,0xb,0x41,0xaf,0xbe,0x65,0xc2,0x68,0x56,0xe,0xc2,0x3d,0xe0,0x35,0x42,0x98,0xa,0xb0,0xc1,0x4e,0x56,0x57,0x40,0x9c,0x71,0xe5,0x3f,0xdc,0xc5,0x17,0xc0,0x14,0x46,0x73,0xc1,0xe8,0x7c,0x9,0xc2,0x39,0x8d,0x62,0x41,0x5a,0x88,0xca,0x40,0x27,0xb2,0xc1,0xc1,0x6,0xf3,0xdb,0x40,0x51,0x39,0x18,0xc0,0x27,0xf4,0xe,0x42,0xd0,0x4,0x56,0xc0,0x74,0x71,0x8b,0xc1,0x7c,0x67,0xd4,0xc1,0xdd,0xca,0xc1,0xc1,0x78,0xe0,0xbb,0x40,0x5b,0xa8,0x14,0xc2,0x56,0xc9,0x7b,0xc1,0xf1,0xf6,0xa3,0xc0,0x86,0xc6,0x3b,0x41,0xdd,0xed,0xbe,0xc0,0x89,0xa5,0xeb,0x40,0xb0,0xbf,0x77,0xc1,0xd8,0x7f,0xed,0x40,0xda,0xe5,0xba,0xc0,0x29,0x51,0x33,0x40,0x64,0x82,0xe2,0xc1,0x4e,0xd5,0xbe,0x40,0x3e,0x61,0x58,0x41,0x1a,0x92,0x21,0xc1,0xad,0xbb,0x20,0xc2,0xf6,0x72,0x28,0xc1,0x34,0x34,0x51,0x41,0xb1,0x71,0x57,0x41,0xb6,0x32,0x14,0xc1,0x41,0x46,0xf6,0xc1,0xb0,0x80,0x2b,0x42,0xa0,0x43,0xf2,0xc1,0x9c,0x6,0xe6,0xc0,0xb1,0xc9,0x98,0xc1,0x0,0x33,0xb5,0xc1,0x26,0xbe,0xbd,0x41,0x26,0xf1,0x81,0xc1,0xaa,0x6a,0x8e,0x41,0xa5,0xd4,0x48,0xc1,0x4e,0x37,0xf7,0x40,0xc8,0x6a,0xc6,0xbe,0x5e,0x3e,0x53,0xc1,0x39,0x9e,0x12,0x42,0xf9,0xc4,0x17,0x41,0xe8,0x13,0x4d,0x41,0x55,0x5d,0x81,0xc1,0x3a,0xd3,0xd7,0xc1,0x21,0xc3,0xac,0x41,0x1c,0x1,0x76,0xc0,0x47,0x89,0xd,0x42,0x4d,0x24,0xe2,0xc1,0x9a,0xc1,0x94,0xc1,0x68,0xc,0x2a,0xc0,0x76,0xb3,0x25,0x41,0x51,0x20,0x1,0x41,0x64,0x6e,0xf5,0x3f,0xc3,0xea,0xf9,0xc1,0xa5,0x5b,0x5,0xc2,0xb0,0x6b,0xd9,0x41,0x0,0xfd,0xc9,0x3e,0xa8,0x91,0x21,0xc2,0x34,0xd7,0x15,0x42,0xe4,0x69,0x58,0x42,0xff,0x8b,0xe2,0xc1,0xb2,0x28,0x4f,0x41,0x81,0x93,0x3a,0x42,0x81,0x9d,0xb7,0xc1,0xe6,0x35,0x73,0x3f,0xff,0xb,0x75,0x41,0x85,0x80,0x94,0x41,0xef,0xa2,0x5d,0x41,0xa8,0xaf,0x7a,0x41,0x78,0x75,0x51,0x40,0xca,0xa8,0xd5,0xc0,0x5c,0xa6,0xd5,0xc0,0xa5,0x9b,0x6d,0xc1,0xc0,0x97,0xa0,0xc1,0xa0,0x7a,0xc0,0xbf,0xd0,0x6a,0xa7,0x3f,0x98,0xd8,0x18,0xc1,0xd0,0x5f,0x85,0x40,0x7e,0x3f,0x65,0xc1,0x94,0xb0,0x14,0xc1,0x38,0x5b,0x73,0x41,0x47,0x6,0x2b,0x41,0xe0,0x18,0x51,0xc0,0xd8,0x40,0x41,0xc1,0x9f,0x96,0xed,0xc1,0x58,0x2d,0xe1,0xc0,0xda,0x18,0xaa,0xc1,0x6a,0x66,0x23,0xc1,0x82,0xa2,0x81,0xc1,0x18,0xfb,0x9c,0x41,0xea,0xc0,0xc,0xc2,0x64,0x28,0x8,0xc1,0xe3,0x84,0x15,0xc1,0xe8,0x66,0x59,0xc0,0x8e,0x22,0xd2,0xc1,0x93,0xf4,0x6c,0xc0,0x58,0x8,0xde,0xc0,0x3d,0x19,0x3b,0x42,0x92,0x2f,0x49,0xc1,0xd2,0xcd,0x22,0xc2,0x13,0x65,0xd7,0xc1,0x1a,0xe6,0x28,0x41,0xc7,0x86,0x6c,0xc1,0x82,0x73,0xe,0xc1,0x7c,0xb8,0xf1,0x41,0xfa,0x55,0xbd,0x41,0xe8,0xfc,0x23,0xc2,0x3d,0xad,0xce,0xc1,0x25,0x92,0x1d,0xc1,0x6,0x87,0x14,0x40,0xef,0xd0,0xbf,0xc1,0xda,0x19,0x6,0x42,0xf7,0x6f,0xf7,0x41,0xec,0x5e,0xc0,0x41,0xf5,0xd2,0x8d,0x40,0x31,0xfb,0x93,0x3f,0x8e,0x2d,0x12,0x42,0xda,0x26,0x92,0x40,0xfb,0x3d,0x4a,0x41,0xfe,0x88,0xd8,0xc1,0x5e,0x84,0x90,0x42,0x14,0x79,0x7f,0xc1,0x65,0xb4,0x24,0xc0,0x95,0x85,0x3c,0x42,0xc,0x64,0xb2,0xbf,0xc8,0x19,0x55,0x41,0xd5,0xbf,0xa4,0x41,0x71,0xf,0xe0,0xc1,0x90,0xae,0xa5,0xc0,0xb5,0x8e,0x7c,0x41,0xc2,0x4b,0x75,0xc1,0x7c,0xb8,0xe5,0xc0,0xae,0x41,0x4f,0x42,0x5e,0xd3,0x9a,0xc1,0x4f,0xa9,0x3c,0xc1,0x3e,0xe5,0xe5,0x40,0x37,0x98,0x9e,0xc1,0xbc,0xd8,0x45,0xc1,0x7b,0xce,0x75,0xc1,0x7c,0x11,0x8e,0xc2,0x2a,0x7,0x8d,0xc1,0xc2,0x85,0xb5,0xbf,0xbc,0xba,0x69,0x41,0x96,0xa0,0x9c,0xbf,0xc0,0xac,0x63,0x41,0xe6,0x79,0x1c,0xc1,0x8c,0xd7,0x7f,0xc0,0x38,0xbf,0xbd,0xc0,0x2a,0x65,0xb6,0xc1,0xad,0x8a,0x11,0x42,0xda,0x8f,0x1d,0x42,0xbc,0xfe,0x5a,0xc1,0x74,0xa8,0x8,0xc1,0xac,0x71,0x35,0x40,0xf8,0xf6,0x59,0x3f,0x71,0x3c,0xd,0x42,0x9c,0x57,0x1b,0xc2,0x1e,0xed,0xde,0xc0,0x70,0xf7,0x46,0xc2,0xec,0xad,0x8c,0xc1,0x88,0x52,0x85,0xc1,0x21,0x9d,0x1a,0x42,0x8a,0xbb,0x1f,0x42,0xa1,0x54,0x20,0xc1,0xa8,0xbd,0x32,0xc2,0x4b,0xab,0x12,0x42,0x6,0xbd,0xee,0xc1,0x48,0x97,0x18,0xc2,0x79,0x6f,0x3e,0x42,0xcb,0x19,0x2a,0x42,0x9d,0x3d,0xae,0x41,0xf4,0xe7,0xbf,0xc0,0xb1,0x1d,0x83,0x41,0xf3,0xef,0x80,0xc2,0x24,0x12,0x54,0xc2,0x13,0x93,0x3,0xc1,0xb2,0x27,0xc9,0x40,0x44,0x69,0xb0,0xc0,0x0,0x71,0x20,0x41,0xbc,0x5d,0x13,0xbf,0x38,0x74,0x8c,0x3f,0xe9,0x1a,0x86,0x41,0xc,0x48,0x3b,0x41,0x60,0x31,0x94,0xc0,0x5a,0xa0,0x97,0xc1,0xba,0x44,0x84,0x41,0xae,0x1e,0x13,0xc2,0x74,0x7f,0x33,0xc1,0xa6,0xf3,0xc1,0x41,0xc8,0x76,0x54,0xc2,0x11,0xd9,0xd5,0x41,0xdd,0xe0,0x69,0xc1,0xd1,0xed,0xc,0x42,0x34,0x7c,0xda,0xc0,0x8e,0x42,0x51,0x41,0x77,0x8f,0xeb,0x41,0x50,0xf8,0x60,0xbf,0xb0,0xf7,0xc8,0xc1,0xfc,0x56,0x53,0xc0,0x47,0x20,0x84,0xc1,0x2d,0xa8,0x11,0xc2,0x57,0x95,0x99,0x41,0x20,0x0,0x7f,0xbe,0x88,0xfe,0x1c,0x41,0xe9,0x9b,0x32,0xc2,0x6e,0xac,0xbf,0xc0,0x5,0x6a,0xea,0x40,0x18,0x5,0x80,0x41,0x82,0xf3,0x3e,0x41,0xde,0x49,0x71,0x40,0x5f,0x95,0x82,0xc0,0x1d,0x9f,0x52,0xc2,0x45,0x54,0x17,0xc0,0x40,0x27,0x65,0x3d,0xd0,0x57,0xaf,0x41,0x8c,0xf1,0x72,0x40,0x16,0x0,0x3,0xc2,0xb0,0xfe,0x71,0x41,0xd,0xd9,0x18,0x41,0x62,0xd1,0x46,0xc1,0x2e,0xd5,0x8e,0x41,0x86,0xa6,0xb5,0xc1,0x4,0x64,0xab,0xc1,0xe3,0x3e,0xe7,0xc1,0x93,0x63,0x86,0x41,0x85,0xf3,0x37,0x42,0x3f,0x70,0x8b,0x41,0x2c,0xe4,0x38,0x42,0x38,0x3d,0xb3,0x3f,0x31,0xcb,0xcb,0x41,0xa7,0xd8,0x3b,0x41,0x88,0xea,0xa0,0x3f,0x87,0xc7,0x9,0x42,0xce,0x1b,0x5,0xc1,0x60,0xe2,0xe2,0x40,0x15,0x11,0x8c,0x41,0x2e,0xb1,0xaf,0xc1,0x6e,0x44,0x38,0xc1,0xf1,0x99,0xd,0x42,0xea,0xe1,0x7,0xc2,0x8f,0x64,0xc2,0xc1,0x7,0x51,0x75,0xc1,0x35,0x0,0x2e,0x41,0xa8,0x63,0xa0,0xc2,0xb,0x7b,0xe7,0x41,0x36,0x57,0x65,0x40,0xef,0x6f,0x74,0x41,0x24,0x99,0x92,0x41,0xe9,0xdc,0xad,0xc1,0x6e,0x8c,0xe2,0x41,0x48,0x42,0x3b,0xc1,0xf8,0x19,0xcc,0xc1,0x66,0x72,0x20,0xc1,0x3e,0x8d,0xf,0xc2,0xd2,0x2d,0x34,0x40,0x96,0xdb,0x12,0x42,0xf7,0xc9,0xc1,0x3f,0x82,0x49,0xca,0xc1,0xb8,0xde,0xcf,0x40,0x1,0x28,0xa7,0x41,0x2c,0x64,0x6,0xc2,0xac,0xf1,0xae,0x41,0x40,0xe4,0x21,0x41,0xa2,0xcd,0xf5,0x40,0x24,0xc6,0xfa,0x41,0xd4,0x24,0x1c,0x41,0x78,0x8b,0xc,0x41,0x52,0x80,0x9e,0xc1,0xaa,0x6e,0x1a,0x41,0xaa,0x0,0x32,0x40,0xcb,0x7b,0xb6,0x41,0x17,0x15,0xd,0xc0,0xe6,0x8f,0x93,0xc1,0x16,0xc8,0xb4,0xc1,0x9f,0xa9,0xa9,0xc0,0x8c,0xf9,0x48,0xc0,0x3,0x17,0x51,0xc1,0xae,0x27,0xde,0xc0,0xe6,0x61,0xfb,0x40,0x8,0xe0,0x4b,0xc1,0x81,0xb4,0xa9,0xc1,0x1c,0xd5,0x27,0xc0,0x3c,0x4d,0x1d,0xc1,0xf1,0xbd,0x85,0xc1,0x94,0x4,0x3b,0xc1,0x7f,0xa8,0xc8,0xc1,0x42,0x54,0xa2,0xc1,0x7,0xac,0xb4,0x41,0x6,0xb4,0xca,0x3f,0x72,0xf0,0xa1,0xc1,0xca,0x3f,0x2b,0x41,0xa1,0xc9,0x26,0xc2,0x24,0x7e,0x47,0x41,0x18,0xf4,0xe8,0xc0,0xc5,0x80,0x9f,0x3f,0xb8,0xb7,0x3c,0x40,0x63,0xa2,0xc4,0x41,0x37,0xa2,0xc5,0x41,0xc6,0x8c,0x3d,0xc2,0xee,0xd6,0x75,0xc0,0xc0,0x28,0x6d,0xc0,0x63,0xbb,0xac,0xc1,0xd4,0x4d,0x6d,0xc0,0xa,0xe8,0x3b,0xc2,0x59,0xad,0x46,0xc0,0x6e,0x9e,0x49,0xc0,0xba,0xae,0x7,0x42,0x68,0x7b,0xab,0x42,0xf0,0x14,0xb3,0x3f,0x30,0x3e,0x12,0x3e,0xb,0x3e,0xe,0xc1,0xa8,0x9f,0x88,0x40,0x7,0x5a,0x92,0x41,0x5a,0xd,0xe4,0x41,0x47,0x3a,0xb1,0xc1,0x10,0x1c,0x20,0xc0,0xae,0x9,0x7a,0x40,0x63,0x52,0x38,0xc1,0x70,0x4c,0x80,0xbe,0x5a,0xf2,0x8,0xc1,0x69,0xe6,0x26,0xc2,0xf4,0x4c,0xb9,0x41,0x3f,0x0,0x94,0x41,0xa2,0xaa,0x21,0xc2,0x94,0x5a,0x55,0xbf,0x6b,0xef,0xc1,0xc1,0x2,0xd2,0x24,0x42,0x10,0xf2,0x24,0xc2,0xb9,0x46,0xbe,0xc1,0x0,0x14,0x16,0xbf,0x26,0x18,0xd,0x42,0x2c,0x5f,0x1a,0xc1,0x37,0x63,0x41,0xc1,0xf2,0xd,0x41,0xc1,0xb0,0x8d,0xa,0xc2,0xfb,0x56,0x38,0xc1,0xa2,0xd1,0x99,0x41,0x26,0xe3,0xa0,0x41,0xf4,0x72,0x34,0x40,0x56,0xc0,0xd8,0x41,0x51,0xfb,0x42,0xc1,0x33,0x71,0xe6,0x41,0x6a,0x32,0xa5,0x41,0xa3,0x6c,0xae,0xc0,0xe8,0xde,0xf6,0xc1,0x59,0x1b,0xac,0xc1,0xae,0x27,0x99,0x40,0x8b,0x95,0x38,0x42,0x90,0x28,0xf6,0xc1,0x7d,0xee,0x47,0xc1,0x96,0x82,0xba,0x41,0x82,0xf4,0x63,0x42,0xad,0x5e,0xad,0xc1,0xfa,0x59,0xda,0xc0,0xcb,0x55,0x62,0x40,0x56,0x8b,0xc4,0xc0,0x6c,0xf7,0x9a,0xc1,0x18,0x71,0x22,0x42,0xaa,0x2a,0xd0,0x41,0x38,0x56,0x9b,0x41,0x6a,0xdb,0xf6,0xc0,0xc4,0x67,0xe2,0xc1,0x8e,0x34,0x81,0xc2,0x8b,0x9c,0xf2,0xc1,0x18,0x2d,0x11,0xc0,0xa5,0xa,0xe8,0xc1,0x96,0xed,0x3c,0x41,0xec,0x91,0x46,0x41,0x69,0x56,0x5a,0x42,0x11,0x36,0x8f,0xc0,0x54,0x12,0x41,0xc1,0xce,0xb3,0xe7,0x41,0xd2,0xc2,0x4f,0x41,0x6e,0xc9,0x82,0xc0,0x1f,0xf7,0x3,0x41,0x36,0x31,0x77,0xc1,0x4e,0x77,0x77,0xc0,0xe4,0x7c,0xa7,0xbf,0x89,0x38,0x3e,0xc1,0xa4,0x89,0x56,0x42,0x92,0x4e,0xd3,0xc1,0xb0,0x56,0x7,0x40,0xb6,0x46,0x3,0xc0,0x69,0x3,0x18,0xc1,0x49,0xde,0x27,0xc0,0x61,0xf5,0x34,0xc1,0xc9,0xf6,0x99,0x41,0x90,0xbd,0x99,0xc1,0x25,0xb7,0x90,0x41,0x55,0x29,0x44,0xc2,0xd4,0xc0,0x41,0x42,0xd2,0x67,0x7,0xc1,0xc9,0x2c,0x34,0xc2,0x40,0x4f,0x2a,0x42,0xf0,0xf,0x77,0xc1,0x7d,0xad,0xe9,0xc1,0xa1,0x0,0xb4,0xc1,0x78,0x71,0x41,0x41,0xc8,0x7b,0x62,0xc0,0x1e,0x34,0x30,0x41,0x85,0xc0,0x67,0x41,0x78,0x0,0xad,0x41,0x1a,0x28,0xa8,0x40,0xeb,0xa4,0xf,0x41,0x7e,0x98,0x3b,0x40,0x28,0xbb,0x13,0xc1,0x67,0x56,0x46,0x42,0xb6,0x9f,0x17,0xc1,0xfc,0xf,0xd3,0x41,0x62,0xf3,0x7b,0xc1,0x18,0x4b,0x8d,0xc1,0x84,0x61,0xac,0xc1,0x59,0x7d,0xb,0x41,0x98,0x49,0xdb,0xc1,0x8c,0x48,0x5a,0x41,0x1d,0x4c,0x37,0x41,0x20,0xb0,0x1,0xc1,0xe6,0xa0,0x34,0xc2,0xac,0xdf,0x3b,0x41,0xc7,0x9a,0x59,0x41,0xdb,0xb2,0xf5,0xc1,0x5,0x31,0x7b,0x40,0xa0,0xa0,0xf9,0xbd,0x88,0x84,0xa8,0x41,0x4e,0xdc,0x8d,0xc1,0x96,0xda,0x97,0xc1,0xbe,0x0,0xb4,0x41,0xe0,0x2,0x1d,0x42,0xa7,0xb6,0x89,0xc0,0x4c,0xbe,0x8c,0x41,0xc0,0x8a,0xae,0x40,0x45,0x14,0x92,0x41,0x66,0xd9,0xb0,0xc0,0xd2,0x32,0xac,0x41,0xd1,0xed,0x90,0xc1,0xdd,0x39,0xf5,0xc1,0xec,0x72,0x4e,0xc2,0x14,0x1b,0xed,0xc0,0x44,0x25,0x9e,0x41,0x59,0xb9,0x1b,0xc1,0xc5,0xf1,0xd5,0x41,0x3e,0x15,0x0,0xc0,0x0,0xd7,0x2a,0xc2,0x76,0xd5,0x2e,0x41,0xc6,0x4a,0xb3,0x40,0x41,0xf2,0x8a,0x41,0x8b,0xd6,0x2e,0x40,0x99,0x17,0x32,0x41,0x17,0x98,0x98,0xc1,0x78,0xdf,0xb2,0xc1,0xa0,0xa1,0x8b,0xc0,0x7a,0xbd,0x53,0x3f,0x7d,0xd2,0xf0,0xc1,0x41,0x75,0xf,0x41,0x46,0x9d,0x79,0xc1,0xb6,0x27,0xde,0x41,0x97,0x26,0x0,0xc2,0xe,0xb4,0xe2,0x41,0xc7,0xf2,0x8,0xc2,0xc2,0xc2,0x4b,0x41,0x69,0xcc,0xb,0x41,0x80,0xb3,0xe8,0xbf,0x63,0x31,0x99,0xc1,0x7c,0xb5,0x5d,0xc1,0xf6,0xc2,0xf4,0x40,0xe2,0x12,0x84,0x41,0xb9,0x2e,0xd5,0x41,0x39,0x4b,0xca,0x3f,0x2d,0xc2,0xdd,0xc1,0x28,0xd8,0x9c,0xc0,0x3f,0x43,0xae,0x41,0x9,0xaf,0x6c,0x41,0x12,0x3d,0x62,0xc0,0x90,0x5c,0xb4,0x41,0x87,0x95,0x1d,0x41,0x2d,0xc7,0xb7,0xc1,0x53,0x56,0xb4,0xc0,0x44,0x78,0x1f,0xc0,0x1d,0xc8,0xf6,0xc0,0xd0,0xf2,0x49,0xc1,0x53,0xc1,0x27,0xc1,0xd4,0xb8,0xfa,0x3f,0x4a,0xd9,0x74,0x41,0x9c,0x59,0x9f,0xc1,0x64,0x62,0xd2,0x40,0xf4,0x33,0xd7,0x41,0x12,0x25,0x13,0x40,0xee,0xb0,0x5a,0xc1,0xca,0x47,0x37,0xbf,0xdd,0x39,0xd5,0xc0,0x48,0x95,0x50,0x41,0x4a,0xb0,0xb5,0xbf,0x96,0xca,0xa0,0xc1,0xb3,0x31,0xea,0xc1,0x10,0xf5,0x4c,0xc1,0xb0,0x56,0xb9,0xc0,0xbf,0xe3,0xc,0x3f,0x84,0xaf,0x9f,0x41,0x9d,0x6,0xe5,0xc0,0x7b,0x8e,0xdd,0x41,0x1b,0x2c,0xde,0x41,0x7d,0x45,0xb6,0x40,0xca,0xc9,0x67,0x41,0x10,0x91,0x87,0xc0,0x77,0x2e,0x8f,0x41,0x0,0x86,0xe8,0xc1,0x82,0xe,0x8e,0x41,0xe0,0x7,0x72,0xc1,0x10,0x41,0x54,0x41,0xc,0xb4,0x3e,0xc2,0xd9,0x16,0x88,0xc0,0xc9,0xab,0x28,0x41,0x8a,0x4a,0xfa,0x40,0x3e,0x5c,0x7b,0x40,0xdc,0x6b,0x63,0xc1,0x1c,0x32,0x48,0xc2,0xa,0x33,0xaa,0x40,0xf8,0x71,0x65,0xc1,0xb0,0x5f,0x7f,0xc0,0x44,0xb2,0x6c,0xc1,0x27,0x39,0xe5,0xc0,0xf2,0x7f,0xa8,0x41,0x13,0xf1,0x94,0xc1,0xf1,0x26,0xd0,0xc1,0x31,0x10,0xf2,0x40,0x67,0x73,0xda,0xc0,0xbc,0xb,0x8a,0x41,0x2e,0xa5,0x2d,0xc0,0x44,0x84,0x7e,0xbe,0x6e,0x40,0xe7,0xc1,0xe4,0x31,0xce,0x40,0xb3,0x8,0xce,0xc1,0xda,0x57,0x1a,0x40,0x3e,0x8,0x85,0x3f,0xb5,0x24,0xa4,0x41,0x40,0x42,0xef,0xc0,0xcf,0x55,0x9d,0xc1,0x51,0xc8,0x8e,0x41,0x49,0xf5,0x5a,0xc1,0xe2,0xbf,0x45,0x41,0x97,0x9c,0x1d,0xc1,0xbc,0x79,0x3f,0xc1,0x27,0x99,0xa2,0xc1,0x1c,0xf9,0x94,0xc1,0x2,0x6,0xe9,0x41,0x5c,0xa2,0x2f,0xc0,0xc,0xe2,0x75,0x3f,0xe1,0x3e,0x8a,0x41,0xba,0xd5,0xa9,0xc0,0x93,0x43,0xdb,0x41,0x76,0xb9,0x8d,0x3f,0x6c,0xe6,0xa0,0x40,0x6a,0xf5,0x17,0x42,0x6,0x7e,0xb1,0x40,0x66,0xe4,0xc3,0x40,0x5d,0xd6,0xfb,0xc1,0xd8,0xa6,0xec,0xbc,0x48,0x32,0x3d,0xc2,0xea,0x3b,0xf3,0xc1,0xcc,0xfc,0xb5,0xc1,0x3c,0x98,0x35,0xc1,0x39,0x7,0x49,0xc2,0x16,0x16,0x4c,0x41,0xa9,0x93,0x92,0xc0,0xf2,0xee,0xca,0x41,0xb8,0xeb,0x78,0xc1,0x1a,0x40,0xa,0xc0,0x94,0xed,0x9f,0xc1,0x0,0x5b,0x21,0x3d,0x18,0xaa,0x1,0xc2,0xeb,0x3f,0xef,0x41,0x55,0x68,0x1f,0x42,0xaf,0x60,0xd4,0xc1,0xa0,0xb8,0x53,0xc2,0x3,0x2f,0x16,0x42,0xac,0x40,0x26,0xc1,0x74,0x9a,0x9f,0xbf,0x7a,0x27,0xc3,0xc1,0xa4,0x7d,0x86,0x40,0x86,0xcf,0x58,0xc2,0xce,0xf8,0x7f,0xc1,0x85,0x10,0x8d,0xc1,0x1a,0x60,0xa4,0xc1,0xe8,0xc9,0xed,0x41,0x83,0xbe,0xb0,0xc1,0xe8,0x8d,0xf0,0xc1,0x8c,0xe0,0x64,0x40,0xc6,0x19,0xf4,0xc1,0x29,0x4e,0xef,0x40,0xd2,0x3a,0xc4,0x40,0xa8,0x4b,0x54,0xc1,0x10,0x12,0x1f,0xc1,0xce,0xf1,0xaa,0x41,0xa8,0xa7,0xd4,0xc1,0xc4,0xfb,0x4,0xc1,0xd2,0xba,0x26,0x42,0xb6,0x20,0xab,0xc1,0x10,0x3d,0x8c,0x41,0x8b,0xfc,0x2c,0x40,0x52,0x80,0xf7,0xc1,0xf8,0x2,0xa4,0xc1,0x5a,0x80,0x4,0x41,0xc7,0x36,0xe3,0xc1,0x84,0x1f,0xd6,0x41,0xa7,0x46,0x6f,0x41,0x63,0xfd,0xfa,0xc0,0x54,0xd1,0xb1,0xbf,0xf7,0xa7,0xee,0xc1,0x42,0x1f,0x8d,0xc1,0x44,0xc9,0xc,0x42,0x44,0x45,0x7e,0xc1,0x59,0x55,0x60,0xc1,0x79,0x3f,0xdd,0xc1,0xa4,0x37,0xf2,0x40,0x87,0xd7,0xbb,0x41,0x7e,0xa7,0x36,0x41,0xde,0x68,0xe1,0x41,0x67,0x45,0xb6,0x41,0xe6,0xcb,0x34,0xc2,0x46,0xc0,0x82,0xc0,0xf,0x3c,0x8a,0xc1,0xb7,0x2e,0xfe,0xc1,0x2,0x72,0xbd,0x40,0x4c,0x5c,0x23,0x41,0x75,0x7c,0x5b,0xc1,0xc0,0x69,0x4,0xbe,0xa,0x9a,0x30,0x41,0xc0,0x53,0x4,0x42,0xa0,0x8f,0xf5,0xc0,0x92,0x3c,0xd1,0xc0,0x84,0x2f,0xda,0x3f,0x2b,0xc6,0x73,0x41,0x1,0x87,0x2f,0xc2,0x19,0x80,0xfe,0xc0,0x5c,0xab,0xeb,0x3f,0x16,0xca,0x26,0xc1,0x44,0xf2,0xb5,0x40,0x2,0xe3,0xa,0xc2,0x1b,0x72,0x84,0x41,0xfe,0x45,0xfd,0xc0,0xbe,0x33,0x62,0xc0,0xb6,0x29,0xb1,0x41,0x2a,0x79,0xc3,0x40,0xcf,0x14,0xf1,0x40,0x91,0x7e,0xfc,0xbf,0x9a,0x7d,0x95,0xc0,0x9,0xe8,0xa7,0xbf,0x8a,0xda,0x52,0x40,0x2d,0xab,0xdc,0x41,0x8c,0xba,0xf4,0xc1,0x6a,0xdf,0x7c,0xc0,0x52,0xbb,0x4f,0xbf,0x38,0x18,0x9,0x3f,0x3d,0xba,0x9a,0xc1,0x44,0x1f,0xae,0x41,0x60,0x3,0x2e,0xc1,0x7,0x51,0x88,0x41 }); + Tensor *actual = NN_zeros(4, (size_t[]){ 1, 12, 12, 16 }, DTYPE_F32); + + cycles = read_cycles(); + NN_conv2d(actual, x, w, b, (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 16); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(x); + NN_delete_tensor(w); + NN_delete_tensor(b); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("conv2d: "); + + // [[[[-1.0552478 2.811792 -1.0793638 ... 0.6783223 0.41066527 0.37641 + Tensor *x = NN_tensor(4, (size_t[]){ 1, 12, 12, 16 }, DTYPE_F32, (uint8_t[]){ 0x5c,0x12,0x87,0xbf,0x66,0xf4,0x33,0x40,0x98,0x28,0x8a,0xbf,0xf6,0x6,0x94,0xc0,0xac,0xdb,0xc2,0xbe,0x8a,0xf3,0x7b,0x40,0x4a,0x52,0x38,0xc0,0x76,0xd6,0x86,0x40,0xae,0x1f,0x32,0x40,0x5e,0xf,0x12,0xbf,0xc8,0xca,0x1e,0xbe,0x84,0x83,0x84,0x40,0xd0,0x89,0xa5,0x3d,0x88,0xa6,0x2d,0x3f,0xb8,0x42,0xd2,0x3e,0xbc,0xb9,0xc0,0x3e,0x42,0xe0,0x8a,0xc0,0x88,0xcf,0x38,0xc0,0xe4,0xaa,0x93,0x40,0x24,0xa1,0x3e,0x40,0x1c,0x40,0x85,0x3e,0xf8,0x38,0x97,0x40,0x15,0xe6,0xf9,0xbf,0x65,0xe4,0x8,0x40,0xe4,0x7f,0x27,0xc0,0xcd,0x62,0x77,0x40,0x1c,0x6a,0x30,0x40,0x78,0x96,0xdc,0x3f,0x0,0x16,0x99,0xbe,0x10,0xfe,0x59,0x40,0x56,0xa,0x2e,0x40,0xf4,0x83,0x25,0x40,0x4d,0x46,0xee,0xbf,0x28,0xd0,0xe,0x3e,0x19,0xb7,0x98,0xbf,0x98,0xdc,0x3a,0xc0,0xeb,0x50,0x9b,0x3f,0x0,0xa6,0x89,0x40,0x3f,0x5e,0x3c,0x40,0x64,0xa7,0xb2,0xbf,0xdd,0xed,0x36,0x40,0x18,0xde,0xbd,0xbe,0xc5,0x6c,0x97,0x40,0xf8,0x50,0x9e,0xc0,0x71,0x5a,0xac,0x3f,0x71,0x4b,0x8d,0xc0,0x3b,0x7c,0x18,0x40,0x6c,0xe1,0x65,0x40,0xf4,0x54,0x75,0x40,0x5a,0xf1,0xd1,0xbf,0xa4,0x92,0xe1,0x3e,0xaa,0x8a,0xa7,0x3f,0x9b,0x6a,0xdb,0xbf,0xf0,0xe5,0x95,0x40,0x5d,0x21,0x5b,0x40,0xbe,0x64,0x1e,0x40,0x5c,0x55,0x2,0xc0,0x86,0xc3,0x5f,0x40,0x44,0x2,0x23,0xc0,0x3,0x4c,0x82,0xc0,0x14,0x6e,0xc8,0xbf,0xb0,0xa9,0xeb,0xbe,0x10,0xe2,0x49,0x40,0x0,0xfc,0x3,0x40,0xa5,0xaf,0xe6,0x3f,0x57,0xff,0xc1,0xbf,0x4a,0x67,0x78,0x40,0x20,0xb9,0x98,0x40,0x71,0xdb,0x89,0xc0,0x5c,0xf6,0x8f,0x40,0x7e,0xf9,0x7a,0x3f,0x63,0x21,0xdf,0x3f,0x98,0x1c,0xfa,0x3f,0x3b,0x78,0x3a,0x40,0x40,0x3b,0x9d,0x3d,0x1,0xcd,0xa4,0xbf,0xa5,0x9b,0xdc,0xbf,0x68,0x63,0x4d,0xc0,0x78,0x12,0x45,0xbe,0x6a,0xa2,0x33,0xc0,0xe5,0xf6,0x3e,0x40,0xb2,0x1a,0x65,0xc0,0xbf,0x15,0x8b,0x40,0x91,0x4a,0x8d,0xc0,0xb1,0x3c,0x85,0x40,0x62,0xfd,0x10,0x3f,0xa9,0xd2,0x96,0xc0,0x71,0xe7,0xbf,0x3f,0x34,0x5,0x4e,0xc0,0x68,0x7d,0x7d,0xc0,0x58,0xc1,0x86,0x3e,0x3c,0x17,0xb6,0xbf,0x84,0xf1,0x9d,0x3f,0x56,0x12,0x7d,0x40,0xc3,0xbc,0x92,0xc0,0xf0,0x23,0x9f,0x40,0x76,0x71,0x31,0xc0,0xd0,0xf0,0x7c,0xbf,0x88,0x6d,0x4f,0x40,0x4,0xaa,0x5,0xc0,0x28,0x48,0x21,0xc0,0xd6,0xbb,0x95,0xbf,0x97,0x27,0xfa,0x3f,0x40,0xb9,0x5d,0xbe,0x58,0xc2,0x91,0x40,0x2c,0x29,0xa,0x40,0x17,0x0,0x92,0xc0,0x4f,0x5b,0x66,0xc0,0xd8,0xb7,0xc9,0x3e,0xa0,0x27,0x44,0xbe,0x92,0x7d,0xc2,0xbf,0xbd,0x79,0xd2,0x3f,0xa4,0x4b,0x6,0x40,0xd6,0xbd,0x39,0xc0,0xa,0x5a,0x7f,0xbf,0xa5,0x24,0xe5,0x3f,0xe5,0xeb,0xe7,0x3f,0xf0,0xb0,0xe5,0xbe,0xde,0xe1,0x20,0x40,0x24,0xb5,0xe4,0x3f,0x26,0x2b,0x96,0xc0,0xf7,0xde,0x98,0xc0,0x0,0x5e,0x2b,0x3e,0x3c,0x15,0xdb,0x3f,0xa6,0x1d,0x64,0xc0,0xce,0xca,0x24,0xc0,0x69,0xe4,0x98,0xc0,0x66,0x6f,0x72,0x3f,0x5f,0xef,0x67,0x40,0x2,0xc2,0x8d,0x40,0x56,0x46,0x82,0xc0,0xb6,0x17,0x77,0x40,0xf5,0x2a,0x0,0xc0,0x12,0xea,0x8c,0xc0,0xfd,0x5c,0x4d,0x40,0x40,0x72,0x86,0x40,0x10,0x67,0x83,0xbe,0x26,0xd6,0xb7,0xbf,0x6,0xeb,0x1f,0x3f,0x5a,0x25,0x16,0x40,0x8,0xfc,0x13,0x40,0x2f,0x2a,0x21,0xc0,0x30,0x9d,0x2a,0x3e,0x3e,0x2a,0xb0,0x3f,0xa6,0x6d,0x39,0x3f,0x5e,0x12,0x85,0x3f,0x4a,0xa1,0x91,0x3f,0x6c,0xa8,0xa9,0x3f,0xfa,0x36,0x2d,0x40,0x80,0x5d,0x22,0xc0,0x36,0x63,0x84,0x40,0x81,0x66,0xa4,0xbf,0x1,0x64,0x82,0xc0,0x48,0x6a,0x54,0x40,0x32,0x86,0x4b,0xc0,0xd6,0x21,0x9e,0xc0,0xcc,0x3b,0xd9,0xbe,0x41,0x14,0x9a,0x40,0x72,0x6f,0x72,0xc0,0xfd,0xbd,0x8a,0x3f,0xd3,0x65,0x78,0xc0,0x90,0xdb,0x2,0x40,0x66,0xc0,0x58,0x40,0x76,0x4f,0x50,0xbf,0xd9,0x69,0x8e,0xc0,0x9f,0x20,0x6f,0xc0,0xe0,0x98,0x44,0xc0,0xea,0x7,0xef,0xbf,0xc,0x1c,0x19,0xc0,0xa2,0xd0,0xc,0x40,0x77,0x48,0x90,0x3f,0x94,0xf,0x80,0xc0,0xd4,0xce,0x22,0x3f,0xe4,0x53,0x94,0xc0,0xc7,0x2f,0x65,0x40,0x0,0x3f,0xb1,0xbe,0xb7,0x9f,0x95,0x40,0x9e,0xf1,0x79,0x40,0xe4,0x7c,0x37,0xc0,0xb3,0xa9,0x77,0x40,0x8,0xb5,0x88,0xc0,0x2e,0x3d,0x94,0xc0,0x91,0x5b,0x56,0x40,0xd6,0x34,0x24,0xc0,0xf8,0x65,0x6a,0xc0,0x80,0x1,0x50,0xc0,0x79,0x7d,0x38,0xc0,0xba,0x67,0x8d,0xc0,0x88,0x5f,0x24,0x3f,0xda,0x30,0x89,0xc0,0xfc,0xc8,0xb2,0xbf,0xfc,0x9a,0x49,0x40,0x3e,0xbd,0x76,0xc0,0xa5,0x94,0x59,0x40,0x50,0x60,0x9e,0x40,0xb6,0xea,0x42,0xbf,0x86,0x39,0x1a,0xbf,0x7e,0x21,0x98,0xc0,0x48,0x7e,0x94,0x40,0x4c,0x31,0x80,0x40,0x5c,0x38,0x9,0xbf,0x9a,0x8a,0x3e,0x40,0xf8,0xea,0x8c,0xc0,0xbc,0x9a,0x58,0xc0,0xf4,0x57,0x96,0x40,0xd8,0xdd,0x9e,0xc0,0xfa,0x5,0x7,0xbf,0x6,0xa6,0x2a,0xc0,0x32,0xd,0x97,0xc0,0x64,0x41,0x52,0x3f,0x2a,0x75,0xb,0xc0,0x8a,0x3c,0x7c,0x3f,0xc0,0xff,0xee,0xbf,0xf,0x8a,0xd4,0x3f,0xfa,0x29,0x29,0x3f,0x14,0xf1,0x9e,0xc0,0x4,0xf8,0x4b,0x40,0xfe,0xd6,0x45,0x40,0x18,0xfe,0x74,0xc0,0x6a,0xc2,0xbe,0x3f,0xdc,0x8d,0x17,0xc0,0x7a,0xce,0x5b,0x40,0xfe,0xe2,0x19,0xc0,0x94,0xbb,0x48,0x40,0x1,0xf7,0x4a,0xc0,0xe,0x57,0x2c,0xc0,0x8c,0x3f,0x2,0x40,0xdb,0x61,0xae,0x3f,0x78,0x39,0x12,0xc0,0x78,0x4b,0x6b,0x40,0x58,0x4f,0x73,0x3f,0x76,0xf5,0x18,0x40,0x70,0xc0,0x3d,0xc0,0x1,0xdc,0x9a,0x3f,0x6,0xaf,0x9a,0x3f,0x86,0x3c,0x3a,0x40,0x64,0xa3,0x93,0x40,0x38,0xe1,0x4a,0x40,0x6e,0x44,0x9d,0x40,0x10,0x39,0xc,0xc0,0x18,0xcf,0x83,0xc0,0xb4,0x9a,0x62,0x3f,0x80,0x5e,0xb7,0xbd,0xb6,0x85,0x3e,0xbf,0x5,0xd4,0x80,0xc0,0xc0,0x6e,0x32,0xbe,0x30,0x84,0x16,0x3e,0x6d,0x23,0x44,0x40,0xc6,0x88,0x19,0x40,0x4e,0x5b,0x58,0x3f,0x62,0x23,0x61,0x40,0x10,0x3e,0x9,0xbf,0x6f,0xb5,0x80,0x40,0x75,0x98,0x91,0xc0,0x80,0x52,0x16,0xbe,0x8e,0x4e,0xf,0xc0,0x7e,0x52,0x4d,0x40,0x8b,0xdf,0xb2,0xbf,0x8e,0x5a,0x58,0xc0,0xc,0xda,0x57,0xbf,0x0,0x70,0x3c,0x3b,0xe6,0x5d,0x57,0x40,0x53,0x4c,0x30,0x40,0x2f,0xb4,0x90,0xc0,0xd1,0x38,0x7,0xc0,0xe8,0x33,0x1b,0xc0,0xac,0xe0,0x86,0xbe,0xd4,0x2e,0xe,0x40,0xaa,0x3b,0x3a,0xbf,0x31,0xa7,0x91,0x40,0x46,0x9,0xd,0x3f,0xb2,0x1e,0x31,0x40,0xb8,0xda,0x99,0xbf,0xb4,0x82,0x39,0x40,0x44,0xb,0xfb,0x3f,0x0,0x74,0x3d,0x3e,0x68,0xb5,0x2a,0xbe,0x66,0xc7,0xd,0x40,0x14,0xc3,0x34,0x3f,0xb0,0xc1,0x49,0xc0,0xd2,0x8e,0xc6,0xbf,0x4a,0xe8,0x51,0xc0,0x32,0xda,0x98,0x3f,0xab,0x13,0x70,0x40,0x2c,0xb7,0x37,0xc0,0x69,0x9c,0xd6,0x3f,0xd6,0xb,0x77,0xc0,0x8e,0xd1,0x3,0x40,0x48,0x7,0x96,0xc0,0xb1,0x61,0xfb,0xbf,0xe0,0x84,0x6a,0xbd,0xf2,0x24,0x59,0xbf,0x21,0x16,0x34,0x40,0x44,0x34,0xff,0xbf,0x40,0x22,0xd4,0x3f,0x8,0x8c,0xc,0x40,0xb1,0xea,0xae,0x3f,0xea,0xc,0x9b,0xc0,0x10,0x70,0x31,0xc0,0x38,0xfd,0x9c,0xbf,0xc0,0x39,0xab,0xbd,0x46,0xc3,0xf5,0x3f,0x3c,0x23,0x61,0x40,0x4f,0x18,0x84,0x3f,0x30,0x2b,0x5b,0xc0,0x65,0xff,0x9e,0xc0,0x98,0x4e,0x8f,0x40,0xc0,0x53,0x8c,0x3c,0xf8,0x30,0x8e,0xc0,0xf4,0xfb,0xaf,0xbf,0xf,0x6e,0xf5,0x3f,0xa8,0xf7,0x20,0xbe,0x30,0xe8,0x52,0x40,0x84,0x27,0x5b,0xbf,0x38,0xb8,0x20,0x3f,0x33,0xf5,0x95,0x40,0xe,0x17,0x8e,0xc0,0xe8,0x9a,0xfe,0x3e,0x8a,0x3d,0x82,0xc0,0xfe,0x9f,0x57,0xc0,0x4b,0xd2,0x95,0xc0,0xdb,0x1d,0x1d,0x40,0x2a,0x2f,0x7b,0xbf,0x28,0x5d,0xe8,0x3f,0xda,0xe4,0x10,0x3f,0x84,0xc8,0xd0,0x3f,0x90,0x6a,0x86,0xc0,0xd0,0xf6,0xe2,0xbf,0x33,0x45,0xaf,0xbf,0xc4,0x6b,0x68,0xc0,0x9e,0x31,0x8,0x40,0x6a,0xa3,0x35,0x40,0x9d,0x7a,0xe7,0xbf,0x54,0xb5,0x5a,0xc0,0xfe,0x93,0x26,0xc0,0xc7,0x2a,0x95,0xc0,0xd8,0x49,0x50,0xc0,0x3b,0x4b,0xb0,0xbf,0xda,0x1f,0x53,0x3f,0x9f,0x94,0x19,0xc0,0xef,0xe,0x83,0xc0,0xa4,0xa5,0x21,0x40,0x98,0xcb,0x7f,0x40,0xf0,0xb7,0x72,0x3e,0x34,0xb,0x36,0xbf,0xc,0x8c,0xd,0xc0,0x7c,0xb2,0xd0,0x3f,0x78,0x65,0xcc,0x3e,0xf0,0x4f,0x12,0xc0,0x29,0x8c,0x5b,0x40,0x52,0x82,0x3c,0x40,0xfe,0x64,0x6c,0x40,0x57,0xc1,0x5c,0x40,0xce,0xe1,0x3d,0xc0,0x88,0x7c,0x92,0x40,0xb0,0x9d,0xca,0xbd,0x78,0x30,0x93,0xc0,0x96,0xd7,0x4a,0x40,0x2c,0xd0,0x4d,0xc0,0x6,0x4a,0x16,0xc0,0xf6,0x5f,0x79,0x3f,0x48,0x27,0x63,0x40,0x1a,0x1d,0x4d,0x3f,0x31,0xce,0x88,0xc0,0x65,0xe3,0x59,0xc0,0xa8,0x5f,0xed,0x3f,0x74,0x72,0xaf,0xbf,0xbf,0xc8,0xae,0x3f,0x10,0x83,0x8b,0x40,0x66,0x89,0x50,0xc0,0xe7,0x2a,0x8a,0xc0,0x8a,0xa8,0xd6,0xbf,0x14,0x48,0xc6,0xbe,0xc1,0x6b,0xd7,0xbf,0xef,0x23,0x9c,0x40,0x3b,0x55,0x3f,0xc0,0x3a,0x61,0x39,0x40,0x21,0x22,0xf8,0x3f,0xe0,0x28,0x93,0x40,0xa3,0xff,0x99,0xc0,0xbb,0xb4,0x69,0x40,0x7d,0xe3,0xcb,0xbf,0x59,0x88,0xe1,0xbf,0xe8,0xc6,0x2a,0x3e,0x27,0xf5,0x58,0x40,0xf6,0x25,0x24,0x40,0xbe,0x9d,0x39,0xc0,0x76,0xf5,0x98,0x3f,0xa8,0xdb,0x50,0xbe,0x37,0xa0,0xd2,0x3f,0x0,0xa6,0x6f,0xbb,0xca,0xc3,0x9e,0xbf,0xa2,0x11,0x14,0x40,0x10,0x91,0x88,0x40,0xdc,0x5d,0x2a,0x40,0x25,0xb7,0xd2,0xbf,0x0,0xbf,0x8b,0x3d,0x44,0xa4,0x73,0x3f,0x44,0x3,0x3a,0xc0,0xa1,0xb4,0x87,0x40,0x2e,0xf3,0x28,0x40,0x74,0xab,0xa,0x40,0x7f,0x2e,0x94,0x40,0x50,0x70,0x28,0xbf,0xcb,0x7e,0x71,0x40,0xb6,0x17,0x16,0xbf,0x27,0xf8,0x80,0x40,0x26,0x75,0x40,0xc0,0x27,0x78,0x9c,0xc0,0xfa,0x2f,0x25,0x40,0xa8,0x61,0xdc,0x3f,0x70,0xca,0x97,0xc0,0x15,0xfb,0xa,0x40,0xea,0xbe,0x88,0xbf,0x7f,0x3a,0x2,0x40,0x49,0x4d,0x91,0x40,0xce,0x24,0x81,0x40,0x70,0x9b,0x37,0x3e,0x98,0x99,0x1d,0x40,0x8c,0x50,0x94,0xc0,0xc0,0x27,0xbd,0x3e,0x2e,0x2f,0xcf,0x3f,0x6,0x99,0x23,0x40,0x64,0x18,0xe7,0x3f,0x2c,0x9b,0x56,0x40,0x8c,0x8e,0xb2,0x3e,0xc5,0x55,0xd0,0x3f,0x6a,0x2,0x9d,0xc0,0xd0,0x6b,0x19,0xc0,0x4b,0x1d,0x12,0x40,0xbc,0x38,0xdd,0x3f,0x6c,0x9e,0x8,0x40,0xc,0x4a,0x1,0x40,0x46,0x31,0x87,0xc0,0xd9,0xbb,0xd3,0x3f,0xb0,0xa3,0xbf,0xbf,0x52,0x42,0x4f,0xbf,0x28,0x12,0xca,0xbe,0x9d,0x2,0x87,0x40,0xd2,0x4d,0x8f,0x40,0xfb,0xbf,0x1e,0x40,0xc7,0x6b,0xf9,0xbf,0x2b,0xcb,0xbd,0x3f,0x70,0x26,0xdc,0x3f,0xe2,0x1b,0x75,0x40,0x20,0xc0,0xc9,0x3e,0x10,0xce,0x96,0xc0,0x2c,0x92,0x0,0x40,0xf,0xba,0x7e,0xc0,0xe0,0x32,0x26,0x3f,0xc0,0x4,0x51,0x40,0x56,0x1d,0x4,0x40,0xbb,0x6b,0x97,0x40,0x73,0x41,0x9a,0x40,0xdf,0x56,0x92,0xc0,0xc0,0x29,0xfc,0x3d,0x9,0xc5,0xb8,0x3f,0x14,0x2,0x7d,0xbf,0x36,0x10,0x25,0xc0,0x43,0x18,0x9a,0x40,0x26,0xd,0x40,0xc0,0xd4,0xfc,0x93,0xc0,0x67,0x2e,0x92,0xc0,0x71,0x3f,0x2e,0xc0,0x9a,0x9d,0x6,0x3f,0xe,0xf9,0x57,0x40,0xc,0x9f,0x9f,0xbe,0xb8,0x4b,0x7b,0xc0,0x6a,0x61,0x6d,0x40,0x68,0x4d,0xbd,0xbe,0x3f,0xfc,0xe6,0xbf,0xd8,0x4e,0x17,0xbe,0x6a,0x43,0xb,0x40,0xaa,0xfb,0x1f,0xbf,0x45,0xff,0xfb,0x3f,0xde,0xc5,0x5,0x40,0x8a,0xe0,0x52,0xc0,0xac,0xdf,0x8f,0x40,0x69,0xd,0x54,0x40,0x90,0xa8,0x73,0xbe,0x8a,0x2b,0x4e,0x40,0xb1,0xbb,0xb0,0xbf,0x21,0xc9,0x88,0xbf,0xf3,0xb3,0x5,0x40,0x38,0x5f,0x6d,0xc0,0x32,0xf1,0x9a,0xbf,0xd6,0xea,0x54,0xc0,0x70,0x8b,0xdb,0xbe,0xdf,0xc8,0xfc,0xbf,0xea,0xa5,0xd3,0xbf,0xa4,0xde,0x8b,0xbf,0x86,0x4e,0x76,0x40,0x25,0x6a,0x9d,0x3f,0x5,0x88,0x9a,0xc0,0x76,0x92,0x5d,0xc0,0x84,0x63,0xc7,0xbe,0x39,0x7a,0xd3,0x3f,0x82,0x24,0x47,0x40,0x90,0x46,0x92,0x40,0xd6,0xe0,0x57,0xc0,0x35,0x2f,0x97,0x40,0xda,0xeb,0x56,0x40,0xde,0xa1,0x7e,0xc0,0xfe,0xa0,0x83,0xc0,0x53,0xcb,0x79,0xc0,0x90,0x39,0xc7,0x3d,0x16,0xc3,0x8a,0xbf,0x9c,0x54,0x9c,0xc0,0xde,0xc5,0xb5,0xbf,0x0,0x73,0x48,0x40,0xb4,0xee,0xb6,0xbe,0xa8,0x5e,0x7f,0xc0,0x42,0x39,0x52,0xc0,0xa4,0xee,0xee,0x3f,0xd1,0x47,0xc8,0x3f,0x9e,0xe3,0xa,0xc0,0x8e,0x4,0x83,0xc0,0x6e,0xeb,0x7,0x40,0xc1,0xe8,0x2a,0xc0,0xbb,0x26,0x8c,0xc0,0x78,0xb6,0x92,0x40,0x6a,0xa8,0x0,0x40,0x5e,0x27,0x59,0xbf,0x62,0xe1,0x3b,0x3f,0x6,0xf5,0x81,0x40,0x9f,0x30,0x8e,0xc0,0x60,0xa5,0x7e,0xbf,0x36,0xa0,0xe2,0xbf,0x1e,0x6b,0x9b,0xc0,0xc4,0xb0,0x87,0x40,0xa3,0x3c,0x97,0xc0,0xc4,0xbf,0x0,0xc0,0x2c,0x74,0x22,0x40,0x57,0xcd,0x90,0x40,0x17,0x8,0xa9,0xbf,0x8a,0x87,0x84,0x40,0x80,0x21,0xd1,0xbd,0x97,0xdd,0x93,0xc0,0xaa,0x23,0x95,0xc0,0x10,0xb0,0x14,0xc0,0xc0,0xd,0xfa,0xbc,0x40,0xc5,0x81,0x40,0x14,0xb0,0x8,0xc0,0x82,0x61,0x46,0xbf,0x8f,0xc2,0x5a,0x40,0x3a,0xc8,0x9d,0xbf,0x9c,0xa3,0xa,0x40,0xd0,0x14,0xd9,0xbe,0xf0,0x6a,0xf9,0xbf,0xfc,0x54,0x4f,0xc0,0x24,0xd,0x9d,0x40,0x1e,0xe0,0x2b,0xc0,0x34,0xde,0x3,0x3f,0xd1,0x40,0xde,0x3f,0xb0,0x70,0x6d,0x3f,0x78,0xd6,0xce,0xbe,0xe,0x63,0x77,0xbf,0xb8,0xae,0x6,0xc0,0x92,0x2b,0xdd,0x3f,0x8e,0xa2,0xba,0xbf,0xcd,0x89,0xee,0x3f,0x22,0xd2,0x24,0x40,0xe0,0xe1,0xe2,0x3f,0xf0,0x9b,0x16,0xc0,0x7a,0x8,0x5c,0xc0,0xba,0xd2,0xae,0xbf,0x5b,0xa5,0xcc,0x3f,0xd4,0xf1,0x9,0x3f,0xe,0x67,0x9c,0x40,0x18,0x2a,0x58,0x40,0x84,0xb6,0x15,0xc0,0x38,0xe4,0x65,0x40,0xd8,0x6d,0x36,0xc0,0x3f,0x6,0xd8,0xbf,0xed,0x2e,0x6d,0x40,0xb6,0x38,0x6b,0xc0,0xcf,0xdd,0xb1,0xbf,0x96,0x7f,0x83,0xc0,0xf5,0x7f,0x14,0x40,0x50,0x4f,0x65,0x40,0x6e,0xa7,0x8c,0x40,0x2c,0x17,0xdf,0xbf,0x44,0x9e,0x6c,0xc0,0xf4,0xdc,0x28,0x40,0xb8,0xf2,0x4e,0xc0,0xcb,0x45,0xd5,0xbf,0xd6,0xa3,0x83,0xc0,0x10,0x9e,0x79,0x40,0x7c,0x9e,0x0,0xbf,0xd0,0x43,0x2a,0x3f,0x34,0x86,0x95,0x3e,0xc,0xa,0x37,0x3f,0xe8,0x32,0xc,0xc0,0x7f,0xc5,0x9c,0x40,0xbb,0x16,0x91,0xc0,0xdc,0x7b,0x27,0xbf,0x66,0x54,0x3a,0xc0,0x76,0xcb,0x59,0xc0,0x30,0xec,0x2b,0x40,0xba,0xd9,0x6a,0x40,0x1c,0x6d,0x17,0x40,0x8,0xb0,0xbf,0x3f,0x25,0x73,0x55,0x40,0x58,0x8d,0x2b,0x40,0x92,0x30,0xba,0xbf,0x16,0x62,0x7,0xc0,0xcd,0xa1,0xbd,0x3f,0xe9,0xd9,0x48,0x40,0xe6,0xa0,0x55,0x40,0xc0,0xe9,0xaa,0x3c,0x8b,0xf2,0x9f,0x40,0xb6,0xb6,0x65,0xc0,0x82,0xc4,0x4,0x40,0x0,0x9,0x89,0x40,0x6c,0xdf,0x9f,0x3e,0x78,0x46,0x41,0x40,0x5b,0x9a,0x8c,0x40,0x66,0xd1,0x77,0xc0,0x8,0x7,0x50,0x40,0xf1,0x56,0x14,0x40,0x30,0x29,0x28,0x40,0x7e,0x9c,0x20,0x40,0x0,0x6b,0x3f,0x40,0xc,0x86,0xcc,0x3f,0x4d,0x97,0x31,0x40,0x79,0x1d,0x91,0xc0,0x69,0x66,0x9f,0xc0,0xfa,0x8,0x2a,0x40,0xa,0x54,0x9f,0x40,0xce,0xfe,0xbe,0xbf,0xe0,0x2,0x76,0x40,0xfe,0x66,0xb,0xbf,0x20,0x87,0x20,0x40,0x84,0x23,0xd0,0xbe,0x22,0x9e,0x1b,0x40,0xf8,0xf1,0xa,0xc0,0x51,0x8a,0x83,0xc0,0x14,0xe6,0x2a,0x40,0x20,0x4c,0x6,0xc0,0x99,0xbd,0x6e,0x40,0xe2,0xf2,0x2c,0x3f,0x71,0x70,0x2,0xc0,0x1,0xf6,0x99,0x40,0x7,0xd7,0x98,0x40,0x56,0xe7,0x25,0xc0,0xec,0x50,0xe,0x40,0x5b,0x97,0xb7,0x3f,0x8c,0x89,0x44,0xc0,0x82,0x8a,0x22,0x3f,0x67,0x2b,0x8c,0xc0,0x84,0x67,0xc3,0x3e,0x5d,0xbd,0x8a,0xc0,0xa6,0xd2,0x88,0x40,0x8,0x9f,0x20,0x40,0x18,0x7d,0x7d,0x40,0x4,0x30,0x78,0x3f,0x3,0x3d,0x8,0xc0,0x26,0x7f,0x23,0x40,0x33,0xef,0xc,0x40,0x22,0x94,0x2f,0x40,0xbe,0x13,0x44,0xbf,0x60,0x54,0x9f,0x40,0x42,0x1c,0x4c,0xc0,0x6a,0xb4,0x8e,0xc0,0xc9,0x2b,0xab,0x3f,0xb1,0x94,0x90,0x40,0xe0,0x72,0x45,0x3f,0x1f,0xc4,0xb7,0xbf,0x84,0x77,0x88,0xc0,0x44,0xdd,0x56,0x40,0xc2,0x5a,0x9d,0xc0,0x92,0xe9,0x3,0xc0,0x9f,0x9a,0x31,0x40,0xa6,0xf7,0x34,0xc0,0x0,0x74,0x51,0xc0,0xaa,0x57,0x21,0xc0,0x37,0xd5,0x18,0x40,0xd4,0x69,0x8,0xc0,0x8f,0xcf,0x91,0xbf,0xd,0xea,0x99,0xbf,0x2f,0xb4,0x2d,0x40,0x2c,0x8b,0x8c,0x40,0xcc,0xac,0x9f,0x3e,0x40,0x11,0xb3,0x3c,0xda,0xf2,0x2,0xbf,0xca,0x6d,0x18,0x40,0x1,0xe5,0x66,0x40,0x1b,0x9d,0x97,0x3f,0xf0,0xba,0x45,0x40,0x4f,0x2d,0xc9,0xbf,0x18,0x54,0x7c,0xbe,0x1e,0x3e,0x85,0xc0,0x32,0x2c,0xb,0x40,0xe4,0xb4,0x24,0xc0,0x32,0x81,0x44,0xbf,0x19,0x8a,0x9c,0xc0,0x4c,0xec,0xda,0x3e,0x55,0x77,0xc9,0x3f,0x47,0x83,0x41,0x40,0xf8,0xd9,0x8c,0xbf,0x0,0x8,0x77,0x3e,0xce,0x6c,0x96,0x40,0x40,0x6b,0x81,0x3d,0x38,0x6b,0x66,0x40,0x0,0xbe,0x9c,0x40,0xbb,0x25,0x88,0x40,0x94,0x2a,0x11,0x40,0x1e,0x63,0x4c,0x40,0xe0,0xd,0x92,0x40,0x38,0x71,0xfb,0xbe,0x8f,0x5f,0x80,0x40,0xba,0xa6,0x3,0xc0,0xd3,0xbb,0xca,0xbf,0x27,0xb2,0xf,0x40,0x2e,0xcf,0x40,0xc0,0xec,0x4a,0xf5,0xbf,0x9c,0xa2,0x89,0x3e,0xc,0xf3,0xd2,0x3e,0x40,0x98,0x81,0x3e,0xcc,0x7d,0x2b,0xbf,0xa6,0xba,0xcb,0x3f,0x82,0x95,0x9a,0x40,0xcd,0x6f,0xd6,0xbf,0x53,0xb,0x30,0x40,0x4,0xbe,0x9c,0x3f,0x78,0x6f,0x4a,0x40,0x9a,0x82,0x82,0x40,0x40,0xd4,0xf4,0xbe,0x6a,0x6,0x85,0xbf,0xf1,0x6b,0xfc,0xbf,0xce,0x57,0xb1,0xbf,0x30,0x1,0x8,0xc0,0x17,0x9,0x9e,0xbf,0x26,0x7,0x3b,0x40,0x62,0x19,0xc0,0x3f,0xed,0xf8,0x16,0xc0,0x72,0xfd,0x34,0x40,0x68,0x93,0xe5,0x3e,0x28,0xa3,0x4a,0x3e,0x7f,0x1f,0xf7,0x3f,0x2,0x40,0x33,0xc0,0x8a,0x70,0x7,0xbf,0x82,0x15,0x74,0x40,0x65,0x52,0x4f,0x40,0x5e,0x62,0x34,0x40,0xdc,0x9c,0x33,0xbf,0xac,0x22,0x1,0x3f,0xc0,0xb8,0x4f,0x40,0x98,0xdd,0x5e,0x3f,0xa6,0x37,0x30,0x40,0xaa,0x23,0x22,0x40,0xe3,0x58,0xc,0x40,0x14,0x8a,0x16,0x40,0xea,0x61,0x56,0xc0,0xf0,0x9f,0x8c,0xc0,0x7,0x8b,0x9e,0xc0,0xb7,0xc5,0x7a,0x40,0x9e,0xff,0x31,0xc0,0xa8,0x9a,0x7b,0xc0,0x70,0xa5,0x23,0x3f,0xd4,0x7f,0x76,0xbf,0xb2,0x31,0xcb,0x3f,0x71,0x23,0xa7,0xbf,0x8e,0xef,0x77,0x40,0x13,0xb3,0x97,0xc0,0xd8,0xac,0x9d,0xc0,0x70,0xcf,0x89,0x40,0x46,0xdc,0xa,0xc0,0xc3,0xd6,0x9c,0x3f,0x80,0x3b,0xe9,0x3f,0x4c,0xe5,0x48,0x3f,0xc4,0x20,0x4a,0xc0,0x48,0xcd,0xa,0x3f,0x94,0x82,0x51,0xc0,0xc3,0xf7,0x86,0x40,0x84,0x9c,0x45,0x3f,0x24,0x24,0x67,0x40,0x9a,0xd,0x62,0x40,0xe1,0x36,0x8,0x40,0xed,0xc,0xe2,0x3f,0x72,0x76,0x34,0x40,0x9f,0x2,0x4c,0xc0,0x26,0x76,0x71,0x40,0x55,0x94,0x89,0xbf,0x8e,0x4f,0x77,0x40,0xe0,0x64,0xab,0xbe,0x2e,0x4a,0x14,0x40,0x94,0x4c,0x6c,0x40,0xea,0x30,0x73,0x3f,0x98,0x2d,0x78,0xbf,0x4a,0x85,0x2,0x40,0xca,0x6f,0x9f,0xc0,0xf6,0x58,0x3,0xbf,0x5e,0x4c,0x82,0xbf,0x38,0x11,0x75,0xc0,0xb8,0x59,0x72,0xbe,0x10,0xd8,0x94,0x3f,0x97,0x86,0x9b,0xc0,0x2a,0xc,0x83,0x40,0x2a,0x3c,0x35,0x40,0x6d,0xdb,0x9d,0x40,0x98,0x8b,0x9,0xc0,0x2c,0xcf,0x62,0xc0,0x4c,0x52,0x43,0x40,0x87,0x64,0x96,0x40,0x5a,0x83,0x3a,0xc0,0xe0,0xbb,0x3b,0xc0,0xc,0xdc,0xbc,0xbe,0xbe,0xc,0x88,0x40,0xe,0xef,0x45,0xbf,0x7c,0x3f,0x99,0xc0,0x3,0x64,0x4,0xc0,0x24,0x21,0x37,0xc0,0xf3,0x42,0x71,0x40,0xbb,0xe,0x6a,0xc0,0x92,0xdf,0x6e,0x40,0x4c,0x19,0xef,0x3f,0xf8,0x90,0xe4,0xbe,0xb3,0xa6,0xa0,0xbf,0x82,0xc4,0x30,0x40,0xff,0x31,0x35,0xc0,0x18,0x3b,0xf7,0xbf,0xa8,0x2d,0x8d,0x40,0xf9,0x77,0xf7,0xbf,0xba,0xf5,0x1,0x3f,0xfc,0xf3,0x81,0x40,0x89,0xf8,0x7a,0xc0,0x7a,0xac,0x53,0x3f,0xc0,0x1,0xe,0x3e,0x72,0x4c,0x25,0xc0,0x29,0x2d,0x81,0x40,0x1a,0x63,0x5c,0x40,0xdc,0xbc,0xa7,0xbe,0x10,0xac,0x9,0xbf,0x4b,0x51,0x47,0x40,0x44,0xbf,0xd3,0xbf,0x2,0x2a,0x35,0x40,0x96,0x77,0x55,0xc0,0x5c,0x6e,0x83,0xc0,0x8c,0xa7,0x55,0x40,0x26,0x4a,0x5a,0x40,0xa3,0xc2,0x78,0xc0,0xac,0x8e,0x8d,0xbf,0x62,0xef,0x7,0x40,0xac,0xf0,0x2a,0x40,0xae,0xab,0x3e,0x40,0x54,0x45,0x60,0x40,0x8f,0x74,0x12,0xc0,0x35,0x60,0x88,0x3f,0x7e,0x70,0x89,0x40,0x56,0x4e,0x83,0xc0,0x6c,0x91,0x4f,0x40,0x9c,0xe9,0xa1,0x3f,0x10,0xd3,0x5f,0x3e,0xcc,0x80,0x9e,0x40,0x4f,0xea,0x4,0xc0,0xea,0x37,0xb0,0xbf,0x30,0xcd,0x6d,0xc0,0xaa,0xb6,0x86,0x40,0x98,0xe8,0x69,0xc0,0xe7,0x16,0x8f,0x40,0x5c,0x79,0x6b,0xc0,0x52,0x6e,0x37,0x40,0xb6,0xca,0x1f,0xc0,0x9e,0x9b,0x8c,0x40,0x96,0x40,0x56,0xc0,0xc4,0x36,0x4f,0xc0,0x26,0xa8,0xb8,0xbf,0xa9,0xa2,0x80,0xc0,0x4c,0x15,0x98,0x40,0x22,0xa0,0xec,0x3f,0x2c,0xce,0x2d,0xc0,0x30,0xef,0x71,0xc0,0x29,0x8a,0xd3,0xbf,0x76,0x41,0x40,0x3f,0x8b,0x16,0x10,0xc0,0xa0,0xf3,0x39,0x40,0xe,0x1b,0x1d,0xc0,0xed,0xb2,0xbe,0x3f,0x84,0x65,0x66,0x40,0x66,0xe0,0x62,0xc0,0xa2,0xd8,0x79,0xc0,0x1d,0x7,0x99,0xc0,0xfe,0xdd,0x70,0x3f,0x94,0x3b,0x7b,0x40,0x66,0x27,0x4c,0xc0,0x20,0x65,0x2c,0xbf,0x32,0x52,0x48,0x40,0xdc,0x4b,0x78,0x40,0x50,0x7a,0x2f,0x40,0x68,0xf7,0xcc,0x3f,0x2e,0x25,0x5e,0x3f,0x98,0xf6,0xbb,0x3e,0x34,0xaf,0x8b,0x40,0x28,0xc1,0x36,0x3e,0x6b,0xb9,0xf8,0x3f,0xe8,0xd4,0xba,0xbe,0xab,0x6f,0x7d,0x40,0x36,0x91,0x9e,0xc0,0xe5,0x8a,0xcb,0xbf,0xf3,0x55,0x99,0xc0,0x3b,0x4c,0x96,0x3f,0xa9,0x6e,0x92,0xbf,0x66,0x7e,0x83,0xc0,0x3b,0x1a,0x75,0xc0,0x2,0x8d,0xb6,0x3f,0x3a,0x48,0x70,0x40,0x6a,0x4c,0x88,0x40,0x16,0x9c,0x5b,0x40,0x1f,0x2c,0x81,0xc0,0xa6,0x1,0x85,0x40,0x14,0x84,0x98,0x40,0xa8,0x4,0x78,0x3e,0xbf,0x9b,0x99,0xc0,0xe8,0x5c,0x67,0xc0,0x9a,0xac,0x8d,0xc0,0x54,0x2d,0x4e,0x3f,0xd9,0x94,0x83,0x40,0x36,0x45,0x4d,0x40,0xc8,0xa0,0x1b,0xc0,0xe7,0x4b,0xb,0xc0,0xdd,0x58,0x97,0x3f,0xb1,0xbb,0x2b,0xc0,0x9c,0xd7,0xf4,0xbe,0xd2,0x2d,0xb9,0x3f,0x22,0x5c,0xea,0xbf,0xd,0x4e,0xe5,0x3f,0x84,0x3d,0x36,0xbf,0x86,0x3c,0x93,0x40,0x75,0x75,0x83,0xc0,0x46,0xd,0x87,0x40,0x94,0xcd,0x57,0x40,0xf6,0x47,0x8f,0xc0,0xbb,0x67,0x96,0x3f,0xd6,0xdf,0x23,0xbf,0xaa,0x53,0x16,0x40,0xd7,0x4f,0x67,0x40,0xb8,0xf2,0x2b,0xc0,0x5a,0x0,0x36,0xc0,0x1,0xa2,0x68,0xc0,0x93,0x47,0x68,0x40,0x8f,0x3,0x86,0xc0,0x95,0x39,0x47,0xc0,0x8,0x24,0x90,0x40,0xe8,0xe7,0x24,0x40,0x37,0xa6,0x5b,0x40,0xc,0xda,0x89,0x40,0xbd,0x98,0x8b,0xc0,0x5d,0x3a,0x9f,0xbf,0xe4,0xd4,0xd7,0xbe,0x6c,0xff,0x93,0x40,0x61,0xda,0xb4,0xbf,0xd8,0x67,0xab,0xbe,0xa0,0x7f,0x35,0x40,0x32,0xb1,0x26,0x40,0x82,0xd9,0x50,0xc0,0x20,0xfb,0x8a,0xc0,0xa1,0xb2,0xf1,0xbf,0xbf,0x3c,0xcc,0x3f,0xf6,0x41,0x98,0x40,0xcb,0x49,0x10,0x40,0x3b,0x29,0x39,0x40,0x87,0xf9,0xc4,0x3f,0xb5,0xac,0xa2,0xbf,0x2a,0x3e,0x53,0xbf,0x9d,0x94,0x86,0x40,0xa2,0x52,0x88,0x3f,0xac,0xc1,0x7f,0x3f,0x90,0x43,0x3b,0x40,0x54,0xab,0x66,0x40,0xc1,0xa0,0xb6,0x3f,0x84,0x2c,0x1,0xbf,0x61,0x89,0xd,0xc0,0x7b,0x71,0x42,0xc0,0x17,0xf8,0x1f,0xc0,0x40,0x37,0x82,0x40,0xaa,0xc4,0x7e,0x40,0x21,0x30,0x29,0xc0,0x76,0xf9,0x86,0x40,0xd9,0x58,0xa5,0xbf,0x45,0xb9,0xa1,0xbf,0x89,0x28,0xcb,0x3f,0xb2,0xe,0x82,0xc0,0x6d,0x52,0x3d,0xc0,0x8c,0x3f,0x3b,0xbf,0xdb,0x23,0xc9,0xbf,0xdc,0x90,0x21,0x40,0xe4,0x5b,0x97,0xbf,0xed,0x57,0x88,0xc0,0x76,0x4d,0x8b,0xc0,0x3c,0x7f,0x9a,0x40,0xae,0x4d,0x10,0x40,0xce,0x43,0x9f,0xc0,0xd2,0x43,0x83,0xc0,0x5e,0x18,0x4a,0xc0,0x75,0xe5,0x90,0x40,0x86,0x1d,0x2e,0x40,0x95,0xe9,0xd0,0x3f,0x6,0x29,0x35,0x40,0xfa,0xd1,0x58,0x3f,0x5e,0x29,0x64,0x40,0x33,0xd3,0x80,0xc0,0xde,0x75,0x7b,0x40,0x5f,0x45,0x12,0x40,0xa7,0x6f,0xd4,0x3f,0xa8,0xa0,0x4c,0x40,0xd4,0x12,0x7a,0xbf,0x8b,0x4,0x18,0xc0,0xe1,0x1a,0xae,0xbf,0x37,0xa,0x70,0xc0,0xe0,0x93,0xb,0x3d,0x4e,0x97,0x24,0x40,0x1a,0x47,0x6e,0x3f,0x60,0xf8,0x30,0xbe,0x8d,0x20,0xf2,0x3f,0xe2,0xe6,0x91,0xc0,0xee,0x63,0x52,0xc0,0xaa,0xaa,0x8b,0xc0,0xa0,0x11,0x9f,0x40,0x52,0x6e,0x91,0xc0,0xb5,0x2,0x18,0x40,0x33,0x4,0x66,0x40,0x60,0x71,0xb5,0xbf,0xc0,0xb6,0x49,0xbf,0xa3,0x6f,0x83,0x40,0xf1,0xc7,0x82,0xc0,0x8c,0x96,0x9f,0xc0,0x82,0xa8,0x3b,0xbf,0x1c,0xe5,0x23,0xbf,0x37,0xfa,0x2,0xc0,0x4c,0xb4,0xc7,0x3e,0x36,0x44,0x2a,0x40,0xe0,0x35,0x2b,0x40,0xf5,0x6d,0xba,0x3f,0xf4,0xfe,0x61,0x40,0xd0,0x2d,0x15,0xc0,0xb8,0x0,0xab,0x3e,0xf3,0x8f,0xd6,0x3f,0x96,0xd2,0xcd,0x3f,0x54,0x9d,0xe5,0xbf,0x21,0xee,0x81,0x40,0x60,0x8a,0x74,0xc0,0x23,0xd1,0x17,0xc0,0x19,0x7b,0x99,0xc0,0x44,0x27,0x19,0x3f,0x8a,0x9f,0x78,0xc0,0x68,0xb8,0x63,0x40,0x53,0x44,0x56,0xc0,0x85,0xbd,0xa8,0x3f,0x13,0x12,0x8e,0x40,0x48,0x94,0x91,0x40,0x86,0x81,0xd4,0x3f,0x6d,0xbc,0xe9,0x3f,0x3c,0x9e,0x63,0x3f,0x60,0x5d,0x38,0x40,0x54,0xdb,0xb1,0xbe,0x18,0xea,0x6f,0xc0,0x58,0x4f,0x8d,0x40,0x59,0xf1,0x70,0xc0,0x3,0x9c,0x9b,0x40,0x44,0x29,0x8d,0x3e,0x54,0xca,0x12,0x40,0xf8,0xfb,0xd,0x3e,0x39,0x3e,0x8,0x40,0xd1,0xd,0x5a,0x40,0x40,0xff,0x96,0xc0,0x64,0x10,0x36,0x40,0xfe,0x55,0xd8,0xbf,0x60,0x8,0x90,0xc0,0x5d,0x49,0x80,0xc0,0x50,0x8d,0xe5,0x3e,0x14,0xe,0x79,0x40,0x7c,0x63,0x97,0xc0,0x70,0x99,0xb9,0x3f,0x66,0x27,0x1,0x40,0x74,0x6f,0x93,0xc0,0xac,0x89,0x8d,0x3f,0x1a,0x9,0x1d,0xc0,0x4c,0xfa,0x47,0x3f,0x23,0x66,0xf3,0xbf,0x72,0x14,0x82,0x40,0xee,0xe2,0x92,0xc0,0x90,0x45,0x27,0x40,0x9f,0xba,0xf0,0xbf,0x35,0x2,0xb4,0x3f,0x8c,0x2f,0x0,0x3f,0xeb,0x1,0x95,0xc0,0xa2,0x18,0x18,0xc0,0x0,0xeb,0x57,0x3e,0xe0,0x9,0x1d,0x3e,0x52,0xe3,0x21,0xc0,0x86,0xf6,0x36,0x40,0xec,0x62,0x19,0xc0,0xd7,0xc9,0x29,0xc0,0x5e,0xf5,0xb,0x40,0xf8,0x5f,0x9,0xbf,0xc1,0xf3,0xc7,0x3f,0x42,0xb0,0x46,0x40,0x86,0xc8,0xfb,0xbf,0x58,0xe2,0xb5,0x3f,0x3d,0x31,0x7f,0x40,0x6a,0x6a,0x4b,0x3f,0xb6,0xe7,0x8a,0x40,0x9a,0x0,0xb,0x40,0x3c,0xf3,0x6a,0x40,0x22,0x34,0x79,0x40,0xab,0x75,0x40,0x40,0x4c,0xb5,0xad,0x3f,0xc7,0x83,0x20,0x40,0x94,0xe5,0x43,0x40,0x7c,0x12,0xad,0x3e,0x70,0xf1,0x59,0x3f,0xa3,0x70,0xf5,0xbf,0xa8,0xf4,0x2d,0xbe,0xda,0xed,0x23,0x40,0x7c,0x56,0xc8,0xbe,0xca,0xb2,0xcd,0xbf,0x32,0x4d,0x9e,0x3f,0x50,0xe1,0x25,0xbe,0x80,0x97,0xd8,0x3e,0xd7,0x58,0x89,0xbf,0x0,0xdf,0x4a,0xbd,0xf2,0x4a,0x9a,0xbf,0x36,0x8c,0x86,0x40,0xb1,0xf7,0x58,0xc0,0x2,0xfd,0x73,0xc0,0xce,0xfb,0x78,0xbf,0x4c,0x36,0xbe,0x3e,0x2e,0x75,0x52,0x40,0xeb,0x1c,0xb1,0x3f,0xa0,0x25,0xa8,0xbd,0xfe,0x65,0x97,0xc0,0xa2,0x1e,0x17,0xc0,0x25,0xc0,0xa6,0x3f,0xb9,0xf1,0xcc,0xbf,0x18,0xf1,0x43,0xc0,0xd0,0x60,0xa1,0x3f,0x46,0x5f,0x64,0x40,0xac,0x74,0x1d,0x3f,0x15,0xaa,0x6f,0x40,0x2a,0x4,0x8a,0x40,0x90,0xd5,0xfd,0x3d,0x5a,0xfb,0x9f,0x40,0xd0,0x60,0xd3,0x3f,0x7e,0x1c,0xd3,0x3f,0xff,0x3,0xe8,0x3f,0x9f,0x22,0x94,0xc0,0xe6,0x5f,0x2,0x40,0x26,0x5e,0x86,0x40,0x0,0xc0,0x6e,0x3f,0x7c,0xf8,0x99,0x3e,0x1a,0xab,0x5a,0xbf,0xa,0x59,0x7b,0xc0,0x2c,0x5e,0x22,0x3f,0x62,0xef,0x0,0x40,0x26,0x1c,0xf4,0x3f,0xf0,0x53,0x91,0x40,0x5c,0x75,0x3f,0xc0,0x9a,0xdf,0x8c,0x40,0x6b,0x50,0x8f,0xbf,0x85,0xab,0xba,0xbf,0x1a,0xd7,0x21,0xc0,0x47,0xfb,0x55,0xc0,0x5a,0x71,0x89,0x3f,0x78,0x72,0x88,0xbf,0xe,0x33,0x6b,0x3f,0x80,0xbc,0x9b,0xc0,0x94,0x6e,0xcf,0xbf,0x29,0x64,0x24,0x40,0x41,0x91,0x1b,0xc0,0x82,0xd3,0x93,0x40,0xa,0x6e,0x54,0xc0,0xb6,0x3e,0x38,0xc0,0x76,0xd2,0x54,0x40,0xd5,0xcc,0x89,0x40,0xa6,0xaf,0xd,0x40,0x4e,0x2a,0x2a,0x40,0x38,0xd7,0x62,0xc0,0x60,0xcb,0x71,0x3f,0xdc,0x6,0xef,0xbe,0x2,0x8d,0x16,0xc0,0x38,0xf4,0x87,0x3f,0x8e,0xcc,0x1,0x40,0x52,0x5e,0x5d,0xc0,0x9a,0xff,0x1c,0xbf,0xf1,0xa7,0xa7,0x3f,0xa3,0xe3,0x9a,0x40,0xe6,0xdd,0x80,0xc0,0x4b,0x3b,0x8d,0x40,0xbc,0xcd,0xf7,0xbe,0x6e,0x62,0x8e,0x3f,0xe2,0xb,0x8a,0xc0,0xac,0xbd,0x8c,0xc0,0xaa,0xd7,0x23,0xc0,0x8,0x95,0xbc,0xbe,0x80,0x68,0x73,0x3f,0xa3,0x17,0x8f,0x40,0xc8,0xcc,0x53,0xbf,0xc6,0x95,0x5c,0x40,0x4e,0x37,0x86,0xc0,0xac,0x29,0x33,0x40,0x9b,0x4c,0x8a,0xc0,0x98,0xdc,0x97,0xc0,0x86,0xb,0x40,0x40,0x58,0xe2,0x50,0xc0,0xa8,0xdd,0x30,0xc0,0xf0,0xf9,0x3c,0xc0,0x66,0xb6,0xb0,0xbf,0x8c,0x43,0x1c,0x40,0xba,0x2e,0x20,0x40,0xe6,0xdf,0x70,0xc0,0x14,0x5e,0xce,0x3e,0xd7,0x4f,0x84,0xc0,0x76,0xd9,0x87,0xc0,0x65,0x79,0xa3,0xbf,0x50,0xce,0xdb,0xbe,0xa3,0xa8,0x1f,0x40,0x3,0xea,0xa,0x40,0xe4,0xa3,0x9f,0x3f,0x6d,0x25,0x74,0x40,0xaa,0x9a,0x12,0xbf,0x44,0x23,0xe3,0xbe,0xf7,0x9f,0x9a,0x40,0x20,0x4e,0xaf,0x3e,0x82,0xe7,0x59,0x40,0x72,0x77,0x1f,0xc0,0xe2,0x47,0x4d,0x40,0x21,0x33,0x3f,0x40,0x6e,0xb0,0x7b,0x40,0x4,0xc0,0x3d,0xc0,0x90,0xa1,0x98,0xc0,0x9a,0xe1,0x62,0x3f,0x4a,0xb3,0x22,0xbf,0xe6,0x6d,0x97,0x40,0x89,0xdc,0xd5,0xbf,0x28,0x37,0xc,0xc0,0x4e,0xc6,0x47,0x3f,0x28,0xa2,0x7f,0xc0,0x62,0x7a,0x83,0xc0,0x5a,0xb,0x4e,0x40,0xeb,0x36,0x92,0x3f,0xea,0x18,0x7c,0x3f,0x96,0x32,0x43,0xbf,0x9d,0x91,0x32,0x40,0x55,0x63,0xf1,0xbf,0x3a,0x35,0xc2,0x3f,0x21,0x8b,0xd5,0x3f,0x91,0xad,0xa2,0x3f,0x46,0x8e,0x5a,0xc0,0x2,0x30,0x94,0xc0,0xd2,0x92,0x18,0xc0,0x94,0x95,0x88,0xc0,0x4c,0xa9,0x8a,0xc0,0x7e,0xf9,0xdc,0xbf,0x28,0x78,0x7,0xbf,0xee,0xef,0x3c,0x3f,0x32,0x21,0x25,0xc0,0xfa,0xe4,0x4d,0xc0,0x1d,0x1b,0xa9,0xbf,0xb8,0xac,0x3a,0x40,0xa2,0xd3,0x27,0x40,0x98,0xf0,0x94,0x40,0x24,0xc8,0x13,0x40,0x92,0x26,0x65,0x40,0x30,0x89,0xa5,0x3d,0xee,0x37,0x45,0xc0,0xd5,0xe7,0xc4,0x3f,0x5c,0x38,0x8b,0x40,0xb4,0x4c,0xe0,0xbf,0x10,0x91,0x1f,0xbe,0x3a,0x64,0x8e,0xc0,0x6,0xf8,0x76,0x40,0xc1,0xf4,0x81,0xc0,0x98,0xbf,0xe,0xc0,0x20,0x26,0x3e,0x3d,0xd6,0xbd,0x18,0xc0,0x40,0xf6,0xaa,0x3c,0x64,0x33,0x2e,0xc0,0x57,0x12,0x9b,0x40,0xf9,0xd8,0x39,0xc0,0x60,0x67,0x4e,0x3f,0x78,0xee,0x98,0xc0,0x4c,0x30,0x35,0x3f,0xfe,0x54,0x54,0x40,0xb6,0x5f,0x48,0xc0,0x76,0x86,0x7d,0xbf,0xa8,0x8a,0x42,0xbe,0x20,0x16,0x3a,0xbe,0xfa,0x57,0x78,0x3f,0xd0,0x2b,0x81,0x40,0xa7,0x41,0xbc,0xbf,0x7c,0x31,0xd4,0x3f,0x7a,0x77,0x83,0xc0,0x5c,0xd1,0x3d,0xc0,0x16,0xa1,0x66,0xc0,0xc,0xc4,0x93,0x3f,0x88,0xd3,0x5a,0x3f,0x63,0x5f,0x9c,0x40,0x37,0xa0,0xe1,0x3f,0xbc,0x30,0xea,0xbe,0xbb,0x30,0xff,0xbf,0x20,0x78,0xf8,0x3e,0x40,0xca,0x15,0xc0,0x38,0xe4,0x49,0x3f,0x86,0x52,0x90,0xbf,0x8f,0x88,0x4e,0xc0,0x1c,0x40,0x8f,0x3e,0x98,0xb,0xf7,0x3f,0x28,0xc8,0x6b,0xbf,0xb0,0x98,0xbb,0x3d,0xba,0xa7,0x9e,0xc0,0x7c,0x76,0xda,0xbf,0xac,0x40,0x9f,0xc0,0xb0,0xe9,0x9e,0x40,0xe0,0x7e,0x88,0x40,0x61,0xae,0x8a,0xc0,0x3a,0x22,0x76,0xc0,0x83,0xaf,0x87,0xc0,0x16,0x4f,0x38,0x40,0xe3,0xfa,0x85,0x3f,0x8,0xd3,0x93,0xc0,0x82,0x3e,0xc6,0xbf,0xa2,0x5f,0x70,0x40,0x20,0xbd,0x4c,0xbd,0xd2,0x8f,0x90,0xc0,0x48,0xb,0xde,0x3f,0x95,0x11,0x9f,0x40,0xb3,0xe6,0x91,0x40,0xa4,0xc1,0xdf,0x3e,0xa1,0xea,0xaf,0xbf,0x18,0xb2,0x5,0x3f,0x32,0x15,0x6c,0x40,0x59,0x26,0xa,0x40,0xe2,0xb6,0x84,0xc0,0x7e,0x99,0x28,0x40,0xc4,0x53,0x50,0x40,0x77,0xf2,0x87,0xc0,0xe,0x1a,0x61,0xc0,0x78,0xd2,0x5a,0x40,0x1a,0x94,0x29,0x40,0x92,0xca,0x8b,0xc0,0xb6,0x70,0xb0,0x3f,0x83,0x3d,0x41,0x40,0xcb,0x9e,0x81,0x3f,0x4a,0xb0,0x2a,0x40,0x17,0xab,0xce,0x3f,0xf4,0xdf,0xb7,0x3f,0x2b,0x88,0x3a,0x40,0x20,0xa,0xda,0xbf,0xc0,0x40,0xe0,0x3c,0x6e,0xf6,0x9a,0xbf,0xae,0x18,0x68,0xbf,0x3f,0xc4,0xf6,0x3f,0x7b,0xe6,0xf7,0xbf,0x18,0xca,0x86,0xbe,0x1d,0x4f,0x88,0x40,0x40,0x3d,0xd2,0x3f,0x52,0xcd,0x9c,0x40,0xc8,0x35,0x6d,0xbe,0x3c,0x9a,0xe7,0xbf,0x0,0xba,0x8c,0x40,0x24,0x1f,0x49,0xc0,0x82,0x51,0x15,0x40,0xba,0x4c,0x87,0x40,0x2,0xe9,0x34,0xc0,0x76,0xf4,0x80,0xbf,0x8e,0x74,0x90,0x40,0x6c,0xc4,0xce,0xbe,0x8b,0x5c,0x8c,0xc0,0xfd,0x73,0x31,0xc0,0x8b,0xa5,0x96,0xc0,0xe6,0x10,0x79,0xbf,0xee,0x0,0x31,0x40,0x3a,0xfc,0x2a,0xbf,0xf2,0xe6,0x6e,0xbf,0xcc,0x2f,0xd1,0x3e,0x44,0x88,0xce,0xbe,0xaa,0x62,0x63,0xbf,0xbb,0xc4,0xca,0xbf,0xc6,0xfa,0x1d,0x3f,0x8c,0x9b,0x9b,0xbe,0x5a,0x84,0x37,0xbf,0x89,0xf7,0xa1,0xbf,0x9d,0xbb,0xa6,0x3f,0x7d,0xb,0xf4,0xbf,0x38,0x6b,0x93,0xbe,0xb0,0xef,0x43,0xbf,0xa3,0x6b,0x61,0x40,0xa8,0x23,0x6,0x40,0xee,0x15,0x6,0x40,0x80,0x1f,0xfb,0xbc,0x0,0xbe,0x4a,0xc0,0x34,0x61,0xab,0x3e,0x78,0x5e,0x7b,0xc0,0xd0,0xcc,0xdf,0x3d,0xb5,0x1,0x9d,0x40,0x1e,0x6,0x38,0xbf,0xf8,0xd3,0x98,0x40,0x92,0x48,0x47,0xc0,0x81,0x6e,0x7b,0x40,0xc9,0x4a,0xf0,0x3f,0x4,0x69,0xb,0xc0,0x41,0xea,0x9d,0xc0,0x94,0xf2,0xf,0xc0,0xc0,0xa5,0x16,0x40,0xcb,0x81,0x9a,0x40,0xa6,0xaf,0x80,0xc0,0xfb,0xe7,0xf,0xc0,0xab,0xac,0xe3,0x3f,0xe0,0x57,0x9f,0xbf,0x2b,0x60,0x88,0xc0,0x94,0x4d,0xd7,0xbf,0x48,0xe6,0xcb,0x3f,0x38,0xa6,0x9b,0xc0,0x3b,0xcc,0xed,0xbf,0x4,0xfb,0x3b,0x40,0xa7,0x79,0x18,0x40,0x7e,0xc8,0x8,0xc0,0x41,0xe3,0x94,0x40,0x6c,0xde,0x4d,0x3f,0x49,0x18,0x19,0x40,0x14,0xaf,0xdc,0xbe,0xad,0x2c,0xf3,0xbf,0xff,0xa7,0x8a,0x40,0xf8,0xab,0x95,0xc0,0x61,0x54,0xe0,0x3f,0xa9,0x79,0xc,0xc0,0x78,0x6c,0xca,0xbf,0xbe,0x47,0x74,0x40,0xac,0xd5,0x91,0xc0,0x62,0xfb,0x2b,0xbf,0xd2,0x3f,0xd9,0xbf,0x7e,0x8f,0x6a,0x40,0x44,0x6e,0x72,0xc0,0xce,0xea,0x7a,0xbf,0xdc,0x55,0xff,0xbf,0x78,0x27,0x6e,0x40,0x99,0x51,0x7b,0x40,0x80,0x60,0xd3,0x3d,0xd6,0x7b,0x0,0x40,0xaf,0xd9,0x9f,0x40,0xe0,0x70,0x89,0xc0,0xd0,0xf,0xc0,0x3d,0x16,0xf6,0x91,0x40,0x83,0x52,0xa7,0xbf,0x54,0xee,0x6c,0xc0,0x62,0xb4,0x8d,0x40,0xf0,0x95,0x97,0x40,0xd2,0xbd,0x3c,0x40,0x85,0x89,0x70,0x40,0x4c,0x8c,0xdb,0xbe,0xfd,0x19,0x5e,0xc0,0xd4,0x7e,0x8d,0xc0,0xe2,0xf5,0x4,0x40,0xd,0x44,0xb3,0xbf,0xe6,0x71,0x9c,0x40,0x8,0xe1,0xe,0x3f,0xec,0x8b,0x4f,0x40,0xa8,0x2,0xa5,0x3e,0xa5,0x12,0x93,0xbf,0x76,0x1a,0xf6,0xbf,0x43,0x9d,0x88,0xc0,0x7e,0x8d,0x9b,0xc0,0x79,0x8,0x83,0xbf,0xbe,0xf8,0x8a,0xc0,0x10,0xe1,0x9f,0xc0,0x54,0x81,0x1f,0x40,0x37,0xb4,0xc,0xc0,0x0,0xd8,0xb8,0x3b,0x87,0x29,0xa4,0xbf,0x56,0xf2,0x70,0xc0,0x98,0x8f,0xc3,0xbf,0xac,0x80,0x4d,0xc0,0xc2,0xbf,0x66,0x3f,0xd0,0x49,0x96,0x40,0x9c,0x11,0x98,0xbf,0x60,0x70,0x36,0x3f,0xf4,0xa1,0x36,0x40,0x5a,0xd1,0xb,0x40,0x14,0xca,0xda,0x3e,0xc2,0x89,0xdb,0xbf,0xb4,0x82,0x7a,0xbf,0xd0,0x1f,0x30,0xbf,0xde,0xbc,0x9f,0x40,0xf0,0xb9,0x34,0x3f,0xea,0x73,0x51,0x40,0x68,0x74,0x36,0x40,0x7,0xd3,0x83,0x40,0xd2,0xe1,0x5c,0x3f,0xc0,0x24,0xb1,0x3d,0x4,0x1a,0xb9,0xbf,0x26,0x85,0x4c,0x40,0xc4,0x6a,0x6e,0x40,0x22,0xaf,0x78,0x40,0x9,0xf,0x8e,0xc0,0x38,0xda,0xb5,0x3e,0xa7,0x71,0x43,0xc0,0xda,0xd4,0x52,0xc0,0xc4,0xa5,0x8b,0xc0,0xee,0x62,0xf4,0xbf,0xde,0x6,0x8f,0x40,0xb4,0x2b,0x33,0x40,0x4,0x2f,0x5d,0xc0,0x41,0x8a,0x84,0xbf,0x4a,0x51,0xc,0x40,0xf6,0xbb,0x3b,0x40,0xbf,0xbc,0x67,0x40,0xcc,0x50,0x28,0xc0,0xf2,0x22,0x1,0xc0,0x3,0x2c,0x2d,0x40,0x89,0xe0,0x8b,0x3f,0x48,0xf,0x25,0xc0,0x14,0x5d,0x72,0xc0,0xb4,0xd9,0x94,0xbe,0xe1,0xf4,0x87,0x40,0xae,0x67,0xfd,0xbf,0x50,0xda,0x31,0xbf,0xdb,0x13,0xf2,0x3f,0x4a,0x86,0x85,0xc0,0xcc,0x7a,0x1,0xc0,0xce,0x85,0x35,0x3f,0x9,0xf,0x12,0xc0,0x62,0x41,0x7a,0x40,0x70,0x43,0x35,0xbf,0x55,0xa0,0x7,0x40,0xa2,0xd4,0x6c,0xbf,0x78,0xbc,0x13,0xbf,0xdd,0x8,0x92,0x40,0xbe,0xc9,0x7e,0xc0,0xd2,0xa5,0x5e,0xc0,0xa,0xe9,0xed,0xbf,0x4e,0x63,0x73,0x3f,0xcc,0xdb,0xbb,0xbf,0xf5,0x22,0xc9,0x3f,0xd3,0xa2,0x13,0xc0,0x89,0x74,0xed,0x3f,0x10,0x3b,0x95,0xc0,0x70,0xf0,0x41,0x3e,0x67,0xb2,0x29,0x40,0x76,0x87,0x5e,0x3f,0x32,0xdf,0xc,0xc0,0x15,0xab,0xee,0xbf,0xb7,0x5d,0x8b,0x3f,0xb4,0xd4,0x5c,0xc0,0xa3,0x81,0x78,0xc0,0x70,0x8d,0x84,0xbd,0x90,0x87,0x88,0xc0,0x76,0x59,0x8f,0x3f,0xcf,0x75,0x53,0xc0,0xa6,0xc8,0x30,0x40,0x6a,0xaa,0x3a,0x40,0xb5,0x33,0x81,0x40,0x88,0x9a,0x4b,0xc0,0x28,0x1,0x6f,0x3e,0x32,0x7f,0x94,0x40,0x91,0xfb,0x9f,0xbf,0x2f,0x78,0xe4,0x3f,0xd5,0x90,0x2d,0x40,0x38,0xc6,0x30,0x3e,0x91,0x7e,0xe0,0xbf,0x3f,0x1e,0xa7,0x3f,0xa0,0xa6,0xae,0x3f,0x84,0x83,0x77,0xc0,0x99,0x77,0xe9,0xbf,0xf5,0xb9,0x86,0xc0,0xe,0x43,0x87,0xc0,0x30,0x77,0x6b,0x40,0x1,0xf5,0x60,0x40,0xe0,0x10,0x5a,0xc0,0x33,0xaa,0x9a,0xc0,0x8c,0xef,0x81,0xc0,0x76,0xdd,0x17,0x40,0x5e,0x4e,0x85,0x40,0x20,0xc0,0x3f,0xbf,0x1,0x86,0xdc,0xbf,0x2d,0xcf,0x80,0xc0,0x80,0xd2,0x3b,0xbe,0xec,0x84,0x31,0x40,0xb8,0x5a,0x1a,0x40,0x72,0xda,0x2,0xc0,0x70,0x49,0x2,0xc0,0xb8,0xee,0x64,0x3f,0xe1,0x19,0x1b,0x40,0xaa,0xff,0x82,0x40,0x55,0x64,0x87,0x3f,0x16,0xc0,0x47,0x40,0x3c,0x71,0x82,0x40,0xf0,0x7e,0xe5,0xbd,0x0,0x4d,0x8f,0xbf,0xd3,0x62,0x3f,0x40,0x78,0xc8,0xff,0x3e,0x3,0x21,0x99,0x40,0x74,0x21,0x2d,0x40,0x9a,0x5b,0x91,0x3f,0x4c,0x35,0x93,0xc0,0x24,0xaf,0x44,0x40,0xc1,0xd1,0xdf,0xbf,0x1a,0xfb,0x64,0xbf,0x11,0x37,0xf,0x40,0xb7,0xa,0xb1,0x3f,0xf2,0x22,0xae,0xbf,0x0,0xf7,0x8f,0xbe,0xc6,0x5d,0x74,0xc0,0xc4,0x55,0x6,0xc0,0x2c,0xa1,0xa0,0xbf,0x40,0x33,0xff,0x3c,0x56,0x3a,0xa1,0xbf,0xe5,0xf5,0x30,0x40,0x60,0x15,0x85,0xbe,0xe8,0xaa,0x48,0xc0,0x92,0x9f,0xaf,0x3f,0x6c,0xe3,0xd2,0xbf,0xe8,0x99,0x64,0x40,0x60,0xfe,0x11,0xbe,0xd2,0x8b,0x8a,0x40,0x6f,0xa6,0x8a,0x40,0xf,0xca,0x9d,0x40,0x7a,0x3d,0x9,0x3f,0x36,0x58,0x73,0x40,0x0,0x91,0x75,0xbd,0xa5,0xb6,0xd0,0x3f,0xca,0x9c,0x15,0xc0,0xc8,0x6f,0x7e,0xc0,0x12,0x9d,0x75,0xc0,0x24,0x3a,0x98,0xc0,0xe8,0xdf,0x91,0xbf,0x64,0x90,0x89,0xc0,0xd6,0xaf,0x78,0x40,0x25,0xab,0x85,0xc0,0xca,0x68,0x74,0x40,0x77,0x2,0x8b,0x3f,0x7c,0x42,0x66,0xc0,0x20,0x6d,0x88,0x40,0x2d,0x8f,0xd4,0x3f,0xc,0xad,0xcd,0xbe,0x34,0x71,0x7d,0x40,0xe5,0x7e,0x86,0xc0,0x6,0x72,0x66,0x40,0xc,0xb9,0xdf,0xbe,0x8,0x55,0x13,0x3e,0x54,0xee,0xe9,0x3f,0xb5,0x12,0x3,0xc0,0x50,0x91,0x87,0xbd,0x12,0xae,0x66,0x40,0x49,0x2,0xff,0x3f,0xe8,0xab,0x1a,0x40,0x94,0xac,0x88,0x40,0x6e,0x95,0x4e,0xc0,0xee,0x3,0x6a,0xbf,0xb6,0x81,0x8b,0x40,0x2d,0x85,0xe3,0xbf,0x90,0x36,0xb6,0x3f,0xdb,0xa8,0xfd,0x3f,0xf0,0x2,0x91,0xc0,0x50,0x3c,0x87,0x3d,0x91,0xd6,0x93,0x40,0xbe,0x4,0x58,0xbf,0xba,0x9b,0x9c,0xc0,0xd,0xba,0x91,0xc0,0xf6,0xaf,0x42,0x3f,0x3c,0x20,0xcb,0xbf,0x64,0x32,0x55,0xc0,0x74,0xf7,0x81,0x40,0xfe,0xcc,0x34,0xc0,0x25,0xc1,0x66,0xc0,0xc,0x58,0x59,0x40,0x63,0xfe,0x72,0x40,0xad,0x3a,0xdb,0x3f,0xca,0xcd,0x9f,0x40,0x78,0xba,0x1,0x3e,0x4b,0x14,0x70,0x40,0x86,0xc7,0x3d,0xc0,0x5b,0x4e,0x82,0xc0,0x64,0x25,0xf,0x3f,0x8a,0xca,0x54,0xc0,0x78,0x60,0x10,0xbe,0xda,0x86,0x0,0xbf,0xe0,0xfa,0x44,0x3f,0x62,0x0,0x9d,0xbf,0x88,0xb6,0xb6,0xbe,0xe6,0x45,0x91,0xc0,0xe8,0xe7,0x6,0xc0,0x4c,0xf6,0x12,0x40,0x62,0x16,0x8b,0x40,0x74,0x7c,0x8c,0x40,0x7c,0x27,0x72,0x3f,0x98,0xf1,0x77,0xbf,0x92,0xf8,0x74,0x40,0x30,0xa2,0x66,0x3e,0x70,0x54,0xbd,0xbd,0xa0,0x36,0x3a,0x3e,0x32,0x45,0x46,0xc0,0x98,0xc4,0xbb,0xbf,0xf4,0x49,0x90,0xc0,0x74,0xe6,0xef,0xbe,0x93,0x73,0x9a,0xc0,0x44,0xc,0x43,0x3f,0x0,0xb4,0xc,0xbc,0x4f,0x87,0xe2,0x3f,0x74,0xa7,0x47,0xc0,0x60,0x5d,0x8,0xbd,0xf8,0x5e,0xb2,0xbf,0x4a,0xf,0x3f,0xc0,0x4,0x8b,0x79,0x40,0x7e,0xd0,0x9d,0xc0,0xda,0x7e,0x62,0x40,0x8c,0x70,0x9e,0xbf,0xf6,0x17,0x33,0xc0,0xb7,0x5b,0x9b,0xc0,0x6e,0xc7,0x97,0xc0,0xdf,0xc0,0xdc,0xbf,0x24,0x76,0x4e,0x40,0x3e,0xdc,0x7d,0x3f,0x32,0xbd,0x69,0xc0,0x4e,0xf5,0x86,0x40,0xec,0x15,0x83,0x40,0x8,0xfd,0x4,0x40,0xc7,0xa0,0x9c,0x40,0x0,0x25,0x55,0x40,0x40,0xaf,0x35,0x3f,0xcc,0x2a,0x5d,0x40,0xbc,0x55,0x36,0xc0,0xba,0xd1,0x25,0xbf,0x14,0xca,0x26,0xc0,0x6a,0x4a,0x61,0xbf,0xf0,0x41,0x7d,0xc0,0x9c,0x89,0x59,0x40,0x6e,0xd5,0xfc,0xbf,0x77,0x27,0xc5,0x3f,0xb0,0xbc,0x92,0x40,0xe2,0x1c,0xd8,0x3f,0x94,0x66,0x87,0x3e,0xa,0xea,0x9e,0x40,0x58,0x4f,0x9e,0xc0,0x8e,0x30,0x94,0x40,0x6,0xb7,0x8a,0xc0,0xe6,0x98,0x9e,0x40,0x28,0x89,0xcb,0x3e,0xf4,0x64,0x44,0xc0,0x65,0x97,0xda,0xbf,0x38,0x50,0x24,0xc0,0xef,0xe1,0x3f,0x40,0x8c,0x73,0x89,0x40,0xb7,0x81,0x41,0x40,0xc7,0xfd,0x69,0x40,0xb2,0x42,0x9a,0x40,0x34,0x3,0x8d,0xc0,0xc2,0x89,0x6,0x40,0x3c,0x8d,0xd1,0x3e,0x9,0xe0,0x40,0x40,0xf0,0x9b,0xb4,0x3f,0xf8,0xc3,0xe,0x3e,0x3f,0xf0,0x54,0x40,0x77,0x6b,0x1,0xc0,0x6f,0xce,0x73,0xc0,0x69,0x5b,0x65,0xc0,0xb0,0xa7,0x65,0x40,0x10,0xae,0xd7,0x3d,0x4c,0x10,0x82,0xc0,0x79,0x4e,0xdd,0x3f,0x18,0x55,0x26,0xbe,0x78,0xd3,0x3d,0xc0,0x39,0x31,0x8c,0x40,0x72,0xd8,0x39,0x40,0x7e,0x7a,0x87,0x40,0x7a,0x73,0x50,0xbf,0xb,0xd4,0x45,0xc0,0x2c,0x59,0x87,0xc0,0x62,0x99,0x15,0x3f,0xf9,0x43,0x60,0xc0,0x70,0xe4,0x3e,0x40,0x7,0xc,0x91,0xc0,0x26,0xc1,0x63,0xc0,0xe0,0xe7,0x39,0x3f,0x75,0x9d,0x9c,0x3f,0x4a,0x99,0x28,0xbf,0x57,0x41,0x85,0xbf,0xc0,0x38,0x22,0xc0,0x92,0x1d,0xb9,0xbf,0x76,0x6,0x26,0x3f,0xdb,0x9d,0x8f,0xc0,0x80,0xe2,0x5d,0xbf,0x8e,0x4c,0x4a,0xbf,0xc0,0x86,0xe0,0x3d,0x70,0xd5,0x6d,0x40,0x8c,0x21,0x86,0xc0,0xeb,0x18,0xdd,0x3f,0x28,0x44,0xed,0x3f,0xce,0xa7,0xb1,0x3f,0x90,0x67,0xb7,0xbf,0x66,0xdc,0x39,0x40,0xee,0x72,0x62,0xc0,0x96,0xef,0x0,0xc0,0xb8,0x72,0x9,0xbe,0xe,0x44,0x3c,0xbf,0x8,0x40,0x9e,0xc0,0x88,0xb2,0x2b,0x40,0x2a,0x10,0x3d,0x40,0x60,0xf,0x8e,0xc0,0x80,0x8c,0x1d,0x3c,0x6a,0xab,0x86,0xc0,0x24,0xac,0x68,0xbf,0xa8,0x23,0x18,0x3f,0x86,0x2a,0x8b,0x40,0xb6,0xf,0x61,0x40,0x14,0xf8,0x24,0x40,0xae,0x8f,0x28,0x3f,0x86,0xa3,0x93,0xc0,0xc5,0x75,0xce,0xbf,0xa6,0xa2,0x8e,0x40,0xf4,0xd3,0xd2,0x3e,0x35,0x3a,0x90,0xbf,0xdb,0xc9,0xdc,0xbf,0x1d,0x7f,0x1a,0x40,0x9c,0x4e,0x49,0x40,0x9c,0x60,0xdf,0xbe,0x36,0x72,0xbb,0x3f,0xef,0xa6,0x6b,0x40,0xca,0x3e,0x56,0x40,0x60,0xfb,0x25,0x40,0xa4,0x83,0x5a,0x40,0x3c,0xe9,0xe8,0x3f,0x8a,0x66,0xaf,0x3f,0x17,0x73,0x9d,0xc0,0x94,0x65,0x7b,0xbf,0x32,0xf5,0xbe,0xbf,0x0,0x7f,0x8f,0x3f,0xa1,0x97,0xb7,0xbf,0xb4,0xf6,0x91,0xc0,0x2c,0xe2,0x85,0x40,0xd0,0xb0,0xa,0xc0,0x49,0xf0,0x97,0xc0,0xcc,0xf,0x5,0xc0,0x85,0x17,0x86,0x3f,0x6a,0x89,0xd9,0xbf,0x8b,0xd0,0x9f,0xc0,0xa1,0xf2,0xd4,0x3f,0x6f,0xb7,0xf6,0x3f,0xab,0xf1,0x94,0x40,0x1,0x24,0x9e,0xc0,0x82,0x85,0x72,0xbf,0x41,0xe3,0xf3,0xbf,0x45,0xbe,0xdd,0xbf,0xd0,0x47,0xdd,0x3d,0xfd,0x2c,0x95,0x40,0x56,0xd3,0x5,0xbf,0xa4,0xfa,0x88,0x40,0x96,0x3a,0x31,0x3f,0x19,0xae,0x26,0xc0,0xc,0x52,0xf6,0xbe,0xc6,0xb0,0x24,0x40,0xe,0x36,0x3d,0x40,0x5,0x58,0xd4,0xbf,0x70,0x93,0x1c,0xbf,0x9e,0xc8,0x85,0xc0,0x67,0xc7,0x4b,0xc0,0xd8,0x1e,0xa9,0xbf,0x5a,0xb1,0x3e,0x40,0xe0,0x8,0x9e,0x3e,0xfb,0x14,0x29,0x40,0xc7,0x85,0x85,0xc0,0x9c,0xf4,0x82,0x3f,0x7d,0x4d,0x81,0xc0,0xaa,0x2b,0xbb,0xbf,0xe0,0x9b,0x82,0x40,0xe8,0xa5,0x55,0x3e,0x46,0x97,0x6f,0xc0,0x3a,0x91,0x9d,0xc0,0xa,0x75,0xc1,0xbf,0x53,0xf7,0xfa,0xbf,0xb6,0x89,0x94,0xc0,0x6e,0x1c,0x2f,0x40,0xf0,0x32,0xcd,0x3d,0x26,0x7e,0x44,0xbf,0xd6,0x29,0x77,0x40,0x2c,0x91,0x97,0xc0,0x3,0x4e,0xcc,0x3f,0xa0,0xfb,0x6c,0x40,0x65,0x1f,0x8a,0x3f,0x98,0x98,0x2b,0x40,0x38,0x25,0xe3,0xbf,0x47,0xa8,0x96,0xc0,0xb,0x7c,0x95,0x40,0xde,0xd1,0x9e,0xc0,0xf4,0x8a,0x2,0xc0,0x98,0xff,0x90,0x40,0x10,0x2b,0x19,0xc0,0x3c,0x25,0x7d,0xbf,0xa2,0x1d,0x24,0xc0,0x2d,0x8c,0x82,0x3f,0x33,0x77,0xe6,0xbf,0x50,0xed,0xee,0x3f,0x2c,0x4,0x9c,0x40,0xd4,0x60,0x70,0xc0,0xbc,0x7d,0x51,0x40,0xdb,0x5,0xa1,0xbf,0x54,0x76,0x9f,0xc0,0x6c,0x1e,0xb,0x40,0x5f,0xb,0x56,0xc0,0xe8,0x48,0x3c,0x40,0x16,0xec,0x5e,0xbf,0x30,0x31,0x41,0xc0,0x46,0x52,0x8b,0xc0,0x66,0xb0,0x89,0x3f,0x61,0x31,0x9a,0xc0,0x18,0xe0,0x2f,0x40,0x17,0xa8,0xf4,0x3f,0x8,0xc4,0x87,0xc0,0x8a,0x4b,0x27,0x40,0x4c,0x3b,0x7c,0xc0,0x24,0xeb,0x1,0x3f,0xe7,0xa0,0xb8,0xbf,0x26,0xfb,0x55,0x40,0x51,0x49,0x87,0xc0,0x43,0x6b,0xc9,0xbf,0x72,0x4,0xe3,0xbf,0xdc,0x9b,0xdc,0xbe,0x1e,0xb0,0x1,0x3f,0x92,0x2c,0x48,0xc0,0xe,0x4d,0x2e,0x3f,0xe8,0x15,0x68,0x3e,0x12,0x69,0x22,0xc0,0x75,0xe8,0x97,0x3f,0xa6,0x10,0x6b,0x40,0x8d,0xb9,0x24,0x40,0xf2,0x52,0xce,0x3f,0xac,0xf0,0xc,0xc0,0x1f,0xa8,0x67,0xc0,0xd2,0x40,0x3f,0x40,0xc0,0x74,0x45,0x3f,0xf0,0xc0,0xc6,0x3e,0x4a,0x5,0x23,0x40,0x18,0x66,0x13,0xc0,0x65,0xdc,0x9e,0xc0,0x94,0xb0,0x5b,0xc0,0xe,0xd7,0x95,0xc0,0xe2,0x2a,0x47,0x40,0xcc,0xd4,0x42,0x40,0x8,0x99,0x12,0xc0,0xa1,0x4c,0x8f,0xbf,0x7d,0xbb,0x85,0xbf,0x8e,0x26,0x2,0xc0,0xc2,0x81,0x5b,0xc0,0xb9,0x81,0xc9,0x3f,0x32,0xb8,0xe2,0xbf,0x64,0x6d,0x50,0xc0,0xb4,0xf1,0x6f,0x3f,0xd6,0x7d,0x0,0xc0,0x54,0x17,0x7d,0x3f,0x90,0xb7,0x41,0xbe,0xfd,0x60,0xce,0x3f,0xcd,0xb9,0x52,0x40,0x3c,0x9e,0x8c,0xc0,0x54,0xf7,0x17,0xc0,0x98,0xdf,0x9c,0x40,0x80,0x73,0x63,0x3e,0xa6,0x5e,0x52,0xbf,0x62,0xcd,0x7c,0x40,0xa2,0x5d,0x8b,0x40,0x73,0xc9,0xe0,0x3f,0x7e,0x1e,0x7c,0xc0,0xa4,0x9d,0x98,0x40,0x88,0xd8,0x90,0xc0,0x28,0xd7,0x9e,0xc0,0x3c,0xde,0x41,0x3f,0x74,0x7f,0xbb,0xbf,0x8d,0xd8,0x94,0xc0,0xa8,0xba,0x78,0x40,0xb6,0x2b,0x1b,0x3f,0xb8,0xb9,0x2b,0xc0,0xf5,0x3d,0xe0,0x3f,0x7c,0xfb,0x68,0x40,0xaa,0xaf,0x7,0xbf,0x2,0x28,0x6c,0x40,0xfa,0x34,0x46,0x40,0xae,0x5e,0x59,0x3f,0xb2,0xcd,0x29,0xc0,0x5e,0xcd,0x74,0xc0,0xe0,0x31,0x93,0xbd,0x8,0xb6,0xaa,0xbf,0xd6,0x19,0x90,0xc0,0x24,0xcc,0x95,0xc0,0x6,0x1f,0x4b,0xc0,0x20,0x9d,0xc4,0x3d,0x4,0xae,0x10,0xc0,0xee,0x6d,0x86,0xc0,0x96,0xe6,0x5c,0xbf,0x52,0x9,0xd,0xc0,0xb8,0x66,0x9a,0xbf,0x80,0x90,0x41,0x40,0xe8,0x92,0x39,0x40,0x25,0xb9,0x50,0x40,0x52,0xa1,0x9f,0x40,0x84,0xa7,0xb0,0x3e,0xf6,0x25,0x2a,0xc0,0x88,0xa1,0x5,0xbf,0x88,0x87,0x4c,0x3f,0xfd,0x54,0xe4,0xbf,0xc6,0x18,0x7f,0x40,0x5a,0x19,0x28,0x40,0x71,0x19,0x68,0xc0,0xb8,0x86,0xf2,0x3e,0xb0,0x80,0xf1,0x3e,0x7b,0x90,0xc6,0x3f,0x80,0x5b,0x55,0xc0,0xc6,0x64,0x9d,0x40,0xfa,0x77,0xdd,0xbf,0x61,0xda,0xf0,0x3f,0xe0,0x58,0x1e,0xc0,0x6c,0xaa,0xd9,0x3f,0x1c,0xe2,0xdd,0xbf,0x26,0x3f,0x29,0xc0,0x88,0x1f,0x8f,0xc0,0x74,0x5e,0xe1,0x3f,0xb4,0x8c,0x2f,0x3f,0x7a,0x92,0xc5,0x3f,0xe8,0xb4,0x2f,0xc0,0x7d,0x3b,0x88,0x3f,0x95,0xdd,0x2,0xc0,0x5b,0x1,0xb2,0x3f,0x7e,0x62,0x95,0x40,0x96,0x11,0x86,0xc0,0xf1,0x77,0xf5,0x3f,0xda,0x62,0x4e,0xc0,0x38,0x12,0xc4,0x3f,0x92,0xa0,0x8b,0xbf,0x25,0x9e,0x2,0x40,0xc6,0xd3,0x6e,0xc0,0x92,0x1,0x61,0x40,0xa4,0xc1,0x34,0x40,0x77,0x1,0x5c,0xc0,0x5e,0xd8,0x61,0xc0,0x74,0xdc,0x2e,0x40,0xfa,0x25,0x7b,0xc0,0x6b,0xf4,0xf9,0x3f,0xec,0x26,0x1e,0xc0,0x38,0x5f,0x8f,0xc0,0x98,0x8c,0xc6,0x3f,0x7a,0x6f,0x6,0xc0,0xd0,0x2b,0x53,0xc0,0x86,0x79,0xbe,0x3f,0xdf,0xf0,0x13,0x40,0x2e,0x51,0x81,0x40,0xec,0x75,0x9c,0x40,0x37,0x81,0xdd,0x3f,0x2,0xef,0xb8,0xbf,0xe8,0x95,0x5b,0xbf,0x38,0x92,0x71,0x40,0x17,0xc2,0x78,0xc0,0x2e,0xe4,0x65,0x40,0xb0,0xa4,0x13,0x40,0x15,0xe0,0xf5,0x3f,0xcd,0x2,0xc6,0x3f,0x5e,0xd8,0x84,0xc0,0xc8,0xe6,0xff,0x3f,0x18,0xa7,0x9a,0xbe,0xf0,0xa2,0x85,0x3d,0x25,0xa0,0x14,0xc0,0x1c,0x4e,0x67,0x40,0x4a,0xcb,0x55,0xbf,0x60,0x62,0x26,0x3d,0x16,0xaa,0x88,0xc0,0x53,0xbb,0x75,0x40,0x99,0xb0,0x93,0xc0,0x90,0x10,0x46,0x40,0xf0,0x49,0xc,0x40,0x3a,0xe4,0x42,0x3f,0x2,0xe9,0x9a,0xc0,0xc6,0x89,0x13,0xc0,0x10,0xd2,0xa9,0xbe,0xad,0x5,0x6d,0xc0,0x70,0x1a,0xcf,0xbf,0x1b,0xc7,0x90,0xbf,0x6d,0xd9,0xc7,0xbf,0x4b,0xa3,0x5e,0x40,0x72,0x4a,0x92,0x40,0x14,0x4d,0xf,0xc0,0x3f,0x3e,0x25,0x40,0x3c,0xbe,0xa0,0x3e,0x57,0x40,0x6a,0x40,0x1f,0x8b,0x8b,0xc0,0xdd,0x88,0x1e,0xc0,0xf9,0x35,0x80,0xbf,0x20,0xaa,0x99,0x40,0x4c,0x45,0x7d,0x40,0xd3,0x33,0xad,0xbf,0x28,0x41,0x45,0xc0,0xbd,0xbb,0x1f,0xc0,0x40,0x6d,0x1d,0x3f,0xa2,0xd1,0x90,0x3f,0x7f,0xe3,0x21,0xc0,0x3c,0x55,0xb4,0x3f,0xf8,0xff,0x13,0xbf,0x4e,0x29,0x6e,0x40,0x9f,0xf8,0xf3,0xbf,0xbd,0xb1,0x33,0xc0,0xbe,0xb8,0x44,0x3f,0x44,0xf,0x84,0x3e,0xe0,0xb3,0x34,0x40,0xd4,0x32,0x9c,0x40,0x4c,0xdf,0x0,0xc0,0x25,0xc9,0x94,0x40,0xaf,0x50,0x16,0x40,0x2b,0x37,0x88,0x40,0x25,0x33,0xc5,0x3f,0xfe,0x5f,0x3f,0xbf,0x5c,0xa8,0x2f,0x3f,0xb8,0x8e,0x6,0x3e,0x80,0x56,0x6c,0xc0,0xe3,0xa,0xd5,0xbf,0x77,0x5e,0x72,0x40,0x4c,0xd1,0x7a,0x3f,0x46,0xf,0xaa,0x3f,0xd0,0xc3,0xf7,0x3e,0xd8,0x15,0x8a,0x3f,0x54,0xc0,0x5e,0xc0,0x9c,0xd,0x71,0xbf,0xb1,0x6e,0x8a,0xbf,0xec,0xbf,0xda,0xbf,0x3e,0x42,0x4a,0xc0,0xa8,0x6d,0x5,0xbf,0xc0,0x9f,0xf4,0xbd,0x45,0x4d,0xd1,0xbf,0xaa,0x6d,0x9c,0xbf,0x67,0x88,0xc4,0xbf,0x92,0x23,0x4c,0xbf,0x6a,0x77,0x7f,0xc0,0xb0,0x69,0x82,0x40,0xa2,0xe9,0x2a,0xc0,0xd2,0xac,0x26,0x40,0x7a,0xd5,0x8c,0xc0,0x38,0x23,0x6a,0xbe,0x8c,0x4f,0xec,0xbe,0x94,0x13,0x88,0xc0,0x58,0xf0,0x84,0x3e,0x38,0xda,0x6e,0xc0,0x6a,0x62,0xe2,0x3f,0xb1,0x3f,0x48,0x40,0x9e,0xeb,0x45,0xbf,0xa,0x21,0x54,0x3f,0x14,0x2a,0x20,0xc0,0xd0,0xab,0xe7,0x3f,0x6f,0xe,0x97,0xc0,0x75,0x5f,0x9f,0x40,0xf0,0x33,0x90,0xbe,0xa6,0xbb,0x84,0x3f,0x21,0x8e,0x87,0x40,0xe8,0x86,0x84,0xc0,0x68,0xaf,0x26,0xc0,0x46,0x9c,0x65,0x3f,0x4a,0xa5,0x9f,0xc0,0xe9,0x93,0x91,0x3f,0x48,0x9c,0xd9,0xbe,0x1a,0x15,0x96,0xc0,0xac,0x45,0x9f,0xbf,0x92,0x2f,0x6a,0xc0,0x3c,0x4e,0xf7,0x3e,0xba,0xce,0x6b,0x40,0xac,0x4c,0x98,0x40,0x55,0x9b,0x95,0xc0,0xad,0x36,0xe4,0x3f,0x6b,0x4d,0x76,0xc0,0x7e,0x7a,0xe3,0x3f,0x6a,0x24,0x30,0x40,0xca,0x6c,0x98,0xc0,0x42,0xf9,0x66,0xc0,0xe4,0x77,0x8f,0xc0,0x2c,0x6,0xf0,0xbe,0xa8,0x8a,0xea,0x3f,0x42,0xbb,0x6a,0xc0,0xb4,0x90,0xa6,0xbe,0x5a,0xcb,0xde,0xbf,0x1e,0x28,0x91,0x40,0x33,0xb2,0x92,0xc0,0xd6,0x9c,0x31,0xc0,0x60,0xda,0x3f,0xbd,0xf1,0x5f,0x79,0xc0,0x94,0x51,0x76,0x40,0x4a,0xff,0x92,0xc0,0x6b,0x7a,0xce,0xbf,0xca,0xd0,0x5,0xc0,0x60,0xac,0x3b,0xbd,0x4f,0x9,0x18,0xc0,0x42,0xbb,0x65,0x40,0xb3,0xbd,0x89,0xc0,0x0,0xca,0x28,0xc0,0x6f,0x76,0x12,0xc0,0x8d,0xec,0x98,0xc0,0x7e,0xb2,0x9e,0xc0,0xe,0xd3,0xe1,0x3f,0x52,0xb1,0x96,0x40,0xfc,0xb2,0x43,0xbf,0xd6,0x4e,0xf8,0xbf,0xec,0xe3,0xb,0x40,0x3b,0x8f,0x3c,0x40,0xf7,0x97,0x8f,0xc0,0xa3,0xc8,0x18,0xc0,0x6,0x3d,0x87,0x40,0x6c,0x6e,0xe,0x40,0x8d,0x89,0x94,0xc0,0x10,0x71,0xbf,0x3d,0x2,0x53,0x72,0xc0,0xc1,0x87,0x77,0xc0,0xf8,0xef,0x1e,0xc0,0xc,0xce,0x9e,0x40,0x83,0x82,0x38,0xc0,0x88,0xf3,0x5b,0x40,0xa3,0x33,0x91,0xc0,0x9c,0x1c,0xb0,0xbe,0x5e,0xb2,0x90,0x40,0x3e,0xb4,0x8f,0xbf,0xd6,0x92,0xdc,0xbf,0x8e,0x78,0xd,0xc0,0xe4,0x47,0x67,0xc0,0x89,0x58,0xcd,0x3f,0x17,0x45,0x69,0xc0,0x6b,0x87,0x4b,0xc0,0xfc,0xfc,0x8a,0x40,0x25,0x1e,0x6e,0x40,0x5e,0x52,0x27,0xc0,0x0,0x2c,0xd8,0x3d,0xa9,0xf5,0xab,0xbf,0xee,0x9c,0x73,0x40,0xb2,0xa5,0x8f,0xc0,0xac,0xc0,0x8f,0xc0,0x32,0xa2,0x1c,0x40,0x78,0x1,0x74,0x3e,0x2b,0x37,0xbb,0xbf,0x84,0xe6,0x23,0x40,0x74,0x6c,0x3,0x40,0xa4,0xb1,0x59,0xc0,0xd0,0xd2,0x36,0x40,0xe2,0xd3,0x39,0x40,0xe6,0xff,0x34,0xbf,0x7b,0x6d,0x8a,0xc0,0x53,0x5d,0x6,0x40,0xa,0xa2,0x3e,0x40,0xad,0xef,0x9e,0xc0,0xd6,0x9,0x94,0xc0,0x4a,0x8e,0x1a,0xbf,0xfb,0x4e,0x8c,0xc0,0x66,0xd6,0x1f,0xc0,0x60,0xbe,0x79,0x40,0x42,0x19,0x6a,0x3f,0xd0,0x2c,0x3f,0x40,0x7d,0xb9,0x96,0x3f,0x24,0x72,0x9c,0x40,0x7e,0x6e,0x4,0x40,0x23,0x75,0xbc,0x3f,0xe1,0x3f,0x72,0x40,0x62,0x30,0xfe,0xbf,0xc7,0x21,0x89,0x40,0x9c,0xe2,0xf3,0x3e,0xe8,0x76,0x92,0x40,0x58,0xc7,0x3e,0xc0,0x76,0x5f,0x59,0xc0,0x82,0xd7,0x68,0x40,0x42,0x46,0x38,0xc0,0x7e,0x57,0x77,0x3f,0x2a,0x93,0x97,0x40,0x76,0x58,0x6f,0x3f,0x2e,0x4b,0x63,0xc0,0x6e,0xd6,0x42,0xc0,0x56,0x96,0x30,0xc0,0xb8,0x7,0x59,0xc0,0x8,0xa3,0x2b,0x40,0x5c,0x94,0x39,0x3f,0x14,0xaf,0xe6,0xbe,0xfd,0x3b,0xb2,0x3f,0xe8,0x12,0x3b,0x40,0x60,0xcc,0xe1,0x3e,0xe8,0xbd,0x4f,0x40,0xdc,0xf9,0x2b,0xbf,0xc7,0x36,0xf7,0x3f,0xc8,0xd1,0x88,0x3f,0x80,0xd8,0x30,0x3d,0xe,0xd1,0x68,0x40,0x50,0x75,0x9a,0x40,0x70,0xc5,0x80,0x40,0xa4,0x68,0xa2,0xbf,0x88,0xc5,0xcf,0xbf,0xba,0xb4,0x83,0x40,0x48,0x62,0x11,0xc0,0xfa,0x49,0x9,0x3f,0x2a,0x9d,0x35,0xc0,0xc7,0x73,0xa6,0xbf,0x2d,0x6,0xef,0xbf,0x4e,0xc4,0x47,0x40,0xda,0x4,0xc,0xc0,0xe9,0xf9,0xa,0xc0,0xb2,0xa4,0x7,0x40,0x24,0x85,0x8d,0xbe,0xf8,0xdd,0xf6,0x3e,0x41,0x4c,0x6f,0xc0,0x96,0xd0,0xc,0xc0,0xc6,0xca,0x20,0x40,0xec,0x0,0x13,0x40,0xe1,0xaf,0x92,0xc0,0x4e,0x32,0x5e,0xc0,0x1c,0xf7,0xb9,0x3f,0xa6,0x49,0x7b,0xc0,0x6c,0x53,0x29,0xc0,0xa,0x1,0x35,0xc0,0x74,0x3a,0x74,0xc0 }); + // [[[[-2.442304 3.5081077 -4.599655 ... 2.1282716 1.1413765 -1.551503 + Tensor *w = NN_tensor(4, (size_t[]){ 3, 3, 16, 56 }, DTYPE_F32, (uint8_t[]){ 0xb5,0x4e,0x1c,0xc0,0xd6,0x84,0x60,0x40,0x60,0x30,0x93,0xc0,0xb6,0x9,0x54,0x40,0x0,0xad,0x8a,0xc0,0xf6,0x9d,0xac,0xbf,0xdc,0xe3,0xd5,0xbf,0x5c,0x0,0x4b,0x40,0x99,0x9e,0x81,0xc0,0x20,0x2f,0x1f,0xc0,0x92,0x90,0x9d,0xc0,0x61,0x2d,0xbc,0xbf,0xa5,0xa6,0xfe,0x3f,0xf0,0x61,0x97,0x40,0xd3,0x9c,0x8a,0x40,0x70,0x3a,0xaa,0xbf,0x50,0x6b,0x2a,0xc0,0x34,0x1,0x8e,0x3f,0xa6,0x46,0x54,0x40,0x4e,0x55,0x8f,0x40,0x27,0xfd,0x5a,0x40,0x20,0xf0,0xb7,0xbd,0xb4,0x2e,0x84,0xc0,0xba,0xa4,0x41,0xc0,0xe7,0xe,0x43,0x40,0x80,0x34,0x88,0xc0,0xf,0x60,0x6a,0xc0,0x90,0xb4,0x4b,0xc0,0x77,0xe6,0xab,0xbf,0x26,0x32,0x15,0x40,0xb1,0xca,0x5d,0x40,0xc9,0xa3,0x76,0x40,0x96,0x8b,0x14,0x40,0x1,0x4f,0x91,0x3f,0x93,0x6e,0xa8,0xbf,0x78,0x11,0x44,0xc0,0x5e,0xf7,0x22,0xc0,0xc8,0x74,0x1a,0xbe,0xd2,0x85,0x8a,0x40,0xed,0xc9,0xe3,0xbf,0xc2,0xdc,0x3f,0xbf,0x0,0xb1,0xa,0xbe,0xeb,0x1,0x10,0xc0,0x6f,0x2a,0x18,0xc0,0x16,0xcf,0xb5,0x3f,0xbc,0x70,0x64,0xc0,0x30,0xc1,0x9a,0xbe,0xfe,0x6b,0x9a,0xbf,0x48,0xed,0x8d,0x3f,0x0,0x93,0x23,0xbf,0x16,0xae,0x27,0xc0,0xde,0x37,0xc1,0xbf,0xa5,0xa2,0x9e,0xbf,0x9a,0x35,0x8,0x40,0xa0,0x18,0x92,0x3f,0xab,0x97,0xc6,0xbf,0x72,0xcc,0x7a,0x40,0x8c,0x44,0xe3,0x3e,0xa7,0xb3,0x2e,0x40,0x77,0x5d,0xf3,0xbf,0xcc,0xab,0x87,0xc0,0xe1,0x4d,0x9a,0xc0,0xee,0x5e,0xd5,0xbf,0x4b,0x44,0x45,0x40,0xcb,0x38,0x49,0x40,0xce,0x9,0xc3,0x3f,0x2a,0x2,0xb5,0x3f,0x2,0xfc,0x56,0xc0,0x66,0xc3,0xbc,0xbf,0xda,0x43,0x1b,0x3f,0x3a,0xa1,0x8b,0xc0,0xc7,0x8d,0x91,0xc0,0x32,0xc4,0x72,0xc0,0xfc,0x73,0xc6,0x3f,0x6a,0x61,0x22,0xbf,0xae,0xfb,0x61,0xbf,0xa9,0x16,0x47,0x40,0x61,0x9,0x56,0xc0,0xc,0xea,0x45,0xc0,0x49,0x65,0x92,0xbf,0x5d,0x28,0x45,0x40,0xb2,0x84,0x4d,0x3f,0x96,0xfc,0x89,0xc0,0x27,0x73,0x62,0x40,0x69,0xd7,0x39,0xc0,0xc,0xb1,0x79,0x40,0x42,0x41,0xea,0x3f,0xd5,0xcd,0xa7,0x3f,0xba,0x84,0x84,0x40,0x55,0x5f,0xeb,0x3f,0xc6,0xcc,0x9d,0xc0,0xff,0x5b,0xfe,0x3f,0x42,0x33,0x9b,0x40,0x6f,0xd4,0x4,0xc0,0xd6,0x55,0x6a,0x40,0xa8,0x82,0x81,0x40,0x10,0xd1,0x96,0xbf,0x0,0xb0,0xe5,0x3b,0x66,0xda,0x25,0xbf,0xe4,0x84,0x8d,0x40,0x1e,0xd,0x6,0x40,0x90,0xad,0x62,0x40,0xc8,0x2a,0x8f,0xc0,0x42,0xcd,0x1,0xc0,0x86,0xbc,0x71,0xc0,0x6b,0xd,0x8c,0x3f,0xb7,0xd5,0xf9,0xbf,0xbe,0x82,0xb9,0x3f,0xee,0xa1,0x26,0x40,0x6b,0x18,0xa9,0xbf,0xf6,0xae,0x16,0x3f,0x78,0xdf,0x6b,0xc0,0x58,0x9b,0x13,0xbf,0xdc,0x3,0x4f,0x3f,0x3,0x54,0x64,0x40,0x9a,0x4d,0x1,0x40,0x75,0x2b,0xaa,0x3f,0x88,0x1c,0x26,0x40,0xc6,0x50,0x7a,0x40,0x6c,0x70,0xf0,0x3e,0x75,0x1e,0x9a,0x40,0x60,0x13,0x43,0xc0,0x4b,0xc2,0xd8,0x3f,0x80,0x32,0x84,0x3c,0x68,0xde,0x6c,0x40,0xbf,0xad,0x98,0xc0,0x30,0x4f,0x1b,0x40,0x18,0x9d,0x89,0xc0,0x56,0x58,0xbf,0xbf,0x8a,0x6a,0xce,0xbf,0x7f,0x36,0xd6,0xbf,0xc3,0x73,0x1b,0xc0,0x66,0x72,0x82,0xc0,0x6a,0x10,0x8c,0xc0,0x31,0x8d,0x82,0xbf,0xb9,0xab,0x82,0x40,0xf2,0xa7,0xab,0xbf,0xde,0x34,0x58,0xc0,0x91,0xb7,0xb6,0xbf,0x76,0xed,0x83,0xc0,0x50,0xde,0x8a,0xbe,0xf8,0x73,0x83,0x40,0xfb,0x3a,0x9c,0xc0,0xfc,0x9f,0x2c,0x40,0xbd,0x3b,0x6d,0x40,0x1c,0xbd,0x66,0x40,0x3d,0xd2,0x3d,0xc0,0xd6,0xb6,0x15,0x3f,0x7e,0x5e,0x34,0x40,0xc0,0x1c,0x89,0xc0,0xa9,0xce,0x75,0x40,0x2c,0xe0,0xbb,0xbe,0x5d,0xd4,0x8c,0xc0,0x5c,0x2c,0xa4,0xbf,0x0,0x3,0x13,0x3e,0x74,0x6f,0x2,0xc0,0x31,0xed,0x1,0xc0,0x28,0x9f,0x3,0xbf,0x6,0x1d,0xdc,0x3f,0x58,0x11,0x11,0x40,0xe2,0x6b,0x9c,0xc0,0xa0,0x3d,0xa4,0xbe,0x18,0x4e,0x9e,0x3f,0x58,0x1d,0x81,0x40,0x85,0x57,0x20,0x40,0xec,0xbb,0x59,0x40,0x84,0xd6,0xbd,0x3f,0x4c,0xe,0xfa,0xbe,0xbc,0xda,0x30,0xc0,0x6a,0xef,0x4,0xc0,0xd1,0xf0,0xce,0x3f,0x56,0xf6,0x85,0xbf,0x66,0x4d,0x93,0x40,0xf4,0xa6,0x48,0xc0,0xbc,0x96,0x59,0x40,0xa9,0xed,0x4c,0x40,0x70,0x59,0x53,0x40,0xf9,0xe7,0x7a,0x40,0x30,0xfb,0x38,0xc0,0x1e,0xf1,0x38,0x40,0xfb,0x6a,0x9e,0xc0,0x99,0xba,0x2b,0xc0,0x36,0x2b,0x4b,0xbf,0x7d,0xc4,0x86,0x40,0xcc,0xee,0x80,0xbf,0x8c,0x47,0x80,0xc0,0xb0,0xc7,0x8e,0xc0,0x20,0xa7,0xbf,0x3d,0x48,0x1b,0xbf,0x3e,0xaf,0xaf,0x9b,0x3f,0x16,0x3b,0xb3,0xbf,0x22,0x7b,0xd5,0x3f,0xf8,0x2b,0x6,0x3f,0x97,0x15,0xa8,0xbf,0xaf,0xe3,0x23,0x40,0x52,0xeb,0x66,0xc0,0xa2,0xad,0x25,0xc0,0xd2,0x39,0x9e,0x3f,0x36,0xd6,0xb6,0xbf,0x10,0x98,0xf7,0xbd,0xd,0x49,0xe5,0xbf,0xfc,0x74,0x36,0x40,0xdf,0xb0,0x96,0x40,0x1c,0x7,0x89,0x40,0xb5,0x8,0xa6,0x3f,0x4,0xd3,0x4a,0xc0,0xf2,0xbe,0xdf,0xbf,0xfc,0xa8,0x11,0xc0,0xee,0xf6,0x76,0xbf,0x96,0x7e,0x1f,0xc0,0x35,0xb6,0x3e,0x40,0x1b,0xc9,0x97,0xc0,0xa0,0x7a,0x5f,0x3e,0x81,0x37,0x67,0x40,0x9c,0xce,0x7d,0xc0,0xba,0x41,0x60,0xbf,0x45,0x6f,0x2f,0x40,0x37,0x98,0xdf,0xbf,0xb,0x85,0x17,0xc0,0xf2,0x6e,0x2a,0x40,0x54,0x8e,0x5d,0xc0,0x49,0xa8,0x9f,0x40,0x64,0x85,0x8f,0x40,0xe0,0x34,0x65,0x3e,0x94,0x88,0x4e,0x3f,0x7d,0xfd,0x22,0xc0,0xb5,0x1e,0x95,0x3f,0x60,0xc3,0x71,0xc0,0xe,0xc8,0xa6,0xbf,0xfe,0xd3,0x7f,0x40,0x42,0xc1,0xba,0x3f,0xf3,0xdd,0x67,0x40,0x22,0x2b,0x53,0x40,0x4c,0xd4,0x98,0x40,0x9,0xfa,0xa1,0x3f,0x19,0x88,0x6a,0xc0,0xee,0xd2,0x90,0xc0,0x8b,0x7b,0x46,0x40,0xb4,0xf5,0x81,0x40,0x82,0x88,0x9d,0x40,0x37,0x6c,0x59,0xc0,0x2d,0x2d,0x92,0x40,0x17,0xe,0xe4,0xbf,0x34,0x6,0xa7,0x3f,0xac,0xb8,0x5d,0x40,0xdc,0xef,0x76,0xc0,0xd3,0x91,0x99,0xc0,0xe,0xcc,0x54,0x40,0x4c,0xc4,0x94,0xc0,0x7b,0x11,0x1b,0x40,0x92,0x25,0x39,0x40,0x92,0x19,0x6a,0x40,0xf0,0xd,0xf7,0x3d,0xf6,0x7e,0xa3,0xbf,0x58,0xec,0x26,0x3f,0xc0,0x3d,0x31,0xbf,0x4,0xca,0x96,0xc0,0xda,0xfc,0x96,0x3f,0x80,0xcf,0x3b,0xc0,0x76,0xdb,0x6c,0x40,0x52,0x3d,0x16,0xc0,0x9e,0x99,0x79,0xbf,0x16,0x35,0x78,0xc0,0x12,0x61,0x93,0x40,0xc7,0xa6,0x39,0x40,0xcb,0x17,0x8c,0x40,0xa9,0xbe,0x3a,0x40,0xd1,0x40,0x45,0xc0,0x1a,0x45,0x97,0x40,0x16,0x1f,0x2c,0xbf,0x78,0x36,0x93,0x40,0x46,0x42,0x33,0x3f,0x94,0xa2,0x4a,0x40,0x93,0x4,0xfe,0xbf,0x2b,0x6a,0xfb,0x3f,0xc0,0x70,0xf6,0xbc,0x13,0x65,0x7f,0xc0,0xe7,0xde,0x77,0x40,0xaa,0x33,0x2e,0xc0,0xe,0xb,0x54,0xc0,0xc2,0x56,0x80,0x40,0xbb,0xca,0x92,0xc0,0x35,0x6,0xdd,0x3f,0xd3,0x1d,0x82,0x40,0xc2,0xdf,0x4b,0xbf,0x85,0x5a,0x97,0xc0,0x6e,0xac,0x81,0xc0,0xe0,0x58,0x7d,0xbe,0x6c,0x22,0x4b,0xbf,0xa0,0x37,0x5e,0x40,0x58,0xcc,0x7f,0x40,0x59,0xe5,0x45,0xc0,0xa0,0x1f,0xa9,0xbf,0x9a,0x75,0x7b,0xc0,0x62,0x78,0x8e,0x3f,0xbd,0x7a,0x6a,0x40,0xf7,0xd2,0xda,0xbf,0xc8,0xe2,0x29,0x3e,0x10,0xd8,0xc6,0xbe,0x2c,0xc4,0x8a,0xc0,0x8e,0xf4,0x9b,0x40,0x99,0x18,0x8a,0x3f,0x1,0x18,0x96,0x40,0xf4,0x1b,0x8b,0xc0,0xd4,0x10,0xbb,0xbf,0xd9,0xc3,0xa8,0xbf,0x96,0x9b,0xd2,0x3f,0x5d,0x19,0xa2,0xbf,0xee,0x17,0x38,0xc0,0x28,0x8,0x83,0x40,0xd5,0x38,0x7b,0x40,0xa0,0x1c,0x9f,0x40,0xe2,0x64,0x40,0x40,0x7c,0x81,0x52,0x40,0x33,0x6c,0x53,0xc0,0x54,0x23,0xbf,0x3e,0x85,0xac,0xc8,0xbf,0x0,0xd9,0xe4,0xbe,0x98,0x78,0xd0,0x3e,0xb1,0xa5,0x99,0x3f,0x79,0x28,0x3d,0xc0,0xd8,0x6,0x50,0xbf,0x78,0xbc,0x13,0xc0,0x6e,0xb0,0xa4,0xbf,0x74,0xd,0x4e,0xc0,0xe2,0x28,0x27,0xc0,0xce,0x90,0x5f,0xc0,0xfa,0xab,0x60,0xc0,0x78,0xa2,0xa8,0xbe,0x36,0x7,0x88,0xc0,0xe6,0x8d,0x98,0xc0,0xea,0x7c,0x60,0x40,0xae,0x6c,0x66,0xc0,0xac,0x7,0x60,0x40,0x0,0x3f,0xb1,0x3e,0x16,0x4c,0x3b,0xbf,0x74,0x98,0x77,0x40,0x6e,0xdd,0x79,0xc0,0x2,0x4d,0x19,0x40,0x3c,0x95,0x55,0x40,0xf6,0x40,0x7f,0x40,0xbe,0x66,0x95,0xc0,0xb8,0x9a,0x72,0x3e,0xbc,0x9b,0x22,0xbf,0x5a,0x6e,0x6d,0xc0,0x42,0x8d,0x5a,0x40,0xa6,0x63,0x61,0xbf,0xbc,0x6f,0x58,0x40,0x8c,0x4e,0x2c,0xc0,0x72,0xeb,0xd,0xc0,0xbd,0xa1,0xf0,0x3f,0x74,0x8d,0x23,0x3f,0xb8,0x65,0x37,0x40,0xb3,0x82,0x8,0x40,0x52,0x13,0x80,0x40,0x8b,0xe2,0x6b,0xc0,0xe1,0x9c,0x90,0x3f,0xa2,0xad,0x6d,0x40,0xb9,0x0,0x11,0xc0,0xc,0xf4,0x47,0xc0,0x83,0x6f,0x9d,0x40,0xc2,0xfd,0x85,0xc0,0xc8,0x6a,0x68,0xc0,0xee,0x60,0x87,0xc0,0x28,0x5c,0x9e,0x3f,0xd5,0x39,0x9b,0x3f,0xe9,0x6f,0x8c,0xc0,0xe2,0xf2,0x43,0x40,0xa4,0x7b,0xb7,0x3f,0x1e,0xcc,0xd8,0x3f,0xe3,0x9d,0x9c,0xc0,0x86,0x4d,0x92,0xc0,0x3a,0x81,0x83,0xc0,0x7f,0x4d,0x3,0xc0,0xd4,0x29,0x8e,0xc0,0xc6,0x17,0x22,0x40,0xba,0xbf,0x2d,0xbf,0x7b,0x64,0xfc,0xbf,0x63,0x7,0x8b,0x40,0xa0,0xf2,0x28,0x3f,0x22,0x56,0x25,0x3f,0xc2,0xb1,0x33,0xc0,0x1b,0x69,0xbc,0xbf,0x5f,0x9,0x87,0xc0,0x23,0x1d,0x44,0xc0,0x44,0xf5,0x9e,0x40,0x4d,0xb4,0x50,0xc0,0xeb,0x7d,0x2f,0x40,0x8a,0xeb,0x5b,0x40,0x9a,0xff,0x50,0x40,0xe6,0x0,0x83,0x40,0xfa,0x4a,0x89,0x40,0xcc,0xb6,0x2b,0x40,0xb4,0x30,0x89,0xbe,0x48,0x18,0xa4,0xbf,0x1d,0xc6,0x98,0xc0,0xe6,0x5f,0x28,0x40,0xf2,0xd,0x91,0xbf,0x6,0x9f,0x48,0x3f,0x69,0x88,0x90,0xbf,0x84,0xac,0x4e,0x40,0x8,0xaf,0x22,0x3e,0xda,0x3d,0x65,0x40,0x76,0x33,0x6f,0x40,0x29,0x1,0xc6,0x3f,0xb8,0x6c,0xd0,0xbe,0x77,0x2b,0x14,0x40,0xbc,0xa4,0x3c,0xc0,0x50,0xa,0x61,0x40,0x76,0xe3,0x77,0x40,0x10,0xc6,0x26,0x3f,0x68,0x8f,0x0,0xbf,0x27,0x67,0x9e,0x3f,0x7b,0xd8,0x8c,0x40,0x21,0x1,0x97,0x3f,0x7a,0xb,0x22,0xc0,0x4e,0xfb,0x88,0xbf,0x26,0x40,0x9d,0xc0,0x48,0x10,0x9,0xbe,0x29,0xdf,0x91,0xc0,0xdf,0x3f,0x90,0x3f,0x16,0xb9,0x23,0x3f,0xab,0xfc,0x94,0x40,0x88,0x17,0xbf,0xbf,0x2c,0x48,0x86,0xbe,0x80,0x1,0x92,0xbc,0x7c,0x1f,0xeb,0xbf,0xe1,0x44,0xe3,0xbf,0x5d,0x37,0x4,0xc0,0x86,0x10,0x7,0xc0,0x36,0xeb,0x12,0x3f,0xde,0x66,0xf6,0x3f,0xf2,0x35,0x7f,0x3f,0xc8,0xcf,0x7f,0x40,0x18,0x87,0x21,0xbf,0x39,0xa2,0xba,0x3f,0xe5,0x72,0x84,0xc0,0xb0,0xb5,0x48,0x40,0xd3,0x7f,0x84,0x40,0x90,0x1,0xf5,0x3f,0x6f,0xfe,0x4d,0xc0,0x38,0x77,0x3e,0xbe,0x1a,0x81,0x85,0xc0,0xa3,0x79,0x91,0xc0,0xa,0xe2,0x71,0x40,0x92,0xcb,0x14,0x40,0xa1,0xe4,0x71,0x40,0x9a,0x71,0x4e,0x40,0xdc,0x43,0x4b,0xbf,0xfd,0x22,0x14,0x40,0x12,0xd,0x18,0xc0,0xec,0x3b,0x82,0xc0,0xae,0xb0,0x48,0xbf,0x10,0x3,0x3d,0xc0,0x17,0x26,0x95,0x40,0x46,0x1d,0x82,0xc0,0x1b,0x58,0x95,0x40,0xfc,0x70,0x58,0xbf,0xcc,0xb9,0x67,0x3f,0xce,0x52,0x8b,0x40,0x34,0x11,0x14,0xc0,0xbe,0x21,0xed,0xbf,0x8a,0x64,0x4,0x40,0x42,0x25,0xa2,0xbf,0x2,0x15,0x22,0x3f,0xb6,0x9f,0x49,0x40,0xf0,0x72,0x76,0x3e,0xd8,0xd2,0x59,0x40,0xe2,0x31,0xc,0xc0,0x4c,0x1a,0x2,0x40,0x6c,0xcd,0xf7,0x3e,0x74,0x21,0x76,0xc0,0xe8,0xd8,0xe,0xbf,0x1a,0x18,0xfa,0x3f,0xa5,0xfe,0x44,0xc0,0x8f,0xcb,0x87,0x40,0x5a,0x92,0x33,0xc0,0x38,0x6c,0x2e,0x40,0x38,0xaa,0x10,0x3f,0xda,0xe5,0x39,0xc0,0x6e,0x43,0x71,0x40,0x95,0xc9,0x91,0xbf,0xa2,0xb4,0x46,0xbf,0x19,0xf2,0xb7,0xbf,0x42,0xa8,0x9e,0xc0,0x26,0xd,0x3d,0x40,0x12,0xfa,0x10,0xc0,0x5c,0xcd,0x3f,0x40,0x7e,0x31,0x18,0x40,0x2d,0x6b,0x2d,0x40,0xe0,0x67,0xe4,0x3f,0x2c,0x5,0xce,0x3f,0xa4,0xe9,0x86,0xc0,0xf8,0xb8,0x8f,0xbe,0x0,0x6e,0x4,0xc0,0xb1,0xfc,0x71,0x40,0x56,0x89,0xf7,0x3f,0x40,0x15,0xff,0x3d,0x6a,0xe7,0x90,0xc0,0xae,0x10,0x93,0xc0,0xba,0xe6,0x85,0xc0,0xb0,0xdd,0x5f,0x40,0x40,0x3d,0x48,0x40,0x26,0xc1,0x8d,0xc0,0xbb,0xba,0x89,0xc0,0xc,0x38,0x85,0x40,0xb4,0xd,0x1,0x40,0x8c,0xa6,0x49,0xc0,0xb8,0xef,0x13,0xbf,0x7d,0x49,0x45,0x40,0xbe,0x13,0x29,0x40,0xa8,0xce,0x49,0xbe,0xfe,0x19,0x5,0xc0,0xba,0x4f,0xd7,0xbf,0x6d,0x28,0xbf,0xbf,0x14,0x9b,0x46,0xc0,0x22,0x5a,0x53,0xc0,0x18,0x8c,0x62,0x40,0x3a,0x69,0x54,0x3f,0xf,0xa,0xd2,0x3f,0x38,0x8c,0x68,0xc0,0x4a,0x4f,0x6d,0x3f,0xfc,0x88,0x8e,0x40,0xae,0x44,0x2f,0x40,0x38,0xf6,0x5f,0xbe,0x53,0x50,0x13,0xc0,0xfb,0x15,0x9a,0x40,0x66,0xa2,0x8,0xc0,0xd0,0x83,0xb5,0xbf,0x78,0xa,0x75,0x3e,0x50,0x81,0xb5,0xbf,0x38,0xcb,0x49,0xbe,0x54,0xa1,0x96,0xbf,0x62,0xd2,0x3d,0xc0,0x0,0x7d,0x48,0x3d,0xf6,0xd2,0x3,0x40,0xb,0x34,0x9c,0xc0,0x12,0x8b,0xdf,0x3f,0xfc,0x99,0x39,0x3f,0xea,0xbc,0x4d,0xc0,0x9a,0x32,0x6a,0x40,0x8e,0xe,0x51,0x40,0xc4,0xfb,0xcb,0x3f,0x31,0x83,0xff,0xbf,0x3,0x50,0x98,0x3f,0x8,0xf3,0x13,0x40,0xd2,0xba,0x3d,0xbf,0x54,0xac,0x9,0xc0,0xc0,0xd5,0xc3,0x3d,0x88,0xdf,0x86,0xc0,0x7c,0x40,0x61,0x40,0x34,0x6b,0xfb,0x3e,0xa5,0x5a,0xc,0xc0,0x5c,0xd7,0xf3,0x3e,0x4c,0xdb,0x27,0xc0,0x18,0x31,0x45,0xbf,0x3a,0xeb,0x4c,0xc0,0xd6,0x90,0xac,0x3f,0xc0,0x21,0x1b,0x40,0x30,0xd7,0xc5,0xbf,0xe7,0x34,0x2c,0x40,0x92,0xf5,0x62,0x40,0x28,0xf,0x90,0xc0,0x94,0xee,0x4e,0xc0,0x8c,0xed,0xe9,0x3e,0x36,0xe5,0x2a,0xc0,0x1c,0x2,0x54,0x40,0xd3,0xfb,0x8b,0x40,0x21,0xcb,0x33,0xc0,0x5e,0xe1,0x1c,0x3f,0xd4,0x27,0xa4,0x3e,0x5,0x4d,0x86,0x40,0x6d,0x1d,0x80,0xc0,0xe,0x79,0xdc,0x3f,0x97,0xb6,0x63,0xc0,0x51,0x7a,0x88,0xc0,0x9a,0x18,0x8e,0x40,0xb0,0xae,0x3b,0x40,0x68,0x11,0x9e,0xc0,0x66,0x55,0x3f,0x40,0xa5,0xba,0x65,0xc0,0x2b,0x6a,0x87,0x40,0xc4,0xfc,0x4f,0x3f,0xfc,0x7c,0xcc,0xbf,0x5c,0x8c,0xee,0x3e,0x18,0xab,0x66,0xbf,0x80,0x28,0x45,0xbc,0xb,0xbe,0x5b,0xc0,0xe,0xe5,0x1d,0x40,0xf4,0x7d,0x5d,0xc0,0x14,0xe6,0xaf,0x3e,0x19,0xea,0x67,0xc0,0xc8,0x72,0x2d,0xc0,0x26,0xdd,0x12,0x3f,0x30,0x7,0xe6,0x3e,0x5e,0x2f,0x91,0xc0,0xf1,0xd8,0xad,0x3f,0x7b,0x89,0xcd,0x3f,0x5a,0xec,0x13,0xc0,0x74,0xc1,0x12,0x3f,0xfb,0x5a,0x29,0xc0,0x4e,0x3d,0x8a,0xc0,0x10,0xbd,0x57,0xbf,0x9c,0x71,0x53,0x40,0x90,0x2c,0x3b,0x3e,0x2,0x86,0x62,0xc0,0x30,0x6,0x79,0x40,0xce,0x34,0x4a,0xbf,0x84,0xf9,0x8c,0xc0,0x67,0x42,0xd3,0x3f,0x94,0xc,0x83,0xc0,0x12,0x93,0x4f,0x40,0x42,0xec,0x80,0x3f,0xfc,0xf7,0xba,0x3f,0xc0,0xa1,0x8c,0xc0,0x26,0xd,0xa9,0x3f,0xd4,0x12,0xeb,0xbe,0xb8,0xa3,0x8a,0xbf,0xf9,0x7d,0xb5,0x3f,0xed,0xa,0x90,0xc0,0xe8,0xc0,0x64,0xc0,0xd6,0xc8,0x91,0xc0,0xef,0x79,0xe1,0xbf,0x77,0x5f,0xd,0x40,0xd1,0x4c,0x2f,0x40,0x67,0x62,0xa4,0x3f,0x9f,0x81,0xfc,0xbf,0xf0,0x73,0x48,0x3e,0xf,0x90,0xfb,0x3f,0x22,0x10,0xf,0xc0,0xdd,0x44,0x98,0xc0,0xc3,0x5b,0x81,0xbf,0x31,0xca,0xfe,0xbf,0x91,0x66,0x50,0x40,0xa1,0x8c,0xd6,0x3f,0xc8,0x43,0x37,0x3f,0x4e,0x3,0x8,0x40,0x15,0x76,0x8d,0xc0,0xb2,0xfa,0x27,0xc0,0xa3,0xda,0x82,0xc0,0x71,0x7b,0x9a,0xbf,0xa6,0xdd,0x61,0xc0,0xd8,0xb8,0x5c,0xbe,0x98,0xa4,0x12,0xc0,0xad,0x50,0xc5,0x3f,0xfa,0xbb,0x87,0xc0,0x1a,0xb8,0x27,0xc0,0x40,0x6e,0x5d,0x40,0x86,0x2e,0x64,0x40,0x86,0x1c,0xa,0x3f,0x3f,0x41,0x13,0xc0,0x34,0x52,0x8c,0xc0,0x9c,0x42,0x5f,0x40,0xb0,0x46,0xc7,0x3d,0x9e,0xeb,0x59,0xbf,0x7c,0x78,0x8,0xbf,0xc6,0xab,0x9c,0xbf,0x5,0x8,0x2c,0x40,0xa,0x44,0x4d,0xc0,0x8c,0xc2,0xa1,0xbe,0x95,0x44,0x50,0x40,0x60,0x80,0x8d,0xbf,0x7e,0x40,0x2a,0x40,0xa9,0x5f,0xa1,0x3f,0x2e,0x24,0x88,0xc0,0x58,0x9b,0x13,0x3f,0xbc,0x7d,0xd4,0xbe,0xec,0x85,0x4e,0xc0,0x2e,0xa5,0x15,0xc0,0xf7,0xa1,0x85,0x40,0x30,0x3b,0x3c,0x40,0x47,0x55,0x96,0x40,0xc3,0x4b,0x96,0x40,0x2f,0x74,0x98,0x3f,0x0,0x43,0xcb,0xbf,0x44,0xed,0x18,0x40,0xad,0x8a,0x29,0xc0,0x60,0x74,0x7b,0x40,0x7c,0x32,0x8f,0x40,0xe4,0x82,0x83,0x40,0x13,0xd,0x55,0x40,0xbb,0x75,0xf6,0xbf,0x2,0x62,0x0,0xc0,0x44,0xd4,0xe6,0xbf,0x35,0x63,0x8f,0xc0,0x5c,0xe6,0x96,0x40,0x32,0xc9,0x27,0xc0,0x0,0xca,0x5f,0xbd,0x12,0xdc,0xb1,0xbf,0x21,0xc5,0xa5,0x3f,0x6c,0xc1,0x85,0xc0,0x90,0x1b,0x29,0x3e,0x8a,0xbc,0x85,0x40,0xe8,0xaa,0xdf,0xbf,0xf4,0xe9,0x73,0x3f,0x16,0x43,0x6,0x40,0xd4,0x95,0x80,0x40,0x4b,0xc1,0x99,0xc0,0x30,0x9d,0xc,0xc0,0x26,0x4e,0x6a,0xc0,0x8a,0x27,0x67,0xc0,0xe0,0x70,0x3a,0xc0,0x65,0x88,0xd0,0x3f,0xd8,0x64,0x77,0x40,0x34,0xf6,0xa7,0x3e,0x64,0x68,0xd8,0x3e,0x54,0xf7,0x6,0xbf,0x2a,0x87,0x9a,0xc0,0x79,0xd4,0x9e,0x40,0xd9,0xaa,0xfd,0x3f,0x9d,0xfc,0x88,0xc0,0xad,0xb3,0x94,0x3f,0xfc,0x14,0x5c,0x40,0x7b,0xd9,0x43,0x40,0x46,0x5b,0x8f,0x40,0xc,0x2c,0x8c,0x40,0x88,0x37,0x82,0x40,0x2a,0x6e,0x85,0xbf,0x5b,0x3d,0xad,0x3f,0x1d,0xd,0xdf,0x3f,0xcf,0x6,0x88,0xc0,0xda,0xbe,0xd4,0x3f,0x85,0xd0,0x42,0xc0,0xe5,0x37,0x9b,0x40,0x68,0x8d,0x5a,0x40,0x66,0x92,0x8f,0x40,0x85,0xd5,0x87,0x40,0xd0,0x28,0x91,0x40,0x3e,0x7,0x9d,0xc0,0x5c,0x5b,0x87,0xc0,0xb7,0x43,0x88,0xc0,0x6a,0xa8,0x7e,0x40,0x34,0x89,0x28,0xc0,0x4c,0x79,0x58,0x40,0x4e,0x36,0xfd,0x3f,0x6a,0x60,0x9d,0x40,0x7c,0xc7,0x1d,0xc0,0xb6,0xc6,0x6b,0x3f,0x49,0xd2,0x83,0xc0,0xcc,0xcc,0x81,0xc0,0xe8,0xc7,0x95,0xc0,0x72,0x0,0x3c,0x40,0x73,0xd5,0xb1,0xbf,0x8,0xb9,0xca,0x3e,0x5c,0x46,0x80,0x40,0x8b,0xc0,0x29,0x40,0xb8,0xb1,0xc7,0x3f,0x7e,0xc,0x2e,0xc0,0x6e,0xf7,0x3c,0x40,0x68,0xf3,0x96,0x40,0xde,0xb9,0x93,0xc0,0x6b,0xe7,0x89,0xbf,0xf6,0x8a,0x74,0xc0,0x24,0x45,0xa0,0xbf,0x25,0xfb,0x89,0x3f,0xfa,0xa5,0x96,0xc0,0xb4,0xdd,0x5e,0xc0,0x66,0x0,0xf3,0x3f,0x48,0x2f,0x81,0x40,0x7d,0xab,0xfe,0xbf,0xa6,0xd3,0x2d,0x40,0x8e,0x2a,0x7b,0xc0,0x7b,0xaa,0xfc,0xbf,0xa,0x2f,0x70,0x40,0x3a,0x99,0x24,0xbf,0x5a,0x8d,0x6,0x40,0xc,0x59,0x40,0xc0,0x8,0x77,0xd0,0x3f,0x33,0x99,0x8d,0xbf,0x30,0x4b,0xde,0xbd,0xe4,0x3d,0xec,0x3f,0x36,0xf4,0xa2,0x3f,0xf9,0xa,0x5d,0x40,0x74,0xc7,0x96,0xbe,0x6d,0x91,0xc4,0xbf,0x18,0x3c,0x6e,0x40,0x80,0xe9,0x8b,0xbd,0xb3,0xa1,0x86,0xc0,0x6c,0xa2,0x55,0xc0,0x47,0x7a,0x45,0x40,0x4a,0x7e,0x19,0x40,0x89,0x1b,0x17,0xc0,0xa6,0x30,0x65,0x40,0x1e,0x5c,0x1b,0x40,0x29,0x36,0xc,0x40,0x94,0x3a,0x86,0x3e,0x38,0x5,0x18,0x40,0xc2,0xc4,0x91,0xbf,0xae,0x35,0x89,0xc0,0x6a,0x86,0xa5,0xbf,0x1c,0x49,0x81,0x3f,0x1a,0xb,0x21,0xc0,0x40,0xd7,0x0,0x40,0x4c,0x88,0x92,0x40,0x2f,0xfd,0xff,0x3f,0xb6,0x57,0x50,0x40,0x90,0x83,0xf5,0xbe,0xc8,0x85,0x59,0xbe,0x19,0xad,0xb6,0xbf,0x86,0x96,0x8b,0x40,0x62,0x8f,0x6f,0xc0,0x9b,0x4c,0xb,0x40,0x63,0x94,0x0,0x40,0x5a,0x5a,0x93,0x40,0xa,0x9c,0x1a,0xbf,0x4b,0xd4,0xa,0xc0,0x7f,0x49,0x9b,0x40,0x7a,0x1e,0x62,0xc0,0x0,0x86,0x67,0x3d,0x8e,0x50,0x44,0xc0,0x3c,0x45,0x65,0x40,0x6c,0x18,0x55,0x40,0x2c,0x53,0x2a,0xc0,0xe4,0xe2,0xb5,0xbe,0x40,0x9e,0x46,0xbd,0x74,0x43,0x95,0xc0,0x3d,0x2a,0x93,0x40,0xc4,0x35,0x5,0x40,0x0,0x70,0x23,0xba,0x5,0x3b,0x87,0x40,0x65,0xe0,0x20,0x40,0xa1,0x8d,0xf,0x40,0xa5,0xc2,0x3,0x40,0xc0,0x56,0xde,0xbf,0x5d,0xdc,0x80,0xc0,0x22,0x63,0xed,0x3f,0x70,0xe8,0xc4,0xbe,0xda,0x20,0x22,0x40,0x14,0xe8,0x66,0xc0,0xf4,0x28,0xf1,0x3e,0xe6,0xe,0x6f,0x40,0xf0,0xe1,0x5c,0x3f,0x2a,0x2b,0x61,0xc0,0xf,0x82,0xbe,0x3f,0x6a,0x5b,0x9e,0x40,0xdf,0x8c,0xc0,0xbf,0x38,0xc5,0x54,0xbf,0x28,0xc4,0x3b,0x40,0x76,0xc2,0x4e,0x40,0xe6,0xde,0xe9,0x3f,0xc4,0xb5,0x7d,0x3f,0x1b,0x1e,0x6e,0x40,0x78,0xc3,0x95,0x40,0x68,0x81,0x8e,0xc0,0x18,0xc5,0x4c,0x40,0xb0,0xdc,0x71,0x40,0x54,0x1a,0x32,0x40,0xac,0x78,0xfd,0x3f,0x44,0x30,0xdb,0x3f,0xd1,0xa4,0x72,0x40,0x3c,0x7c,0x21,0x3f,0x64,0x74,0x90,0x40,0x8c,0x97,0x42,0xbf,0x9e,0x4,0x2b,0x40,0x9d,0xb0,0x7c,0x40,0x18,0xe7,0x75,0x3e,0xda,0x3f,0x72,0x40,0xf2,0x7d,0x4b,0x40,0x71,0x59,0xee,0x3f,0x36,0xad,0xee,0xbf,0xf2,0xb6,0x6f,0xc0,0xdb,0x6c,0xfd,0x3f,0x41,0xbb,0x3c,0x40,0x66,0x7f,0x8f,0xc0,0x20,0x22,0xb3,0xbd,0x0,0x48,0x9e,0x3a,0xff,0xb3,0x88,0xbf,0xf8,0xb9,0x3b,0x40,0x6a,0x3d,0x89,0x40,0x5e,0xbc,0xdf,0xbf,0x7d,0xc9,0x1,0x40,0x6b,0xe7,0x6d,0x40,0x8,0xd8,0xc9,0xbe,0x4c,0x14,0x2c,0x40,0xc6,0x5c,0x9b,0x40,0x3c,0x68,0xba,0xbe,0x42,0x36,0x95,0xc0,0x48,0x65,0x8d,0xc0,0xfc,0xd9,0x83,0x40,0xc8,0x51,0x4f,0xc0,0x19,0x68,0x93,0x40,0xe6,0x77,0x76,0x3f,0x56,0x6f,0x78,0xc0,0x1a,0xf4,0x9b,0x40,0xa8,0x7b,0x74,0x40,0xb2,0x35,0xb8,0xbf,0xf6,0x9,0x6b,0xbf,0x40,0x8c,0x32,0xc0,0x50,0xfb,0x27,0xc0,0x90,0x7f,0xa4,0x3f,0x8,0x29,0x92,0xbe,0x28,0xbf,0x56,0xc0,0x1e,0xb6,0x8a,0xbf,0x14,0x39,0xf8,0x3f,0x3f,0x24,0xa1,0x3f,0x82,0xef,0x88,0x3f,0xb2,0x84,0x4d,0xc0,0x44,0x3f,0x12,0xc0,0x19,0x67,0xb1,0x3f,0xa2,0x25,0x53,0x40,0x7c,0xde,0x65,0x3f,0x34,0x1f,0x74,0xc0,0x16,0x49,0xe6,0x3f,0xc4,0x9f,0x48,0xc0,0x42,0x42,0x95,0xc0,0x70,0x26,0x63,0x40,0x6a,0xc1,0x3c,0x40,0xe,0x35,0x55,0xbf,0xec,0x66,0x47,0x40,0x6d,0x6e,0xf1,0xbf,0x36,0x86,0xca,0x3f,0x90,0x30,0x9c,0xc0,0x2,0x1c,0x19,0xc0,0x7e,0xe9,0x7b,0xbf,0x64,0x25,0x85,0x3f,0x38,0x25,0x15,0x40,0x28,0x54,0x4e,0x3f,0xfa,0x71,0x1f,0xc0,0xee,0xd,0x7b,0x40,0x18,0x2f,0x3b,0x40,0xef,0x1a,0x34,0xc0,0x88,0xfd,0x4e,0x3e,0x32,0x2a,0x94,0x40,0x76,0xe2,0xd8,0xbf,0x47,0x52,0x9e,0xc0,0x39,0x3,0x6b,0x40,0x64,0x8d,0x4,0x40,0x60,0xd6,0x27,0x40,0x78,0x17,0x2c,0x3f,0x22,0xb6,0x47,0xbf,0x89,0x18,0x90,0xbf,0xe0,0xa0,0x12,0x40,0xcc,0x6f,0xa5,0xbf,0x75,0xf1,0x13,0xc0,0x10,0xb,0x4b,0xbe,0xf1,0x72,0xbe,0x3f,0x29,0xef,0x9c,0xc0,0x60,0x2b,0x76,0x3e,0x18,0xd7,0x12,0x40,0x37,0x87,0x3e,0xc0,0xbe,0x93,0x53,0x40,0xce,0x1,0x8f,0x3f,0xe2,0xf8,0x30,0x40,0xc2,0xfe,0x2,0x40,0x50,0x18,0xab,0x3d,0x6a,0xf4,0x18,0x40,0x4d,0xe7,0x83,0xc0,0xf5,0x13,0x67,0x40,0xf6,0x86,0x3e,0xbf,0xc0,0x47,0x31,0x3d,0xb8,0xb6,0x6,0xc0,0x22,0x47,0x5c,0xc0,0x60,0x39,0x40,0xc0,0x42,0x35,0x1c,0x40,0xd2,0xb,0xa9,0xbf,0x88,0xef,0x8c,0x40,0xf0,0x50,0x82,0xbf,0x1e,0x6c,0x9e,0xc0,0xdc,0x6a,0x2c,0xc0,0x58,0xa7,0x82,0xbe,0x84,0xbe,0x28,0xc0,0xcb,0xc9,0x26,0xc0,0x45,0x26,0x14,0x40,0xcb,0xd7,0x9,0x40,0xc0,0x7e,0x93,0x3c,0x35,0xed,0x75,0xc0,0xea,0x87,0x82,0xc0,0x28,0xce,0x74,0xbe,0x86,0xa7,0x96,0xc0,0x30,0xe5,0x99,0x3f,0x0,0xe4,0x7c,0xbc,0x3c,0xf3,0x59,0x3f,0xfc,0x5b,0xd4,0xbe,0xea,0x83,0x45,0x40,0xa4,0x88,0x2d,0xc0,0xba,0x31,0x8a,0xc0,0xa1,0xee,0xbf,0xbf,0x25,0x4b,0x5,0x40,0x9a,0xee,0x85,0xc0,0xe6,0x7f,0x37,0x3f,0x2a,0x5d,0x77,0x40,0x70,0x11,0x49,0x40,0x16,0x86,0x10,0x40,0x5b,0x15,0xda,0xbf,0x97,0xf7,0x93,0x3f,0x8,0xfc,0x1b,0xbe,0xad,0x27,0x69,0x40,0x29,0x42,0x28,0x40,0xe5,0x6f,0xaf,0x3f,0xe8,0xd6,0x90,0x3f,0xcd,0x5f,0xd2,0x3f,0xfc,0x7e,0x9d,0x3f,0xbe,0xbc,0x40,0xbf,0xbe,0x6,0x59,0xc0,0x51,0x23,0xc7,0x3f,0x3a,0x35,0x1f,0x3f,0x13,0xdb,0x59,0x40,0xf8,0xf5,0x38,0x40,0xa1,0x22,0x82,0xc0,0x80,0xa5,0x22,0xbf,0x75,0xd0,0x82,0xc0,0x89,0xaf,0x86,0x40,0x84,0x29,0x9,0x3f,0x94,0x18,0x5c,0xc0,0xd1,0x7e,0x8b,0x40,0xc,0xa1,0x59,0x40,0xaa,0xe7,0x8b,0xbf,0xfa,0xb1,0x21,0x40,0x80,0x9f,0x94,0xbd,0x48,0x52,0xba,0xbe,0x7e,0x8b,0x7,0x40,0xd8,0xa,0xdb,0xbe,0x62,0x2d,0x2,0xc0,0xa2,0xf9,0xbd,0x3f,0x94,0xff,0xd4,0xbf,0x68,0xeb,0x3a,0x40,0xb9,0xbd,0x8e,0x40,0x6e,0xf8,0x1d,0xc0,0x7f,0xf9,0xae,0x3f,0x4e,0x85,0x6a,0x3f,0x20,0xb7,0x1e,0x40,0x30,0x9c,0x3,0x3e,0xc8,0xcc,0x3a,0x3e,0x5b,0xda,0xa1,0x3f,0xc5,0x6b,0x84,0xc0,0xa0,0x23,0x3e,0x3f,0xa0,0xdf,0x9d,0xc0,0x2a,0xea,0x15,0xbf,0xf1,0x36,0x39,0x40,0xed,0xce,0x1d,0xc0,0x24,0x7f,0x2c,0xbf,0x46,0x33,0x83,0x40,0x6f,0xa7,0xe3,0x3f,0x80,0x91,0x1d,0x3d,0xdc,0x59,0xec,0x3e,0xe1,0x15,0x15,0xc0,0xda,0x52,0x39,0x3f,0x61,0x2e,0x80,0x40,0xcb,0xaf,0xe8,0x3f,0xfc,0x64,0x9d,0x40,0xb2,0xb9,0x31,0x40,0x7c,0x5e,0x72,0xbf,0x32,0x8f,0x40,0xbf,0xae,0x91,0x17,0x40,0xe0,0xdd,0x48,0x3e,0xab,0x38,0xb7,0x3f,0xfd,0xef,0x93,0xc0,0x52,0x3d,0x84,0x3f,0x16,0xdb,0x24,0x3f,0xff,0x52,0x94,0xc0,0xce,0x27,0x5c,0x3f,0xd9,0x19,0xee,0x3f,0x70,0x1d,0xfe,0xbd,0x1d,0xcc,0x93,0xc0,0x70,0xa7,0x8b,0x40,0x17,0xb4,0x85,0xc0,0x30,0xb5,0x3d,0x40,0xf0,0x5c,0x50,0x3e,0x84,0xac,0xab,0xbf,0xaa,0x60,0x63,0xc0,0x20,0x7d,0x8c,0x40,0x72,0xf5,0x7b,0x40,0x81,0x36,0x54,0xc0,0x98,0xf2,0x35,0xbf,0x59,0xa9,0x54,0xc0,0x72,0xac,0x26,0xc0,0x66,0x54,0x6,0xbf,0x9,0xe9,0x8f,0x40,0x80,0xf9,0x7d,0xbe,0x8,0xf,0x9d,0x40,0xae,0x59,0x9e,0xc0,0x4,0xf,0x83,0xbf,0x36,0x96,0x35,0x3f,0x8a,0xe3,0x13,0xc0,0xf8,0xe5,0x1e,0x3e,0x40,0x80,0x0,0xbd,0x5a,0xbb,0x5f,0x40,0x96,0x52,0x23,0xbf,0x1a,0x7a,0x4a,0xbf,0xed,0xd8,0x36,0x40,0x7e,0x1a,0xe9,0xbf,0x0,0xab,0x4f,0x40,0xbc,0x11,0x87,0x40,0x2,0xf3,0x3b,0xc0,0x2,0x41,0x1e,0x3f,0xb7,0x79,0xa1,0xbf,0x8b,0x38,0x7a,0x40,0x5a,0xa3,0x22,0xbf,0x78,0x39,0x73,0xbf,0xc6,0xbc,0x4f,0x40,0x94,0xb3,0x46,0x3f,0x3c,0x6,0x54,0x40,0x6c,0x60,0xf1,0xbf,0x47,0xba,0x8b,0xc0,0x2a,0x52,0x53,0x3f,0xc8,0x83,0x85,0x40,0xa0,0x95,0x71,0x40,0x7a,0xa,0xa,0xc0,0x9d,0xbb,0x8d,0x40,0xb6,0xcf,0x46,0xc0,0x81,0xbf,0x95,0x40,0x28,0x17,0x98,0xbe,0xad,0xd1,0x23,0xc0,0xa2,0x21,0x8c,0x3f,0x43,0xb6,0x82,0x40,0x35,0xbe,0x4a,0x40,0xd1,0xfc,0x24,0xc0,0xe1,0x56,0x9f,0x3f,0x2f,0x4b,0xf8,0x3f,0xf7,0xf0,0x99,0xbf,0x50,0xf,0x11,0x3f,0x0,0x14,0x97,0x40,0x35,0xd0,0xa9,0xbf,0x6,0xf5,0x77,0x40,0x52,0x2d,0x88,0xc0,0x64,0x43,0xee,0xbf,0xf1,0x51,0x94,0x3f,0xb9,0xc5,0xfd,0xbf,0x10,0xed,0x6f,0xc0,0x80,0x2e,0x53,0xbf,0xc7,0x77,0x18,0xc0,0x99,0x4e,0x1,0x40,0x44,0xbf,0x19,0x40,0x2d,0xff,0x61,0xc0,0xb0,0xfe,0x2f,0x40,0xca,0xee,0x3e,0x40,0xe8,0xe7,0x4d,0x40,0x5c,0xa9,0x4c,0xc0,0x2a,0xc1,0x7d,0xc0,0x68,0xcf,0x2e,0xbe,0x80,0x41,0xde,0x3f,0xd8,0xa7,0x11,0x40,0x7a,0xfd,0x75,0xc0,0xb6,0x87,0x83,0x40,0x67,0xe5,0x9a,0x40,0xac,0x39,0xc9,0xbe,0xb2,0xd2,0x4a,0x3f,0xca,0x14,0x5f,0x3f,0x59,0x4f,0x6d,0xc0,0xda,0x3d,0x98,0xc0,0xf0,0xff,0x45,0x40,0x46,0xc,0x81,0x40,0x40,0x4,0x4,0xbe,0x55,0x20,0x8b,0xc0,0x48,0x49,0x52,0x3e,0xe0,0x82,0x51,0xc0,0xfb,0x2d,0xdb,0x3f,0x3d,0x3e,0x92,0x40,0x8a,0xd2,0x9f,0x40,0xb4,0xe1,0x83,0x40,0xf7,0xf2,0x92,0x3f,0xfe,0x21,0x9d,0x40,0xae,0x81,0x77,0xbf,0xc8,0xb5,0x29,0xbe,0xaf,0xce,0x5b,0xc0,0xfb,0x1a,0x5,0x40,0x61,0xd,0xfa,0x3f,0x4c,0x9e,0x1,0x40,0xe5,0x65,0x66,0x40,0x13,0x63,0x8a,0x40,0x77,0x2e,0x97,0xc0,0x35,0x5b,0xb5,0xbf,0x40,0xce,0x7f,0xc0,0xab,0x2e,0x73,0x40,0xa8,0x5c,0x20,0xbe,0x66,0x43,0x8e,0xc0,0x69,0xd2,0x7,0x40,0xc1,0x24,0x44,0xc0,0xb0,0xb4,0xbd,0xbd,0x3e,0xad,0x2a,0x40,0x88,0xfc,0x31,0x40,0x88,0xdf,0x46,0x40,0xd0,0x34,0xb9,0xbd,0x74,0x6e,0xf9,0xbe,0xd0,0x7e,0x6c,0xbe,0xeb,0xad,0x9d,0xc0,0x65,0x75,0xe3,0xbf,0x90,0x85,0x73,0x40,0xc8,0xbe,0x23,0x40,0x82,0x62,0x92,0xc0,0xc6,0xa3,0x9f,0x3f,0x92,0xff,0x92,0x40,0xd8,0x73,0x7e,0xc0,0xca,0x41,0x0,0xbf,0xc5,0xfc,0x2b,0xc0,0x10,0x5c,0x93,0xbd,0xc6,0x91,0xb,0xc0,0x8f,0x26,0x8c,0x40,0xc4,0x24,0x26,0x40,0x5e,0x3,0x78,0xbf,0xa3,0x91,0x8a,0xc0,0xc2,0x47,0x2a,0xc0,0xe,0x33,0x7,0xbf,0xc8,0x3f,0xac,0x3f,0x3e,0x56,0x1,0xc0,0xc3,0xff,0x43,0xc0,0x88,0x25,0x1d,0xbf,0xf2,0x98,0x7e,0xc0,0x2f,0x79,0x8e,0x3f,0x90,0xb2,0x8f,0xc0,0x54,0xc2,0x59,0xbf,0x6b,0x3,0x86,0xc0,0x46,0xc8,0xfa,0xbf,0x60,0xa2,0x5e,0x3d,0x3a,0x7,0x1b,0xc0,0x48,0xb8,0x51,0xc0,0xda,0x58,0x10,0x3f,0xbb,0x74,0x22,0xc0,0xbc,0xee,0x8b,0x3e,0x32,0x4f,0x88,0x3f,0xe8,0x7b,0x7,0xbf,0x4d,0xd5,0x8b,0xc0,0x76,0x64,0xb6,0xbf,0x30,0xad,0x1,0xbf,0x1c,0x3a,0xbd,0x3f,0x3c,0x15,0x81,0xc0,0x41,0x80,0x5e,0x40,0x1a,0x8,0x9c,0x3f,0xe8,0x8e,0x12,0x3f,0x90,0x93,0x95,0x3e,0xb2,0x8e,0x52,0xbf,0x92,0x85,0xe7,0x3f,0x80,0xf2,0x5e,0x40,0xbf,0x63,0x82,0xbf,0x23,0xc2,0x8,0x40,0xf1,0x67,0x3a,0x40,0xb0,0x44,0x3,0x40,0x40,0xa2,0xc2,0x3c,0xb7,0x1e,0xde,0x3f,0xac,0x2c,0xf9,0x3e,0xf8,0x5,0x4a,0x40,0x5e,0xe4,0xbc,0xbf,0x50,0x52,0x32,0x3f,0x6a,0x9b,0x51,0x3f,0x99,0x37,0x98,0xc0,0xc8,0x6c,0xa2,0x3f,0x88,0x7b,0x5d,0xc0,0x95,0xd5,0x1e,0x40,0x8e,0xf9,0x7e,0xbf,0xef,0x88,0xaa,0x3f,0xf0,0x21,0x7a,0xc0,0xe4,0x2b,0x10,0x40,0x2e,0x3c,0x4e,0x40,0x32,0x7a,0xe4,0x3f,0xeb,0xbc,0xbb,0x3f,0x4c,0xd9,0x38,0xc0,0x9d,0x72,0x8f,0x40,0x18,0xa9,0xb1,0x3f,0xb0,0xbf,0x96,0xc0,0xc0,0xd6,0xcc,0xbd,0x20,0x94,0x11,0x3e,0x36,0xf8,0xda,0x3f,0xd8,0xa7,0x6d,0x3f,0xea,0xbd,0x7a,0x40,0x2a,0x35,0x7,0xbf,0xfc,0xd0,0x52,0xbf,0xe8,0x30,0x61,0xbe,0x62,0x86,0x41,0x40,0xd0,0x58,0x8c,0xc0,0xe1,0xf6,0x79,0x40,0x83,0xe7,0xf3,0xbf,0xe6,0x6c,0x2e,0x40,0xce,0x4f,0x57,0xc0,0xf,0x64,0xe6,0xbf,0xd8,0x38,0x3c,0x3e,0xb4,0xd9,0x14,0xbf,0x96,0xa4,0x4b,0xc0,0x1c,0x5f,0x90,0xc0,0x5e,0x15,0x85,0xc0,0x2e,0xca,0x96,0x40,0xa,0x2c,0x1f,0x40,0x6c,0x37,0xcf,0xbf,0xab,0xdf,0x44,0x40,0xe8,0x32,0x2d,0xbf,0xfc,0x4a,0x90,0xbe,0xc2,0x5f,0x42,0xc0,0x98,0xc3,0x44,0xc0,0x1a,0x75,0x56,0x40,0x66,0xe7,0x9f,0x40,0x64,0x86,0x9e,0xc0,0x28,0x5b,0x1f,0x3f,0x7a,0x8c,0x8f,0x3f,0x56,0xc0,0x2e,0xc0,0x4c,0xe1,0xd,0xc0,0x20,0x57,0x6e,0xc0,0x21,0x26,0xae,0x3f,0xb8,0x1c,0x99,0x40,0xc3,0x26,0xe3,0x3f,0x56,0x3e,0x4f,0xbf,0x4a,0xe7,0x96,0x3f,0x5a,0x2,0x50,0xc0,0xf4,0xca,0x24,0xc0,0x7,0xc1,0xc8,0x3f,0x62,0x93,0x8a,0x40,0xe0,0xaa,0x17,0xbe,0xe0,0x30,0xbc,0xbf,0x4c,0x31,0xf5,0x3e,0x42,0xa0,0x9f,0xc0,0x3c,0x91,0x41,0x40,0x3d,0x8b,0x43,0xc0,0xba,0x63,0xd7,0xbf,0x18,0x80,0x84,0xc0,0x9c,0x92,0xbc,0x3f,0xe6,0xfc,0xa,0xc0,0xa0,0xae,0xba,0x3e,0x10,0xee,0x42,0xc0,0xe4,0xe,0x25,0x40,0xe2,0x91,0x68,0xc0,0xb3,0xf8,0x84,0xc0,0xe3,0xd4,0x96,0xc0,0x6d,0x42,0x8b,0x40,0x24,0xb3,0x16,0x40,0x6a,0x49,0x60,0xc0,0x1,0xd4,0x9d,0xbf,0x4,0x42,0x75,0x40,0x61,0x2a,0xc4,0x3f,0x4f,0x2a,0x91,0x40,0x94,0x5d,0x3d,0xbf,0x38,0x2f,0xf7,0xbe,0xe2,0x88,0x6e,0x40,0xa8,0x33,0x53,0xbe,0x1e,0x40,0x88,0xc0,0xbd,0x97,0x91,0xbf,0x1f,0x1b,0x6d,0x40,0xb6,0x97,0x4,0x40,0xec,0x2c,0x82,0xbf,0x41,0xb4,0x9c,0xc0,0x92,0x10,0x6b,0x40,0xe,0xf8,0x8a,0xbf,0xa3,0x62,0x86,0xbf,0xc2,0x57,0x91,0x40,0x95,0x61,0x2e,0x40,0x4a,0xea,0xc5,0x3f,0x6b,0x7f,0xd8,0x3f,0x10,0x43,0xc0,0x3d,0x50,0x93,0xc1,0x3e,0x46,0xdb,0x26,0xc0,0x2a,0xe8,0xe2,0x3f,0xe4,0xb,0x1e,0x40,0x55,0x48,0x2d,0x40,0x53,0x5,0x22,0xc0,0x70,0xec,0x93,0x3e,0x9c,0xf7,0xa2,0xbe,0x1c,0x86,0x3a,0xc0,0x87,0xc5,0x8a,0x3f,0x70,0xb3,0x31,0x40,0x24,0x69,0xe0,0x3e,0x38,0xd1,0x11,0xc0,0xfc,0x4a,0x80,0x40,0x1a,0x36,0x28,0xc0,0x3e,0x7c,0xf9,0x3f,0x80,0xe9,0x29,0x3d,0xb7,0xe0,0xdf,0x3f,0x62,0x73,0xf7,0x3f,0xd5,0x7c,0x95,0xc0,0xe2,0x2b,0x9c,0x3f,0x0,0xc6,0x63,0xbb,0xd0,0x90,0x80,0xc0,0xed,0xe9,0x48,0x40,0xe4,0x26,0xef,0x3e,0x42,0x41,0xb8,0xbf,0xd0,0xa5,0x63,0xbe,0xfc,0xc4,0x61,0x40,0xc7,0x11,0xef,0xbf,0x67,0xfe,0x2d,0xc0,0xcd,0x29,0xc7,0xbf,0x5d,0x89,0x9b,0xbf,0x1a,0x34,0x7,0x40,0x90,0x44,0x6e,0xbf,0x6a,0xc7,0x13,0x40,0x58,0x4e,0x7e,0xc0,0xb0,0xc4,0x1e,0x3f,0xc6,0x9b,0x77,0x40,0x8c,0xe1,0x7,0xbf,0x25,0x81,0x80,0x40,0x69,0x0,0xc8,0x3f,0x7a,0x12,0x99,0xc0,0xe4,0x0,0x38,0xc0,0x1c,0x9e,0x7e,0x40,0x86,0xc,0x56,0xbf,0xb0,0x6d,0x98,0x40,0xe0,0xa8,0x9b,0xc0,0x2d,0x86,0x2b,0xc0,0x26,0xf2,0x73,0x40,0x58,0x4d,0x93,0x40,0x8b,0xa7,0x91,0xc0,0xb9,0x7b,0xcf,0x3f,0x7,0x7d,0x9d,0xc0,0xcc,0xe9,0x67,0xc0,0xc0,0xd4,0xf,0x40,0x15,0x0,0x1f,0xc0,0x70,0x19,0xc1,0xbe,0xaa,0xfc,0xee,0xbf,0xbe,0x2a,0x90,0xc0,0x66,0x7,0x90,0xc0,0xe8,0xef,0x3,0x40,0x5,0xf,0x43,0x40,0x92,0x88,0x64,0xbf,0xd2,0xaa,0x81,0x40,0x2b,0x53,0x6f,0xc0,0xb2,0x2a,0xa5,0xbf,0xa6,0xb0,0x8b,0xc0,0xfa,0xf8,0x92,0x40,0x8a,0xec,0x71,0x3f,0xf8,0x5,0x22,0x3e,0x4a,0x71,0x21,0xc0,0x94,0x83,0x8f,0xc0,0xfd,0xf1,0x8c,0x40,0x5c,0xc9,0xe,0x40,0x62,0xb3,0x69,0xbf,0xc4,0xae,0x91,0x3e,0xe5,0x1f,0xb4,0x3f,0xa4,0x69,0x17,0xc0,0x5f,0xd,0x9c,0x40,0xe,0x3e,0x42,0x3f,0xf8,0xd9,0x7a,0x3e,0x7e,0xb8,0x48,0x40,0x5,0xd2,0x57,0xc0,0x2,0xeb,0x3a,0x40,0x1f,0xeb,0x6,0xc0,0x4,0xf5,0x79,0xc0,0xbc,0x97,0xba,0xbf,0xe5,0x8,0xfd,0xbf,0xf0,0x3e,0x92,0x40,0x4e,0x8e,0x20,0x3f,0x7a,0x4e,0x5c,0xc0,0xe6,0x6b,0x6e,0xc0,0x70,0x6e,0x20,0xc0,0xca,0x63,0x9e,0xc0,0xa8,0x2c,0x6e,0xbe,0x30,0xa,0x93,0x3d,0x2d,0x11,0x95,0xc0,0x54,0xd5,0x73,0x3f,0x3f,0xed,0x87,0xbf,0x90,0x6c,0x50,0xbf,0x9e,0x1f,0x87,0xc0,0x6a,0x97,0x30,0x40,0xaa,0xd1,0x3a,0xbf,0xae,0x46,0x62,0x3f,0x7c,0x84,0xb3,0x3e,0x1d,0xdd,0xa0,0x3f,0x38,0xe8,0x1d,0x40,0x92,0x0,0x38,0xbf,0x96,0x85,0xac,0xbf,0x20,0x29,0x84,0xbe,0xc6,0xb8,0x84,0xc0,0x35,0x4d,0x8c,0x3f,0x69,0x6b,0x0,0xc0,0x4c,0x1d,0x75,0x40,0x59,0xe6,0x98,0x40,0xbf,0x42,0x9e,0x3f,0x3d,0x9b,0xd6,0xbf,0xa9,0x8e,0xae,0xbf,0x70,0xf2,0x71,0x40,0x4c,0xc0,0x7c,0xbf,0x36,0xb,0x1b,0x40,0x98,0xac,0x62,0xc0,0xce,0x27,0x66,0xbf,0xe,0xa8,0x12,0x40,0x32,0xd2,0x61,0x40,0xe4,0x69,0x8e,0xbe,0x24,0x57,0x13,0x3f,0xd7,0x83,0xb3,0xbf,0x11,0xa5,0x14,0xc0,0xdd,0x88,0x98,0x40,0xa8,0x5c,0x7,0xc0,0x7d,0x51,0xe0,0xbf,0xca,0xd0,0x69,0x40,0xa7,0x51,0x83,0x40,0xfc,0xd6,0xdb,0xbf,0x8f,0x5f,0xed,0xbf,0x2c,0x7b,0x69,0xc0,0xc,0xe8,0x1c,0x40,0x5c,0x29,0x77,0xbf,0x9e,0x0,0x4,0xc0,0x1,0x4c,0x86,0xc0,0x91,0x45,0xbf,0xbf,0x47,0x62,0xce,0x3f,0x64,0x47,0x87,0xc0,0x82,0x69,0x18,0x40,0xd2,0xf1,0x72,0xc0,0x70,0x9e,0x99,0x40,0x4b,0xf,0x5c,0xc0,0x53,0x9d,0x91,0x40,0x18,0x7d,0x58,0xbf,0x77,0x42,0x39,0x40,0x4c,0xc9,0xc1,0xbe,0x72,0xf0,0x1e,0xc0,0xb4,0xad,0x59,0xbf,0xae,0x56,0x4,0x40,0xde,0xa0,0x2a,0x40,0x42,0xcc,0x8e,0x40,0xc8,0x74,0x1f,0x3e,0x5b,0xc6,0xf1,0x3f,0x88,0xaf,0x53,0x40,0x7c,0xeb,0x3,0xc0,0xc8,0x76,0xcf,0xbf,0xe4,0xa8,0x12,0x40,0x90,0x5d,0x9e,0xbf,0x56,0xb7,0xb5,0x3f,0x52,0xa5,0xa,0x40,0xfe,0x37,0x44,0xbf,0x68,0x97,0xb4,0xbf,0x5a,0xd4,0x91,0x40,0xfd,0x70,0xfa,0x3f,0xc9,0x54,0x9b,0xc0,0x9a,0x69,0x96,0xc0,0x40,0xb,0x52,0xbf,0xfa,0x33,0x40,0xc0,0xca,0xa9,0x7e,0x40,0xd8,0x3d,0x6c,0x40,0xda,0xc,0x50,0x40,0x64,0x88,0x83,0x40,0xb1,0x9e,0x70,0x40,0x2,0xd,0x84,0x40,0xd0,0x54,0x37,0x3e,0xcc,0x8c,0x8a,0x40,0x70,0x5,0xd5,0x3f,0xf8,0x9f,0x23,0x40,0xbc,0x3c,0x1f,0xc0,0x46,0xde,0xa,0x40,0x6a,0x4b,0x86,0xc0,0xe0,0x92,0xb9,0x3d,0x23,0x2f,0x32,0xc0,0xe4,0xdf,0xef,0x3e,0xca,0x80,0x2,0x3f,0x5a,0x9f,0x8,0xbf,0x2b,0x22,0x9f,0x40,0xb6,0x48,0x94,0xc0,0x27,0x4f,0x9d,0xc0,0x5c,0x8e,0xa6,0x3e,0xfc,0x91,0x52,0xc0,0x28,0x62,0x54,0xc0,0x48,0x8b,0x3f,0xc0,0x6,0xe8,0x80,0x40,0xdc,0x95,0x4b,0xc0,0xdc,0x9c,0x83,0xc0,0xf9,0x84,0x65,0x40,0xc4,0xc5,0x4d,0xc0,0x8e,0x73,0xf,0xbf,0xee,0xe4,0x40,0xc0,0xb0,0x69,0xbd,0x3f,0xdd,0xe7,0x89,0x40,0x20,0x4d,0x41,0xc0,0x88,0x90,0x68,0xc0,0x7a,0x24,0x6,0x40,0x86,0x48,0x42,0xc0,0x36,0xb5,0xf5,0x3f,0x74,0x98,0x45,0x40,0xa4,0x51,0x72,0x40,0x6e,0xc4,0x24,0x3f,0x36,0xff,0x92,0x40,0x32,0xfa,0xaa,0xbf,0x40,0x1f,0x36,0x40,0x2d,0x89,0xc6,0xbf,0xe0,0x1,0x2d,0xc0,0xa6,0x62,0xbf,0x3f,0xf4,0xb4,0x2d,0x40,0x2e,0x7a,0x16,0x40,0xe8,0x27,0x51,0x40,0x0,0xff,0xcd,0xbc,0x76,0x5b,0xfb,0x3f,0x28,0x50,0x64,0x40,0x10,0xb3,0x5a,0xc0,0x90,0x30,0x78,0xbf,0xcc,0x2e,0x46,0x40,0x8e,0x64,0x69,0xbf,0x14,0xd,0x87,0x40,0x54,0x87,0x14,0x40,0xec,0x3a,0x6,0xc0,0x9c,0x1,0x7b,0x40,0x2e,0x69,0xf9,0xbf,0x76,0xe6,0x4f,0x40,0xf6,0xb,0x7b,0x40,0xb8,0x44,0x46,0x40,0x20,0x6a,0x79,0x40,0x80,0x5c,0xcd,0x3e,0x87,0x0,0x88,0xc0,0xfc,0x1f,0x7a,0x40,0xc,0x2,0xf6,0x3e,0xf8,0x1e,0xfc,0xbf,0x6c,0x32,0x45,0xbf,0x4d,0xbf,0x3b,0xc0,0xb9,0x70,0xf,0x40,0x63,0xf2,0x99,0xc0,0xda,0x57,0x14,0x40,0x49,0xe8,0x97,0xc0,0xa1,0xa4,0x1b,0xc0,0x90,0x76,0x5a,0x40,0x2a,0xc6,0x43,0xbf,0xeb,0xc6,0x5e,0x40,0x60,0x28,0x7e,0x40,0xb2,0xa2,0xc8,0xbf,0x90,0x0,0x92,0x3d,0x2,0xfb,0x72,0xc0,0x17,0xc6,0xc2,0xbf,0xb7,0x88,0xf6,0x3f,0x74,0x72,0xb9,0xbf,0x9c,0x88,0x82,0x40,0xba,0xb0,0x2b,0x40,0x20,0x9c,0x4c,0x40,0x80,0x70,0x7a,0x40,0x4,0x29,0xaa,0x3e,0x80,0xf9,0x46,0xbe,0xe8,0xba,0x7c,0xbf,0x9a,0xf4,0x94,0x40,0x3e,0xfe,0x5b,0x40,0xe4,0xb,0x74,0xc0,0x95,0x39,0xb3,0x3f,0x87,0xc3,0xaf,0xbf,0xa9,0x70,0x87,0x40,0xd,0x7b,0x38,0xc0,0x14,0x31,0x79,0xc0,0x6d,0xe1,0x8d,0x3f,0xa6,0x11,0x5b,0xc0,0x49,0x76,0x8b,0x40,0xb2,0xd5,0x94,0x40,0x18,0x8d,0x5f,0xc0,0x9a,0x28,0x58,0xbf,0xe8,0xf,0x23,0xbf,0x4,0x84,0x94,0xc0,0x2b,0x4b,0x72,0xc0,0x0,0xf2,0x94,0x40,0xb0,0x7f,0x6b,0x40,0x38,0x61,0xe3,0xbf,0x7,0x82,0xf3,0x3f,0x29,0x91,0x8b,0xbf,0xd4,0x81,0x47,0x3f,0x7c,0xa6,0xaa,0xbe,0x6,0xdc,0xe0,0x3f,0x7f,0x47,0x2c,0xc0,0xe,0x1e,0x8a,0x40,0x60,0x34,0x5e,0xbf,0xa0,0xaf,0x9d,0x40,0xb8,0xa1,0x31,0xc0,0xc0,0xaa,0x64,0xbf,0xf2,0x5b,0x66,0x40,0x54,0x28,0x93,0xc0,0x93,0x95,0x90,0x3f,0x32,0x14,0x13,0x40,0xb8,0x9d,0x6a,0xbe,0x5c,0xca,0x74,0xc0,0x66,0x8f,0x54,0xc0,0xb8,0x76,0x19,0x40,0x84,0xb8,0x9b,0xc0,0x98,0x6f,0x3d,0xc0,0x1f,0x1a,0x55,0x40,0x40,0xee,0xa3,0xbf,0xe3,0x75,0x9b,0xc0,0xb6,0x6f,0x6,0xc0,0xfc,0x6f,0x22,0x3f,0x38,0x83,0xfd,0xbf,0xcf,0x7d,0x19,0xc0,0xe,0xf1,0x36,0xc0,0x80,0x72,0x87,0x40,0x76,0xa2,0x84,0x40,0xa2,0xb9,0x5a,0xc0,0xf,0x5a,0x52,0x40,0x19,0xd6,0x98,0x40,0x58,0x33,0xfb,0xbf,0xb4,0x5c,0xf8,0x3f,0x31,0x10,0x9f,0xc0,0x86,0x16,0x82,0x40,0x5c,0xe8,0x28,0xc0,0xa2,0xa5,0x8a,0xc0,0xb3,0xc2,0x45,0xc0,0xf9,0xf0,0x9b,0xc0,0xba,0x56,0x8e,0x40,0x99,0xea,0x90,0xc0,0x87,0xc7,0x87,0xc0,0x7f,0xe1,0xc1,0x3f,0x32,0x9b,0x36,0x40,0x7f,0x9,0x15,0xc0,0x6e,0xe1,0x19,0x40,0x74,0x87,0xb,0xbf,0xe2,0x37,0x60,0xc0,0xbb,0x1d,0x10,0x40,0xd8,0x97,0x21,0x40,0x22,0x22,0x93,0xc0,0x26,0xc2,0x8a,0xc0,0x5a,0x43,0x14,0xbf,0x2a,0x60,0x7a,0xc0,0x3e,0x3c,0x73,0xc0,0x6,0xf0,0x47,0x3f,0xdc,0xe9,0xc0,0x3e,0xfc,0x3e,0xe7,0x3f,0x16,0x47,0x3e,0xc0,0x88,0x55,0x12,0xc0,0xc8,0xd3,0x9a,0xc0,0xc0,0xc8,0x2d,0x40,0x56,0x2,0x8b,0xc0,0x6e,0xf2,0x6e,0x3f,0x10,0x3,0x6f,0x40,0xa7,0x61,0xfb,0x3f,0xdc,0x9b,0x39,0x40,0x6e,0x91,0x86,0x40,0xc0,0xde,0x35,0x3d,0xc1,0x3a,0xfe,0xbf,0x80,0x19,0x4a,0x3d,0xdb,0x7,0x80,0xc0,0xb6,0x75,0x49,0xc0,0xce,0xa6,0x25,0x40,0xb7,0xf8,0x56,0x40,0xd7,0x5b,0xb,0x40,0x1c,0x89,0x89,0xc0,0xfe,0xdd,0x5a,0xc0,0xa8,0x25,0x83,0x40,0x14,0xca,0x99,0x3e,0xac,0x96,0x69,0xc0,0xe6,0xd2,0x7a,0x3f,0x96,0xec,0x31,0x40,0x48,0x46,0x32,0x40,0x7f,0x8f,0x5c,0x40,0xe9,0x22,0xf,0xc0,0x7c,0x7,0x36,0x40,0xa2,0xe5,0x62,0xc0,0x4e,0x4a,0x23,0x40,0x1a,0xf5,0x74,0xc0,0xe0,0xc5,0x10,0x3d,0x3f,0x4,0x8f,0x40,0x28,0xbf,0x68,0x40,0xc9,0x95,0x11,0x40,0xf0,0x93,0xad,0x3e,0x4c,0xad,0x30,0x40,0x40,0xa1,0x61,0x3d,0xe,0xd2,0x82,0x40,0xf4,0x7b,0x32,0x40,0x1b,0xe2,0x9d,0x40,0x3b,0x71,0xd0,0xbf,0x70,0xe5,0x27,0x40,0xba,0x5d,0x6c,0x40,0x22,0x97,0x1b,0x40,0xf5,0x6e,0x34,0xc0,0x9f,0x88,0xeb,0x3f,0x90,0x1e,0x1e,0xc0,0xc4,0x4b,0x8c,0xc0,0x51,0x33,0x8a,0x40,0xc7,0xd4,0x96,0xc0,0xec,0xbf,0x8c,0x40,0x5f,0xe2,0x8b,0xbf,0xa3,0xdc,0xc0,0xbf,0xba,0x13,0x5c,0xc0,0x51,0xc8,0xe5,0xbf,0x7a,0xe1,0x8f,0x3f,0x6a,0x83,0x25,0xc0,0x5d,0x1f,0x8e,0x40,0x7a,0xa,0xd0,0x3f,0xa4,0x9d,0x85,0x40,0x65,0x9f,0x81,0xc0,0xf7,0xfd,0x2a,0xc0,0x60,0xe6,0xc2,0xbd,0x85,0x17,0xc7,0xbf,0xb9,0x59,0x5d,0xc0,0x54,0x95,0x7,0xc0,0x80,0x7c,0x8d,0xc0,0xec,0x7b,0x8e,0x40,0x4a,0xa5,0x33,0x40,0xdd,0x2e,0x86,0xc0,0x48,0x4d,0x56,0xc0,0x3c,0xb1,0x8d,0x40,0xd5,0x91,0x83,0x40,0x41,0xf5,0x91,0x3f,0x85,0xef,0x5,0xc0,0xa,0xd9,0x7,0x40,0xd7,0xa0,0xc3,0x3f,0xe3,0x7f,0xec,0xbf,0x2a,0x9e,0x96,0x3f,0xa3,0x95,0x7d,0x40,0x8c,0x44,0x81,0x40,0xec,0xe3,0x85,0xc0,0x68,0x6,0xeb,0x3f,0xe4,0xf2,0x9b,0xbe,0xa2,0x46,0xc,0x40,0x7e,0x6b,0x1a,0xc0,0x86,0x62,0xf3,0xbf,0xce,0x4,0x75,0x40,0x6d,0xda,0x50,0x40,0x93,0xdd,0xc5,0x3f,0xfe,0xfe,0x87,0x40,0xcc,0x6c,0x64,0xc0,0x0,0x16,0x8f,0x40,0xd0,0x18,0x9a,0xc0,0x3e,0xe9,0x1b,0x40,0xb8,0xf1,0x27,0x40,0x3e,0xff,0x67,0x40,0x26,0x9a,0x3e,0x40,0xfc,0x48,0x5b,0x40,0xac,0x2a,0x80,0x40,0xc9,0x8,0x92,0xc0,0x4,0x6b,0x8d,0x40,0xe2,0xa7,0xed,0xbf,0x2e,0x2c,0xc3,0x3f,0x19,0x14,0x8c,0xc0,0xc7,0x92,0x97,0xc0,0x1e,0x3f,0x63,0x40,0xd7,0x7e,0x95,0xc0,0xcd,0x4a,0xc9,0x3f,0xe8,0xa7,0x6e,0x40,0x7a,0x1b,0x5d,0x40,0x38,0xac,0x33,0xc0,0x60,0x9d,0xd4,0x3e,0x8e,0x7c,0x60,0x40,0x37,0x90,0x98,0xc0,0xfe,0x5,0x21,0xbf,0x79,0x13,0x86,0xc0,0xca,0x2e,0x91,0xc0,0xaa,0x83,0x1a,0xc0,0x24,0xb8,0x7,0xc0,0xf7,0xbe,0x9f,0x40,0x50,0x6,0x8b,0x3d,0x16,0x86,0xef,0xbf,0xc0,0x91,0xad,0x3d,0x94,0xaa,0x10,0x40,0x2c,0x2e,0x95,0x40,0x30,0xbf,0xe7,0x3e,0x5a,0xa2,0x75,0x40,0xec,0xd,0xd3,0x3e,0xff,0x87,0x4d,0x40,0xd9,0x1e,0x8f,0xc0,0xc4,0x3d,0x7b,0x40,0x2a,0xc,0xdd,0xbf,0xdc,0x16,0x7,0xc0,0xde,0xe3,0x56,0xc0,0x14,0x94,0x4,0x40,0x52,0x3b,0x8c,0x40,0x5e,0x9c,0x22,0x40,0xc8,0x7c,0x28,0x40,0x9a,0x13,0x1a,0xc0,0x78,0x71,0x74,0xc0,0xf0,0x87,0xbe,0x3d,0xd,0x9b,0xc5,0xbf,0x6e,0xf8,0x34,0x40,0x4e,0x45,0xb2,0x3f,0x30,0x5e,0xdf,0xbe,0xcc,0x65,0x69,0xc0,0x54,0x5b,0x18,0x40,0x36,0xb5,0xfa,0xbf,0xfc,0xdc,0xa3,0x3e,0xa5,0x80,0xa2,0xbf,0xfa,0xbf,0x90,0x40,0xec,0xf0,0x2b,0x40,0xb2,0xaf,0x2a,0xc0,0xfe,0x25,0x7e,0x3f,0xc4,0x99,0xfb,0xbf,0xc,0x90,0x81,0xbf,0x59,0xb3,0x45,0x40,0x8c,0xf1,0xa4,0xbe,0xf8,0xc3,0x98,0x3e,0xea,0xc6,0x84,0x40,0xfa,0x71,0xb6,0x3f,0x44,0x42,0x17,0x40,0x4,0xb6,0x2b,0xc0,0x34,0x97,0x8b,0x40,0x7e,0x13,0x1e,0x40,0xf8,0x23,0x39,0xc0,0x42,0xa2,0x8d,0xc0,0xee,0xb1,0x5c,0xbf,0xee,0x1c,0x90,0xc0,0xb8,0x90,0x4a,0x3f,0x36,0xf9,0x65,0x40,0xda,0x75,0x5a,0xc0,0x92,0xea,0x91,0xc0,0xec,0x93,0x48,0x40,0xde,0x92,0x4c,0xc0,0xca,0x4a,0xb,0x3f,0x13,0x75,0xb8,0xbf,0xf,0xd3,0x29,0x40,0xee,0xe,0x80,0x40,0x7a,0x98,0x6a,0x40,0xe,0x3,0x9e,0xc0,0xf4,0x6,0xa,0xc0,0x32,0xf2,0x97,0x40,0xf6,0xe3,0x63,0x40,0x66,0xbe,0x2f,0xc0,0xcc,0xb1,0x8b,0xc0,0xa4,0x47,0x52,0x40,0x7e,0xce,0x8f,0xbf,0x23,0x4d,0x5a,0x40,0x84,0xe7,0x1a,0xc0,0x88,0xcf,0x90,0x40,0x6,0x5f,0x1d,0x40,0x78,0x9d,0x9e,0xbf,0xb5,0x8a,0xb5,0xbf,0x6b,0xe,0x9f,0x40,0xdf,0x30,0xfe,0x3f,0xcf,0x62,0x57,0xc0,0x4d,0xb1,0x49,0x40,0x25,0x3c,0x64,0xc0,0x50,0x1c,0x93,0xbd,0x99,0x10,0xf1,0xbf,0x1d,0x27,0x99,0xc0,0x26,0xe9,0x82,0x40,0x99,0xa3,0x80,0x40,0xb2,0x95,0x3a,0x40,0x24,0x1c,0x7b,0xbf,0x10,0x4d,0xf2,0xbf,0x61,0x87,0xd5,0xbf,0xa3,0x3b,0x4b,0x40,0xc2,0x52,0x88,0x40,0xf7,0x8,0x83,0x40,0xe9,0x4e,0x8b,0xbf,0xb,0xd3,0xdf,0x3f,0x38,0x1c,0x49,0xbf,0xb2,0x57,0xc3,0x3f,0x52,0xbd,0x60,0x3f,0x3c,0xc8,0x85,0xc0,0xe6,0x28,0x7c,0x40,0x86,0x2e,0x32,0xc0,0x8c,0xe5,0xec,0xbe,0xc6,0x98,0x3c,0xc0,0x50,0x8a,0xd9,0xbf,0x8,0xfa,0x74,0x40,0xc,0x84,0x6a,0x40,0x95,0xd7,0x88,0x40,0xb3,0xc,0x8b,0xc0,0x7c,0xed,0x83,0x40,0xe0,0xa6,0x4d,0xc0,0x98,0x44,0xb9,0xbe,0x6e,0xba,0x7e,0x40,0x1e,0x2f,0x2d,0x3f,0xf0,0xd2,0xe6,0x3f,0xb8,0x60,0x91,0x3f,0x3d,0xd0,0x83,0xc0,0x2b,0xec,0xd,0xc0,0x69,0x11,0xc6,0xbf,0x80,0x79,0xe7,0xbd,0xc0,0x33,0x18,0xbd,0xf4,0xa2,0x4c,0xc0,0xdc,0x97,0x53,0x40,0x48,0x82,0xd0,0x3e,0x5b,0x82,0xfe,0x3f,0xd,0x9f,0xb2,0x3f,0xb2,0xfd,0x98,0xc0,0x78,0x7b,0x31,0x3f,0x8a,0xa3,0x96,0xc0,0xbe,0xa1,0x8b,0x3f,0x5c,0xad,0x91,0x40,0x84,0xc2,0x6f,0x3f,0x8a,0x25,0x11,0x40,0x1f,0xcb,0x3,0x40,0xea,0xd7,0x62,0xbf,0x38,0x88,0x1e,0x3e,0x24,0xb3,0xd2,0x3e,0x19,0x92,0x6a,0x40,0x9,0xe3,0x15,0x40,0xc9,0xa0,0x8a,0x40,0x39,0x6b,0x30,0xc0,0xe4,0x8a,0x38,0xc0,0xee,0x8c,0x4d,0xc0,0x30,0xc3,0x77,0x40,0xf2,0xe,0x9,0xc0,0x5b,0x7e,0x55,0x40,0x32,0x3a,0x59,0xbf,0xf2,0x46,0x85,0xc0,0xdc,0x6f,0xa4,0xbf,0x0,0xd5,0x4a,0xbc,0x14,0x31,0xfb,0x3f,0xbe,0xa1,0x99,0xc0,0x91,0xf,0x87,0xc0,0x8b,0x91,0x2b,0x40,0x34,0xc,0x30,0xbf,0x38,0xbf,0x64,0xbf,0x4e,0xf9,0x6c,0xc0,0x91,0xf7,0x37,0x40,0xc0,0x7f,0x82,0x40,0x67,0xe2,0xba,0xbf,0x4b,0x15,0x95,0x40,0x58,0x9c,0x93,0xc0,0x2e,0x83,0x57,0xc0,0x33,0x6c,0x35,0x40,0x64,0xd3,0x3d,0xc0,0xd6,0x4b,0x5,0x40,0x86,0x9d,0x27,0xc0,0x2b,0x43,0x86,0xc0,0xd4,0x21,0x52,0x3f,0xe3,0x8a,0x2a,0x40,0x1b,0xc8,0x37,0xc0,0xfa,0xdb,0x3,0xbf,0xad,0xb,0x92,0x3f,0x28,0xb4,0x9d,0x40,0x7,0xdc,0x80,0x3f,0xdc,0x3b,0x9c,0x3e,0x6c,0x93,0x18,0xc0,0xd2,0xcb,0xe,0xbf,0x76,0xd3,0xb,0x40,0x72,0x98,0x8c,0x40,0x15,0xcc,0xeb,0xbf,0x17,0xa9,0x7d,0x40,0xf0,0x3,0x59,0xc0,0x8,0xfb,0xe2,0x3f,0x9d,0x92,0x97,0xc0,0x82,0x3a,0x9e,0x40,0xca,0x3,0x61,0x40,0x48,0xaf,0x43,0x40,0xc7,0x8,0xc1,0xbf,0xd2,0xbc,0xed,0x3f,0x2c,0x2f,0x51,0xbf,0xab,0x90,0xeb,0x3f,0xff,0x8,0x54,0x40,0xda,0x31,0x86,0x40,0xb8,0x63,0xa2,0x3e,0x7,0xe4,0x11,0x40,0xe5,0x78,0x49,0xc0,0xea,0x45,0x1,0x40,0x80,0x31,0xe4,0xbc,0x10,0xbf,0xfd,0xbd,0x53,0x88,0x6c,0xc0,0x6c,0x17,0x44,0x40,0xcd,0x2a,0x98,0xc0,0xab,0xb4,0x29,0xc0,0x2b,0x77,0x95,0x40,0x8e,0x26,0x93,0x40,0xa0,0xf1,0x2c,0x40,0x9a,0x45,0x45,0xc0,0xe8,0xbf,0x98,0x40,0x6f,0xf1,0xb7,0xbf,0x40,0x7f,0x65,0xbf,0x6e,0x9f,0x51,0x40,0x32,0x7e,0x1,0xbf,0x38,0x56,0xdf,0xbe,0xad,0x42,0x8d,0x3f,0xfa,0x9b,0x97,0x40,0x18,0xc3,0x69,0x40,0x6f,0x9e,0x5d,0xc0,0x4c,0x26,0xa1,0x3e,0x22,0x3c,0x30,0xbf,0x5d,0x75,0x91,0x3f,0xec,0x49,0x2b,0x3f,0xcc,0x44,0xf3,0x3f,0x2a,0xf,0x3f,0xc0,0x20,0x7,0x58,0xbf,0xa4,0x83,0x25,0x3f,0x9a,0xda,0x64,0xc0,0x59,0xa7,0x90,0x3f,0xeb,0x4e,0x8e,0xc0,0x56,0xab,0x4b,0xbf,0x10,0xc5,0x93,0xbf,0x58,0x40,0x28,0x40,0x20,0x28,0x41,0xc0,0xfc,0x85,0xf0,0xbf,0xae,0x88,0x4f,0x40,0x8a,0x2b,0x29,0x40,0xdc,0x3d,0x95,0x40,0xa,0x6d,0x4e,0xbf,0xa0,0x36,0xb0,0x3e,0xbe,0x49,0x33,0xc0,0x3a,0x19,0x6a,0x40,0x2e,0x97,0x94,0x40,0x46,0x68,0x62,0x40,0x8e,0xea,0x3,0x40,0x92,0x8c,0x33,0xc0,0xdc,0x48,0x1b,0xc0,0xd2,0x5,0x6b,0xbf,0x9f,0x6c,0x32,0x40,0xb0,0xda,0xd3,0xbe,0x7c,0xb8,0x13,0xbf,0xf8,0x9a,0xa3,0x3f,0x77,0xd9,0xef,0x3f,0x48,0xc4,0x72,0xbf,0x42,0xd,0x38,0xc0,0xa4,0xa1,0x8f,0x40,0x7e,0xa7,0x2c,0xc0,0xd,0x69,0x8d,0x40,0x4e,0x8,0x91,0xc0,0x8,0x55,0x77,0xc0,0xc5,0xef,0xbd,0xbf,0xb2,0xd0,0x42,0x40,0x30,0xef,0x8,0x40,0x58,0x50,0x4,0x3f,0x88,0xd2,0x1f,0x3f,0x90,0x74,0xd2,0xbd,0xdf,0x47,0x76,0xc0,0x33,0x26,0xc4,0xbf,0xcd,0x14,0x91,0x3f,0x71,0xd2,0x13,0xc0,0xf9,0x73,0x98,0x40,0x7e,0x6a,0x5a,0xbf,0xc1,0xf3,0x95,0xbf,0xbb,0xe0,0x2e,0xc0,0xf0,0xff,0x22,0x40,0x3a,0x80,0x9a,0x40,0xa4,0x79,0x8d,0x40,0x56,0x2b,0x91,0xc0,0x40,0x5d,0xdf,0xbe,0xa5,0xa6,0x8b,0xbf,0xf2,0xd,0xa0,0xbf,0x3b,0x2b,0x90,0xc0,0x9a,0xd4,0x9f,0x40,0x1e,0x8f,0x81,0x40,0xa,0x34,0x61,0xc0,0xc,0xbb,0x49,0x40,0x2,0xaf,0xbc,0xbf,0x5a,0xfe,0x91,0x40,0xe0,0x5a,0x17,0xbe,0xbc,0x14,0x27,0x40,0xd0,0x62,0x9f,0xbe,0x9a,0x47,0xbe,0xbf,0xd5,0xa,0x94,0xc0,0xf7,0x3f,0x70,0xc0,0xb2,0x1d,0x97,0x40,0xba,0x70,0x94,0x40,0x2f,0xb0,0x99,0x40,0x92,0x57,0x68,0x40,0x1b,0x32,0x90,0xc0,0x8a,0x85,0x4c,0xc0,0x60,0x18,0x8c,0x3f,0x17,0xdc,0x93,0xc0,0xc0,0x83,0x45,0xbe,0xa5,0x9d,0xd0,0x3f,0x44,0xe9,0xc7,0xbf,0xca,0xf3,0x5c,0x3f,0x8c,0xd9,0xb2,0x3e,0x53,0x1f,0xf6,0xbf,0x70,0x91,0x19,0x3f,0xc6,0xe4,0x86,0x3f,0x93,0xdd,0x85,0xc0,0xbe,0x81,0x93,0x40,0x66,0xdd,0x9e,0x40,0x86,0x75,0x83,0xc0,0x73,0x57,0x99,0xbf,0xd0,0xa,0xe,0xbe,0x80,0xed,0x2f,0xbd,0xc4,0xea,0xe1,0xbf,0xe0,0x1a,0xaa,0x3e,0x95,0x9d,0xbd,0x3f,0x6,0x4d,0xc0,0x3f,0xca,0x56,0x34,0x40,0xc,0xd3,0x72,0x3f,0x95,0xe0,0xd9,0x3f,0x54,0x82,0x2b,0xbf,0xd3,0xb,0xa8,0xbf,0x9c,0x86,0x13,0x40,0x82,0x14,0x7c,0x40,0xe0,0xcf,0x56,0x3d,0xa0,0x2f,0x78,0xc0,0xab,0x3a,0xce,0x3f,0x23,0x68,0x7b,0xc0,0x82,0x12,0xcf,0x3f,0xee,0x90,0x98,0x40,0x1e,0x7e,0x58,0xc0,0x66,0x1,0x31,0xbf,0x49,0xe4,0x95,0x40,0x7e,0x4d,0x1,0x40,0x88,0xe4,0x98,0x40,0x2e,0xe8,0x16,0xc0,0x8c,0xd4,0xf,0xbf,0x0,0x21,0x5b,0xc0,0x99,0x9a,0x2d,0xc0,0x58,0x96,0x89,0x3f,0x5a,0x98,0x81,0x40,0x1c,0x5,0x8f,0x40,0xf2,0x64,0xee,0xbf,0xe3,0xb1,0x87,0x40,0x8e,0x44,0x64,0xc0,0x34,0xdb,0x95,0xc0,0x0,0xe3,0x28,0x3f,0xce,0xe,0x95,0x40,0x26,0xc6,0x74,0x40,0x2e,0x7c,0x69,0xc0,0x1e,0x70,0x85,0xbf,0x4c,0x91,0x8d,0x40,0xe0,0x5b,0x27,0x40,0x90,0x72,0xd9,0x3d,0xe7,0xd9,0xe,0xc0,0x42,0xa0,0x4a,0x40,0xf1,0x21,0x87,0x40,0xd0,0xa1,0x4e,0x40,0x7a,0x81,0x6,0x40,0x96,0xa6,0x10,0xc0,0x34,0x77,0x9b,0xc0,0x7a,0x2c,0x90,0x40,0xb3,0x8e,0x95,0x3f,0x66,0x6b,0x21,0x3f,0x1,0xf0,0xef,0x3f,0xc,0x5c,0xf1,0xbf,0x33,0xee,0x67,0xc0,0x5e,0xaf,0x2e,0x40,0x34,0x59,0x1a,0xbf,0x66,0x1c,0x99,0xc0,0xcc,0x92,0x70,0xbf,0x38,0x57,0x40,0xbf,0xbf,0xa1,0x69,0xc0,0xfa,0x57,0x7d,0xc0,0xc4,0xfc,0x93,0xbf,0x2b,0xea,0x84,0xc0,0xc5,0x97,0x22,0x40,0xf,0x88,0x9a,0xc0,0x26,0x3e,0x11,0xc0,0x87,0xda,0x68,0xc0,0x56,0x89,0xe3,0xbf,0x6f,0xbb,0x9e,0xc0,0xce,0x4b,0xb3,0xbf,0x80,0x3e,0x54,0xc0,0x45,0xb9,0x44,0x40,0xf,0xab,0x85,0xc0,0x7d,0x1d,0x96,0x40,0xe0,0x83,0x96,0x40,0x6c,0x77,0xa8,0x3f,0x38,0xee,0xe7,0xbe,0xc,0x97,0x3d,0xc0,0x56,0x39,0xe,0xc0,0xe,0x82,0x58,0xc0,0x3a,0xb3,0x41,0x3f,0x46,0xbe,0x97,0x40,0x69,0x15,0xd6,0xbf,0x86,0xd1,0x4,0xc0,0xdd,0x16,0x8e,0x3f,0x56,0xc0,0x95,0xc0,0xf1,0x89,0xd9,0xbf,0x70,0xa4,0x5e,0xc0,0x60,0x52,0x66,0xc0,0x2a,0x3c,0xc1,0xbf,0xac,0x7b,0x78,0x40,0x85,0x24,0x8,0x40,0x67,0xff,0xb1,0x3f,0x89,0x5b,0x85,0x40,0xb4,0xd9,0x3a,0x40,0x20,0x7f,0x71,0xbd,0x19,0x8e,0x9e,0x3f,0x2,0xa2,0x30,0xbf,0x80,0x76,0x1c,0x40,0x39,0x82,0x8f,0x3f,0x73,0x9b,0xff,0x3f,0x4d,0xaf,0x95,0xc0,0x1c,0x81,0x2d,0xbf,0x26,0x25,0x2a,0x40,0x2f,0x90,0xef,0x3f,0xf8,0x85,0x9f,0x3f,0x15,0x22,0x2,0xc0,0x58,0x3e,0x4f,0x40,0xf7,0x1,0x89,0xbf,0x82,0xa9,0x2d,0xc0,0x72,0x85,0x64,0xc0,0x60,0x36,0x34,0x3d,0x2c,0xae,0x7c,0xc0,0x8,0x31,0x48,0x40,0xac,0x35,0x2a,0x3f,0x11,0x8a,0x87,0xbf,0x3c,0x4f,0x8a,0x40,0xa0,0xed,0xb2,0xbd,0xfa,0x63,0x17,0x3f,0xcc,0xc7,0x51,0x40,0x42,0x53,0x58,0x3f,0x40,0x26,0xcb,0x3c,0x7d,0x59,0x92,0x40,0x75,0xc1,0x75,0xc0,0x88,0x31,0x1e,0x40,0x58,0x4b,0xa2,0x3f,0x92,0x6f,0x46,0xbf,0x9d,0x3b,0xd1,0x3f,0x1c,0xb2,0xd1,0x3e,0x3c,0x6,0x47,0xc0,0xc0,0x43,0x58,0xc0,0x5c,0xa0,0x20,0xc0,0xae,0x6f,0x90,0x40,0x9a,0xe3,0x79,0x40,0x6c,0xdd,0x8,0xbf,0xf4,0x84,0x21,0x40,0x76,0xc9,0x41,0x40,0xf6,0xd0,0x86,0x40,0x22,0x84,0xa9,0x3f,0x7b,0x26,0x74,0x40,0x79,0x6c,0xab,0xbf,0xda,0xad,0x86,0x3f,0xdc,0xf4,0x42,0xc0,0xf6,0x9e,0x85,0xc0,0x8b,0xb7,0x8a,0xbf,0xa8,0xcf,0x80,0xc0,0x1d,0x90,0xd4,0x3f,0x9c,0x31,0x52,0x40,0xc8,0xa2,0x80,0x3f,0xc0,0x24,0x99,0xc0,0xf7,0xe9,0x7,0x40,0xe,0xd3,0x8e,0x40,0x22,0x67,0x4b,0x3f,0xde,0xdf,0x90,0xc0,0xb8,0xce,0x82,0xbf,0xf8,0x4e,0x9b,0x40,0x83,0x33,0x37,0xc0,0xbc,0xe0,0x76,0xc0,0xc8,0x81,0x6c,0x40,0x42,0xba,0x76,0x40,0xe0,0x46,0x71,0x3d,0xe8,0xbd,0x95,0x40,0xfe,0x8,0x8a,0xc0,0xe,0x10,0x45,0x40,0xa1,0xeb,0x96,0xc0,0xf9,0xa6,0xc3,0xbf,0xde,0xae,0x7e,0x40,0xbd,0x4a,0x1d,0xc0,0x43,0x1d,0x6f,0xc0,0x58,0xd,0x60,0x3f,0x20,0xa,0x9f,0x40,0x4a,0x3d,0xeb,0xbf,0xdf,0x5,0x8e,0xc0,0x62,0x8a,0x35,0x40,0xeb,0xfa,0x82,0x40,0x72,0x8,0x4d,0xc0,0xe8,0x10,0x22,0xc0,0xfa,0x3a,0x1a,0x40,0xed,0xe1,0x8f,0x3f,0x8,0x13,0x76,0xc0,0xe6,0xa6,0x79,0xbf,0x8c,0x33,0x6a,0x3f,0x16,0x18,0x1,0x3f,0x1c,0x95,0x6c,0x40,0xea,0xe0,0x2c,0x40,0x4a,0xdf,0x5,0x3f,0xd0,0x1b,0x63,0x40,0x1a,0x21,0x97,0xc0,0xb0,0x7d,0x5b,0x3f,0x98,0x3d,0xe,0xbe,0x7c,0xb9,0x4b,0xc0,0xc,0x8f,0x61,0xbf,0x25,0xbc,0xc3,0xbf,0x4b,0xd3,0x99,0xc0,0x2c,0xaf,0xbf,0x3e,0x10,0x76,0x9f,0x40,0x3b,0x65,0x57,0xc0,0xae,0xe6,0x12,0xbf,0xd1,0x1e,0x92,0xbf,0xd6,0xba,0x32,0xc0,0x22,0x1e,0x10,0x40,0x6a,0x30,0x99,0xc0,0x6f,0xc5,0x9c,0x40,0x89,0x27,0x85,0xc0,0x50,0x5b,0x6,0xbf,0x6,0x3d,0x62,0xc0,0xaa,0x8c,0x50,0xc0,0x3e,0x3c,0x75,0x40,0xde,0x3d,0x77,0xbf,0x58,0x28,0xe,0x40,0x36,0xef,0xde,0xbf,0x0,0x83,0xe0,0x3d,0x0,0x21,0x22,0xc0,0x1d,0x2a,0x87,0x40,0xf1,0xb,0x9d,0xc0,0xa8,0x7a,0x7a,0xbe,0xc6,0xc0,0x88,0x40,0xae,0x3,0x64,0xc0,0x7e,0xe6,0x47,0xbf,0x72,0x6f,0x66,0x3f,0x69,0x7e,0x9a,0x40,0x70,0x81,0xbd,0x3d,0x1a,0x3f,0x80,0xc0,0xaa,0x5b,0x60,0xc0,0x3a,0xac,0x57,0x3f,0x7a,0x24,0x88,0x40,0xde,0xcb,0x99,0xc0,0xe4,0xfd,0x6d,0xc0,0xdf,0x8f,0x81,0xc0,0x4,0x5,0x8a,0xc0,0x44,0xf7,0xcd,0x3e,0x52,0x66,0x30,0x40,0xaf,0x47,0x8a,0xc0,0x66,0x96,0x46,0xbf,0x58,0x87,0xa2,0x3f,0xae,0xb9,0xb5,0x3f,0x47,0x4d,0x9,0x40,0x1d,0xc3,0x92,0xbf,0x42,0xdf,0xb5,0xbf,0x18,0x14,0x44,0xc0,0x5f,0x2,0x94,0xc0,0x80,0x86,0x4b,0xbd,0x7f,0x83,0xc5,0x3f,0x42,0xa9,0xc,0x3f,0x6d,0xe2,0x81,0x40,0xa3,0x4a,0x99,0x40,0x66,0xff,0xb2,0x3f,0xaa,0x42,0x18,0xc0,0x26,0x8a,0x1c,0x40,0x84,0x2c,0x9,0x40,0x6a,0xa4,0x52,0xbf,0xa0,0xe2,0x84,0xc0,0x3d,0x40,0x8d,0xc0,0xee,0x12,0x83,0x40,0x2d,0xfb,0x60,0xc0,0xf7,0xea,0x91,0x40,0xce,0x99,0x85,0xc0,0x41,0xfc,0xf,0xc0,0xc0,0x3c,0xdf,0xbe,0x44,0xe3,0x92,0x40,0x62,0x41,0x59,0x3f,0x73,0x5e,0x4e,0xc0,0xf,0x6b,0x69,0x40,0xd8,0x55,0x90,0x3f,0x76,0xc1,0x53,0xc0,0xd1,0x8,0x9f,0x40,0x65,0x3a,0x84,0x40,0x0,0xde,0x8a,0xbe,0xa8,0xcf,0x82,0xbe,0x7a,0x80,0x36,0x40,0x10,0x9f,0xd2,0x3e,0x94,0x73,0x3b,0xbf,0x5,0xc,0xd5,0x3f,0x7b,0xc2,0x99,0x40,0x12,0x72,0x5a,0xbf,0x8e,0xcc,0x36,0x40,0xb0,0x3c,0x1,0xc0,0x64,0x39,0x8d,0xc0,0x1e,0xbf,0x1,0x3f,0x88,0xa1,0x50,0x3e,0xb8,0x44,0xdf,0x3f,0x68,0x7d,0x90,0xc0,0x22,0x80,0x73,0xc0,0x10,0x94,0x58,0x3e,0x14,0xb3,0xba,0x3f,0xad,0x7d,0x92,0xc0,0x46,0x7e,0x72,0xc0,0x7d,0x10,0x51,0xc0,0xe,0x99,0x19,0xc0,0xd4,0xd6,0x77,0x40,0x69,0xea,0x3f,0x40,0x32,0x72,0x8b,0x40,0x84,0xd5,0x8f,0x40,0xca,0x2f,0x30,0x40,0x6c,0xd7,0x33,0xc0,0x82,0x99,0x96,0xc0,0xe6,0x4,0x69,0xc0,0xc6,0xda,0x8c,0xc0,0xd1,0xa3,0x80,0x40,0xe7,0x4c,0x2d,0xc0,0x9d,0x47,0x4a,0x40,0xc9,0xba,0x8f,0xbf,0xac,0x8c,0x3f,0xc0,0x3a,0xa1,0x35,0x3f,0x36,0xfd,0xb7,0xbf,0xf0,0xf8,0xc5,0xbd,0x36,0xc7,0xac,0x3f,0xd2,0xc9,0x9b,0xc0,0xa1,0xf8,0x98,0xc0,0x9b,0xae,0x93,0x40,0x8e,0x3b,0xbd,0x3f,0xee,0x56,0x7b,0xbf,0xcc,0xb,0x34,0x40,0xa8,0x1f,0xfb,0xbe,0x97,0xf5,0xbd,0x3f,0x2f,0xc4,0x63,0xc0,0xdc,0x5a,0x39,0xc0,0x93,0x60,0xd9,0x3f,0x70,0x0,0xfd,0x3e,0x4a,0xf,0x44,0xbf,0x90,0x96,0x3a,0xbf,0x94,0xc9,0x8,0x40,0xc4,0xdd,0x80,0x40,0xa,0xba,0x5d,0x40,0x58,0xce,0x2e,0xc0,0xd8,0xbf,0x3,0xc0,0xb5,0x32,0x8b,0xbf,0x63,0x13,0xde,0xbf,0x46,0xfd,0x45,0xbf,0x74,0xed,0xd9,0xbe,0x3c,0x12,0x59,0x40,0x7,0x9a,0x51,0xc0,0x82,0x4e,0x8f,0x40,0xbd,0x73,0x76,0x40,0xda,0x81,0x94,0x40,0x7b,0x91,0x59,0x40,0x24,0x6,0xa,0x40,0x47,0xfa,0x79,0xc0,0xa2,0x4e,0x73,0x40,0x64,0xdf,0x9e,0xc0,0xdc,0xd3,0x65,0x3f,0x7f,0xc3,0x9d,0x40,0xb8,0xd3,0x43,0x3f,0xc0,0x59,0xd6,0x3e,0x3c,0x3b,0x4c,0xc0,0xa0,0x36,0x88,0xc0,0x1a,0x31,0x34,0x3f,0x15,0x2f,0xed,0x3f,0x8c,0x5b,0x33,0xc0,0x7e,0x5c,0x9,0x3f,0xb8,0xd9,0xc2,0x3e,0x44,0x36,0x39,0xc0,0xa2,0x40,0x7e,0x3f,0x84,0xe1,0x84,0xc0,0x6,0x6f,0x34,0x40,0x3e,0x93,0x44,0xc0,0x90,0x1,0x6b,0x40,0xfa,0x6b,0x83,0x40,0xf0,0x45,0x3d,0x40,0xa0,0x5d,0x60,0xc0,0xa4,0xd3,0x5e,0x40,0xe0,0x6b,0x9a,0x3d,0x88,0xf,0x9a,0xc0,0x3c,0x2c,0x7d,0x40,0x3b,0x71,0x93,0x40,0xe2,0xf8,0xd,0x40,0x85,0x7d,0x80,0xc0,0x13,0x6e,0xa6,0xbf,0x40,0xe2,0xeb,0xbe,0x3,0xd,0x90,0x40,0xfa,0xf7,0x88,0xc0,0x77,0x50,0x62,0xc0,0x62,0x48,0x25,0x40,0xe9,0x7c,0xd5,0x3f,0x6a,0xa5,0xc2,0xbf,0x7,0x3,0x86,0xc0,0xc0,0x85,0x7,0xbf,0xf2,0x0,0x49,0x40,0xa0,0x8d,0x8e,0x40,0x88,0x30,0x3,0xbe,0x4,0xf4,0x3b,0xc0,0x45,0x1f,0xb9,0x3f,0xd,0xc5,0x70,0x40,0xf9,0xef,0x40,0xc0,0xb1,0xad,0x91,0x3f,0x40,0x8f,0x32,0x40,0xee,0x3d,0x35,0xbf,0x17,0xe3,0x82,0xc0,0xa0,0x3f,0x27,0xc0,0xbe,0xf4,0x9b,0xc0,0xc0,0x2a,0x3,0xbe,0xc3,0xf9,0x67,0x40,0x8,0xb9,0xc5,0xbe,0x8d,0x4b,0x74,0x40,0xbe,0x23,0x80,0xc0,0xc4,0xfb,0x98,0x40,0x72,0x53,0xb2,0xbf,0x93,0xb1,0x58,0xc0,0xf3,0x7f,0x7f,0x40,0x46,0x5d,0x89,0xbf,0x74,0xeb,0xfe,0xbe,0x6c,0xcd,0x13,0x40,0x3c,0xb4,0x16,0xbf,0x10,0xf7,0x77,0xbe,0x0,0xe1,0x16,0x40,0x3a,0x2d,0x98,0x40,0xba,0x9d,0xe,0xc0,0x80,0x62,0x3d,0x3e,0x29,0x53,0xb5,0xbf,0x6c,0xb1,0x96,0x3e,0xc,0x62,0x43,0x40,0x18,0x88,0x66,0x40,0xe6,0xc,0x7d,0xbf,0x9c,0x9b,0x30,0xc0,0x36,0x33,0x18,0x40,0xa6,0x90,0x61,0xc0,0x3f,0x6e,0x9e,0xc0,0x5e,0xc3,0x5,0xc0,0x6e,0x64,0x68,0xc0,0x70,0x19,0x5a,0xc0,0xa3,0x27,0x5,0x40,0xc6,0x1b,0x91,0x3f,0xbe,0xc3,0x23,0x40,0xef,0xa4,0x8e,0x3f,0xdb,0x73,0x88,0x3f,0xb4,0xc,0x6c,0x40,0x1e,0x67,0x31,0x40,0x23,0xef,0x62,0xc0,0x1a,0x97,0x93,0x40,0x32,0xa2,0xdf,0x3f,0xd,0xc3,0x8e,0x40,0xc2,0xf7,0x84,0x40,0xe7,0x9,0xdc,0xbf,0xd4,0xd4,0xa6,0xbe,0x49,0x5a,0xbb,0x3f,0xf2,0x78,0x8d,0xc0,0x7f,0x13,0xfe,0xbf,0x97,0xb9,0x8b,0xc0,0x88,0xb2,0x8d,0x3f,0xa0,0x97,0xb,0x3f,0xc8,0xe8,0x5f,0x40,0xa3,0xc7,0x93,0xc0,0xa4,0xea,0x6b,0x40,0x8e,0x52,0x26,0x40,0xfc,0xb6,0x76,0xbf,0xc7,0x1b,0x9f,0xc0,0xcc,0x1e,0x8d,0xbe,0xae,0x5,0xd8,0xbf,0x4d,0xf5,0x28,0xc0,0x6a,0x21,0xfb,0xbf,0xdb,0x7d,0x8d,0xbf,0x5,0x9d,0xb7,0xbf,0xf0,0x2,0xf,0xbe,0xc0,0x9c,0x65,0xc0,0xe8,0x2e,0xe3,0x3f,0x2c,0xb6,0xb,0xc0,0xbc,0x9b,0x65,0xc0,0x78,0x1,0x6,0xbe,0xc4,0xe6,0xfe,0xbe,0x52,0x65,0x88,0xc0,0x6,0x46,0x95,0x40,0xc2,0x9a,0x7c,0xc0,0x2,0x8,0x84,0x40,0xf8,0x2d,0xe,0x3f,0x3a,0x12,0x74,0xc0,0x60,0x5,0x76,0xc0,0xf5,0xfb,0xf4,0xbf,0xaa,0xf3,0x98,0x40,0xc6,0x60,0x90,0x40,0xe1,0x97,0x1f,0x40,0x3c,0x2,0x95,0x40,0x4b,0xe4,0x40,0x40,0xf0,0xf1,0xb8,0x3f,0x7e,0x2a,0x8f,0x40,0x64,0x60,0x3d,0x40,0x0,0x30,0x54,0x3f,0x17,0x1,0xe7,0x3f,0x40,0x7,0xb3,0x3e,0x58,0xe6,0x9,0xc0,0x54,0xd3,0x13,0x40,0x6c,0x52,0x18,0x40,0x9,0x7a,0x42,0x40,0x63,0x9,0x63,0x40,0xfe,0xe7,0x90,0x40,0x1c,0x28,0xb6,0x3f,0xa3,0xd7,0xca,0xbf,0x23,0xc8,0xd2,0x3f,0x48,0xc3,0x2a,0x40,0x5e,0x9c,0x63,0xc0,0xc,0x3e,0x3f,0xc0,0xc8,0xbe,0x75,0xc0,0x5e,0x2c,0x2e,0xc0,0xf3,0xca,0x95,0x40,0xf5,0xa4,0x26,0x40,0xf0,0xd3,0xb3,0xbe,0x76,0x9,0x67,0xc0,0xf2,0x14,0xb7,0x3f,0xbc,0x1c,0x65,0x3f,0x30,0xc0,0x82,0x3d,0x5a,0x7d,0x50,0xc0,0x2c,0xf7,0x9c,0x40,0x16,0x61,0x2b,0x3f,0x3a,0x36,0x75,0xc0,0x9d,0x23,0x37,0x40,0xbe,0x66,0x5f,0xbf,0x19,0x64,0x5c,0xc0,0x90,0xbc,0x66,0xc0,0xb8,0xa4,0xca,0xbe,0xd0,0x6a,0x29,0xc0,0x9a,0xcf,0x56,0xc0,0x28,0x53,0x11,0x40,0x98,0x67,0x70,0xbe,0xd,0x8c,0x4a,0xc0,0x70,0x81,0x6a,0x3e,0xe8,0x4c,0x9c,0xc0,0x44,0xbb,0x7d,0x40,0xe8,0xd4,0x91,0xc0,0x4a,0xfa,0x38,0xc0,0x83,0x5a,0x81,0xbf,0x4b,0x2f,0x98,0xc0,0xf8,0x34,0x8a,0xc0,0x24,0x65,0x76,0xc0,0x56,0xa7,0x4a,0xc0,0x5f,0x91,0xbe,0x3f,0xce,0x30,0x32,0x40,0xb6,0xfe,0x5b,0xc0,0x9b,0x5f,0x16,0x40,0x66,0xea,0xe,0xc0,0x6,0x66,0x6a,0x40,0x30,0x5,0x9d,0xbf,0x4a,0xac,0xd,0x40,0x80,0xc7,0xa8,0x3f,0x90,0xff,0xd8,0xbf,0x36,0xeb,0x8,0x3f,0xe4,0xb,0x19,0x40,0xe6,0x71,0x4c,0x40,0x1b,0x3e,0x8d,0x3f,0x2a,0xca,0x17,0x40,0xf9,0x1f,0xc3,0x3f,0x6,0xcd,0x7e,0x40,0x93,0xc2,0x5b,0xc0,0x92,0x3,0xa,0xc0,0x80,0xc2,0x2d,0xbc,0xe8,0x88,0x45,0x40,0xe8,0x1c,0x9d,0xc0,0x22,0x27,0xe,0x40,0x4a,0xb,0x99,0x40,0x12,0xc9,0x4e,0x40,0xaa,0x60,0x8d,0x40,0xb8,0x20,0xe5,0xbf,0xc,0x34,0x8,0x3f,0xef,0x13,0x8a,0x40,0x1,0x4a,0x43,0xc0,0x6d,0x1b,0x81,0xbf,0xc6,0xee,0xd,0xc0,0x57,0x6,0x72,0x40,0xae,0xa6,0x87,0x3f,0x31,0x63,0x8f,0xc0,0xb6,0x5,0x6c,0x40,0xa8,0xec,0x83,0x40,0xb4,0xbe,0x87,0xbe,0x78,0x4a,0x93,0x40,0x96,0x87,0x90,0xc0,0x9c,0x5d,0xce,0x3e,0x38,0x53,0x21,0x3f,0xb2,0xe7,0x9c,0x3f,0x1c,0x3f,0x1a,0x40,0x72,0x78,0xd8,0x3f,0x96,0xd2,0x95,0x40,0x3a,0x97,0x33,0xc0,0x76,0xcf,0x70,0x3f,0x4e,0x64,0x6,0x40,0xf2,0x55,0x7d,0xc0,0x98,0xb7,0xf5,0xbf,0xfc,0x3e,0x7d,0xc0,0x10,0x9e,0xec,0xbf,0xf4,0xa1,0x2a,0xc0,0xe2,0x2b,0x74,0x40,0x37,0x59,0x1c,0xc0,0xc,0x91,0xad,0x3f,0x9d,0xa3,0xc,0xc0,0x22,0x69,0x4e,0x40,0xa0,0x76,0x8e,0xbd,0xf2,0x49,0x59,0xc0,0x8a,0xec,0xd3,0xbf,0x60,0x8f,0x49,0xc0,0x40,0xfc,0xd1,0x3f,0xae,0xce,0x8b,0x40,0xd3,0x53,0xce,0x3f,0xb9,0x8d,0xa4,0x3f,0xc0,0x57,0x7b,0xc0,0x4c,0x61,0xfc,0x3e,0x8e,0x54,0x10,0x40,0x50,0x2d,0x66,0x3e,0xa6,0xa4,0x9c,0xc0,0xd3,0x85,0x49,0xc0,0x18,0xb2,0x99,0xc0,0x7c,0x90,0x54,0x3f,0x1b,0x36,0xcc,0x3f,0xdc,0x2d,0x23,0x40,0xb8,0x64,0x46,0x40,0xd9,0x40,0x56,0xc0,0x33,0x30,0xc4,0x3f,0x6,0x6a,0x9b,0x40,0xfc,0x54,0x8,0xc0,0x17,0xb6,0x9f,0xc0,0xd3,0x44,0xb5,0xbf,0x34,0x95,0x9,0xc0,0xea,0xda,0x6e,0x40,0xfb,0x92,0x73,0x40,0x24,0x54,0x95,0x40,0x10,0x7b,0x5a,0x40,0xdc,0xb3,0x9c,0x3e,0xe2,0x38,0x28,0xc0,0xda,0x28,0x63,0x3f,0x92,0x62,0x71,0xbf,0x20,0xb9,0xd,0xc0,0xb,0xf1,0x86,0xc0,0x3f,0x55,0x88,0x40,0x72,0xdb,0x92,0xc0,0x87,0xf1,0xae,0xbf,0x44,0x5c,0xaf,0x3f,0x8e,0xd8,0x3b,0xc0,0x1,0x9a,0xa5,0xbf,0x5,0xce,0x85,0xc0,0x39,0x76,0x91,0x3f,0x5e,0xfc,0x91,0x40,0xe2,0x1e,0xd1,0x3f,0x6,0x13,0x25,0xbf,0x70,0x9d,0x64,0x40,0xc4,0x77,0x81,0x40,0x98,0x8a,0x86,0x40,0x3a,0x46,0xe8,0xbf,0x7f,0xb7,0xe1,0x3f,0x4e,0x9b,0x9d,0x3f,0xbd,0x6c,0x8f,0x3f,0xc5,0xa9,0x6a,0x40,0x47,0xb7,0x3,0xc0,0x79,0x98,0x5e,0xc0,0xd2,0x7f,0x3,0x40,0xd4,0x6d,0x90,0x3f,0xb1,0xd2,0x1e,0xc0,0xaa,0x2e,0x4c,0x40,0x70,0x3a,0x7,0xbf,0x78,0x6,0x90,0x40,0x42,0x6a,0x80,0xc0,0x1a,0x1d,0x9,0xc0,0xec,0xb7,0x12,0x40,0x83,0x35,0x30,0xc0,0x90,0x10,0x7,0xbe,0x11,0xb7,0x8c,0xbf,0x46,0xdf,0x5c,0x40,0x34,0x0,0x91,0xc0,0x2d,0x19,0x61,0xc0,0x84,0x14,0x83,0xc0,0xf4,0xfe,0x31,0x3f,0x60,0xa6,0x69,0xbe,0x93,0xe2,0xe,0xc0,0xed,0xe9,0x6b,0xc0,0xc4,0x40,0x27,0x40,0x40,0xbc,0x55,0xc0,0xd4,0xb4,0x4e,0xc0,0x1e,0x2d,0x39,0xbf,0x2b,0x7c,0x9e,0xc0,0xb8,0xd4,0xcc,0xbf,0xb8,0x8e,0x1a,0x3f,0x1e,0x72,0x30,0x40,0x90,0x81,0xac,0x3d,0x8b,0xb5,0x97,0x40,0xe8,0x8,0x6b,0xbf,0x5,0x2b,0xf7,0x3f,0xcc,0xe0,0x4c,0xc0,0x54,0x7d,0x21,0xbf,0x5d,0x94,0x80,0x40,0x8,0xbc,0x56,0x40,0xd4,0x26,0xff,0xbe,0xa1,0x13,0x20,0xc0,0x36,0x77,0xd4,0xbf,0x49,0x1d,0x81,0xc0,0xa4,0x25,0x1d,0x40,0xfa,0x7b,0x95,0x40,0xe4,0x5c,0x20,0xbf,0x65,0xfd,0x3a,0xc0,0x18,0xee,0x9e,0x40,0x26,0x8,0xf4,0xbf,0x8,0xd7,0x7c,0xbf,0xfc,0x7d,0x57,0xc0,0xbb,0xfd,0x81,0x40,0x52,0xd2,0x55,0x3f,0x11,0x21,0x9f,0xc0,0x94,0x77,0x96,0x40,0x24,0xe4,0x42,0x40,0xf5,0x4c,0xea,0x3f,0x9f,0x39,0x9e,0x40,0x48,0x7b,0x87,0x3f,0x28,0xb0,0x1a,0xc0,0xd9,0xaf,0xf8,0xbf,0xf,0x97,0x24,0x40,0x1a,0x9b,0x31,0xc0,0x8f,0x3f,0x51,0x40,0xc4,0xd1,0x32,0xc0,0xa4,0xe1,0x82,0x40,0xc2,0x8b,0x7c,0xbf,0x57,0x6a,0x72,0x40,0xbe,0xf0,0x32,0xc0,0x4,0x68,0xbb,0x3f,0xd7,0xcb,0x63,0x40,0x6a,0xa,0x95,0x3f,0x9e,0xc5,0x25,0xbf,0x39,0x4a,0x42,0xc0,0xa8,0x5b,0x15,0xc0,0x2a,0x65,0xf7,0x3f,0xc6,0x48,0x84,0x40,0x18,0x59,0x33,0xc0,0x7b,0x61,0x1b,0xc0,0xb4,0x41,0x45,0xc0,0x5c,0x70,0xb0,0x3e,0xee,0x43,0xa,0xc0,0x80,0xbb,0xdc,0x3f,0xad,0xdf,0xef,0xbf,0xeb,0xc8,0xaa,0xbf,0x9d,0xce,0x8e,0x40,0x46,0x10,0x21,0xc0,0x48,0x44,0x8a,0xc0,0x8a,0x88,0x30,0x3f,0xde,0xb4,0x71,0xc0,0xfb,0x8a,0xc9,0xbf,0x16,0xe3,0x7d,0xc0,0xce,0xf6,0x64,0xc0,0xf0,0x65,0xe5,0x3e,0xf9,0x5b,0x11,0x40,0x25,0xdb,0xa4,0xbf,0xd0,0xf6,0x99,0xc0,0xca,0xc0,0x82,0xc0,0xa0,0x11,0xa8,0xbe,0xb4,0x2f,0x20,0x40,0x3e,0x97,0x9d,0xbf,0xd8,0xeb,0x8,0x40,0xf9,0xa,0x83,0x3f,0x1a,0x2c,0x8c,0x40,0xd4,0x75,0xd,0x40,0xd8,0xb8,0x4d,0x3f,0xfa,0x44,0x27,0xc0,0x14,0x5c,0xee,0xbe,0x7e,0x39,0x85,0x40,0xc6,0xed,0xeb,0x3f,0x82,0xe2,0x53,0xc0,0xca,0xe7,0x7e,0x40,0x3d,0xf8,0x2b,0x40,0xb0,0xb7,0x30,0xc0,0x60,0xb3,0xb4,0x3e,0x13,0xdf,0xda,0x3f,0x1c,0x69,0x4,0x40,0xc4,0x59,0x39,0xbf,0xb8,0x81,0x1d,0xbe,0x7e,0x60,0x3f,0x40,0xb0,0x4,0x8c,0x3d,0xba,0x97,0x17,0xc0,0x7a,0x8d,0x6d,0x40,0xa6,0x93,0x66,0x40,0x1a,0xe4,0x3,0xc0,0x71,0xc5,0x90,0xc0,0x1d,0x3e,0x1a,0xc0,0x49,0x1a,0x67,0xc0,0x6c,0xac,0x4d,0xbf,0x30,0x32,0x8c,0xc0,0xd6,0x88,0x6e,0xc0,0x9c,0x5,0xc7,0x3f,0x2a,0xe,0x10,0xbf,0x4c,0x36,0x2a,0xbf,0x70,0xa3,0x43,0x3f,0x28,0xf7,0xc6,0x3f,0xa2,0x8a,0x66,0x40,0x24,0xd6,0x25,0xbf,0xc,0xbf,0x8e,0xbe,0x65,0x13,0x95,0xc0,0x2d,0x25,0x9a,0xc0,0xd2,0x1e,0x59,0xc0,0x5d,0x7b,0x29,0x40,0xce,0x31,0x20,0x40,0xac,0x14,0xdf,0x3f,0xf0,0x73,0x2c,0x40,0xfc,0xe2,0x40,0xbf,0x1a,0xbf,0x57,0xc0,0xea,0x4d,0x65,0x40,0x85,0x68,0x94,0xbf,0xc8,0x96,0x61,0xbf,0xc8,0x1c,0x48,0xc0,0x59,0xcc,0x59,0x40,0x52,0xfa,0x73,0x40,0x4a,0xf0,0x19,0xc0,0x9a,0xc0,0x89,0x40,0xa4,0x1c,0x4d,0x40,0xeb,0xdd,0xb3,0x3f,0x54,0x5c,0x18,0xc0,0x8d,0xbe,0x56,0xc0,0x4,0x5f,0x35,0x3f,0xe8,0x63,0xd,0x40,0x1c,0x97,0x51,0xc0,0x30,0x12,0x71,0x40,0x12,0x39,0x46,0x40,0xf0,0xf0,0xaf,0x3d,0x81,0xe2,0x9f,0xc0,0x1e,0xd,0x7a,0xc0,0xc6,0x10,0x62,0x40,0x2c,0x42,0xf5,0x3e,0xa0,0x5,0x52,0xbf,0x4e,0x7c,0x4d,0xc0,0x88,0x19,0x15,0xc0,0x3f,0xb2,0x85,0x40,0x7f,0x56,0x18,0x40,0x8c,0x17,0xca,0x3e,0x72,0x27,0x74,0x40,0x71,0xce,0x3a,0xc0,0x28,0xe,0xd8,0xbf,0x9a,0xfa,0xe2,0x3f,0xab,0x92,0x73,0xc0,0xce,0x9f,0x8d,0x40,0x7c,0x42,0x4f,0x40,0xde,0x5f,0x55,0x3f,0xbc,0x18,0x7d,0xc0,0xaa,0x8f,0x6f,0x40,0xe9,0x2d,0xe8,0xbf,0x8a,0xe,0x4b,0xbf,0xfc,0x62,0x85,0x40,0xcc,0x29,0x8c,0xbf,0x16,0xd1,0x97,0x40,0x26,0x69,0x4,0xbf,0xb4,0x98,0x3f,0xc0,0x5d,0x35,0x90,0xbf,0x64,0x12,0x95,0xc0,0xaa,0x16,0x43,0x40,0xa4,0xd7,0x17,0x40,0x2a,0x83,0x68,0x3f,0x8d,0x18,0x8c,0xc0,0x36,0x3c,0xce,0x3f,0x1c,0xba,0x35,0x40,0x48,0x65,0x89,0x40,0x4c,0xcf,0x6,0xc0,0xb8,0xc6,0x0,0x40,0x38,0xc1,0x15,0x40,0xe8,0xe3,0x21,0xbf,0xf4,0x6f,0xe6,0x3e,0x88,0x40,0x4a,0x40,0x30,0x8c,0xd4,0x3e,0xcd,0xf7,0xbc,0xbf,0xd8,0x5d,0xf6,0x3f,0xd8,0x8a,0xab,0x3e,0x93,0x7c,0xd6,0xbf,0xbe,0xb5,0x1,0xbf,0xb6,0x27,0x3a,0x40,0xfc,0x2f,0x9e,0x40,0x97,0xf6,0xa8,0xbf,0xf7,0x5a,0x78,0x40,0x1b,0x6d,0x9a,0x40,0xa4,0x6,0x3c,0x40,0xa,0x49,0x1d,0x40,0xfc,0xa,0x87,0xc0,0xbe,0xe1,0x13,0xc0,0x62,0x0,0x4,0xc0,0xf1,0xc3,0x9b,0x40,0x78,0x11,0x4b,0x3f,0x47,0x8,0x88,0xc0,0x50,0x16,0x8e,0xc0,0x4f,0x90,0x89,0xc0,0xbf,0x25,0x68,0xc0,0x1e,0x41,0x41,0xc0,0x60,0x6f,0x2a,0xc0,0xd8,0xe3,0x6d,0x40,0x8e,0x50,0x3,0xc0,0x86,0x28,0x93,0x40,0x9a,0x5a,0x92,0xbf,0x44,0x42,0x81,0xc0,0x51,0xbe,0xea,0xbf,0xfc,0xde,0xd,0xc0,0x2,0xfc,0x5b,0xc0,0xc5,0x3c,0x95,0xc0,0x0,0x70,0x32,0x3e,0x8c,0x6e,0x78,0xc0,0x5d,0x2b,0xb8,0xbf,0xf6,0x38,0xa8,0xbf,0xb6,0xc7,0x38,0xc0,0x40,0xf3,0x41,0xbe,0x66,0xf4,0x77,0xc0,0x9e,0xe,0xd0,0xbf,0x2a,0x9f,0x8d,0x40,0x7e,0xfa,0x93,0x40,0x38,0x44,0xce,0x3e,0x6e,0xd4,0x94,0x3f,0x3,0x22,0x8e,0x40,0xfa,0xa3,0x99,0x40,0x30,0xdc,0x16,0xc0,0x14,0x67,0x4a,0x3f,0xea,0x4e,0x7d,0xbf,0xfe,0x7f,0x5b,0xc0,0x5d,0x4,0x8e,0x40,0x6b,0xcd,0x7d,0x40,0x8,0xbb,0x5c,0x3e,0xbb,0xed,0x83,0x40,0x31,0xec,0xaa,0x3f,0x67,0x42,0x53,0x40,0x5a,0x89,0x7,0x40,0xad,0x6f,0x17,0x40,0x87,0x75,0xe4,0x3f,0xd,0x98,0x20,0x40,0x2b,0x99,0x8c,0x40,0xd9,0x44,0xfa,0x3f,0x4b,0x1f,0x4c,0xc0,0x62,0x7a,0xeb,0x3f,0x1d,0xc4,0x9f,0x40,0x19,0xa7,0x84,0x40,0xb,0xd0,0x49,0x40,0xfd,0xa0,0xf2,0xbf,0xc6,0xd,0x9e,0x40,0x5a,0x9d,0x69,0x3f,0x73,0x21,0x2c,0xc0,0xe0,0x54,0x40,0xbe,0xc8,0x7b,0x68,0x40,0xd0,0xed,0x92,0xc0,0xdf,0xa1,0x92,0xbf,0xc,0x8a,0x6e,0x40,0xd2,0x68,0xb0,0xbf,0x16,0x39,0x1,0xc0,0xb4,0x8a,0xac,0xbf,0x4c,0xb9,0xd1,0x3f,0x12,0xec,0x76,0xc0,0xaa,0xef,0x21,0x3f,0xcd,0x7e,0xa4,0x3f,0x2d,0xf7,0xa8,0x3f,0xd0,0x78,0xcf,0xbd,0x0,0x78,0x1d,0x40,0x74,0x1c,0x97,0xbe,0xfe,0x33,0x78,0x40,0xa1,0xda,0x53,0x40,0xff,0x1d,0x5d,0xc0,0x42,0x22,0x7a,0xbf,0x28,0xe1,0x78,0x40,0xd0,0x54,0x0,0xbf,0xd8,0xc2,0xc3,0xbf,0x68,0x4c,0xa0,0xbe,0x19,0x17,0x93,0xbf,0x18,0x53,0xdf,0xbf,0x8a,0x9c,0x8d,0x3f,0x5a,0xd2,0x86,0x40,0x32,0x8c,0x39,0x3f,0xe3,0xef,0x33,0x40,0x92,0x13,0x77,0x40,0x56,0x3d,0x50,0xc0,0x99,0x9b,0x63,0xc0,0x36,0xa3,0x3c,0xbf,0x8,0xa7,0xbe,0x3f,0x76,0x4d,0x1b,0xbf,0x0,0xf8,0x15,0xc0,0x14,0x3e,0x5c,0xc0,0xc0,0x86,0x15,0x3e,0x93,0x14,0x6e,0x40,0x78,0xdc,0x5c,0x3e,0xc3,0x68,0x98,0x40,0x7e,0x71,0x17,0xc0,0x4e,0xbe,0x93,0x40,0xf6,0x27,0x4d,0xc0,0x41,0x3d,0x7e,0x40,0x2c,0xc0,0xb,0x3f,0xcd,0x24,0x9f,0x40,0x5a,0x42,0x98,0x40,0x99,0xfe,0xda,0xbf,0x4c,0x34,0xbb,0xbe,0xdd,0xc9,0xad,0xbf,0xc,0x60,0x8e,0x3f,0xf2,0xba,0x1d,0xc0,0xba,0xba,0x94,0xbf,0x32,0xf5,0x41,0xc0,0x3b,0xe3,0x42,0x40,0xe,0xd4,0x7c,0x40,0x90,0xe7,0xc,0x3f,0xd8,0xd1,0x1b,0xbe,0xec,0x2,0x70,0xc0,0x6,0xc6,0x91,0xc0,0x1,0xe9,0x76,0xc0,0x52,0xef,0x6c,0xc0,0x7a,0xa5,0x83,0xc0,0xf6,0x9,0x16,0x40,0xb2,0x19,0x74,0xc0,0x32,0x59,0x19,0x40,0xcf,0xec,0x54,0x40,0x0,0x7d,0xa5,0xbc,0x38,0x9e,0x97,0x3f,0x92,0xb9,0x47,0x40,0x9d,0x17,0x91,0xc0,0x15,0x34,0x8a,0x40,0x31,0x8f,0x9d,0x40,0xb4,0xad,0x98,0x40,0xde,0xd6,0xf9,0xbf,0x2,0x72,0x44,0x40,0xf3,0x66,0xeb,0xbf,0x12,0x1c,0x47,0x3f,0x16,0xce,0x85,0x40,0x13,0x16,0x86,0x3f,0x18,0xc,0xea,0x3f,0x11,0x62,0xaa,0xbf,0xe6,0xe5,0x17,0xc0,0x77,0x89,0x82,0x40,0xb9,0x66,0x90,0xc0,0x10,0xd8,0x5f,0x3f,0x3c,0x8a,0xf7,0xbe,0xbb,0x44,0xb4,0xbf,0x3e,0x4d,0x9c,0xc0,0xd2,0x48,0x3e,0xc0,0xd0,0xa5,0x36,0xc0,0xb4,0xe9,0x40,0x3f,0x88,0xa0,0xf9,0x3f,0x1a,0x6f,0x91,0xc0,0xba,0x1c,0xf6,0xbf,0x76,0x90,0x98,0xc0,0x2e,0xd6,0x5a,0x40,0xf8,0x0,0x93,0xc0,0x92,0x3a,0x2b,0xbf,0x4,0xae,0x36,0xbf,0xb2,0x75,0x2f,0xc0,0xc3,0xe2,0x65,0x40,0xa6,0xe7,0x8,0x40,0x52,0xfa,0x26,0x40,0x72,0x95,0x61,0x40,0xc7,0xd4,0x1f,0xc0,0x5b,0xd2,0x1a,0x40,0x29,0x55,0x81,0x40,0xdb,0xf0,0x92,0xbf,0xb4,0x88,0xd1,0xbe,0x68,0x31,0xf2,0x3e,0x81,0x1e,0x9d,0xc0,0x5c,0x39,0x8,0xbf,0xf0,0x20,0x19,0xbf,0x7c,0xa6,0x68,0xc0,0xbc,0x17,0x6a,0x40,0xaa,0xc7,0x8c,0xc0,0x18,0x28,0x0,0xc0,0x8,0x6f,0x3c,0x40,0x2c,0x8a,0x46,0x3f,0xee,0xba,0x1,0x40,0x50,0x7d,0x5c,0x3e,0xe0,0xe2,0x94,0xc0,0x98,0xce,0x65,0xc0,0x50,0xae,0xd8,0xbf,0xc6,0x77,0x57,0xc0,0xc,0x54,0x47,0xc0,0x6e,0x26,0xcf,0xbf,0x7e,0x9d,0x8e,0x40,0xc9,0x1,0x78,0x40,0x9e,0x9f,0x80,0x3f,0xc7,0x47,0x4d,0xc0,0x48,0xdb,0x40,0xc0,0x57,0xad,0x9c,0x40,0x56,0x97,0x1e,0x3f,0xde,0xef,0x10,0x3f,0xd4,0x59,0x35,0xc0,0xed,0x5f,0x23,0xc0,0x6e,0x50,0x1d,0x40,0xf4,0x9d,0xdb,0xbe,0xaa,0xa2,0x5,0xbf,0xa6,0xa5,0x1d,0xc0,0x7e,0x20,0x6d,0xc0,0xdf,0x7e,0x4e,0xc0,0xc8,0x84,0x9d,0xc0,0x5d,0x88,0x92,0x40,0x16,0xe2,0x3b,0x3f,0xb4,0x33,0x33,0x3f,0x88,0x43,0x70,0x40,0xa6,0xc7,0x20,0x40,0x8a,0xfb,0x3a,0xbf,0xd1,0x21,0x46,0x40,0xb0,0x4b,0xa4,0x3d,0xef,0xf7,0x9b,0xc0,0x56,0xb2,0x81,0x40,0x34,0x8a,0x3c,0xc0,0xca,0xd1,0x71,0xc0,0x12,0xd7,0x93,0xbf,0x17,0x38,0x9c,0x3f,0x80,0xb8,0x7b,0x40,0x43,0x63,0x9e,0xc0,0x25,0xbc,0x95,0xc0,0x22,0x3f,0x55,0xc0,0xf0,0xef,0x3a,0xc0,0xa3,0x4f,0x9d,0x40,0x20,0xc3,0x9e,0xbd,0xd0,0x41,0x68,0x40,0xaf,0x73,0xb4,0x3f,0xdd,0xf8,0x3a,0x40,0x8a,0xe8,0x25,0xc0,0xfb,0x50,0xb,0x40,0x2c,0x4f,0xe8,0x3f,0x36,0x4c,0xdc,0x3f,0x2a,0x41,0x70,0xc0,0x34,0x85,0xdc,0xbf,0xdf,0xe7,0x87,0x40,0xbe,0xa,0x8c,0xbf,0xc8,0x78,0x68,0xc0,0x1a,0x7a,0x87,0xc0,0xa4,0xe3,0x81,0xbf,0x49,0x18,0x14,0x40,0x81,0xcb,0xbc,0xbf,0x8c,0x39,0x64,0x40,0xa6,0x62,0x8,0x40,0xb6,0x0,0x80,0xc0,0xa0,0x4e,0x54,0x3d,0xbc,0xde,0x91,0x40,0xf8,0xf,0x47,0x40,0x6d,0xd4,0xe5,0xbf,0x89,0x83,0x6d,0xc0,0x36,0x37,0xa6,0x3f,0xae,0x9c,0x19,0x40,0xe3,0xbb,0x83,0xbf,0x76,0x82,0x88,0xc0,0x6a,0x93,0x9a,0x40,0x4a,0xa5,0x1a,0x40,0xd,0x4d,0x9f,0xc0,0x0,0x6e,0x61,0x3e,0x29,0xe2,0x8f,0xbf,0xe,0x70,0x94,0x40,0x54,0xf3,0x28,0x40,0xf3,0x99,0xa9,0x3f,0xe8,0xb4,0xbc,0xbf,0x6c,0xf0,0x6b,0xc0,0xdd,0x27,0xc8,0x3f,0x8c,0x6f,0x1,0x40,0x0,0xb,0xdb,0x3d,0x85,0xa6,0x8c,0x40,0x93,0xaa,0x37,0x40,0x8c,0xba,0x85,0xc0,0x3c,0x22,0x8d,0xbe,0xac,0xb0,0xe,0xc0,0xb8,0x14,0x6c,0xbe,0x60,0x65,0xe9,0x3e,0x88,0x39,0x1d,0x3f,0xfe,0x32,0x44,0x40,0xd0,0x9a,0x5c,0x40,0x5c,0xd5,0x87,0x3e,0x53,0x5c,0xf0,0xbf,0x8c,0x49,0x1f,0xc0,0xfc,0xc9,0x25,0x40,0xa5,0xb8,0xe7,0x3f,0x38,0x8c,0x87,0x40,0x1d,0xe2,0x86,0xc0,0x80,0x4b,0x74,0xc0,0xa8,0x7e,0x3f,0xc0,0x1c,0x3d,0xd,0x40,0x32,0xd7,0x78,0x40,0x5c,0x57,0xce,0xbe,0x1c,0xe9,0x85,0xc0,0x24,0xb5,0x4b,0x3f,0xdf,0x9c,0x89,0xc0,0x7f,0x6d,0x4c,0x40,0x66,0x32,0x70,0xc0,0x94,0xf2,0x39,0x3f,0x40,0xea,0x63,0x3d,0x5c,0x18,0x21,0x40,0x60,0xaf,0x5d,0xc0,0x5a,0x9f,0xf,0x40,0xf0,0x12,0xe,0x3e,0xc8,0x63,0x1c,0x3f,0x86,0x11,0x59,0xc0,0x9d,0x2a,0x97,0x40,0x84,0x2,0x67,0xbf,0xec,0x74,0x3a,0xc0,0xb3,0x52,0xb3,0xbf,0x8f,0x20,0xbe,0xbf,0xa5,0x16,0x9f,0x40,0xb6,0x4f,0x6a,0x40,0x0,0xc8,0xb4,0x3c,0x3b,0x24,0x9a,0x40,0x80,0x19,0xed,0xbc,0xe,0x6f,0x16,0x3f,0xee,0x88,0x67,0x3f,0x5c,0x77,0xea,0xbe,0xcc,0x2c,0x72,0xc0,0x36,0x5b,0xbe,0x3f,0x34,0xcd,0xc6,0xbe,0x48,0xc9,0xfc,0x3f,0x10,0xa,0x31,0x40,0x72,0xbe,0x67,0x40,0x47,0xd6,0xaa,0x3f,0xc4,0x83,0x80,0x3e,0x31,0xc7,0x9,0xc0,0x93,0xd2,0x95,0x40,0x8d,0x9e,0x8d,0xc0,0xe8,0x56,0x27,0xc0,0xee,0x34,0x20,0x3f,0xf,0x98,0x19,0x40,0x48,0x99,0x39,0x40,0xb9,0x78,0x8d,0xc0,0x61,0x56,0xde,0x3f,0x47,0x20,0x85,0xc0,0x1a,0xbc,0x62,0x40,0xe1,0xf4,0x87,0xc0,0x22,0x45,0x63,0x3f,0x9c,0xb3,0x52,0x3f,0x8a,0x79,0x88,0xbf,0x3e,0xfc,0x10,0x40,0x33,0x9a,0x5c,0x40,0x59,0xdb,0xde,0x3f,0x9d,0x3b,0x86,0x3f,0xef,0xbd,0x9c,0x40,0xda,0x24,0x97,0x40,0xd6,0x60,0x5c,0xc0,0x69,0x2,0x90,0x40,0xe,0xee,0x8b,0x40,0x40,0x61,0x86,0x3c,0xf3,0x90,0xd5,0x3f,0x86,0x41,0x1,0xc0,0xc4,0x55,0xf9,0xbf,0xa,0xf0,0x52,0x3f,0x4e,0x8e,0xe,0xc0,0xcc,0xaa,0xa6,0x3f,0x54,0x4c,0x7,0x40,0xb3,0x4f,0x3b,0x40,0xe6,0x2a,0x64,0xc0,0x8,0x28,0x22,0xc0,0xd0,0x5e,0x5f,0xbf,0xa6,0xd,0x0,0x40,0x24,0xf6,0x0,0xc0,0x60,0x44,0x17,0xc0,0x96,0xf5,0x96,0xbf,0xe1,0x48,0xda,0x3f,0x8,0x43,0x52,0x3e,0xb5,0xae,0xa0,0xbf,0xc3,0x8a,0xa2,0x3f,0x7b,0xc,0x70,0xc0,0xc,0x80,0x99,0xc0,0x9c,0xde,0x34,0x40,0x4b,0x1a,0x8f,0x40,0x60,0x29,0x37,0xbe,0x6e,0x1a,0x27,0x40,0xd3,0x4a,0x61,0x40,0x78,0x38,0x89,0x40,0xb0,0x6,0xc6,0x3e,0xd8,0x3c,0xef,0xbe,0xb9,0x7e,0x99,0xc0,0x38,0x28,0xae,0xbe,0x8c,0x4a,0xb5,0xbf,0x70,0x65,0x18,0xbe,0x58,0x14,0x99,0x40,0xeb,0xe9,0xcf,0xbf,0x76,0xc3,0x81,0xc0,0x3f,0x93,0x91,0x40,0x40,0xa4,0x72,0x3e,0x56,0x82,0x4f,0xc0,0x58,0xf3,0x60,0x3e,0x70,0x27,0xa4,0xbd,0xa3,0xe7,0xd3,0x3f,0x1e,0xd9,0x93,0x40,0xff,0x55,0x2f,0xc0,0x49,0x51,0x3a,0xc0,0x30,0x7e,0xa6,0xbe,0x1a,0x72,0x31,0x40,0x52,0x5d,0x9f,0x40,0xca,0x5d,0x4d,0xc0,0x42,0x93,0x18,0xc0,0x74,0x40,0xaa,0xbe,0x3a,0x8,0x84,0xc0,0x14,0xbf,0xea,0xbe,0xca,0xad,0x72,0x40,0xc4,0xf3,0x90,0x40,0x52,0xff,0x67,0x40,0xe4,0x18,0x50,0xbf,0xe,0xd8,0x1d,0xc0,0xd4,0xe8,0x7b,0x40,0x5c,0xa2,0xba,0xbf,0xa8,0xb7,0x33,0x3e,0xe,0xbc,0x93,0x40,0x20,0xfb,0xca,0xbe,0x36,0x7b,0x6e,0x40,0xc3,0xed,0x37,0xc0,0x20,0x80,0x96,0x3d,0xd0,0xdc,0x9e,0x40,0x0,0x30,0xca,0x3b,0x92,0x38,0x50,0xc0,0xbc,0xca,0x87,0x3f,0x44,0x8,0x1c,0xc0,0x3,0xf8,0x2e,0x40,0xb0,0x5e,0x69,0x40,0xac,0x51,0x63,0xbf,0xad,0xd7,0x40,0x40,0x0,0x4d,0x83,0x40,0x56,0xed,0x5e,0x40,0x62,0x96,0x3d,0x40,0x59,0x4e,0x95,0xc0,0x2a,0x38,0x83,0xc0,0x80,0x26,0x80,0x40,0x83,0x40,0xf0,0x3f,0xa8,0xe3,0x7a,0xc0,0x6a,0x48,0x89,0x40,0x80,0x60,0xab,0x3e,0x68,0x5a,0x90,0xc0,0x71,0x81,0x0,0xc0,0x77,0xe2,0x86,0xc0,0x0,0x6a,0xe0,0xbf,0x78,0xae,0xf1,0xbe,0xc4,0xb5,0xda,0xbe,0x8a,0xd,0x33,0xbf,0x64,0xc8,0xff,0xbe,0x13,0x43,0x82,0x40,0xc4,0x49,0x5f,0x40,0x5,0xcd,0x92,0xc0,0x22,0x6b,0x95,0x3f,0x94,0x6,0x24,0xc0,0x48,0xde,0x71,0xbf,0x99,0xf7,0xfa,0xbf,0xb,0xc1,0x21,0xc0,0x3e,0xcc,0x2c,0xc0,0x7f,0x42,0x9e,0xc0,0x49,0x67,0xf4,0xbf,0x8c,0x2,0x78,0xbf,0x90,0x1c,0x93,0xc0,0x3c,0x76,0xca,0x3f,0x42,0x5f,0x29,0xc0,0xab,0xab,0xb7,0xbf,0x54,0x9c,0x0,0x40,0x13,0x8,0x9a,0x40,0x2,0x37,0x19,0x40,0xa2,0x5e,0x6d,0xc0,0x4c,0x92,0x67,0x40,0xa2,0xcc,0x1,0xbf,0x2,0xb9,0xe9,0x3f,0xf6,0xdc,0x44,0xc0,0x2e,0xb2,0x95,0x40,0x4b,0x4c,0x4c,0xc0,0xc4,0xf6,0x48,0x40,0x9a,0x1b,0x86,0x40,0x48,0x6d,0xf9,0x3e,0x72,0xfc,0x77,0x40,0x20,0xd2,0x3e,0x40,0xb0,0x10,0x41,0xbf,0x4,0xcd,0x21,0x3f,0xf0,0x19,0xd7,0x3d,0x2a,0x15,0x4f,0xbf,0x30,0xc0,0x8d,0xc0,0xce,0xe2,0x34,0x40,0xfa,0xeb,0x98,0xc0,0xf7,0x87,0xe9,0x3f,0x72,0xd6,0xe8,0xbf,0xfc,0x60,0xa2,0x3e,0x68,0xff,0x83,0xbf,0x86,0xbb,0x36,0xc0,0x91,0x3c,0xf0,0xbf,0xc8,0x39,0x90,0xc0,0x89,0xc6,0x3e,0xc0,0xfa,0x13,0x26,0x40,0x78,0x16,0x84,0x40,0xaf,0xfe,0x97,0xc0,0x95,0x5,0x92,0xbf,0xe8,0x81,0xe5,0x3e,0x4b,0x11,0x32,0xc0,0xce,0x57,0x6d,0x3f,0x26,0xc5,0xc,0xbf,0xae,0x73,0x53,0x3f,0xd3,0xe3,0x31,0xc0,0x3f,0xdc,0x89,0xc0,0xc8,0x93,0x5,0xbf,0xc,0x7,0x5a,0x40,0xa0,0x2b,0x8b,0x40,0xa6,0xf4,0x7d,0x40,0x6c,0x70,0x87,0x3e,0x1c,0x40,0x71,0x40,0xfb,0xa9,0x2,0xc0,0xca,0xbd,0x68,0x40,0xa4,0x76,0x46,0x3f,0xca,0x6f,0x72,0xc0,0xfa,0xe7,0xd1,0xbf,0x2f,0x6f,0x8e,0x40,0xe,0x97,0xeb,0xbf,0x87,0x26,0x9e,0xc0,0xfc,0x7a,0x9a,0x40,0x13,0x61,0xc7,0x3f,0xb,0xe9,0x8d,0x3f,0xbe,0x86,0xd,0xc0,0x94,0xca,0x90,0x40,0xc3,0x99,0x83,0x40,0x7a,0x87,0x81,0xc0,0xb0,0x5e,0xc,0x40,0xe2,0xaa,0x92,0x40,0x2,0xee,0x72,0xc0,0xfb,0xff,0xb8,0x3f,0x6d,0x19,0x8,0xc0,0x7e,0x68,0x63,0x40,0x10,0xa2,0x5b,0x40,0x14,0xc2,0x24,0x40,0xe2,0x8c,0xa9,0xbf,0x70,0xa0,0x81,0x40,0xda,0xf0,0x98,0xbf,0xfe,0x40,0x54,0x40,0x5d,0x47,0x17,0x40,0x69,0xa8,0x83,0xc0,0xd2,0xed,0x49,0xc0,0xa8,0xb0,0xce,0xbe,0x31,0x59,0x83,0xc0,0x1a,0xe,0xa5,0xbf,0x42,0x44,0x2d,0x40,0x5,0xaa,0x90,0x40,0xd4,0x79,0xca,0xbe,0x81,0x3f,0x99,0xbf,0x8c,0x4f,0x71,0xc0,0x1c,0x44,0xc2,0x3f,0x8e,0x28,0x37,0x3f,0xa0,0x90,0x8,0x40,0xca,0x54,0x87,0xc0,0xa0,0x5,0x7a,0x3e,0xec,0x6e,0xd,0xc0,0x1a,0x95,0x34,0xc0,0xe9,0x8,0x1f,0x40,0xea,0x6,0x83,0xc0,0xb7,0x3d,0x3f,0xc0,0x10,0xa2,0x6b,0x40,0x2b,0x44,0x51,0xc0,0x2c,0x94,0x57,0x40,0x16,0x96,0xe9,0xbf,0x2b,0xc7,0x5a,0xc0,0xec,0x54,0xa5,0xbe,0xd0,0xdd,0x44,0xc0,0x0,0xdf,0xa7,0x3f,0x9e,0xb7,0x63,0x40,0x84,0x77,0x72,0xc0,0xbb,0x8e,0x58,0xc0,0xa,0x53,0x5e,0xbf,0xc8,0x7a,0x28,0x3e,0xc7,0x86,0x8a,0x40,0x2e,0x5a,0x7b,0x40,0x2,0x28,0x2d,0xc0,0x42,0xcb,0x50,0x40,0x92,0x2f,0x39,0x40,0x1e,0x20,0x75,0xc0,0x15,0x15,0x46,0x40,0x47,0x3c,0x9a,0x40,0x25,0xd1,0x95,0xbf,0x8e,0x1e,0x8a,0x40,0xe2,0xce,0x97,0x40,0x98,0xc1,0xa0,0x3f,0xf0,0x4f,0xdd,0x3d,0x4e,0xca,0x84,0x40,0xae,0x3a,0x5d,0x40,0xd4,0x40,0x98,0x40,0x4c,0x34,0x4d,0xc0,0x1f,0x47,0xda,0x3f,0x4e,0x55,0x43,0x40,0x66,0x4d,0x50,0xc0,0xe0,0xbd,0x59,0x3f,0x86,0xce,0x2d,0xc0,0xaa,0xa0,0x66,0xc0,0xc,0x2f,0x9d,0x40,0xe4,0xb3,0x81,0xc0,0xc2,0x71,0x92,0xc0,0x28,0x3e,0x85,0x40,0x20,0x4f,0x3d,0x40,0xf9,0xda,0x8f,0x3f,0xb2,0x6a,0x67,0x40,0x40,0xf7,0x1a,0x3e,0x8f,0x6c,0xcc,0xbf,0x52,0x45,0x3d,0xbf,0xb2,0x99,0x6f,0x3f,0xee,0xf0,0x98,0xc0,0x34,0x2b,0x91,0xc0,0x94,0xc,0xe6,0xbf,0xfa,0x4b,0x11,0x3f,0x2a,0xd7,0x53,0x40,0x91,0xc8,0x16,0xc0,0x44,0xd9,0x86,0xc0,0xaa,0xaa,0x8f,0xc0,0xd0,0xec,0xab,0xbd,0x54,0x45,0x48,0xc0,0xe,0xa1,0x8c,0xbf,0x88,0x7d,0x4e,0xc0,0x4,0x36,0x10,0x40,0x6,0x92,0xd5,0xbf,0x4e,0x9f,0x5f,0xc0,0xec,0x25,0xca,0x3f,0x0,0xb6,0x46,0xbe,0x30,0xb4,0x47,0x40,0x6c,0x4f,0x8a,0x3e,0x12,0x6c,0x4,0x40,0x90,0xcb,0xd5,0x3f,0x8,0x0,0x33,0xc0,0xfc,0xb9,0x7f,0x40,0x2a,0xc5,0x67,0x3f,0x94,0x8a,0x3d,0xbf,0x26,0x1f,0x35,0x3f,0x24,0x82,0x90,0x40,0xf2,0x2,0x6c,0x40,0x16,0x67,0x87,0x40,0x28,0xf,0x36,0xc0,0xd1,0x8c,0x9c,0xbf,0x73,0x80,0x8e,0x3f,0x90,0x25,0x2e,0xbf,0xc6,0xf7,0x70,0xbf,0x59,0xc9,0x70,0x40,0x8c,0xa7,0x2b,0xc0,0x2e,0xee,0x12,0xc0,0x1a,0xe2,0x37,0x3f,0xdc,0xa1,0x12,0xc0,0x8e,0xca,0x35,0xc0,0x84,0xd8,0x7f,0xc0,0x96,0x99,0x57,0x40,0x6e,0x6f,0x1f,0xc0,0xcc,0x88,0x20,0xbf,0x30,0xc,0x50,0x40,0x64,0x6e,0x99,0xc0,0xd0,0xa9,0x85,0xbd,0xd7,0xc1,0x13,0xc0,0xa2,0x19,0x66,0xc0,0x1a,0xf0,0x1f,0x3f,0x5b,0xe9,0xc4,0x3f,0x83,0x98,0x4f,0x40,0xb4,0xb1,0x9f,0x40,0x7f,0x95,0xd1,0x3f,0x10,0x1c,0xba,0xbd,0xb2,0x37,0x29,0xc0,0xdb,0xd9,0xb3,0xbf,0x2a,0xaf,0x91,0xc0,0x7f,0x85,0x92,0xc0,0x59,0xfc,0x74,0xc0,0xcc,0xfb,0x5f,0x40,0x12,0xf4,0x7,0x40,0x1a,0xbb,0x92,0x40,0x48,0xa0,0x5c,0x40,0xd4,0xe2,0x5e,0x40,0x2f,0x74,0x84,0x3f,0x4f,0xe6,0x21,0x40,0x68,0xa2,0xe5,0x3f,0x82,0x71,0x7e,0xc0,0x70,0xa8,0x7d,0xc0,0xca,0x52,0x80,0x40,0xf9,0xa1,0x48,0x40,0x4a,0x5b,0xa5,0xbf,0xaf,0x9e,0x36,0xc0,0x9e,0x85,0x60,0xc0,0x3,0xa2,0x75,0xc0,0x2,0xa4,0xcc,0xbf,0xe0,0x4d,0xd6,0x3e,0x88,0x19,0x15,0x3e,0xfd,0xb1,0xeb,0x3f,0xac,0xd0,0x1b,0x3f,0x6d,0xf7,0xa4,0x3f,0xc2,0xde,0x6f,0x40,0x16,0x2d,0x8f,0x3f,0xa4,0xc8,0xa6,0xbe,0xb5,0xa2,0x1d,0x40,0x7,0xa7,0xdd,0x3f,0x7e,0x78,0x9,0x40,0xdd,0xc0,0xac,0xbf,0x1,0x86,0x9f,0xc0,0xf0,0x28,0xe1,0xbf,0x61,0x95,0x81,0x40,0xfc,0x27,0xdb,0xbf,0x72,0x88,0x20,0xc0,0x9b,0xcc,0x8,0xc0,0x47,0x58,0x44,0x40,0x6,0xb9,0x93,0x40,0x3b,0x4a,0x98,0xc0,0x98,0x84,0xdd,0xbf,0x98,0xb4,0x7d,0x40,0x64,0xb7,0x8e,0x3f,0x36,0x9c,0x4b,0x40,0xce,0xff,0x7c,0xc0,0xd8,0x1e,0x3f,0x40,0xd1,0xbb,0x1f,0xc0,0x16,0x51,0x47,0xc0,0x6f,0x4,0xff,0xbf,0x91,0xd9,0x69,0xc0,0xdd,0x68,0xbe,0x3f,0x9a,0xde,0x56,0x40,0x5f,0xa7,0x50,0xc0,0xa5,0x1a,0xe5,0x3f,0x6e,0xa3,0x6d,0xc0,0x86,0xd1,0x2f,0x40,0xa0,0xaf,0xdc,0xbe,0xdc,0x48,0xad,0x3e,0xda,0xe8,0x7c,0xc0,0x5d,0x58,0xea,0x3f,0x92,0x56,0xf3,0x3f,0x17,0x10,0xe2,0xbf,0x1c,0x15,0xa,0xc0,0x6c,0x82,0x7a,0x40,0x4d,0xba,0x63,0x40,0xa7,0xf1,0x22,0xc0,0x3c,0xad,0xe3,0x3f,0x48,0x2f,0x8,0xc0,0x4c,0xce,0x96,0xc0,0x90,0x25,0x60,0xbe,0xf2,0x14,0x88,0xc0,0xfb,0x2b,0x17,0xc0,0x24,0xbc,0xbf,0xbe,0x31,0xac,0x4c,0xc0,0x72,0x16,0x3a,0x40,0xcd,0x5b,0xbd,0xbf,0x5c,0x1,0x7a,0xc0,0x1a,0xd1,0x57,0x3f,0x56,0x98,0x9d,0x3f,0x4f,0x14,0xab,0xbf,0x22,0xd9,0x71,0xc0,0x81,0x68,0xe,0x40,0x28,0xeb,0xd7,0xbf,0x97,0x71,0x3,0xc0,0x8e,0x72,0x81,0x40,0x38,0x3d,0x34,0xc0,0xd2,0x3a,0x36,0x40,0x60,0xd6,0x57,0x3d,0x85,0x90,0x8a,0xbf,0xc4,0xcf,0x47,0xc0,0x85,0xd0,0x9a,0x40,0x24,0x9a,0xfa,0x3e,0xae,0x9a,0x36,0x3f,0xa3,0x2,0x7f,0xc0,0x2f,0xd9,0x62,0x40,0xe0,0xf5,0x4e,0xbd,0xb9,0xa8,0xe,0x40,0xdc,0x8,0x59,0x40,0xfb,0xa7,0x98,0x3f,0xd1,0x3b,0x3b,0x40,0xec,0xd1,0x14,0xc0,0xf6,0x2,0x6,0x40,0x1f,0xd1,0x2,0x40,0x39,0x4d,0x21,0x40,0x13,0xe0,0xd4,0xbf,0xdc,0x1c,0x33,0x40,0xde,0xb2,0x8b,0x40,0xd0,0x6c,0x1c,0xc0,0x18,0x9d,0x6,0xbf,0x54,0x60,0xf5,0xbe,0x4,0xf8,0x20,0x40,0xa8,0x9,0x19,0xbf,0xba,0x90,0x91,0x3f,0x9a,0x1b,0xf4,0xbf,0xe2,0x49,0xc9,0x3f,0x88,0x39,0x3d,0x40,0x18,0x1,0x7f,0x3f,0x91,0x59,0x9b,0x40,0x78,0x3d,0x8e,0x40,0x3b,0x72,0x63,0xc0,0xea,0xf8,0x5d,0xc0,0xc8,0x89,0x7f,0xc0,0xd8,0xf3,0x83,0xbf,0x14,0x25,0x28,0x40,0x78,0xaf,0x4,0xc0,0xf0,0xb3,0x9c,0xbf,0x8c,0x57,0x14,0xc0,0xed,0x7,0xb5,0x3f,0x87,0x44,0x84,0x3f,0x4c,0x15,0x82,0xc0,0x46,0xed,0x20,0xc0,0x1e,0xf2,0x41,0xbf,0x31,0x81,0x93,0x40,0x9e,0x61,0x97,0xc0,0xb8,0x8d,0x94,0xc0,0xc1,0x4d,0x7,0x40,0x7,0x7b,0xcd,0x3f,0x0,0x3b,0xe2,0xbe,0xde,0x61,0x7e,0xc0,0x9,0xd1,0x1d,0xc0,0xce,0x65,0x5d,0x40,0x36,0x13,0x95,0x40,0x88,0xe2,0x6e,0x3f,0x9f,0xcb,0x9f,0x40,0xaa,0xbb,0x7d,0x40,0x40,0x7e,0xb4,0xbe,0x42,0xf6,0x46,0xc0,0x8a,0x9e,0x2e,0xc0,0x86,0x95,0xbb,0xbf,0xe0,0x8d,0x82,0xc0,0x17,0xc7,0x9e,0x40,0xe8,0x22,0x1a,0x3e,0x38,0x48,0x99,0xc0,0xdc,0xf3,0x20,0xc0,0x99,0x46,0xcf,0xbf,0x8,0xa1,0x81,0xc0,0xf2,0x56,0x89,0xbf,0xf2,0xf9,0x4e,0xc0,0xec,0x0,0xa4,0xbf,0xfe,0xc8,0x6e,0xc0,0x98,0x6f,0x18,0xbe,0xe2,0x80,0x5b,0xc0,0xe1,0xd2,0xff,0x3f,0xcc,0x36,0x98,0x3f,0x5c,0x72,0xb8,0xbe,0x9f,0xc2,0x40,0x40,0xfa,0xe0,0x1a,0x40,0xb4,0x9d,0x8f,0xbe,0x60,0xd9,0xc5,0x3d,0x74,0x7e,0xfd,0x3f,0x68,0x5e,0x89,0xc0,0xae,0x58,0x78,0x3f,0xd0,0x2d,0xcf,0x3e,0x50,0xd3,0xf9,0xbd,0x74,0x99,0xab,0xbf,0x96,0x8b,0x1e,0xc0,0xad,0xe0,0xcb,0x3f,0xe1,0x9c,0x5b,0xc0,0xa1,0xc5,0xf7,0x3f,0x20,0xb0,0x83,0xc0,0x82,0xeb,0xaa,0x3f,0xc4,0x59,0xeb,0x3e,0x98,0x75,0x19,0xc0,0x74,0x30,0x14,0xc0,0x3d,0xcc,0xaf,0xbf,0x8,0xa6,0x14,0xc0,0x88,0x63,0xaf,0xbf,0x91,0xea,0x92,0xbf,0x5f,0xda,0x80,0x40,0xa0,0xf7,0x37,0x3e,0x1b,0xa9,0x8c,0x40,0x10,0xd5,0x7b,0xbf,0x64,0xd3,0x79,0xc0,0xab,0xc2,0x91,0xbf,0xd5,0xff,0x2c,0x40,0xe2,0xd7,0x58,0xc0,0x11,0xb2,0x7f,0x40,0x5c,0xb6,0xe7,0xbe,0xd4,0x5b,0x79,0x40,0x28,0x7f,0xa3,0xbf,0xa3,0xee,0x8c,0xc0,0xf0,0xe4,0x3e,0xc0,0xc8,0xa9,0xec,0x3e,0x9a,0x35,0x66,0xc0,0x9e,0x21,0x8c,0x40,0xe,0xc2,0x85,0x40,0x2a,0xf6,0x98,0xbf,0x4f,0x4,0x6d,0x40,0x56,0x71,0xbf,0x3f,0x8,0x6,0xdd,0xbe,0x4,0xc,0x9e,0xc0,0x77,0xb9,0x87,0xc0,0xcc,0xa3,0x73,0xc0,0xb4,0x14,0x9b,0xbe,0x7c,0xec,0x73,0x40,0x1b,0x49,0xa5,0x3f,0xdc,0x11,0x50,0xbf,0x64,0xa6,0x44,0x40,0x48,0x4e,0xe,0x40,0xc5,0x3a,0x5c,0xc0,0x42,0x75,0x8e,0x3f,0xe4,0x64,0xac,0x3e,0x96,0x2a,0x2,0x40,0xb6,0x7e,0x4,0x3f,0x85,0x89,0xbe,0xbf,0x3c,0x85,0x11,0xc0,0xca,0x93,0x78,0x40,0x3d,0xf7,0xca,0x3f,0x2d,0xfa,0x4d,0x40,0xb5,0x46,0x79,0x40,0x34,0xb2,0x2,0x40,0x87,0x5a,0x7f,0xc0,0x0,0xc1,0x18,0x3f,0x92,0x9,0x40,0x40,0x2f,0x2a,0xb5,0xbf,0x7c,0xe1,0x74,0x40,0x8b,0xd3,0x16,0xc0,0x2,0x5b,0x95,0xc0,0xc5,0x64,0x9f,0x40,0x3c,0x6b,0x4e,0x40,0xc3,0x30,0x83,0x40,0xbc,0xbc,0x44,0x40,0x8b,0x10,0x88,0xc0,0x95,0xaa,0xc4,0x3f,0x16,0x98,0x93,0x40,0x64,0x83,0x35,0xc0,0x14,0xe6,0x57,0x3f,0x5d,0x7d,0xb1,0x3f,0x80,0xfe,0x8d,0xc0,0x90,0x5c,0x1,0x3f,0x7d,0xc8,0xeb,0x3f,0x90,0x88,0xfa,0xbd,0x3f,0xbf,0x84,0xc0,0x2e,0xd,0x23,0x40,0x11,0xb0,0x84,0xc0,0x2e,0x9a,0xc8,0x3f,0x20,0xf5,0x64,0x3e,0x0,0x61,0x6e,0x3e,0x72,0x97,0x64,0xc0,0xf2,0x10,0xf7,0xbf,0xfb,0xe3,0xbb,0xbf,0x7c,0xa6,0x14,0xc0,0xa1,0x4c,0xf3,0xbf,0xc,0x9f,0x15,0x3f,0xbc,0xaa,0x99,0x40,0x94,0x43,0x4,0xc0,0x98,0x8d,0x8a,0xc0,0xed,0x8f,0xaf,0x3f,0x9d,0x6a,0x8f,0x40,0x73,0x58,0x9d,0xc0,0x2a,0x8c,0x8c,0x40,0xcf,0x1b,0x67,0x40,0xe7,0x5e,0xc3,0x3f,0xb1,0xbe,0x3c,0x40,0xcc,0xc5,0x4a,0xc0,0x72,0xb9,0x91,0xc0,0xc6,0x63,0x91,0x40,0x48,0x3c,0x1e,0x40,0x11,0xf4,0x51,0xc0,0x7a,0x83,0x60,0xc0,0x2b,0x56,0xab,0x3f,0x1f,0x9b,0x51,0x40,0x3,0x17,0x8c,0x40,0x2,0x1b,0x21,0x3f,0x4e,0x4d,0x3b,0x40,0x64,0xe7,0xf9,0x3f,0x5,0x4f,0xe2,0x3f,0xc8,0x37,0x20,0xc0,0xcd,0xc7,0x67,0xc0,0x82,0x60,0x9b,0x40,0x96,0xda,0x84,0x3f,0x97,0xd7,0x8f,0xc0,0x9d,0xa7,0xec,0xbf,0xfc,0x1d,0xfe,0x3e,0xfe,0xbb,0x56,0x3f,0xd,0x49,0x6f,0xc0,0x11,0xc7,0x8b,0x40,0x4a,0x8d,0x93,0xc0,0x54,0xca,0x1c,0x40,0x8d,0x6c,0xd,0xc0,0x98,0x86,0x62,0xc0,0x44,0x88,0xd,0x40,0x3,0x63,0x99,0xbf,0x1e,0x74,0xfe,0xbf,0x96,0x42,0x6,0xbf,0x78,0x98,0xe4,0xbf,0xf3,0xf5,0x94,0x40,0x54,0xb2,0x96,0xc0,0x3b,0x66,0xdb,0xbf,0x22,0x60,0x1b,0xbf,0xc0,0xec,0xb1,0xbf,0xa8,0x53,0x44,0xc0,0xf8,0x9e,0x29,0x3f,0xe0,0x96,0xce,0x3d,0x18,0x50,0x4b,0x40,0xb1,0x30,0xd2,0x3f,0xf2,0x18,0x5b,0x40,0x3c,0x4,0x62,0xc0,0x81,0x7a,0x85,0x40,0x8d,0xe2,0x5,0xc0,0x0,0x91,0x82,0xbd,0xcc,0xa1,0xeb,0x3f,0x7f,0x42,0x84,0xbf,0x67,0xc6,0xa9,0xbf,0x2d,0x6e,0x11,0x40,0xa0,0x8e,0x66,0x40,0xd1,0x1c,0x50,0xc0,0xeb,0x56,0x38,0x40,0x2c,0xed,0x53,0x40,0xce,0x1,0x5,0x40,0xae,0xba,0xcd,0x3f,0x12,0xcb,0x2b,0x40,0x15,0x8f,0x97,0x40,0xa3,0x5f,0x59,0x40,0xb0,0x3d,0x23,0x3e,0x4d,0x73,0x5a,0xc0,0x70,0x6c,0xfa,0xbd,0x82,0xe3,0x37,0xc0,0x36,0x18,0x8d,0x40,0x22,0xb,0xbe,0xbf,0x20,0x8b,0xb8,0x3e,0x4,0x5e,0x7,0x40,0xd7,0x99,0xde,0x3f,0x9c,0x36,0x83,0xc0,0xd6,0x8f,0x4e,0xc0,0xd6,0xc1,0x5a,0x3f,0xc8,0xa,0x6b,0xc0,0xfc,0x27,0xf9,0x3f,0x6b,0xa4,0xa9,0x3f,0x65,0x28,0xf9,0xbf,0x5a,0x1d,0x7d,0xc0,0x2a,0x2a,0x44,0x3f,0x64,0xa9,0x32,0xc0,0xf3,0x8c,0x99,0x40,0x2,0xa9,0x4e,0x40,0xb7,0xcb,0x4c,0x40,0xff,0xb0,0x15,0x40,0x13,0x89,0xf9,0x3f,0x74,0x34,0x70,0xc0,0x46,0x57,0x98,0x40,0x31,0xc9,0x82,0xbf,0xaa,0x66,0x39,0x40,0xfd,0xe8,0x92,0x40,0x60,0x26,0x76,0x3f,0x44,0xe2,0x67,0xc0,0xc8,0x2,0x73,0xbe,0x40,0x57,0x3a,0xc0,0x1b,0x48,0x82,0xc0,0xd4,0xa2,0x64,0x40,0xde,0xb1,0xf1,0xbf,0x40,0x8a,0x80,0x40,0x33,0x8,0x3a,0xc0,0x8a,0x93,0x4,0x40,0xd0,0x55,0xac,0xbe,0x6a,0x7f,0xe,0xbf,0xfa,0xd3,0x38,0x40,0xa3,0xdf,0x90,0xc0,0x77,0xb7,0x85,0x40,0x25,0x39,0x83,0xbf,0xe2,0x84,0x10,0x40,0x5d,0xe9,0x3d,0xc0,0xb0,0xe9,0x26,0xc0,0x0,0x71,0xed,0xbd,0x76,0x2c,0x99,0xbf,0xf4,0x12,0x2,0xc0,0xf2,0x28,0x2d,0x40,0xb0,0xbe,0xb,0xbf,0x16,0x55,0x3,0xc0,0xe4,0x3d,0x12,0xbf,0x68,0x52,0x8f,0x40,0xf2,0x2d,0x83,0xc0,0xac,0x5,0x55,0xbf,0x30,0x39,0x48,0xbf,0xda,0xcd,0x1b,0x40,0x6c,0xe5,0x83,0x40,0x22,0xef,0x48,0xc0,0xe6,0x21,0x6d,0xbf,0xf1,0xe8,0x94,0xc0,0x0,0xa7,0x6c,0xc0,0x58,0xf3,0xef,0x3f,0x2a,0x63,0xb,0xbf,0xa3,0xec,0x6c,0x40,0xa0,0x89,0xf3,0xbe,0x5c,0x1b,0x12,0xc0,0x72,0x1e,0xd3,0xbf,0x20,0x8f,0x7,0x3f,0xdf,0xfd,0x4c,0x40,0xf4,0xb1,0xd1,0x3e,0x9d,0xf8,0x91,0x3f,0xc8,0xbf,0xe0,0xbf,0x95,0x26,0xf3,0x3f,0x62,0xf9,0x57,0xc0,0x1d,0xcb,0x46,0x40,0x38,0x86,0x5c,0xbe,0x96,0x68,0x86,0x40,0x9e,0xe4,0x22,0xc0,0xcb,0xd9,0x9c,0x40,0x10,0x4e,0x4b,0x40,0xf6,0x38,0x81,0xc0,0x5a,0xf1,0xbd,0xbf,0xe1,0xbb,0x8b,0x40,0x78,0x5d,0xd9,0x3f,0xe,0x13,0x85,0x40,0xa8,0x3a,0x86,0xbf,0xc4,0xa8,0x8,0xc0,0x96,0x3a,0x54,0x40,0xeb,0x8,0xc0,0xbf,0x21,0x1a,0x91,0x40,0x3c,0xdd,0x3a,0x40,0x38,0x49,0x9f,0x40,0x4c,0x56,0x71,0x40,0xfa,0xa,0xbe,0xbf,0xe,0xf2,0x86,0x40,0x3c,0x43,0x78,0xc0,0xcd,0x8f,0x9c,0x40,0x80,0xa3,0x56,0xbc,0xba,0xd6,0x11,0xc0,0x8a,0xe2,0xba,0x3f,0x12,0xbf,0x2b,0x40,0xc0,0x44,0x70,0x3e,0x86,0x70,0x63,0x40,0xbc,0xf1,0xb5,0xbe,0x7d,0x3b,0x9d,0xc0,0x14,0x5e,0x4e,0x40,0xa0,0xf1,0x38,0x3d,0xad,0x94,0x33,0x40,0x92,0xd,0x1e,0xc0,0xf4,0xc,0x51,0x40,0xa7,0x5d,0xf0,0x3f,0xd5,0xed,0x39,0xc0,0xa5,0xbc,0x94,0xc0,0x28,0x8c,0x2a,0xbe,0xf2,0x96,0x6e,0x3f,0xc1,0x4,0x41,0xc0,0x70,0xf4,0xa9,0xbf,0x67,0xf0,0x89,0xbf,0x29,0x91,0x8b,0xc0,0x29,0x14,0x6,0xc0,0x1c,0x39,0x28,0xc0,0xa0,0x95,0x71,0x3e,0xfa,0xbe,0x9e,0x40,0xe7,0x37,0x42,0x40,0xa0,0x19,0x22,0x40,0x8d,0xc5,0x8a,0x40,0x2c,0xcb,0xcb,0x3e,0x30,0xbf,0x83,0x3f,0x8c,0xb7,0x31,0xc0,0x4e,0x3e,0x32,0x40,0x9e,0x53,0x26,0x40,0xe1,0x6c,0x9d,0x3f,0xcc,0x67,0x44,0xc0,0x90,0xc7,0xa2,0x3f,0x54,0xae,0x1d,0x3f,0x56,0xf6,0x3e,0x40,0x4c,0xc1,0xf1,0xbe,0xb4,0x80,0x8f,0x40,0xd4,0x38,0x5e,0xbf,0x99,0x68,0x3c,0x40,0xfc,0xae,0x7e,0x3f,0xe8,0x7a,0x78,0xc0,0x58,0xd7,0xf2,0x3f,0x5a,0x66,0x8f,0xc0,0x46,0x38,0x88,0xc0,0xeb,0x7e,0x74,0x40,0x7c,0x88,0x45,0xc0,0xbc,0x47,0x51,0xc0,0xac,0x10,0xa7,0xbf,0x5,0xd2,0x83,0x40,0x67,0xec,0x9d,0x40,0x1f,0x4a,0xff,0xbf,0x5e,0xb3,0x31,0xc0,0x67,0x3b,0x41,0xc0,0x52,0xe9,0x16,0xc0,0x43,0xac,0x98,0xc0,0x37,0xeb,0x11,0xc0,0x95,0xf1,0x91,0x3f,0x3d,0xa8,0xbf,0xbf,0x4a,0x2f,0x9a,0xc0,0x9e,0x78,0x22,0xbf,0x24,0x38,0x92,0x40,0x3,0x93,0x8c,0x3f,0x2,0xfe,0xd6,0x3f,0xdc,0xda,0x75,0xc0,0x32,0xcf,0x76,0xc0,0xa2,0x73,0x53,0xc0,0x86,0xe1,0xba,0xbf,0x4,0x1c,0x14,0xbf,0xdc,0x2d,0x9,0xc0,0xe2,0xe2,0xda,0x3f,0x3a,0x42,0x4c,0x40,0x5b,0xe5,0xa0,0xbf,0x1a,0x4a,0x93,0xc0,0x1c,0xc,0x2,0xc0,0xd,0x4a,0x8a,0x40,0x2e,0x4b,0x82,0xc0,0xa3,0x94,0xe5,0xbf,0x48,0x7f,0x8,0x40,0xe1,0xf3,0x93,0xbf,0x6a,0xc5,0x96,0x40,0xa8,0xa8,0xc2,0xbf,0xbb,0xcd,0x64,0x40,0x84,0xa3,0x2c,0x40,0x41,0x86,0x91,0xc0,0xff,0xf,0x9a,0x40,0x2c,0xba,0x48,0xc0,0x48,0x46,0x43,0x40,0xf2,0xd7,0x49,0xc0,0x75,0x75,0xec,0xbf,0x16,0x6a,0x2,0x40,0x80,0xad,0x65,0xbf,0x94,0x3e,0x57,0xc0,0xc0,0x3c,0x5d,0x40,0xac,0x28,0xbc,0x3f,0x90,0x8c,0xba,0x3d,0x45,0x2b,0x84,0x40,0xb7,0xd6,0xf8,0x3f,0x6e,0xe3,0x91,0x40,0x0,0xb8,0xba,0x3a,0xe6,0x6b,0x88,0xc0,0x9e,0x58,0x3a,0x40,0xdc,0xec,0x7e,0xc0,0x3f,0x5b,0xe7,0x3f,0x0,0xfa,0x96,0xbd,0xc8,0xd5,0x93,0xbe,0xd8,0x5a,0xe,0xc0,0x16,0x96,0x3c,0xc0,0xde,0x90,0x8a,0xc0,0x43,0xfb,0x93,0x3f,0xd0,0x1d,0x50,0xbf,0xed,0x34,0x3f,0xc0,0x9b,0xc9,0x8c,0x40,0x28,0x81,0x5b,0x40,0xf2,0xf,0x8a,0x3f,0x7b,0x8d,0xab,0x3f,0x24,0xda,0x26,0xbf,0xc6,0x1a,0x6c,0x40,0x52,0x6d,0x9a,0xc0,0x8,0x7e,0x42,0xc0,0x57,0x84,0x62,0x40,0xa,0xf9,0x62,0x40,0xe0,0xfa,0x58,0xbe,0x5c,0x2c,0xbd,0xbf,0xdb,0xea,0x13,0x40,0xe8,0xca,0x5f,0x40,0x64,0x80,0xed,0xbf,0xe0,0x1d,0x20,0x40,0x16,0x4d,0x1a,0x40,0x8,0x9,0xf,0x3f,0x9d,0xd8,0x40,0xc0,0xa8,0xb1,0x61,0x3f,0x9a,0xa4,0x4a,0xbf,0xa6,0x9e,0xb0,0x3f,0xf8,0xb6,0x68,0xc0,0x9d,0xec,0xf2,0x3f,0x9e,0xa9,0x8c,0x40,0x66,0xbe,0x1b,0xc0,0x4f,0xbc,0x69,0x40,0xb9,0x5,0xc,0x40,0x78,0x3d,0x38,0xbf,0x7d,0xf9,0x3f,0xc0,0x9e,0x71,0x24,0x40,0x93,0x68,0x6f,0xc0,0x5e,0xf2,0x36,0x40,0x92,0x82,0x81,0xc0,0xcc,0x89,0x29,0xc0,0x18,0xa3,0x0,0x3f,0x31,0xcc,0x22,0x40,0x4,0xe7,0x93,0xc0,0x98,0x67,0xaf,0x3f,0x80,0x2d,0xbb,0xbd,0xf3,0x3d,0x3a,0xc0,0x28,0xe9,0xa7,0xbf,0x60,0x82,0x7b,0x40,0x2,0xbb,0x64,0xc0,0xa3,0xc9,0x12,0xc0,0xe,0xfc,0x6a,0x3f,0x5f,0x91,0x82,0xc0,0xf4,0xc2,0xe,0x3f,0x6,0xff,0xa9,0x3f,0x4b,0x23,0xcd,0x3f,0xad,0x11,0xf5,0x3f,0x28,0x88,0x8c,0x40,0xe8,0x2d,0xee,0x3e,0x77,0xb9,0x91,0x40,0x24,0xc8,0x12,0xc0,0xa2,0x80,0x11,0x3f,0xca,0x21,0x4b,0xc0,0xd6,0x46,0x9c,0xc0,0xd6,0x30,0x28,0x3f,0xec,0x9d,0xa7,0xbe,0x42,0xad,0x29,0xc0,0x0,0x3d,0x13,0xc0,0xf9,0x21,0x73,0xc0,0x80,0x9e,0x7e,0x3f,0xae,0xbf,0x63,0x40,0x90,0x1,0x11,0xc0,0xdb,0x1c,0x8b,0x40,0x50,0xbc,0x7c,0xc0,0x22,0xf0,0x81,0xc0,0x8a,0xdb,0x9d,0x40,0xff,0xe8,0xd0,0x3f,0xe2,0xa9,0x2d,0xc0,0x70,0xd6,0x21,0xc0,0x50,0x6e,0xc,0xbe,0xe4,0x0,0x80,0xc0,0x6e,0x7e,0x3a,0x40,0x40,0x1,0xc8,0xbf,0x5d,0x66,0x91,0x40,0x9d,0xaf,0x69,0x40,0xd8,0xe8,0x75,0x40,0x91,0x86,0x91,0xc0,0x24,0xd0,0x26,0x40,0x8d,0x5d,0x44,0xc0,0x25,0xab,0x18,0xc0,0x48,0x8a,0x45,0x40,0x79,0x8f,0x8c,0xc0,0x82,0x47,0xd1,0xbf,0x7a,0xa9,0xb,0x40,0x76,0xcd,0x1f,0xc0,0x5c,0xf,0x8e,0x40,0x28,0xb1,0x57,0x40,0x8e,0x4a,0x60,0xc0,0x1c,0xe2,0x6c,0x3f,0x2a,0x1c,0x9b,0xc0,0xd,0x79,0x3a,0x40,0x99,0x4e,0x9f,0xbf,0x40,0x36,0xa2,0x3f,0xfb,0xfe,0xf0,0xbf,0x77,0x62,0x73,0x40,0x1a,0x61,0x2c,0x3f,0x4a,0xc1,0x6b,0xc0,0x2a,0xab,0x9b,0xc0,0xe3,0xd0,0x7,0xc0,0x64,0x24,0xe5,0xbe,0xd8,0x8f,0xab,0xbf,0x2a,0x79,0x54,0xbf,0xe8,0x17,0x25,0xc0,0x70,0x19,0xe4,0xbd,0x33,0x87,0x10,0x40,0x73,0xa3,0x13,0xc0,0xf,0xb0,0x86,0xbf,0x8,0xb8,0xf,0xbf,0xe6,0x4f,0x6a,0x40,0xbc,0xd6,0x8a,0xbe,0x1e,0xd,0xca,0xbf,0x6,0x7d,0x45,0x40,0xf4,0x30,0x78,0x3f,0x52,0x41,0x3,0x40,0x86,0x34,0x17,0xc0,0x92,0x26,0x5,0xc0,0xd3,0xf8,0x1c,0x40,0x34,0xc4,0x38,0x40,0x3,0x6e,0xca,0x3f,0xc6,0x96,0xbb,0x3f,0x20,0xc6,0x16,0x3d,0x81,0xf1,0x81,0xc0,0x34,0x19,0x41,0x3f,0x54,0x24,0x96,0x3f,0xd6,0x8c,0x33,0x40,0xb6,0xc,0x2b,0x3f,0xf9,0xa4,0x9e,0x40,0x8a,0xc0,0x11,0xbf,0x2f,0x8d,0x45,0x40,0x97,0x8e,0x8d,0xc0,0x24,0x48,0x40,0xbf,0x8a,0x7e,0x4e,0xc0,0x0,0x1c,0xc5,0x3b,0x5,0x89,0x8e,0xc0,0x46,0xca,0x16,0xc0,0x5a,0xec,0x7c,0x40,0xee,0xdc,0x2,0x40,0xc2,0xd9,0x72,0x40,0xd6,0x98,0x4,0x40,0x23,0x14,0x43,0x40,0xda,0x11,0x2d,0xc0,0xad,0xeb,0xe8,0x3f,0xe3,0x43,0x97,0xc0,0xc4,0x5,0x6a,0xc0,0xb0,0xab,0x95,0xc0,0x28,0xd6,0x3d,0x40,0xc9,0x23,0xc7,0x3f,0xf4,0x87,0x47,0xc0,0xec,0x10,0xc1,0x3e,0xdc,0xc1,0x8b,0x40,0x81,0xa1,0x34,0xc0,0xfa,0xfb,0x5b,0xc0,0x12,0x94,0x76,0xc0,0x24,0xbf,0x2d,0xbf,0x3,0xab,0x8e,0x40,0x9c,0xdb,0x7f,0x3f,0x60,0x90,0xf0,0xbe,0x14,0x4e,0x4a,0xbf,0xe,0xcb,0xad,0xbf,0xac,0x26,0xa,0xc0,0x46,0x1c,0x96,0x40,0xe6,0x48,0xf8,0xbf,0xe3,0x2e,0xe3,0xbf,0xaa,0x74,0xdb,0xbf,0xf3,0xf8,0x8b,0x40,0xb4,0x2,0x43,0xc0,0xa7,0x28,0x9d,0x40,0xc0,0x2a,0x53,0x3d,0x70,0xe1,0x5,0xc0,0x66,0xb1,0x46,0x40,0x96,0x3e,0x85,0x40,0x74,0xa0,0xc7,0xbf,0xaa,0x53,0x36,0x40,0x37,0x29,0x3d,0xc0,0xde,0x47,0x7,0xc0,0x7e,0x70,0x52,0x40,0xba,0x59,0x93,0x40,0xa6,0x7,0x87,0xc0,0x9,0x6d,0x4f,0xc0,0xa8,0x17,0x6a,0xc0,0x7c,0x2d,0xdd,0xbe,0x44,0x26,0xb,0xbf,0x86,0x82,0x4b,0x40,0xbd,0x53,0x9e,0x3f,0x72,0x3a,0x73,0xc0,0x84,0xab,0xb6,0xbe,0x5,0xb6,0x3c,0xc0,0x5a,0x83,0x1,0x3f,0x6a,0xe3,0xca,0x3f,0x94,0x44,0x92,0xc0,0x40,0xd7,0x9f,0x40,0xa6,0x24,0x2a,0x40,0x76,0xb4,0x9e,0xc0,0xb4,0x35,0xe,0xc0,0xe2,0xe,0x8d,0x40,0x30,0xcc,0xa8,0x3e,0x6,0xaf,0x7b,0xc0,0x76,0x21,0x1a,0xc0,0x24,0xa9,0x90,0xc0,0xb3,0x39,0xc2,0x3f,0xfe,0x2,0x21,0xc0,0x95,0x2e,0x97,0x40,0x36,0x65,0xb4,0x3f,0xac,0xd8,0x27,0xc0,0xf6,0x3c,0x67,0x40,0x78,0xa2,0x78,0xbf,0x14,0x1b,0x55,0xc0,0x8f,0xf7,0x81,0xc0,0x4a,0xa5,0x12,0xc0,0xae,0x92,0x5,0x40,0xcb,0x6b,0x91,0x3f,0xeb,0xe6,0xc3,0xbf,0xa7,0x29,0xde,0xbf,0x5d,0x83,0xa1,0xbf,0xf0,0x3e,0x58,0xc0,0x72,0x0,0x94,0x40,0x3e,0x11,0x8e,0xc0,0x2c,0x4e,0x14,0xbf,0xbc,0x7f,0x2f,0x3f,0x0,0x3e,0xb7,0x3c,0x30,0xc2,0x5f,0xbe,0x86,0xe4,0x7d,0xc0,0x70,0xda,0xa,0xc0,0xe2,0xde,0x31,0xc0,0xa2,0xc7,0x91,0x40,0xbf,0x31,0xc3,0xbf,0x98,0xc0,0x65,0xc0,0x30,0x34,0x5f,0xc0,0xf8,0x99,0x68,0xc0,0xd6,0x81,0x68,0xbf,0xc7,0xe8,0x6,0xc0,0x5c,0x3d,0x68,0xc0,0x79,0x12,0xdd,0xbf,0x4b,0xc8,0x7f,0x40,0x6,0x41,0x8e,0xc0,0x20,0xa4,0xc7,0xbe,0x32,0xa8,0x95,0x40,0x11,0xf0,0x4b,0x40,0xad,0xb3,0x99,0x3f,0x9e,0xbf,0x6,0x40,0x87,0xe8,0xdf,0xbf,0x71,0xf5,0x77,0xc0,0x72,0xb4,0x44,0xc0,0x74,0x92,0x3a,0xc0,0x2c,0xc9,0x69,0x40,0xe0,0x67,0x2d,0x3d,0x80,0x13,0x82,0xc0,0x71,0x26,0x6f,0xc0,0xb4,0xae,0xb0,0xbe,0x11,0x21,0x34,0x40,0x4a,0x35,0x19,0x3f,0x64,0xaa,0x66,0x3f,0x3a,0xe8,0x91,0xbf,0x60,0xf4,0x82,0xbd,0xdc,0xe3,0x3c,0x40,0xad,0x45,0xd0,0x3f,0x92,0x42,0xd5,0xbf,0x92,0xe1,0x9f,0x40,0x45,0x10,0x61,0x40,0xbf,0xb4,0xdb,0x3f,0xd,0x9b,0x18,0x40,0xd8,0x58,0x56,0x40,0x70,0xf3,0x3e,0xbf,0xc4,0x77,0x61,0x3f,0x8e,0xd7,0xc6,0xbf,0xe0,0xe2,0xc8,0xbf,0xf8,0xf3,0x47,0x3e,0x89,0xb3,0x56,0xc0,0xba,0x30,0x8e,0x40,0xf4,0x9e,0x55,0xc0,0x57,0x3f,0x4d,0xc0,0x26,0xa5,0x31,0xbf,0x9d,0xe6,0x50,0x40,0x78,0x48,0x1e,0xc0,0xb8,0xe5,0xac,0xbe,0xac,0x16,0x33,0x40,0xd3,0xfb,0x8b,0xc0,0x52,0xb0,0x94,0x40,0xa4,0x84,0x2c,0x40,0xe,0x28,0xd8,0x3f,0x0,0xe2,0x86,0x3b,0x1a,0xff,0x3b,0x40,0x8a,0x84,0xb4,0xbf,0x84,0x18,0xdb,0x3e,0xce,0x3a,0x6e,0x40,0xbd,0x76,0x32,0xc0,0x98,0x9d,0xab,0x3e,0xd0,0x27,0x64,0x40,0x20,0x42,0xe3,0x3e,0x2a,0x5,0x3f,0xc0,0xc0,0x8a,0x6b,0x3f,0x92,0x30,0x88,0xbf,0xbb,0x20,0x89,0xc0,0x40,0xaf,0xc9,0x3d,0x8,0xcd,0x40,0x3e,0x24,0x90,0x4f,0x40,0xa8,0x9c,0x71,0xbe,0x35,0xc0,0x66,0xc0,0x7c,0x3f,0x8b,0x40,0x28,0xc8,0x87,0x3f,0x9b,0x7e,0xb3,0xbf,0x13,0xcc,0x40,0x40,0x1e,0x42,0x6a,0x40,0x32,0xd,0x65,0x40,0x1c,0xb6,0x7a,0x40,0x5c,0xf,0x0,0xc0,0x2d,0x94,0x93,0x40,0xd8,0x33,0x44,0x40,0xea,0xee,0x57,0xc0,0x4f,0xa3,0x19,0x40,0xca,0x55,0x34,0xc0,0xbe,0x24,0xd,0x40,0xad,0xc7,0x37,0xc0,0x3d,0xda,0x1c,0x40,0x74,0xa1,0x3,0xc0,0x43,0x2f,0x8d,0x3f,0xb3,0x67,0x80,0xbf,0x96,0x83,0x29,0x40,0x30,0x7a,0x91,0xbd,0xde,0xe9,0x14,0x40,0xa9,0x60,0xf5,0xbf,0xfe,0x12,0x16,0x40,0x3a,0x2c,0x2f,0x40,0x94,0xa7,0xb9,0x3e,0xde,0xc2,0xbd,0xbf,0xa6,0x5d,0x44,0x3f,0x20,0xe,0x94,0xc0,0x4,0xcb,0xc6,0xbe,0xe1,0xdb,0x83,0x40,0x70,0x4b,0x20,0x40,0xe8,0x5e,0x1a,0xbe,0xfa,0x35,0x24,0xc0,0xdf,0x8f,0x86,0x3f,0x37,0x97,0x8c,0x40,0xf6,0x5e,0x20,0x40,0xf0,0x5f,0xc3,0x3d,0x7f,0x85,0xc3,0x3f,0xa8,0x64,0xcf,0x3e,0x25,0xdb,0x9a,0xbf,0x7f,0xef,0x6a,0xc0,0xb4,0xf6,0x17,0xc0,0x3c,0x2a,0x8,0xc0,0xd6,0xff,0x3a,0xc0,0x7,0x55,0x9a,0x40,0xd1,0x63,0x88,0xc0,0xe8,0xbc,0x82,0x3e,0xf4,0x80,0x8f,0x3e,0xe,0xa1,0x20,0xc0,0x80,0xd2,0x1d,0xbf,0x93,0x8c,0xe9,0x3f,0xe7,0x7d,0x60,0xc0,0x16,0x83,0xd4,0x3f,0x2c,0x25,0x8b,0xbe,0x4,0x71,0x1b,0xc0,0x54,0x23,0x76,0xc0,0xd0,0xf9,0xf8,0xbe,0x22,0xbb,0x15,0xc0,0x49,0xbb,0xdc,0x3f,0x2,0x6c,0x9e,0xc0,0x94,0x9b,0x72,0x40,0x86,0xd0,0x9a,0x40,0x64,0x4d,0xd0,0x3e,0xa4,0xf2,0x59,0xc0,0x93,0x99,0x9a,0xc0,0x79,0x28,0x1a,0x40,0xeb,0xb7,0xd9,0x3f,0x90,0xe5,0x84,0x40,0x9e,0x2a,0x2a,0xc0,0x16,0xfb,0x34,0x40,0x10,0xd4,0x1,0xc0,0x9e,0x60,0x71,0xc0,0xfc,0xd9,0xd3,0x3e,0x7e,0x77,0xb9,0xbf,0x60,0x10,0x11,0x40,0x4,0xdf,0x28,0xc0,0x9,0x50,0x4e,0x40,0x53,0xa,0x68,0xc0,0x6d,0x35,0xa3,0x3f,0x16,0x5,0x55,0x40,0x44,0xbb,0xbe,0xbf,0xde,0x12,0x97,0xc0,0x1,0x1c,0xf1,0x3f,0x36,0x8d,0x8c,0xc0,0xb9,0x9d,0x28,0xc0,0x56,0x5c,0x10,0xc0,0xcb,0x9a,0x28,0xc0,0xd4,0xfb,0x92,0x40,0xf1,0x2d,0x6f,0xc0,0x3,0x8a,0x74,0x40,0xb6,0x62,0x50,0xc0,0xdb,0xa4,0x80,0x40,0xab,0x58,0xd3,0xbf,0xb8,0xeb,0x53,0xbf,0x16,0x82,0x61,0xc0,0x1a,0xa2,0x13,0x3f,0x1d,0x57,0xfe,0xbf,0xee,0x2d,0x95,0xc0,0x54,0x1a,0x1d,0x40,0x60,0x10,0xd5,0x3f,0x4b,0x7c,0x53,0xc0,0x7d,0x92,0x96,0x40,0x18,0xeb,0xfb,0xbe,0x48,0x85,0x50,0x40,0x8c,0x2b,0xe3,0xbf,0xc,0x8b,0x9e,0xc0,0x52,0x30,0x19,0xc0,0x49,0x96,0x77,0xc0,0x93,0x7,0x91,0x40,0x22,0xba,0x82,0x40,0x36,0xe6,0x71,0xbf,0x82,0x98,0x9d,0xc0,0xca,0x75,0x46,0x40,0x86,0xed,0xd1,0x3f,0xc8,0xf9,0x4c,0x40,0xc0,0x12,0x7f,0x3f,0xe,0x3f,0x7,0x40,0xc0,0x60,0xa2,0xbe,0x1e,0xd1,0x9d,0x40,0x58,0xb0,0x6c,0xbf,0xac,0x45,0x15,0x40,0xa0,0x74,0x9b,0xc0,0xa0,0xed,0x37,0xbf,0xb6,0x8a,0x7,0x3f,0x1e,0xbe,0x82,0x40,0x38,0xe0,0x2c,0x40,0x4f,0x6f,0x9b,0x40,0xe6,0xcc,0x21,0x3f,0x77,0x15,0xd2,0xbf,0x4,0x6f,0x87,0x3e,0x40,0xa2,0xe5,0xbd,0xee,0x29,0xbf,0x3f,0x26,0xab,0x71,0x3f,0x26,0xce,0xf,0xc0,0x9a,0x8d,0xa,0x40,0x5c,0xf1,0x9,0x3f,0xb3,0x18,0x63,0xc0,0xc0,0xb,0x13,0x3e,0x12,0x90,0x62,0xc0,0x40,0x26,0xd5,0xbd,0x7c,0x33,0xaf,0x3f,0xe1,0xe8,0x9f,0xc0,0xff,0xd9,0x5f,0x40,0x6d,0x1a,0x11,0xc0,0x92,0x6b,0x68,0xbf,0x3f,0x7e,0x92,0xbf,0x80,0x7c,0x78,0x40,0x62,0x1,0x46,0xc0,0x6d,0x1d,0x9e,0xc0,0x32,0x28,0x93,0xc0,0x18,0x9c,0x11,0x40,0xf8,0x6,0xe2,0xbf,0xce,0x3b,0x3e,0x3f,0xde,0xf,0x1b,0x40,0x50,0x42,0xc2,0x3d,0xc3,0x4d,0x9f,0x40,0x61,0x73,0x0,0x40,0x7a,0x24,0x99,0xc0,0x24,0xae,0x7c,0xc0,0x4c,0xcd,0x8f,0xc0,0xf6,0xc2,0x59,0xc0,0xe,0xdc,0x9c,0xbf,0x97,0xfa,0xef,0xbf,0x52,0x3e,0x97,0xc0,0x80,0xa,0x6,0x40,0x4a,0x35,0x73,0x3f,0xc8,0x1e,0x2a,0xbf,0x2d,0x26,0xf7,0x3f,0x9f,0x17,0xad,0xbf,0xbc,0xd4,0xd2,0x3e,0x8b,0xa,0x8,0xc0,0xdc,0x84,0x2a,0x40,0x1a,0xc8,0x7c,0x40,0x24,0x14,0x6f,0x3f,0xc6,0x52,0x81,0x40,0xb1,0xba,0xd4,0x3f,0xb7,0x2f,0xb4,0xbf,0xc,0x31,0x6d,0x40,0x94,0xf3,0x7e,0x3f,0xbe,0x69,0x82,0x3f,0x2e,0x95,0x7,0x3f,0x5a,0xef,0x81,0x40,0x3e,0xee,0x4b,0xc0,0x6e,0xc7,0xec,0xbf,0x98,0x14,0x44,0xc0,0x6f,0x90,0x52,0xc0,0x2e,0xc6,0x24,0x40,0x56,0x20,0xe,0xc0,0xcc,0xb0,0x43,0x3f,0xef,0x35,0x86,0x40,0x2a,0x55,0x26,0x40,0x84,0x40,0xdb,0x3e,0xf3,0x44,0x82,0x40,0xa8,0x20,0xe1,0xbf,0xc9,0x86,0x81,0x40,0x67,0x41,0x93,0x40,0xac,0x95,0x9b,0xc0,0x62,0x5a,0xf7,0x3f,0xa2,0x25,0x6,0x40,0xa3,0x77,0xc6,0x3f,0xd9,0x10,0x89,0x40,0x2e,0x70,0x93,0x40,0x8,0xfa,0xa2,0xbf,0x4a,0xb3,0x54,0x3f,0x86,0xfb,0xcd,0xbf,0x7c,0x9e,0x85,0xc0,0x64,0x3e,0x85,0xbe,0x6d,0x24,0xbe,0x3f,0x74,0xeb,0xe0,0xbf,0x43,0xf4,0x10,0x40,0xfa,0xfc,0x8c,0xc0,0xd0,0x47,0x51,0xc0,0x7,0x73,0x55,0xc0,0x60,0x93,0x54,0xbd,0x6,0x3b,0x4d,0x40,0x5e,0x3d,0x2d,0x40,0x98,0x65,0x7e,0x40,0xb8,0xa8,0x92,0x40,0x2e,0xf1,0x80,0xc0,0xde,0x78,0xc6,0x3f,0x3c,0xff,0x34,0xc0,0x6c,0xa3,0x6d,0xc0,0xcd,0x7,0x95,0x40,0x2,0xf6,0x84,0xc0,0xc3,0x95,0x8c,0xc0,0xb6,0x76,0x7c,0xc0,0x26,0xa4,0x49,0x40,0xa4,0xca,0x71,0xc0,0xf3,0xcc,0x0,0x40,0xc4,0xee,0x76,0xc0,0x9a,0xab,0xa5,0x3f,0x1c,0x2e,0x8,0x40,0xa6,0xd2,0x6c,0xc0,0x2c,0xf8,0x14,0xbf,0xf4,0xd2,0x5b,0xc0,0xa2,0xeb,0x8d,0x40,0x2d,0x10,0x90,0xbf,0xb2,0xf5,0x6a,0xc0,0xaa,0x2b,0x7c,0xbf,0x9d,0x96,0xee,0x3f,0x1e,0x27,0x6e,0xc0,0xbe,0x19,0x6e,0x40,0x74,0x3,0x4e,0x3f,0xaa,0xf4,0x83,0xc0,0x3f,0x6d,0x55,0x40,0x8e,0xec,0xca,0x3f,0x62,0xc6,0x29,0x40,0xd6,0x20,0xb,0xbf,0xe5,0xc9,0x25,0xc0,0x8b,0x4e,0x28,0xc0,0x48,0xec,0xe8,0x3f,0xc0,0x8f,0x66,0x40,0x5f,0xf7,0xd0,0x3f,0x1,0x5e,0x20,0xc0,0x42,0x41,0x9e,0x40,0x98,0xf,0x3c,0x3f,0xb4,0xbc,0x48,0xc0,0xfe,0xe8,0x30,0x40,0xe8,0xe4,0x2d,0x40,0xc4,0xcd,0x79,0xbf,0x9c,0x8d,0xd5,0xbf,0xe7,0xf0,0x42,0xc0,0x82,0x51,0x44,0x40,0x31,0x35,0x9d,0x40,0xa3,0x6c,0xa9,0xbf,0x34,0xab,0x15,0x40,0x0,0xd5,0x3d,0x40,0x39,0x11,0xdd,0x3f,0xb2,0x5d,0x8c,0xc0,0xc7,0x34,0x51,0x40,0x6,0xad,0x7b,0xbf,0xb,0x9b,0x96,0xc0,0x19,0xd8,0x6,0xc0,0x6e,0xda,0x77,0xbf,0xaa,0xa9,0x53,0x40,0x5d,0x88,0x9b,0xc0,0x80,0xf2,0xa5,0x3f,0xd5,0xf4,0x7d,0xc0,0x62,0x70,0x61,0x40,0x84,0xce,0x5c,0xc0,0xda,0x7a,0x6b,0xc0,0xd3,0x6f,0xda,0xbf,0x85,0x8d,0xdd,0xbf,0xeb,0x93,0xa8,0xbf,0x92,0x5d,0x85,0xc0,0x5a,0xb6,0x2a,0xc0,0xf7,0xa1,0x84,0xbf,0x0,0xb3,0x1f,0x40,0x49,0x91,0x89,0x3f,0x22,0x3c,0x6f,0x40,0x38,0x6,0xa,0xc0,0x69,0x63,0x83,0xbf,0xee,0xb3,0x2f,0x40,0x88,0x2a,0xde,0xbf,0x48,0x24,0x96,0xc0,0xb0,0x63,0x93,0xc0,0x41,0xf2,0x50,0xc0,0xae,0xca,0x74,0x3f,0xeb,0x74,0x8f,0xc0,0x24,0x12,0x83,0xbf,0xde,0x76,0x9f,0xc0,0x9c,0x2d,0xcc,0xbf,0xd3,0x6b,0xe8,0xbf,0xf9,0x68,0x94,0xc0,0xa9,0x2f,0x8a,0x40,0xc2,0xcd,0xa6,0x3f,0x76,0x3f,0x17,0xc0,0xac,0xd0,0x99,0x40,0xf8,0x6f,0x85,0x40,0xec,0xbf,0xd5,0x3e,0x40,0x4d,0x10,0xbf,0x8a,0x29,0x76,0x40,0x68,0xe9,0xee,0x3e,0x3e,0x7d,0x5,0x3f,0x3e,0xaa,0x5,0xbf,0xb2,0x1c,0xc7,0x3f,0xee,0xd5,0x2c,0x40,0xa8,0x5,0x8c,0x40,0x34,0x77,0x53,0xc0,0x60,0x7f,0x13,0x3e,0x3f,0x82,0x93,0x3f,0xd,0x7,0xf5,0x3f,0x8f,0xcb,0x42,0x40,0x3c,0xa1,0x44,0x40,0x3a,0xbd,0x9a,0xc0,0xf9,0x66,0xdb,0x3f,0x60,0xd,0x4e,0x3d,0xe8,0xd1,0x10,0x3e,0x8a,0xd9,0x8a,0xc0,0xa6,0x70,0x70,0x40,0xb5,0x7e,0xda,0x3f,0xed,0x51,0x89,0xc0,0x2b,0x8a,0x85,0x40,0x8c,0xa7,0x7a,0x40,0xd7,0xb2,0x8f,0xc0,0x44,0x5c,0xbe,0xbf,0x16,0x8b,0x9b,0xc0,0x60,0x64,0x6f,0xbe,0x40,0x7a,0xdb,0xbe,0xa8,0xd1,0x9a,0xc0,0xfe,0x88,0x45,0xc0,0x80,0xc7,0xbc,0xbe,0x82,0xdf,0x9e,0x40,0xaa,0x67,0x40,0x40,0x7c,0x5b,0x97,0x40,0xe8,0xb5,0xa7,0x3e,0x4c,0x2e,0x83,0xc0,0x18,0xbf,0x22,0x40,0xf7,0x61,0x8d,0xbf,0xc6,0x1d,0x46,0x3f,0x61,0x60,0x9d,0x40,0xbb,0x8d,0x3b,0xc0,0x20,0xe9,0xd2,0x3d,0x23,0x41,0x92,0xc0,0x7,0xdc,0xd5,0xbf,0x88,0x12,0x62,0xbf,0x38,0xe4,0x5d,0x3f,0x68,0x6c,0x80,0x40,0x3,0xa4,0x9a,0x40,0xb8,0xf5,0x83,0x40,0x3c,0x6b,0xf3,0x3e,0x34,0x20,0x78,0x40,0xf9,0x2e,0xeb,0xbf,0x3e,0x25,0xf1,0xbf,0xcf,0xeb,0xdf,0xbf,0x78,0xc0,0x3e,0xc0,0x37,0x4d,0xad,0xbf,0x64,0x3b,0x58,0xbf,0x17,0x5d,0x29,0xc0,0x79,0x9,0x96,0x3f,0x6,0x89,0xcf,0x3f,0x5a,0x59,0x3f,0xc0,0xb6,0xba,0x97,0xc0,0xdc,0xff,0xff,0xbe,0xb0,0x11,0x84,0xbd,0xee,0x45,0x80,0x3f,0x6e,0x57,0x32,0x40,0xe,0x63,0x31,0xc0,0x5d,0x86,0xa3,0xbf,0x3a,0xb,0x3a,0xc0,0xe,0x48,0xa4,0xbf,0x84,0x9f,0x84,0xc0,0x65,0x73,0x9b,0x40,0xf1,0x5b,0x9e,0xc0,0x65,0x7d,0xf9,0x3f,0x58,0x98,0xc3,0x3e,0x60,0xae,0xc8,0x3d,0x6c,0x62,0x9,0xc0,0x5d,0xac,0x43,0x40,0xc,0x2c,0x47,0x3f,0x84,0xc8,0x6e,0xbf,0xfb,0x9a,0x96,0x40,0xef,0x9,0x97,0xc0,0x9e,0xb6,0x52,0xbf,0xac,0xbd,0x97,0xc0,0x68,0xd8,0x55,0x40,0x21,0x53,0x38,0xc0,0x36,0x59,0x9,0x3f,0x5,0xd8,0x90,0xc0,0x64,0xd6,0x2e,0x40,0x59,0x39,0x8b,0xbf,0xee,0x7a,0xa0,0x3f,0x34,0xb8,0x9f,0x40,0x44,0x46,0xc0,0x3f,0x64,0x3a,0x6a,0x40,0xe6,0x46,0x22,0x40,0xe8,0xf7,0x8d,0xbe,0x2c,0xd3,0xe6,0xbe,0x47,0xcf,0x83,0xc0,0xa8,0xfe,0x7f,0xc0,0x7e,0x2b,0x17,0x40,0x58,0xdc,0x9d,0x3f,0xe8,0xe,0xef,0x3e,0xc8,0x67,0x84,0x40,0xea,0xf1,0x9f,0xc0,0x1c,0x68,0x66,0x40,0x6a,0x96,0x1c,0x40,0x8c,0x76,0x7c,0xc0,0x76,0x46,0x89,0x3f,0x89,0x3d,0xc0,0x3f,0x98,0x62,0x83,0xc0,0xe,0x12,0x11,0x40,0x8f,0xc0,0xd7,0xbf,0xec,0xee,0xd,0xc0,0xfc,0x2c,0xae,0xbe,0x9,0xe2,0xf0,0x3f,0x14,0x51,0x29,0x40,0x46,0x5e,0x9a,0xc0,0x8,0x2b,0x42,0x3e,0xca,0xf4,0x94,0xc0,0xd5,0xd7,0x98,0x3f,0xa,0x9c,0x74,0xbf,0x4c,0xcc,0x20,0xbf,0xaf,0xca,0x84,0xc0,0x8f,0xb0,0x30,0x40,0xdf,0x41,0x45,0xc0,0x50,0xb9,0x25,0xbf,0xb2,0x2a,0x8d,0xc0,0x71,0x4f,0x64,0x40,0x9a,0x26,0x7d,0x3f,0xb0,0x73,0xef,0x3e,0xfe,0xee,0x6e,0x40,0xd4,0xb6,0x1c,0x3f,0xd4,0xff,0x5f,0x40,0x18,0x91,0x6f,0xc0,0x1e,0x5e,0xd,0xbf,0x1f,0xad,0x2b,0xc0,0x36,0x8e,0xd6,0x3f,0x28,0xf0,0x97,0xc0,0xdd,0x4e,0xb5,0xbf,0x74,0x8f,0xa6,0x3e,0xeb,0x33,0x9f,0x40,0xeb,0x4d,0xf8,0xbf,0x3a,0x28,0x42,0xc0,0xd1,0xda,0x41,0xc0,0x8e,0x24,0x11,0xc0,0xac,0x3c,0x32,0xbf,0x64,0xed,0x6e,0x40,0xd8,0xc7,0x3e,0xbe,0x3d,0x57,0x22,0xc0,0x0,0xc2,0xbf,0xbc,0x84,0xb,0x8f,0xc0,0xe0,0x64,0x67,0xbd,0x5c,0xb8,0x53,0xc0,0xcf,0x9,0x8a,0x40,0xa4,0x99,0x86,0x40,0xb0,0xac,0x39,0xc0,0x40,0x4e,0x9e,0x3f,0x9d,0x78,0xad,0xbf,0x5e,0xcf,0xd6,0xbf,0x7b,0x3c,0x8d,0x40,0x52,0x18,0x8d,0x40,0x69,0xa7,0x73,0x40,0x97,0xb,0x99,0xc0,0xd6,0x4e,0x8a,0x3f,0x88,0x54,0x28,0x40,0xbf,0x7d,0x15,0x40,0x3a,0x5b,0x5a,0xc0,0xd0,0x64,0xc,0x40,0x7f,0xa8,0xd7,0xbf,0x94,0xd8,0xdd,0x3e,0x78,0x2d,0xa0,0xbf,0x18,0x19,0x12,0x3f,0xa8,0xda,0x1d,0xc0,0x77,0x8c,0xd,0x40,0x2c,0xbf,0xc3,0xbf,0xd2,0xc8,0xc3,0xbf,0x85,0x54,0xfd,0x3f,0x70,0x20,0xf6,0x3f,0x53,0xa4,0x19,0x40,0x2a,0x74,0xcf,0x3f,0x1e,0x8f,0x16,0xc0,0xcc,0xb6,0x79,0xbf,0xb5,0xf9,0x20,0x40,0x45,0x95,0x9e,0xc0,0xe4,0x4a,0x2f,0x40,0xfc,0xa2,0x55,0x40,0x5a,0x22,0xab,0x3f,0x95,0xb4,0x4e,0x40,0xd2,0xf2,0x95,0x40,0x1,0xc0,0x84,0xbf,0xa4,0x63,0x2f,0xc0,0xd4,0x60,0x4d,0xc0,0xf5,0xfb,0xf9,0x3f,0x94,0x73,0x43,0xc0,0x50,0xef,0xd8,0x3e,0x20,0x47,0x36,0xbf,0x94,0x8e,0x63,0xc0,0x5,0xff,0xa5,0x3f,0x67,0xa8,0x29,0xc0,0xbe,0x2e,0x5b,0x3f,0xb4,0xe5,0x1c,0x40,0x7e,0x84,0xbb,0xbf,0xb,0xec,0xad,0xbf,0xd2,0xd1,0x44,0xbf,0x58,0x2c,0xa8,0xbe,0xcf,0x63,0x90,0x3f,0xd9,0xa2,0x53,0x40,0x2b,0x94,0x96,0xc0,0x62,0x30,0x8d,0x40,0x16,0xc9,0x9f,0x40,0x32,0x34,0x2f,0xc0,0x58,0x17,0x2c,0x40,0x4c,0xc5,0x9d,0x3f,0x88,0x90,0x5c,0xc0,0x8,0x5f,0x68,0x3e,0x2,0x9d,0x9c,0xbf,0x6,0xcd,0x82,0x40,0x54,0x6d,0x7,0xc0,0xb2,0x93,0x7a,0xbf,0x56,0x4d,0x82,0x40,0xa6,0xf7,0x2f,0xc0,0x90,0xc5,0x92,0xc0,0xe8,0x74,0x85,0x40,0xb6,0x16,0x1c,0x3f,0x68,0xca,0xef,0x3f,0xe0,0x6c,0x69,0x3f,0x11,0x77,0x6,0xc0,0x6,0x9e,0xab,0x3f,0xc5,0xcd,0x5,0x40,0x48,0x8b,0x10,0x3e,0xe2,0x49,0x1e,0x40,0x90,0x82,0x6e,0xc0,0xc2,0x4f,0xa7,0x3f,0xbd,0xa,0x87,0x40,0x7c,0x8b,0xc0,0xbe,0x55,0x28,0x95,0x40,0x3a,0xe3,0x43,0xbf,0xc2,0xac,0xe,0xc0,0xe8,0x37,0x5f,0x3e,0xd4,0x9a,0x4c,0x40,0xe8,0x80,0x2f,0x3e,0x2,0x6c,0x5c,0xc0,0x5e,0xaf,0x41,0x40,0x5b,0x9c,0xcb,0x3f,0x71,0xbd,0x5f,0xc0,0x88,0x71,0x3a,0x3f,0xa8,0x87,0xf2,0x3e,0x43,0x96,0x85,0x3f,0x12,0x40,0x5,0xbf,0x4,0x7a,0x77,0x40,0x52,0x84,0x7b,0xc0,0x40,0xc3,0xa6,0xbe,0x26,0xaa,0x68,0x3f,0xe0,0xe9,0xc,0xc0,0xc,0xe4,0xb9,0xbe,0x14,0x48,0x9a,0xc0,0x0,0xac,0xe9,0x3a,0xd0,0x65,0x58,0x3e,0x6,0x7,0x5e,0xbf,0x55,0x41,0x9c,0xc0,0x29,0xa9,0xc,0x40,0xb6,0xb9,0x2,0xc0,0xa2,0x8f,0x97,0x40,0xea,0x9a,0x97,0x40,0x72,0x2b,0x8a,0x40,0x3d,0x8d,0x81,0x40,0xc0,0x1e,0x7a,0x40,0x40,0xf8,0x37,0x3d,0x6,0xa0,0x10,0x40,0x36,0x53,0xbc,0xbf,0xc0,0xca,0xab,0xbd,0xc2,0xb8,0x63,0xc0,0xe0,0xa3,0x1e,0xbf,0x70,0xf7,0xb0,0x3e,0xea,0x48,0x4c,0xbf,0x67,0xae,0x93,0xc0,0xde,0xdb,0x6f,0x3f,0xa,0x32,0x7,0xbf,0x3d,0x12,0x3,0xc0,0x93,0xa3,0x2,0xc0,0x4c,0x5f,0x4,0xc0,0x92,0x27,0x40,0x40,0xc,0xe8,0x97,0x3f,0xa6,0x6f,0x14,0xbf,0xab,0xe,0xeb,0xbf,0x0,0xe5,0x30,0x3d,0xed,0xad,0x52,0xc0,0xa9,0xa7,0x9f,0x40,0xc2,0xba,0x64,0xc0,0xe2,0x78,0xe,0x40,0xd3,0xfc,0x8a,0xc0,0x74,0xa4,0x64,0xc0,0xe8,0xf5,0x9c,0xc0,0x74,0x7f,0x27,0xc0,0xe8,0xc1,0x89,0xc0,0x2e,0x52,0x34,0xc0,0xae,0x72,0x89,0xbf,0x6a,0x26,0xce,0x3f,0xa,0x7e,0xb,0xc0,0xda,0x9b,0x3d,0x40,0x1,0x9d,0x63,0xc0,0x9d,0x8b,0x86,0xc0,0xa7,0xcc,0x7e,0xc0,0x2d,0xfd,0x83,0xc0,0x21,0x61,0xeb,0x3f,0xba,0xb7,0x67,0x40,0xcc,0x93,0xef,0x3f,0x78,0x2c,0xe2,0x3e,0x80,0xd0,0x85,0x40,0x7e,0x7f,0x22,0xbf,0xe3,0x67,0x34,0x40,0x54,0x39,0x18,0xc0,0xe0,0x5c,0x56,0x3f,0xcc,0x5e,0x13,0xbf,0xaa,0x4,0x85,0x40,0x12,0x9b,0x4,0xc0,0x31,0xc3,0x44,0x40,0xf8,0x89,0xc8,0xbe,0x86,0xe2,0x5a,0xc0,0xb8,0x70,0x8,0xc0,0xf7,0xd4,0x91,0xc0,0xeb,0x8a,0x54,0x40,0x25,0xa,0xf8,0x3f,0x5f,0x2c,0x71,0xc0,0xc3,0x4b,0x34,0xc0,0x9f,0x5e,0x36,0x40,0xd1,0x23,0x67,0x40,0xc6,0x6b,0x4a,0x40,0x40,0x11,0x49,0x40,0x8f,0xeb,0xc0,0xbf,0x9d,0xc4,0x92,0x40,0xa5,0x18,0x96,0xc0,0x91,0x7a,0xd5,0xbf,0x16,0x62,0xc,0x40,0xf0,0x5c,0x11,0x40,0x9f,0xd2,0x9c,0xbf,0x16,0x1f,0x20,0xc0,0xf2,0xd5,0xe6,0x3f,0xde,0x7c,0x2b,0x40,0x98,0x1,0xe,0x40,0x78,0xad,0x93,0x3e,0x5d,0xe1,0x9d,0x3f,0xc9,0x28,0x80,0xc0,0x36,0xb1,0x97,0xc0,0xe0,0x59,0x84,0xc0,0xcc,0x1b,0x5e,0x40,0x2a,0x4c,0x22,0xbf,0x65,0x9e,0xb0,0x3f,0x9c,0x7e,0x32,0x40,0x44,0xa6,0x47,0xc0,0xd8,0xe6,0x7e,0x3e,0x4b,0x6a,0x85,0x40,0xc8,0xed,0xee,0x3f,0x7e,0xfc,0x80,0x40,0x78,0xb3,0x17,0x40,0x98,0x31,0x67,0xc0,0x54,0xf3,0x8a,0xc0,0x7a,0xc4,0x45,0xbf,0xab,0x24,0x85,0xc0,0xc3,0xfc,0xf8,0x3f,0x8f,0x75,0x66,0x40,0x7d,0xa2,0x50,0x40,0x7d,0xf7,0x99,0x40,0xca,0xd8,0x1,0xc0,0x5e,0x9a,0x79,0x40,0x72,0xe1,0x89,0xc0,0xae,0xc4,0x13,0xc0,0x44,0x32,0x89,0x3e,0x4a,0xfb,0x55,0x40,0xcd,0x34,0x55,0xc0,0xf0,0xbc,0x97,0xc0,0xc,0xf1,0x8f,0xc0,0x6,0x14,0x79,0x3f,0x30,0x3c,0x2f,0x40,0x35,0x57,0x92,0x40,0x24,0xf,0x6a,0x40,0xab,0xf5,0x9b,0x40,0x7a,0x8,0x82,0x40,0x7c,0xc2,0x98,0xc0,0xe1,0xd3,0x9f,0xc0,0x38,0x2f,0xa2,0x3f,0x4a,0xe9,0x62,0xc0,0x8,0x99,0xb3,0x3f,0x66,0x81,0x87,0x40,0xe2,0x41,0x4c,0x3f,0xa3,0x1e,0x89,0xbf,0xc5,0xc9,0xed,0xbf,0x20,0x1f,0x29,0xc0,0xad,0x3,0x81,0x40,0x1a,0xff,0xc7,0xbf,0x9c,0x68,0x7a,0x40,0x53,0xac,0xb4,0x3f,0x8,0x99,0xb,0xbe,0x1e,0x97,0x68,0x40,0x61,0x56,0xac,0xbf,0xd3,0x2c,0xcd,0x3f,0x3a,0x21,0x7e,0x3f,0x77,0xa3,0x95,0xc0,0x48,0x9b,0x52,0xc0,0x71,0x44,0x8f,0x40,0x62,0xee,0x10,0xbf,0x38,0xe8,0x18,0xc0,0xc4,0x4,0x69,0xc0,0x80,0x13,0x94,0xbc,0xf8,0x37,0x72,0xc0,0xbe,0x62,0xd9,0xbf,0xdf,0xe1,0x72,0x40,0x1e,0x12,0x9c,0x40,0x66,0xc2,0x83,0x40,0x91,0x99,0xa2,0xbf,0xf2,0xe7,0x8e,0xc0,0xba,0xc7,0x22,0x40,0xc6,0x20,0xc3,0xbf,0x2e,0x48,0x63,0xc0,0xb,0x91,0x9f,0x3f,0xa6,0x25,0x63,0xbf,0x28,0xe5,0x95,0x40,0x8a,0x15,0x8d,0x3f,0x9a,0xd5,0x3,0x40,0x31,0x93,0xb3,0x3f,0x7f,0x6c,0xd2,0x3f,0xe7,0xbb,0x99,0xc0,0xc4,0xc,0xca,0xbe,0x3f,0x3,0xcc,0x3f,0xf0,0x9b,0x4a,0xc0,0xc8,0x70,0x86,0x40,0x86,0x65,0x7,0x3f,0x8c,0x63,0x12,0x3f,0x99,0xfa,0xd9,0x3f,0xa1,0x99,0xf1,0xbf,0x93,0x19,0x41,0x40,0xaa,0xa1,0x13,0x40,0x44,0x5d,0x10,0x40,0x1b,0x46,0x37,0xc0,0x96,0xea,0x2b,0xbf,0x52,0x51,0xcf,0x3f,0x70,0xc3,0x1e,0xbe,0xff,0xb8,0xfb,0xbf,0x10,0x48,0x4f,0xbf,0xa0,0xaa,0xe6,0x3f,0x1,0x52,0x22,0xc0,0x96,0xe3,0x9f,0x40,0xd7,0xaf,0xf0,0x3f,0x4a,0x99,0x6c,0x40,0xe,0xa9,0x45,0x3f,0x12,0x2c,0xdf,0x3f,0x0,0x50,0x70,0xbf,0xab,0xba,0xee,0xbf,0x3c,0x1b,0x5f,0xbf,0x7c,0xd,0x5a,0xc0,0x40,0x41,0x94,0xc0,0xea,0xa0,0x3,0xbf,0x1,0xb8,0x4d,0x40,0x86,0x57,0xfe,0x3f,0xfe,0x6e,0x9c,0x40,0x6c,0x94,0x24,0xbf,0x7a,0x3,0x43,0x3f,0x50,0x6,0x51,0x3f,0x47,0x93,0x31,0x40,0xee,0xf5,0x8c,0x40,0x82,0x3b,0x71,0xc0,0x39,0xcc,0xdb,0xbf,0x60,0x7b,0x3,0xbf,0x8c,0x3d,0x74,0xbf,0x30,0xb9,0x48,0x40,0x1c,0x5d,0x9d,0xc0,0x79,0xab,0x5a,0xc0,0x34,0xb4,0x50,0xc0,0xb1,0xa2,0x8,0x40,0xd4,0xc1,0x70,0xc0,0x60,0xf2,0x13,0x3f,0x32,0x89,0x23,0xbf,0x88,0x74,0x8a,0x3f,0xa0,0x84,0xad,0xbd,0x68,0x75,0x56,0x3e,0x5e,0x9f,0x68,0x40,0x12,0x45,0x73,0x3f,0x83,0x87,0x15,0x40,0xa2,0xe,0x62,0xc0,0x6b,0x9f,0x90,0xbf,0xa8,0xab,0x21,0xc0,0x76,0xb2,0x60,0xc0,0x6,0x2,0x3d,0xc0,0x46,0xd0,0xa2,0xbf,0x3,0xf7,0xcd,0x3f,0xde,0x52,0xb0,0xbf,0xee,0x5d,0x77,0xc0,0x74,0xc2,0x5a,0xc0,0xc7,0xad,0x8a,0x3f,0x4,0x19,0x88,0x3e,0x75,0xcb,0x91,0xc0,0x29,0xf,0x81,0x3f,0x5c,0xc9,0xc0,0x3f,0xac,0xae,0x8f,0x40,0x7a,0xde,0x97,0xbf,0x2d,0x8a,0x5e,0x40,0xd0,0xe4,0xe,0xc0,0x46,0x7,0x8a,0x40,0xab,0xe1,0x82,0xc0,0xed,0x4a,0x9a,0xbf,0x5d,0x11,0x88,0xc0,0xa8,0x5,0x16,0xc0,0x92,0x6a,0xda,0x3f,0x36,0xf5,0x10,0x40,0x9b,0x64,0x4d,0x40,0x94,0xa8,0x86,0x40,0xee,0xf0,0xca,0xbf,0x26,0xc,0x48,0xc0,0x98,0x60,0x77,0x3f,0x39,0x2f,0x7b,0xc0,0xe0,0x6,0x16,0xc0,0xee,0x12,0x95,0xbf,0xa,0xa6,0x97,0xc0,0x38,0xb3,0xa0,0xbf,0x10,0xa8,0x2b,0x3f,0x9f,0xbf,0xc3,0xbf,0x27,0xad,0x1e,0xc0,0xc0,0x56,0x4f,0x3e,0x84,0x73,0x23,0xc0,0x93,0xec,0x13,0xc0,0x19,0x72,0x44,0xc0,0x5b,0x56,0xf3,0xbf,0x34,0xe7,0xb1,0x3e,0x71,0x30,0x24,0xc0,0x48,0xde,0x4b,0xc0,0x32,0xf5,0x69,0xc0,0x81,0xf2,0x96,0xc0,0x42,0x9d,0x54,0x3f,0x6c,0xce,0x71,0xbf,0x4e,0x8b,0x99,0x3f,0xd5,0x4f,0xe9,0xbf,0x90,0xe2,0xa0,0x3f,0x8b,0x20,0x65,0x40,0xe2,0xd9,0x27,0x3f,0x1d,0x74,0x7f,0x40,0xcb,0xa7,0x87,0x40,0x30,0xd1,0x23,0x3e,0x5d,0xfd,0x65,0x40,0x14,0x17,0x8e,0xbe,0x5b,0x71,0x91,0xc0,0xca,0xec,0x77,0xbf,0xd4,0xda,0x0,0x40,0xec,0x78,0x3d,0x40,0x74,0x90,0x18,0x40,0x60,0xc6,0xab,0x3f,0xa8,0xd9,0x19,0xc0,0x98,0x2d,0x7d,0x3e,0xd4,0x46,0xa3,0x3e,0xb1,0x2f,0xa1,0x3f,0x34,0x6a,0x48,0x40,0xe8,0x2b,0x5c,0xbf,0x24,0xf7,0x7,0x40,0x32,0xd4,0x9a,0xc0,0xca,0x11,0x65,0xc0,0x71,0x2e,0xc9,0xbf,0x8,0xa7,0x66,0x40,0x81,0xd5,0x94,0xbf,0xca,0x7f,0x38,0xc0,0x78,0xd3,0x80,0x40,0x62,0x6d,0x69,0xbf,0xa0,0xe7,0xd6,0x3f,0x30,0xf3,0xf4,0x3f,0x5b,0x79,0x95,0x40,0x24,0x7c,0x7a,0x3f,0xf0,0x92,0x1,0xbf,0xa3,0xbd,0x3c,0x40,0xc6,0x45,0x14,0xbf,0x3c,0xb2,0x6a,0x40,0x7b,0xc9,0x9b,0x40,0xb2,0xd7,0x72,0xbf,0xe4,0x17,0x33,0xc0,0x1c,0xcb,0xa4,0xbf,0xb9,0xb3,0x8e,0x40,0xd7,0xe9,0x8e,0xc0,0x38,0x4e,0xab,0x3f,0x7e,0x8f,0xc9,0x3f,0x12,0xc9,0x24,0x40,0x82,0x1,0x7e,0xc0,0xfb,0x26,0x49,0x40,0xb2,0x3e,0x9b,0x3f,0x8c,0xbb,0x1e,0xc0,0x90,0x3,0x8b,0xc0,0xa,0x84,0x5,0x3f,0xd3,0x96,0x86,0x40,0xae,0x62,0x8c,0x40,0xcc,0x89,0xe5,0x3f,0x30,0x16,0x8f,0x40,0x88,0xc4,0x55,0x40,0xc,0x8f,0x96,0x3f,0xda,0xc6,0x95,0xbf,0xac,0x54,0x2b,0x40,0xe9,0x78,0x9e,0x40,0xd6,0x1a,0x6b,0xc0,0x42,0xf1,0xa8,0xbf,0x28,0xff,0x16,0xbf,0x74,0x33,0x57,0xc0,0x73,0x27,0x67,0x40,0x99,0xb5,0x17,0x40,0xb0,0x4f,0xc8,0x3d,0xf2,0x1,0x1f,0xc0,0x39,0x42,0x9d,0x40,0xb4,0x68,0x28,0xc0,0xad,0x1b,0x91,0xc0,0x37,0x15,0x96,0xc0,0x3a,0x78,0x54,0xc0,0x49,0x40,0x6e,0xc0,0x6c,0xc,0x89,0x40,0x4c,0x7f,0x10,0x40,0x4f,0x40,0x93,0xc0,0x5c,0x1c,0x88,0x40,0xd2,0xbd,0x9e,0xc0,0xc,0x3b,0x60,0x3f,0xdb,0x98,0x15,0xc0,0x2e,0xe9,0x4c,0x40,0xae,0x6b,0x29,0xc0,0xc4,0xd7,0x15,0xbf,0x72,0x51,0xfa,0x3f,0x24,0x3a,0xe2,0xbf,0xc6,0xfd,0xb8,0xbf,0x58,0x6d,0xb7,0x3f,0x28,0xe3,0x6e,0x3f,0xd8,0xe7,0x5c,0xc0,0x59,0x5d,0x80,0xc0,0x14,0x8b,0xec,0xbf,0x16,0x34,0x3d,0x40,0xe8,0x95,0x3b,0x40,0x73,0x6f,0x9f,0x40,0x70,0x9d,0xab,0xbf,0xba,0xae,0x13,0xc0,0xcc,0xe7,0x4a,0xc0,0x21,0x82,0xbb,0xbf,0xe8,0x4,0x2e,0xbe,0x24,0xf4,0x80,0xc0,0x11,0x92,0x1d,0x40,0x98,0x7b,0x36,0xc0,0x34,0x3b,0x31,0x40,0xb4,0xfc,0xfd,0x3f,0xa8,0x86,0x0,0x40,0x3c,0x4d,0x19,0xbf,0xa6,0x3c,0x5e,0xc0,0xbf,0x15,0x85,0x40,0xb8,0x24,0x2d,0xc0,0xc7,0x41,0x88,0x40,0x8e,0xdd,0x27,0xbf,0xb8,0x9d,0x60,0x40,0x54,0x3d,0x48,0xbf,0xca,0x73,0x9b,0xc0,0xc4,0x1e,0x97,0x40,0x26,0x76,0x29,0xbf,0x83,0x94,0x3,0x40,0x5a,0x4a,0x64,0xc0,0xf2,0xd7,0x62,0x40,0x7f,0x8,0x7,0x40,0x2e,0x4c,0xf8,0x3f,0xec,0x72,0x94,0xc0,0x53,0x92,0x26,0xc0,0xa0,0xf1,0x65,0xbd,0xf8,0xa5,0x40,0xc0,0xbe,0xc0,0x0,0xc0,0x50,0x92,0x6a,0xbe,0xc0,0x60,0x27,0x3e,0x8f,0x0,0x4a,0x40,0x57,0xdf,0x20,0xc0,0xa3,0x5d,0x8f,0xc0,0x87,0x8b,0x97,0x40,0xcc,0x9e,0x23,0x40,0xb1,0x89,0x9c,0x3f,0xb2,0xe8,0x7a,0xbf,0xd2,0x61,0x2b,0xc0,0x48,0x41,0xb2,0xbe,0x6,0xfb,0x8d,0x40,0x1a,0xdf,0x85,0xc0,0xac,0x71,0x41,0x40,0xc1,0x56,0x62,0xc0,0x32,0x3,0xb1,0x3f,0x1a,0x24,0x52,0x40,0xb0,0x4f,0x3e,0x3e,0x70,0x5f,0x80,0xbd,0xc5,0xba,0xcf,0x3f,0xfd,0x84,0xb4,0xbf,0x52,0x8b,0x5b,0x3f,0xc4,0xa3,0x81,0x40,0x61,0x85,0x82,0x3f,0x1a,0x64,0x65,0xc0,0xc7,0xe5,0x9e,0xc0,0x49,0x8c,0x22,0x40,0xd6,0x84,0x99,0xc0,0x28,0x25,0x85,0x40,0x3d,0x7b,0x76,0xc0,0x5d,0x3,0x99,0xc0,0x8e,0x1c,0x87,0x40,0x86,0x44,0xdf,0xbf,0xe7,0x61,0x72,0xc0,0x16,0x7c,0x80,0x40,0xec,0xbd,0x3e,0xc0,0x98,0x25,0xc4,0x3f,0x44,0xbd,0xd0,0xbf,0x80,0x91,0xe3,0xbc,0xd1,0x47,0x4d,0x40,0x41,0x5f,0x66,0x40,0xf4,0x6b,0x3b,0xc0,0xba,0x6b,0x89,0x3f,0xf6,0xbe,0x24,0x40,0xff,0xb,0xb3,0x3f,0x4e,0xf4,0x92,0xc0,0x3f,0xe8,0x8d,0x40,0xc7,0x8d,0xb9,0x3f,0xa6,0xb2,0x5d,0xc0,0x8c,0xba,0x40,0x40,0x4,0x2f,0x9a,0xbe,0xbb,0x40,0x87,0xc0,0x88,0xe4,0x5d,0x3f,0x19,0xda,0x83,0xc0,0x9c,0x99,0x42,0xc0,0xbc,0x85,0x36,0xc0,0xd6,0x44,0x9e,0xbf,0x10,0xea,0xa0,0x3d,0x54,0xf7,0xd6,0xbe,0x71,0x9,0x8a,0x3f,0x4b,0xfc,0x5,0x40,0x2e,0xdc,0x49,0x40,0x2,0xf5,0x2,0xc0,0xa4,0x4,0x9f,0x40,0x84,0xda,0xbe,0xbf,0x10,0x20,0x93,0xc0,0x1e,0xf0,0x48,0xc0,0x8,0x71,0x6f,0xbe,0x40,0xe9,0x2d,0x3d,0x1f,0x7a,0x98,0x40,0x4b,0x35,0x22,0x40,0x3a,0x6,0x47,0x40,0x8a,0x5b,0x49,0x3f,0x5e,0x48,0x95,0x3f,0x7e,0xef,0x75,0xbf,0x2,0xce,0x8e,0xc0,0xaa,0xbf,0x12,0x40,0x7e,0x1e,0x8a,0xc0,0xea,0x39,0x24,0x3f,0x30,0xbc,0xb8,0x3d,0xa0,0x79,0x94,0x40,0x8a,0xa5,0x91,0xc0,0xc6,0x5b,0xe7,0xbf,0xa3,0x77,0x8f,0x40,0xa0,0xe6,0x8b,0xc0,0x47,0xe3,0x84,0x3f,0x8c,0x63,0x8f,0xc0,0xa4,0xb4,0xe2,0xbf,0x9c,0xb1,0x40,0xbf,0xf0,0x2e,0xe0,0x3d,0xdb,0x73,0x3a,0xc0,0x8f,0x20,0x81,0x40,0xfc,0xf,0x3,0x40,0xe4,0xc4,0x26,0xc0,0x1c,0xe1,0x4a,0xc0,0x8c,0x2e,0x6a,0xbf,0xb8,0x9f,0x29,0x40,0x90,0x3e,0x67,0xc0,0xad,0x8,0xdb,0xbf,0x8e,0x6e,0x7d,0xc0,0x88,0xfc,0x93,0xc0,0xb6,0x92,0x61,0x40,0x94,0x9,0xc6,0xbf,0x2e,0x7e,0x53,0x40,0x40,0xcf,0x15,0x40,0xe6,0x79,0xea,0x3f,0x1,0xe5,0x7f,0xc0,0x1c,0xc2,0x19,0xbf,0x4f,0xb3,0x89,0x40,0x16,0x0,0x28,0x3f,0xe2,0x3,0x0,0xc0,0x6a,0xcb,0x8b,0x40,0x42,0x4c,0x5a,0x3f,0xb0,0x32,0x59,0xc0,0x18,0xac,0x95,0x3e,0x91,0xd5,0x13,0xc0,0x5f,0xa9,0x8d,0x3f,0x26,0xd6,0xd0,0x3f,0xd0,0x10,0x8d,0x40,0xee,0x1e,0x2c,0x3f,0xd0,0x87,0xed,0x3d,0xa6,0xd7,0x13,0x40,0x66,0xd,0x43,0xc0,0x84,0xec,0x98,0x40,0x10,0xe6,0x26,0x40,0x74,0xdc,0x21,0xc0,0xbe,0x24,0xf4,0xbf,0x9a,0xe4,0x50,0x3f,0xec,0xba,0x3c,0x3f,0xb6,0xae,0x79,0xbf,0x3d,0xee,0x12,0xc0,0x8f,0xe8,0x4d,0x40,0x38,0xb5,0x35,0x40,0xcd,0x66,0x80,0x40,0x74,0xe3,0x86,0xc0,0xfe,0x56,0xa0,0xbf,0x79,0x87,0xe5,0xbf,0xb6,0x54,0x82,0xc0,0x1e,0x69,0x95,0x40,0xe,0x80,0x53,0x40,0x78,0x5d,0x6a,0xc0,0x91,0x73,0xfa,0xbf,0xa0,0x87,0x4a,0x40,0x57,0xbf,0x97,0x40,0x23,0xff,0x2a,0x40,0xc5,0x5f,0x8a,0xbf,0xc8,0x56,0xf9,0xbe,0x29,0xa5,0x90,0xbf,0x93,0xa1,0x6d,0xc0,0xd9,0x1b,0x58,0x40,0xce,0xbe,0x24,0x3f,0xde,0xb7,0xa0,0xbf,0xbe,0xa6,0xf9,0x3f,0x5e,0x48,0x4a,0x40,0x80,0x9c,0x7b,0x3f,0x80,0xd2,0xa2,0x3e,0x6c,0xb2,0xea,0xbe,0xc4,0xf7,0x40,0x40,0xee,0xca,0x39,0xbf,0x8f,0x6a,0x8c,0xc0,0xab,0x2b,0x87,0x40,0x18,0xd6,0xb6,0x3e,0xf0,0xe4,0xa7,0xbd,0x5b,0xfb,0xf8,0x3f,0x5d,0xca,0x70,0x40,0x4f,0xc4,0xb9,0x3f,0x8c,0xe2,0x1d,0xc0,0xa4,0x58,0x93,0x40,0x1c,0x1d,0x0,0x40,0x4c,0x1d,0x8e,0x40,0xa8,0x0,0x4f,0x3f,0xf9,0x6d,0x83,0x40,0x46,0x2d,0x96,0x3f,0xac,0xb0,0x1,0xc0,0x15,0x67,0x3a,0x40,0x70,0x1,0xa2,0x3d,0xc6,0x9a,0x4b,0x3f,0xba,0x9f,0x94,0x40,0xbc,0x9f,0x1e,0xc0,0x86,0xc8,0x1c,0xc0,0xb8,0x29,0x9f,0x40,0x64,0x5a,0x7,0x3f,0x4f,0xa2,0x82,0x40,0x3c,0xb,0x3,0x40,0x18,0x31,0x1,0xc0,0x34,0xd6,0xbd,0xbe,0x6b,0x2b,0xa5,0xbf,0x6b,0xef,0x74,0x40,0xdc,0xda,0x72,0x3f,0x3c,0x6,0x51,0xbf,0xed,0xe8,0x2b,0xc0,0x8,0xb2,0x2c,0x40,0x94,0xae,0xc6,0xbf,0x90,0x87,0x1c,0x3f,0xa,0xcc,0x8d,0x40,0x92,0x2,0xc0,0x3f,0x2e,0xba,0x23,0xbf,0xab,0x7a,0x84,0x40,0x5a,0x50,0x85,0x40,0x44,0xc9,0x6c,0xbf,0xc,0x9d,0x5d,0x3f,0xa7,0x95,0x86,0xc0,0x20,0x9f,0x93,0x40,0x64,0x7f,0x8a,0xc0,0x5a,0x23,0x59,0x40,0xf3,0x11,0x43,0xc0,0x5f,0xc6,0x9d,0x40,0x4f,0x77,0xc0,0xbf,0x90,0x85,0x4d,0xc0,0xcb,0xad,0x1a,0xc0,0xd3,0xfa,0x9b,0xc0,0xb4,0xeb,0x20,0xc0,0xc1,0x29,0x49,0xc0,0x49,0xd6,0xad,0xbf,0x6,0x6f,0x8a,0xbf,0x1d,0x6a,0x20,0x40,0xba,0xf5,0x4,0xc0,0x15,0xb8,0xe1,0xbf,0x37,0x8c,0x87,0x3f,0xa6,0x63,0x9b,0x3f,0xc4,0x42,0x62,0xc0,0x84,0x20,0x8d,0xc0,0x1e,0x67,0x8b,0x40,0xd6,0xae,0x3b,0xbf,0x88,0xdf,0xe7,0x3f,0x2a,0xa5,0x86,0xc0,0x88,0xd2,0xf4,0xbf,0x60,0x7b,0x7e,0xc0,0x3f,0x96,0xca,0x3f,0xc,0x82,0x14,0x40,0x66,0xe6,0x26,0x40,0x6b,0x1,0xc0,0x3f,0x90,0xfe,0x15,0xc0,0x9d,0xd8,0x22,0x40,0xdf,0x2e,0x76,0x40,0x4c,0xc0,0x6,0xc0,0xa2,0xa5,0x75,0xc0,0x10,0xcb,0xc9,0xbf,0xa9,0x46,0x8d,0x40,0xf7,0xcc,0x56,0x40,0x38,0x8b,0xfa,0xbf,0x8e,0xdc,0x32,0xbf,0x64,0xd2,0x2,0x40,0xf0,0xe5,0xdd,0xbf,0xa4,0x32,0x83,0xbf,0xc7,0xc9,0x52,0x40,0x58,0x37,0x93,0x3e,0xb0,0x90,0x48,0xbf,0xaa,0x19,0x0,0x40,0x6c,0xe9,0x56,0x3f,0xfc,0xaa,0x9e,0xc0,0x1c,0x8d,0x90,0xc0,0x4d,0x4c,0x68,0xc0,0x38,0x86,0x55,0xc0,0x4c,0xfe,0xb9,0xbe,0x8a,0x1a,0x2b,0x40,0x4a,0xd8,0x20,0x40,0x50,0xf0,0x3e,0x40,0x23,0x7d,0xff,0x3f,0x88,0x7a,0xe,0xbf,0xed,0x28,0x0,0xc0,0x0,0x2e,0xd6,0x3b,0xe8,0x48,0x90,0x40,0xce,0x67,0x35,0xc0,0x1a,0x7f,0x85,0xc0,0xef,0xf5,0xd8,0xbf,0xa,0x52,0x7a,0x40,0x2a,0x59,0x65,0x40,0x70,0xf8,0x23,0xc0,0x71,0x9f,0xc1,0x3f,0xcc,0x96,0x88,0xbe,0x62,0xab,0x49,0x40,0xa,0x5,0x20,0xbf,0x6b,0xf2,0x44,0xc0,0xc5,0x31,0x91,0x40,0x38,0xac,0x3d,0xc0,0x36,0x52,0xfe,0x3f,0x7c,0x98,0x8b,0x3f,0x95,0xd1,0x84,0xbf,0x52,0x1,0x15,0xc0,0xd4,0x62,0x7f,0x40,0xf3,0x8a,0x51,0x40,0x7a,0x9d,0x17,0xc0,0x7,0x96,0x99,0x40,0x20,0x7e,0x2e,0x40,0x78,0x4c,0x6f,0xbf,0x36,0xd5,0x1e,0xbf,0x4d,0xa5,0x99,0xc0,0x82,0x63,0x51,0xc0,0x2,0xb6,0x3,0x3f,0xce,0xc6,0x98,0xc0,0xdc,0x47,0x9e,0xc0,0x12,0x88,0x24,0x40,0x5f,0x9f,0x17,0xc0,0x2,0xf0,0x82,0x40,0x87,0xe9,0x40,0xc0,0x1b,0xba,0x89,0xc0,0x4f,0xf9,0xfc,0xbf,0x46,0x71,0x4,0xbf,0x70,0xa8,0x8a,0xc0,0x20,0xd6,0x94,0x40,0x8e,0x70,0x81,0xc0,0xe8,0xc2,0x5b,0xbf,0x98,0xb8,0xa9,0x3f,0x90,0xf,0x3f,0x3e,0xae,0x46,0x76,0xc0,0xb0,0x18,0xf0,0xbe,0x1a,0x76,0x97,0xc0,0xe2,0x81,0xa5,0x3f,0x6e,0xe0,0x80,0xc0,0x22,0x41,0xd3,0xbf,0x98,0x24,0x16,0xc0,0x6d,0x5e,0x97,0x40,0x94,0xf2,0x16,0x3f,0x39,0x78,0x14,0xc0,0x2c,0xaf,0x62,0x3f,0x6c,0x46,0x99,0xc0,0xbc,0x60,0xf6,0xbe,0x9c,0x3b,0xdc,0xbf,0xe4,0xd8,0x1c,0xbf,0xba,0xa6,0x48,0xc0,0x1,0xe5,0xc,0x40,0xa0,0xb4,0xb9,0xbd,0xf1,0xab,0x3c,0x40,0x8e,0x96,0x3e,0x40,0x6c,0x54,0x23,0x40,0x4e,0x2,0x88,0xc0,0x64,0x4f,0x3a,0xc0,0x1d,0x5,0x9b,0xc0,0xc8,0xae,0x21,0x3e,0x80,0xcd,0x1,0x40,0x60,0x1a,0x48,0x40,0x1e,0x4e,0x3e,0xc0,0x74,0x53,0xce,0x3e,0x3f,0xab,0x62,0x40,0x20,0x4c,0x42,0x40,0x91,0x7c,0x2b,0x40,0x70,0xd5,0x1b,0xbf,0x46,0x55,0x91,0xc0,0xe8,0x32,0xf,0x3f,0xe2,0x3f,0x83,0x3f,0x34,0xd,0x5,0x40,0x2e,0x42,0xc,0xc0,0x86,0x1e,0x41,0xc0,0x89,0xc5,0xa1,0xbf,0xaa,0x65,0x2e,0x40,0xba,0x4e,0x6e,0x40,0x2e,0x13,0x8a,0xc0,0x90,0xeb,0x17,0xbf,0xd6,0x28,0x3,0x40,0x58,0xb4,0x1a,0x40,0x57,0x94,0x90,0x40,0xf8,0x57,0x3e,0x40,0xd,0x82,0x4,0xc0,0xd0,0x8d,0x78,0x40,0xb0,0x28,0x24,0x3f,0xa0,0xf1,0x6a,0x40,0xd8,0x16,0x7a,0xc0,0xf3,0x93,0x82,0xbf,0x2c,0xe6,0x91,0xc0,0x3c,0x84,0x26,0x40,0x7d,0x50,0xa5,0x3f,0x6,0x15,0x62,0x40,0x9a,0xcd,0x17,0xbf,0x96,0xb,0x71,0x40,0xe8,0x6d,0x59,0x40,0x16,0xe0,0x99,0x40,0xce,0xbe,0x26,0xc0,0x6c,0x7a,0x91,0x3f,0x56,0xd3,0xbc,0x3f,0xda,0xab,0x64,0x40,0x64,0xa2,0x78,0x3f,0xcc,0x69,0x92,0xc0,0xf2,0x9,0x88,0x40,0x84,0xc8,0x46,0x3f,0x2b,0xe8,0x11,0xc0,0x8,0xd0,0x42,0xbe,0x7e,0x73,0x42,0xc0,0xa8,0xa5,0x6,0x40,0xc,0x1e,0x9a,0x40,0xe6,0x6f,0x62,0x40,0x90,0xec,0x96,0xbd,0x3a,0xb9,0x9a,0xc0,0x3e,0x7e,0x4f,0xc0,0x3e,0xdf,0x57,0xc0,0x56,0x97,0x5f,0xc0,0xe7,0xf7,0x88,0x40,0x2,0x22,0x30,0xc0,0x1a,0xd7,0xb,0x40,0x12,0xfc,0xb9,0xbf,0x10,0x38,0x7d,0xbe,0x9e,0xfe,0x9d,0xc0,0x9b,0xb3,0xdd,0x3f,0xbc,0x5b,0x49,0x40,0x92,0x7e,0x7a,0xc0,0xb8,0x8,0x85,0xbf,0xc4,0x8f,0x49,0xbf,0xb4,0x96,0x50,0x40,0x45,0x0,0xb5,0x3f,0xa6,0x6e,0xe,0xc0,0xcc,0xaf,0x69,0x40,0xfe,0x12,0x64,0x3f,0xc6,0xab,0x6,0xc0,0xf8,0x6a,0x37,0xc0,0x6a,0x22,0x23,0x40,0x3e,0xdb,0x53,0x40,0x6,0x67,0x89,0x40,0x35,0x7,0x11,0x40,0x76,0x37,0xb1,0x3f,0x18,0x2a,0x90,0xc0,0x98,0xa,0xf3,0x3e,0xc9,0xd8,0x85,0xbf,0x40,0x38,0xc3,0xbd,0x33,0x2c,0xc3,0x3f,0x27,0x79,0x96,0xbf,0x80,0xd8,0xa6,0xbc,0x46,0x64,0x78,0x40,0x9d,0x6b,0xa1,0x3f,0x14,0x2d,0x41,0x40,0xdd,0xf6,0x50,0x40,0x3a,0xda,0x42,0xbf,0x90,0xa,0x67,0x3e,0xae,0xf1,0x77,0xc0,0xa0,0x3b,0x97,0xbe,0x71,0xa7,0x3e,0xc0,0x8,0x14,0x10,0x40,0x9a,0x34,0xef,0xbf,0x9c,0x44,0x56,0x40,0x8,0xde,0x6d,0xc0,0xa,0x5a,0x75,0x3f,0xdc,0x6c,0x84,0x3f,0x6c,0xb7,0x1,0x3f,0x53,0x6b,0x75,0xc0,0x4a,0x79,0x59,0xc0,0xfe,0xb3,0x8c,0x40,0x7e,0x83,0x9e,0x3f,0x62,0xf6,0x1c,0xc0,0xea,0x38,0xfa,0x3f,0x87,0x8f,0x59,0x40,0x9d,0xf8,0xc3,0x3f,0x40,0x9f,0xca,0xbf,0x87,0x41,0xbe,0x3f,0xf8,0x99,0x8e,0xc0,0xd2,0x93,0x2b,0x40,0x57,0x3b,0x33,0xc0,0x48,0x44,0x6d,0xc0,0xc0,0x63,0xbd,0xbe,0xe3,0xa8,0x43,0xc0,0x4e,0x42,0xa,0xc0,0xca,0x7f,0x19,0xc0,0x36,0xdb,0x77,0x3f,0x1c,0x47,0x88,0xbf,0xc3,0x3f,0x80,0x40,0x8,0x41,0x3b,0xc0,0x8a,0x4,0x7d,0x40,0x28,0x28,0xc8,0x3e,0x80,0x7e,0xdd,0xbe,0x46,0xd6,0x87,0x40,0x88,0x16,0x29,0x40,0x64,0x64,0x66,0xc0,0xbc,0xb2,0x21,0x40,0xd9,0x41,0x55,0x40,0x0,0xfd,0xc5,0x3b,0xf6,0x36,0x43,0x40,0x8f,0xda,0xdb,0x3f,0xa0,0x22,0x6c,0x40,0x8a,0xb0,0x5b,0xc0,0xb9,0x5b,0x94,0xc0,0x0,0x2b,0xf7,0xbc,0xc0,0xce,0x22,0x3e,0xb2,0xe3,0x8c,0xc0,0x9b,0x4d,0x80,0xc0,0x72,0xf9,0x65,0x40,0x50,0x89,0x78,0xc0,0x1c,0x1e,0x2f,0x40,0xc8,0xee,0x60,0x40,0x96,0xbb,0xb7,0xbf,0x22,0x71,0x16,0xc0,0x10,0x33,0xc6,0xbf,0xf8,0xa3,0x77,0x40,0x52,0x99,0x3b,0x40,0x85,0xe4,0x8b,0xc0,0x26,0x47,0x84,0xc0,0x44,0x19,0xc,0x40,0xb0,0xf8,0x76,0xc0,0x44,0x62,0xa4,0xbf,0xc4,0x25,0x84,0xbf,0xc4,0xd6,0x86,0x40,0x48,0xa2,0x6e,0xc0,0x46,0x78,0x43,0xbf,0x27,0xa1,0x7a,0x40,0xc4,0x88,0x61,0x40,0x9a,0xbe,0x9b,0xc0,0x2e,0x69,0x76,0xc0,0xf0,0xe4,0x1d,0x40,0x8c,0x27,0xfb,0xbf,0xd7,0x99,0x63,0x40,0x1a,0x63,0xb9,0x3f,0xe4,0xaa,0x66,0x40,0x72,0x10,0xe,0xc0,0x2,0xbc,0x34,0x3f,0x51,0xba,0x69,0xc0,0x80,0x62,0x89,0xc0,0xdd,0x5d,0xd8,0xbf,0x14,0x8a,0x94,0x40,0xf8,0xaa,0x6b,0x40,0xc8,0xea,0x64,0x40,0x78,0x96,0x72,0x40,0xa4,0xd0,0x96,0xc0,0xae,0xe0,0x5e,0x40,0xf8,0xc4,0x7b,0x40,0x96,0x5d,0xa2,0xbf,0xe7,0x73,0x85,0xc0,0xc,0x7b,0xaf,0xbf,0x33,0xb,0x7d,0x40,0xa,0xe3,0x20,0xc0,0x5f,0x67,0xe,0xc0,0xd6,0x11,0x3a,0xc0,0x7a,0x74,0x1f,0xc0,0x1,0x9,0xaf,0xbf,0x52,0x70,0x8,0x3f,0x54,0x54,0x36,0x40,0xf0,0x63,0xf1,0x3d,0xce,0xac,0x89,0xc0,0x90,0x2b,0x71,0x40,0xa0,0xf2,0xad,0x3d,0xa3,0x13,0xee,0xbf,0xe1,0x77,0x76,0xc0,0xe,0xb,0x4d,0x3f,0x3a,0xdc,0xd4,0x3f,0xde,0xdf,0x84,0xc0,0xa4,0xce,0x78,0xc0,0xb9,0x52,0x2d,0x40,0xef,0x36,0xd4,0x3f,0xb6,0x27,0x6f,0xbf,0x4,0x95,0x13,0xbf,0x57,0xd0,0xf5,0xbf,0xfb,0x16,0x98,0x3f,0x30,0xf0,0x40,0x3f,0x86,0x4e,0xa8,0x3f,0x62,0x46,0xbb,0x3f,0x12,0x2b,0xb3,0x3f,0xd3,0x46,0xb8,0x3f,0x9d,0x77,0x1,0xc0,0xfe,0xe8,0x9c,0x40,0x27,0x5e,0x4,0x40,0x2c,0xd7,0x7b,0xbf,0x30,0x87,0xf7,0x3d,0x6e,0xd7,0x97,0xc0,0xfd,0xfb,0xe7,0xbf,0x30,0xd,0xd1,0xbf,0x1e,0xb2,0xc,0x40,0x9c,0xef,0x9f,0x40,0xeb,0xcb,0xca,0xbf,0x74,0xd,0x89,0x40,0x48,0xe9,0x96,0x3f,0x74,0xb2,0x33,0xc0,0xb6,0xb1,0x2d,0xc0,0xbc,0x7b,0xcc,0xbe,0x60,0xcb,0x49,0x3e,0x9b,0x43,0xbc,0xbf,0x70,0x2e,0x1f,0x40,0x93,0x7b,0x9a,0x40,0xf9,0xa9,0xbb,0x3f,0x67,0x73,0x68,0x40,0x4e,0xdd,0x12,0x3f,0x97,0xe8,0xe8,0xbf,0x92,0x78,0x72,0x40,0x24,0x38,0x96,0x40,0xac,0xa4,0x40,0xc0,0xd0,0xe1,0x1a,0xc0,0xe8,0x6f,0x83,0x40,0xa8,0x60,0xb,0x40,0xcd,0x54,0x93,0x40,0xfe,0xe7,0x52,0x40,0x63,0x3,0x98,0x40,0x88,0x0,0x9f,0xbe,0x78,0xd8,0x95,0x3e,0xfd,0xd0,0x60,0xc0,0x94,0x19,0x54,0x3f,0xf4,0xba,0x45,0x40,0x3c,0xe4,0x5e,0xbf,0x9e,0x27,0x2d,0x3f,0xc0,0x22,0x44,0xc0,0x92,0xef,0x81,0x40,0xa,0x75,0x91,0xc0,0xca,0x8e,0x1c,0xbf,0x10,0x37,0x8f,0x40,0x9b,0x2e,0xa9,0xbf,0xfe,0x6d,0x24,0xc0,0xe6,0x61,0x55,0xbf,0xe8,0xab,0x20,0xc0,0x56,0x1e,0x30,0xc0,0x44,0x12,0x76,0x40,0x20,0x49,0xd7,0x3f,0x68,0x94,0x14,0x40,0x5e,0x38,0x8b,0xc0,0x63,0x7a,0xd1,0x3f,0xa2,0xc5,0x6,0xc0,0xc0,0xe3,0x3c,0xc0,0x63,0x5b,0x20,0xc0,0xae,0xb0,0x7c,0x40,0x6a,0x3b,0x64,0xc0,0x2c,0x6d,0x18,0xc0,0x2f,0xdc,0x8b,0xc0,0xce,0x4d,0x59,0x40,0x66,0x39,0x85,0x40,0x32,0xa,0xd2,0x3f,0x70,0xee,0x83,0x40,0x6c,0x44,0xdb,0x3e,0x90,0xf4,0xf7,0xbe,0xb8,0x11,0x95,0x40,0xf7,0x56,0x88,0x40,0x38,0xaf,0x84,0x40,0x25,0xfb,0x7c,0x40,0x52,0x41,0x80,0x40,0x58,0x36,0x2f,0x40,0x28,0xdc,0xeb,0xbf,0xad,0xdd,0x21,0xc0,0x1c,0x29,0x9c,0x3e,0xd7,0xba,0xef,0xbf,0x9e,0x9e,0x56,0xc0,0x2e,0xb3,0xc,0x40,0xf2,0x26,0x9a,0x40,0x28,0x22,0x8d,0xc0,0x82,0x2a,0x75,0xc0,0x64,0x5,0x3e,0x40,0x54,0x7c,0x96,0xc0,0x1f,0x7c,0x91,0xc0,0xd9,0xd5,0xe1,0x3f,0x14,0xa2,0x9c,0xc0,0xc2,0x31,0xfc,0x3f,0x19,0x1e,0x6b,0xc0,0x9c,0xe2,0x46,0x3f,0x86,0xd7,0x96,0xc0,0x4d,0xb6,0x9c,0x40,0x18,0x9a,0xed,0xbe,0xab,0xa,0x8f,0x40,0x70,0x3a,0x82,0xbe,0x98,0x68,0xc2,0x3f,0xbe,0x11,0xd,0x40,0x4,0xbb,0x36,0xc0,0x68,0x56,0xe6,0xbf,0x60,0x6c,0x12,0xbd,0x36,0xb2,0x87,0x40,0x98,0x10,0xca,0xbe,0xa3,0x31,0x9e,0x40,0x62,0x54,0x91,0x40,0x7a,0xb7,0x22,0x40,0x85,0x6d,0x95,0xc0,0x81,0xa8,0xc6,0xbf,0xa4,0x5b,0x88,0xc0,0x4c,0x37,0x97,0xc0,0x80,0x4f,0x50,0xbe,0x8d,0x74,0x9a,0x40,0x83,0x86,0x61,0x40,0xc6,0x7b,0x81,0x3f,0x6c,0x14,0x4f,0xc0,0xa5,0xe6,0x6b,0xc0,0x74,0x6,0x12,0xc0,0x2a,0x7b,0x2,0x40,0x48,0x9,0x1a,0xbe,0xe4,0xe7,0x5b,0xc0,0x6c,0x18,0x1b,0x40,0x6,0xbe,0x88,0xc0,0xa8,0x37,0x36,0x3f,0x33,0xb,0xb7,0xbf,0x72,0xd5,0x9c,0x40,0x6c,0x59,0x94,0xc0,0xe,0xf7,0x86,0x40,0xee,0x30,0x6f,0xbf,0x3f,0xb4,0x6d,0xc0,0xe3,0xaa,0xb2,0xbf,0xa6,0xf9,0x43,0xbf,0x80,0x88,0x76,0xbe,0xa4,0xf9,0xc5,0x3f,0x70,0xeb,0x87,0x40,0x0,0x80,0x6d,0x3f,0x0,0x2,0x57,0x40,0xb8,0xf2,0x76,0xc0,0xdb,0x26,0x1e,0xc0,0xe7,0xf,0x79,0xc0,0xa1,0xcb,0xb5,0x3f,0x84,0x6d,0x95,0x40,0x96,0x45,0x89,0xc0,0xf6,0xb1,0x84,0xbf,0x88,0x94,0xfb,0xbe,0xaa,0xcd,0x39,0xc0,0x28,0x28,0x75,0xc0,0x16,0x9b,0x46,0x40,0x25,0xdb,0xc7,0xbf,0x7a,0xa,0x37,0xc0,0x6e,0xec,0x2e,0xbf,0x1a,0xe7,0x85,0xc0,0x29,0x7d,0x95,0x40,0x1e,0xf1,0x8b,0x3f,0xab,0x9f,0x9b,0xbf,0xe7,0xe3,0xd9,0x3f,0x40,0xdb,0x57,0x40,0x38,0x61,0xe,0xbf,0x64,0x13,0xb,0x40,0xca,0xb2,0x94,0xc0,0x6e,0xfb,0x83,0x40,0xec,0xd1,0x63,0x40,0xe1,0x25,0xe4,0xbf,0x7a,0x19,0x2,0x40,0x5,0x5e,0xc9,0x3f,0x35,0x99,0x90,0xbf,0xa4,0xc5,0x9f,0x40,0xc1,0x8b,0xbc,0x3f,0xcc,0x95,0x68,0xc0,0xa4,0xbf,0x66,0x3f,0x7,0x24,0xb6,0xbf,0x50,0x9,0x98,0xc0,0x8a,0xf6,0x6c,0x40,0x96,0xf6,0x81,0x3f,0xe1,0x56,0x7e,0xc0,0x2c,0xc8,0x1c,0x40,0x91,0x56,0x15,0xc0,0xa0,0x26,0x7a,0x40,0x16,0x1b,0x3,0xbf,0x52,0x6f,0x18,0xbf,0xa2,0xf9,0x72,0xc0,0xc5,0xdf,0x20,0xc0,0x10,0x27,0x66,0x40,0x2e,0x80,0x1f,0x40,0x17,0x97,0xd,0xc0,0x62,0xe4,0x1,0x3f,0xb7,0x3d,0x88,0xbf,0x6f,0x64,0x80,0xc0,0x47,0x43,0xde,0x3f,0xa0,0x53,0x9,0xc0,0x56,0x28,0x51,0x40,0x0,0xa4,0xdd,0xbe,0xcb,0x55,0xc0,0x3f,0x0,0xbf,0x6f,0xbf,0xa8,0x91,0xde,0x3e,0xc2,0x17,0x7b,0x40,0xa0,0x59,0x8b,0xc0,0x19,0x51,0x9b,0x40,0xb5,0x7e,0xb7,0x3f,0xbe,0xe0,0x6a,0xc0,0x35,0x75,0x91,0xc0,0x6c,0x71,0x9f,0x3e,0xff,0x29,0x1f,0xc0,0x1c,0x7a,0x9c,0x40,0xe8,0xdf,0x1d,0xc0,0xd4,0xe9,0x89,0x40,0xe4,0xa0,0x43,0x40,0xee,0x92,0x58,0xc0,0x54,0x29,0xc3,0xbf,0xb0,0xbe,0x54,0x40,0xf0,0xc0,0x34,0xc0,0x2a,0x32,0x49,0xc0,0xca,0xc6,0x34,0xc0,0x4e,0x8a,0x51,0xbf,0xf6,0x3b,0x28,0x40,0x28,0x15,0xf9,0xbe,0x8a,0x13,0x85,0x3f,0x5b,0x5f,0xcc,0x3f,0x24,0xe9,0xba,0xbe,0x9a,0xfc,0x30,0x40,0xaa,0xba,0x6c,0x40,0x16,0x2c,0x2e,0xc0,0x86,0x4e,0x17,0x40,0xc6,0xea,0x73,0xbf,0xd8,0xa3,0x58,0xbe,0x20,0x76,0x82,0xc0,0x84,0x4c,0x88,0x40,0x8c,0x3e,0x41,0x40,0x25,0x11,0x17,0x40,0x11,0xd6,0x24,0xc0,0x80,0x3,0x3d,0x3f,0x25,0x13,0x65,0x40,0xc,0xee,0x70,0x3f,0x6c,0x93,0x9d,0xc0,0x55,0x47,0x4c,0x40,0xe7,0x70,0x84,0x40,0xdb,0x4e,0x8a,0x3f,0xac,0x6e,0x46,0x40,0x16,0x4,0x5b,0x40,0xc2,0xb2,0x75,0xc0,0x6a,0xf,0x8b,0xbf,0xa8,0x3e,0x54,0x40,0x8a,0xca,0x91,0xbf,0xab,0xc,0x9c,0xc0,0x6b,0x14,0x9e,0xc0,0xe0,0x97,0x39,0x40,0xb0,0xf3,0xd8,0x3e,0xe8,0xc8,0x21,0x40,0x5b,0xef,0x88,0xc0,0x0,0x4e,0x3b,0x3b,0x82,0x7e,0x80,0xc0,0x1a,0x56,0x17,0x40,0x78,0xa5,0x4a,0xc0,0x7e,0x8f,0x32,0xc0,0x71,0xeb,0x4f,0xc0,0xa,0x88,0x4a,0xc0,0x60,0xbd,0x7,0xbf,0x58,0x80,0x9f,0x3f,0xb0,0x41,0x5e,0x40,0x68,0x7b,0x9d,0x40,0x9c,0xa4,0xb4,0xbf,0x8d,0xc0,0x8e,0x3f,0xde,0x2d,0x8,0xc0,0x9a,0xe2,0x98,0xc0,0x7c,0x71,0xa3,0xbf,0x6e,0x33,0x77,0x40,0x43,0x9d,0xe2,0x3f,0x20,0x3f,0xc,0xbd,0xf8,0x9b,0x84,0xc0,0x2c,0x2c,0x20,0xc0,0x21,0x3a,0xa9,0x3f,0xad,0x89,0x96,0x40,0xec,0x7d,0x81,0xbe,0x3e,0xe,0x3a,0xc0,0x8,0x83,0x10,0x40,0xa4,0xd2,0x3,0x3f,0x32,0x2f,0x14,0x40,0xd2,0x1b,0x19,0xbf,0xd4,0x32,0x39,0x40,0x8,0x36,0x28,0x40,0x8f,0x8a,0x56,0xc0,0xb2,0x79,0x8d,0x3f,0x80,0xd2,0x6d,0x3f,0xd4,0xa8,0x88,0x40,0xd6,0x2c,0x84,0xc0,0x4,0xc1,0x69,0x40,0x4,0xfc,0xb3,0x3e,0x8,0xd5,0x38,0x3f,0x14,0x51,0xbd,0x3f,0x7c,0x5e,0x85,0xc0,0xdb,0xc0,0x51,0xc0,0xbe,0x33,0x98,0xc0,0x8c,0x8c,0x6d,0x40,0xfe,0x2d,0x85,0x40,0x3c,0x41,0x23,0xc0,0x66,0x5b,0x1,0x40,0x56,0xea,0x54,0x40,0xb4,0xf,0x9b,0xc0,0xc8,0x94,0xb1,0x3e,0xcf,0xc0,0x8d,0x3f,0x3c,0x87,0x77,0xc0,0xfd,0x77,0xee,0xbf,0xa4,0xcf,0x13,0x40,0xfa,0x93,0x3a,0x40,0xd8,0xf6,0x37,0xbe,0xfe,0x52,0x5e,0x40,0xee,0x15,0x28,0x40,0x5c,0x2a,0xf1,0xbf,0xee,0x86,0x2f,0xc0,0x21,0x7c,0x5a,0x40,0x40,0xac,0x1f,0x3d,0xd7,0x37,0x34,0x40,0x46,0x20,0x73,0x3f,0xd5,0x93,0x8c,0xbf,0x35,0x26,0x6,0x40,0xd,0x7c,0x50,0xc0,0x56,0x7d,0x3d,0x3f,0x26,0x66,0xf5,0x3f,0x62,0xec,0x3f,0xc0,0xd8,0x1c,0x82,0x40,0xb4,0x1a,0xa4,0xbe,0xb0,0x18,0x68,0xc0,0x9c,0x9d,0xbb,0x3f,0x72,0x74,0x39,0xc0,0xc9,0x2b,0x44,0xc0,0x80,0x32,0x89,0x3c,0x43,0xa1,0x13,0x40,0x15,0xbf,0x99,0x40,0x18,0xa0,0x83,0x3e,0x56,0xdb,0x85,0x40,0x16,0xd7,0x8d,0x40,0x97,0x16,0xac,0xbf,0xdc,0x62,0x98,0xbe,0x8,0xe2,0x9a,0xc0,0xf0,0xc5,0xc6,0xbf,0x6d,0xc,0x4c,0x40,0x80,0xd4,0xcd,0xbe,0x96,0x11,0x1e,0xbf,0x6b,0x10,0xc5,0xbf,0x79,0x9,0x25,0x40,0x4b,0x8a,0x80,0x40,0xaf,0x61,0x46,0xc0,0xeb,0x79,0x1a,0x40,0x76,0x3,0x29,0xc0,0xae,0x74,0x48,0x40,0xc0,0x36,0x8b,0xbc,0x4e,0xca,0xf,0xc0,0x66,0x60,0x48,0x40,0xc2,0xfc,0x88,0xc0,0xe5,0x32,0x21,0x40,0x78,0x3a,0x77,0xbe,0x5c,0x91,0x41,0xc0,0x98,0xfb,0x68,0xc0,0x40,0x8b,0x34,0xc0,0x0,0xe9,0xf2,0x3b,0xb8,0xde,0x8,0x40,0x48,0x8c,0x28,0xbe,0x23,0x9a,0xa6,0xbf,0x6b,0x98,0xbf,0xbf,0xba,0xdf,0x8d,0x3f,0x16,0x82,0x58,0x40,0xe8,0xf8,0x11,0x3e,0x41,0xba,0x2e,0xc0,0x8e,0x42,0x40,0xbf,0x7,0xe1,0x73,0xc0,0xd,0xb7,0xfe,0x3f,0x7b,0xa0,0x13,0xc0,0x58,0xea,0xe9,0x3f,0x34,0xd7,0xa3,0xbe,0xf8,0xce,0x81,0x40,0xce,0xbc,0x12,0xc0,0xce,0xe1,0x56,0xc0,0xc4,0x6e,0xa4,0x3e,0xfe,0xe2,0xd2,0x3f,0x34,0xc3,0x7b,0xc0,0x86,0x35,0x3a,0xc0,0x2c,0x29,0x6d,0x40,0xd2,0x6f,0x87,0x40,0x48,0x6,0x45,0x40,0x7e,0xa5,0x6a,0x40,0xf7,0x68,0x29,0x40,0xb1,0xdd,0x84,0x40,0x7a,0x39,0xb0,0x3f,0xfa,0x35,0x5b,0xc0,0x1e,0x4f,0x2d,0xc0,0x6a,0x59,0xc,0x40,0xe8,0xad,0x20,0xbe,0x55,0xc0,0x90,0x40,0x1c,0xb4,0x9d,0x40,0x6e,0x9b,0x73,0x40,0xbf,0x13,0x48,0xc0,0x6f,0x5b,0xc1,0xbf,0x2e,0xd6,0x86,0x40,0xf6,0x2e,0x41,0x3f,0xa0,0x65,0x89,0x40,0x22,0xef,0x3d,0x40,0x28,0x83,0x98,0xc0,0xba,0xe3,0xc0,0x3f,0x11,0x56,0x84,0x3f,0x68,0xd0,0xad,0xbe,0x78,0xc0,0x7f,0x40,0xb4,0x9a,0x64,0xc0,0x3c,0xba,0x95,0x40,0x2a,0xc7,0x7c,0x40,0x7e,0x8c,0xa9,0x3f,0xc0,0x29,0x88,0x40,0xf6,0x32,0x6f,0x3f,0xf8,0x5f,0xb,0xc0,0xb6,0xbb,0x56,0xc0,0x8e,0x8e,0x95,0x40,0xd6,0x8d,0x61,0xbf,0x14,0xb8,0x88,0x3f,0xe6,0xc4,0x86,0xbf,0xca,0x42,0x3d,0x40,0xa8,0x59,0x99,0x3e,0x62,0xec,0x26,0xbf,0xf8,0xbc,0x1d,0xc0,0xbd,0xdf,0x90,0x40,0x8d,0x37,0x9b,0x40,0x70,0xb6,0x29,0x40,0xd0,0x0,0x72,0xbe,0x4d,0xe3,0x58,0x40,0xf1,0xec,0x89,0x40,0x8e,0xe9,0xbe,0xbf,0xc8,0x8d,0x72,0xc0,0xec,0x67,0x91,0xc0,0xc,0x27,0x6,0xc0,0xc5,0xf1,0x54,0xc0,0xb8,0x7f,0xdb,0xbf,0xc8,0xb8,0x88,0xbf,0xb,0x75,0x6d,0xc0,0x93,0xd5,0x48,0x40,0xea,0xf1,0x8b,0x40,0xa,0x10,0x8c,0x40,0x53,0x59,0x14,0x40,0x19,0x74,0xf9,0x3f,0xab,0xd4,0x84,0xc0,0xa0,0xf5,0x7f,0x3e,0x1b,0xd1,0x86,0x40,0xc3,0xda,0x8e,0x3f,0x27,0x8d,0x16,0x40,0xea,0x28,0x98,0x40,0xba,0x6d,0x16,0x3f,0xcc,0x2,0xdb,0xbf,0xda,0xcd,0x96,0x40,0x81,0x91,0x92,0xc0,0xf0,0x5f,0xdc,0xbd,0xcf,0x63,0x81,0x3f,0xc2,0x86,0x13,0x3f,0x4e,0x5f,0x84,0xc0,0xe8,0xaa,0xc,0xc0,0x3,0x5b,0x8e,0x40,0xf4,0xd9,0xae,0xbe,0x98,0x3d,0xc0,0x3f,0xba,0xcf,0xf2,0x3f,0x96,0xed,0xfd,0x3f,0x29,0x92,0x46,0x40,0x95,0xf8,0xda,0x3f,0x72,0xfa,0x62,0xbf,0x62,0x73,0x4f,0xbf,0x3f,0x3,0x3d,0xc0,0xdc,0x4a,0x38,0x40,0x34,0xbc,0x9d,0x40,0x7e,0x2,0x92,0x40,0xd2,0x50,0x3c,0xc0,0x70,0x57,0x1,0x40,0x60,0x97,0x39,0xc0,0x56,0x4e,0x9b,0xc0,0x64,0xaf,0x86,0x40,0xfa,0x68,0x17,0x40,0xbf,0xbe,0x86,0xc0,0x76,0x5b,0x88,0x3f,0x7a,0xe9,0x92,0x40,0xf0,0xa4,0x30,0xbe,0x1a,0xf5,0x60,0x3f,0x5a,0xd0,0x10,0x40,0x4e,0x64,0x1d,0x40,0x6,0x55,0x10,0x3f,0x84,0x9a,0x4c,0x3f,0xf0,0x9b,0xf,0xc0,0x28,0xd3,0x8,0x40,0xdb,0x92,0x86,0xc0,0x20,0xcb,0x9,0x40,0x12,0xdb,0x8c,0xc0,0xbb,0x5d,0x82,0xbf,0x27,0x12,0x28,0x40,0x4c,0x22,0x28,0xc0,0x89,0x88,0xbb,0xbf,0x5c,0x5,0xd5,0xbf,0xa,0x10,0x13,0xc0,0x28,0x45,0x44,0xbf,0x64,0x1c,0x33,0xc0,0xae,0xf5,0x64,0xc0,0xe8,0xdd,0x72,0xbf,0x35,0x23,0xde,0xbf,0xf9,0x12,0x94,0x3f,0x8e,0x9,0x33,0x3f,0xa4,0xcb,0xad,0x3e,0xf4,0x25,0xc2,0x3e,0x70,0x54,0x6,0x3f,0xbf,0xde,0x1d,0x40,0xda,0xf7,0x16,0x3f,0x6d,0x51,0xf0,0x3f,0xe7,0x78,0xae,0x3f,0x4a,0x4,0x6d,0x3f,0xfc,0xbc,0x8c,0x3f,0x42,0x1b,0x74,0x40,0x34,0x6b,0x8d,0xbf,0x60,0x29,0xf3,0x3e,0x7d,0x7d,0xa0,0xbf,0xd0,0xeb,0x33,0x40,0xb4,0xd1,0xf6,0x3f,0x98,0x78,0x41,0x3f,0xe8,0x80,0x27,0xc0,0x94,0x6d,0x5c,0xc0,0x9e,0xf7,0x70,0x3f,0x3,0xa7,0x82,0x40,0xea,0x59,0x2f,0xc0,0x98,0x57,0x10,0x40,0xc4,0xdb,0x11,0xbf,0xe6,0x91,0x19,0x40,0x9c,0xe2,0x73,0x3f,0x33,0x55,0xe0,0x3f,0x8a,0xd8,0x32,0x40,0x3f,0xf1,0x3,0x40,0x7a,0x66,0x8,0x3f,0xe8,0x5a,0x97,0x40,0x36,0x10,0x50,0xc0,0xc,0xe,0xd1,0x3e,0x96,0xcf,0x8e,0xc0,0xc8,0xe7,0x72,0xc0,0x2,0x41,0x9a,0xc0,0x18,0xc0,0x1f,0xbe,0xc8,0x27,0xb5,0x3f,0x74,0xb,0x9e,0xbe,0x32,0x82,0x2,0xc0,0xbc,0x13,0x39,0xc0,0x10,0x5a,0xb8,0x3d,0x27,0x19,0x21,0xc0,0x98,0xd1,0x51,0xbe,0x3f,0xf1,0x83,0x40,0x1e,0xb4,0x46,0x40,0xc2,0x44,0xb7,0x3f,0xe,0x26,0xe9,0xbf,0x63,0xb0,0x96,0xc0,0x24,0x90,0x14,0xc0,0x40,0xe0,0x36,0xbf,0xf4,0x1d,0x2f,0xc0,0x14,0xb5,0xf9,0xbf,0xb2,0x2e,0x10,0xc0,0x87,0x60,0x91,0x40,0x4c,0x58,0x9c,0xbe,0xb0,0x67,0x80,0x40,0x94,0x55,0x60,0xc0,0xdf,0xb2,0x1a,0x40,0x12,0x94,0x90,0xc0,0x6c,0xcf,0xd2,0xbf,0x47,0xa4,0x2,0xc0,0xaa,0x12,0x95,0xc0,0xe2,0x81,0x6e,0xc0,0xca,0xd,0x57,0xc0,0xee,0xc3,0x5e,0xbf,0x95,0x64,0xd3,0xbf,0x78,0xa3,0x93,0xc0,0xe,0x59,0x4f,0x3f,0xde,0xac,0xa,0x40,0xe,0x51,0x5c,0x3f,0x45,0x1c,0x73,0x40,0x28,0x17,0xde,0xbe,0x58,0xc8,0x7e,0x40,0xe8,0x80,0xa5,0xbe,0xa4,0x8b,0xbb,0xbe,0xec,0xd4,0x93,0xbe,0xfe,0x88,0x0,0xc0,0xd8,0x6c,0xf6,0xbf,0x62,0x5d,0x9a,0x3f,0x7e,0x10,0x2f,0xc0,0x18,0xf,0xdd,0x3f,0x7c,0xa,0x80,0xc0,0xf2,0x1b,0x1c,0xbf,0xa8,0x25,0x39,0xbf,0xf2,0x3f,0xf,0xc0,0xd4,0x91,0x64,0x40,0xe6,0x9b,0x81,0xc0,0x42,0xc7,0x18,0x40,0xb4,0xa6,0x8f,0xc0,0xa,0xd3,0x3d,0x40,0x55,0x41,0x97,0x40,0x71,0x99,0x95,0xbf,0xa8,0x59,0xbc,0xbe,0x20,0xe5,0x15,0xbe,0xfd,0xe0,0x37,0x40,0xcc,0xb6,0x9a,0x3e,0x70,0xfc,0x9c,0xbf,0x9f,0x6d,0x8d,0x40,0x5e,0xcb,0x75,0x40,0xe4,0x80,0xa9,0xbe,0xda,0x65,0x23,0xc0,0x3c,0xb1,0x37,0x40,0x7e,0xf6,0xd,0xc0,0x20,0x4a,0x35,0xc0,0x3e,0xaf,0x46,0xc0,0xc8,0xf4,0xa6,0x3e,0xca,0x50,0x8,0xc0,0x30,0xb9,0x56,0x40,0x36,0x8c,0x5f,0x40,0xbe,0x93,0x8,0xc0,0x8e,0x78,0xfd,0xbf,0x66,0xef,0x67,0x40,0xf7,0x54,0x24,0xc0,0x48,0xa3,0x4a,0x40,0x98,0xd3,0x9d,0xbe,0xbe,0xc3,0x66,0x40,0xf8,0x52,0x22,0x40,0x20,0x1e,0x64,0xc0,0xac,0x1,0x65,0xc0,0x68,0x94,0xc,0x40,0x5b,0xbd,0x1b,0xc0,0x64,0xed,0xd0,0x3e,0xa0,0x1c,0x77,0x3f,0xee,0x55,0x81,0xc0,0x38,0x5f,0x8b,0xbe,0x4a,0x5,0x5d,0x40,0x60,0xef,0x48,0x3e,0xa5,0x69,0x48,0xc0,0x8,0x8d,0x8b,0x40,0x7,0x25,0x88,0x40,0xf3,0x5e,0x99,0x3f,0x2c,0x5,0x42,0xc0,0x8a,0xc3,0x9,0x40,0x13,0xf1,0xb4,0x3f,0xfc,0x72,0x3d,0xc0,0x7e,0xf6,0x67,0xc0,0x7a,0xad,0x4,0xc0,0x80,0x11,0x97,0x40,0xae,0x3a,0xa,0x3f,0x60,0xc4,0x94,0xbd,0x66,0x7b,0x13,0x40,0xc8,0xc9,0x33,0xc0,0x2a,0x65,0xca,0xbf,0x10,0x6c,0x5d,0x3f,0x5c,0x80,0x8b,0x40,0xfc,0xe1,0xb2,0xbe,0xc7,0xea,0x8e,0x3f,0xcf,0x1f,0x85,0xc0,0x41,0xb0,0x95,0xc0,0x4d,0x4,0x86,0x3f,0x40,0x1c,0x4b,0xbd,0xe4,0x15,0x7b,0x40,0x55,0x40,0x92,0x3f,0x8e,0xce,0x8f,0x40,0xec,0xba,0x73,0xbf,0x54,0xd9,0xae,0xbf,0x8c,0x42,0xdb,0xbe,0xf7,0xce,0x13,0xc0,0x3c,0xc7,0xa6,0x3e,0xc5,0x15,0x84,0xc0,0xb8,0x10,0x11,0x3f,0x3c,0xce,0xae,0xbe,0xd2,0x8e,0xc6,0x3f,0xbf,0x27,0x9b,0x40,0x38,0xd8,0xe4,0x3f,0xd8,0x10,0x55,0x3f,0x12,0x1,0x51,0xc0,0xda,0x8e,0xdc,0xbf,0x7f,0x1b,0xfb,0xbf,0x7c,0x39,0x87,0xc0,0x26,0x17,0x2b,0x40,0x66,0x3,0x98,0x40,0xe2,0x84,0x54,0x40,0x54,0x1f,0x7c,0x40,0xbe,0xc5,0x2f,0xc0,0x4,0xc6,0x3,0xc0,0x59,0x88,0xc8,0xbf,0x5c,0x33,0x10,0xc0,0x20,0x59,0x7c,0xc0,0xa3,0x9d,0x83,0xc0,0xe0,0x85,0x73,0xbe,0xbd,0xbb,0x3d,0xc0,0x36,0xe5,0x70,0xc0,0xee,0x1a,0x9c,0x40,0xc6,0xbf,0x95,0xc0,0xba,0xdb,0xc8,0xbf,0x4a,0x96,0x4e,0x40,0xd4,0xc8,0x23,0xc0,0x4b,0x89,0x14,0x40,0x1a,0xfb,0x64,0xc0,0xe0,0x8e,0x42,0xbd,0x6a,0xa6,0xe9,0x3f,0x6b,0xff,0xc6,0xbf,0x2e,0xf5,0x63,0xc0,0xe4,0xed,0x7a,0x3f,0xac,0xe6,0x55,0xbf,0xae,0xaa,0x8b,0x40,0xc6,0x74,0x44,0xbf,0x74,0x36,0x77,0x40,0x36,0xc2,0x7,0xc0,0x2c,0x61,0xf9,0xbf,0x0,0x23,0x6b,0x3c,0x70,0x72,0x33,0x40,0xdd,0x9d,0x93,0x40,0x4c,0xd5,0x15,0x40,0xc4,0xdd,0xf,0xc0,0x80,0x6b,0xaf,0x3e,0x79,0x89,0x54,0x40,0x5b,0x45,0x7f,0x40,0x7e,0xbc,0x65,0x40,0xf6,0xea,0xd7,0x3f,0xd8,0xb1,0x1d,0xbf,0x93,0xf5,0x5a,0x40,0x0,0x8d,0xd6,0x3f,0x9c,0x4c,0x8a,0xc0,0x6a,0xaa,0x9c,0x40,0xac,0x65,0xbb,0xbe,0x7c,0x11,0x99,0x40,0x2e,0xa7,0x3d,0x40,0x60,0x62,0xa1,0xbe,0x8c,0xb2,0x88,0xc0,0x90,0x39,0x99,0xc0,0xbc,0x74,0x19,0xc0,0xb6,0x4d,0x5,0x40,0xd4,0x79,0xc5,0x3e,0x24,0xd6,0xfa,0x3e,0x32,0x6d,0x82,0xc0,0xc4,0x2d,0x30,0x40,0xa,0x84,0x9e,0xbf,0xbc,0xf2,0x27,0x40,0xbf,0x45,0x82,0xc0,0x90,0xce,0xaf,0x3d,0x74,0x13,0x22,0x40,0x5c,0xbd,0xbd,0x3f,0x2c,0x27,0x9f,0xc0,0xf6,0xa4,0x86,0x40,0x68,0x2d,0x6e,0xc0,0xbe,0x6c,0x93,0xc0,0xba,0xdf,0x5d,0xc0,0x98,0x97,0x97,0xc0,0xf2,0xaa,0xe9,0x3f,0xdc,0x2c,0x71,0x40,0x0,0xa9,0x80,0x40,0x94,0xee,0xe0,0x3f,0xbb,0xb6,0xab,0xbf,0x7d,0x19,0x87,0x3f,0x78,0x48,0xc6,0x3f,0xd6,0x9a,0x9e,0xc0,0x80,0xe6,0xfc,0xbc,0x34,0xe5,0x9f,0x3f,0x60,0x85,0x81,0x40,0x4d,0x9c,0x40,0x40,0x2e,0x9a,0xb4,0xbf,0xa8,0x7d,0x68,0xbe,0x64,0xd4,0x4b,0x40,0x41,0x4f,0x91,0x40,0x0,0xe8,0x23,0xc0,0xaf,0x9d,0x9e,0x40,0xf6,0x19,0x5b,0xbf,0x88,0xd4,0xe,0xc0,0x0,0x15,0xe5,0xbc,0x12,0xd6,0x7a,0x40,0x5,0xbc,0x36,0xc0,0xb8,0xdf,0x32,0x3e,0xc8,0x2c,0x38,0xc0,0xe8,0x2d,0x0,0xbe,0xbc,0x7f,0x5f,0x40,0xb4,0x63,0x1e,0xc0,0x1b,0xcd,0xf,0xc0,0x7,0x88,0xb1,0x3f,0x12,0xa7,0x16,0x40,0x0,0x22,0xc4,0xbe,0x3,0x5f,0x93,0xbf,0x30,0x19,0xa2,0xbe,0x65,0x87,0xc2,0x3f,0x40,0x72,0x8e,0x40,0x35,0x3a,0x10,0x40,0x20,0xb5,0x4f,0x3f,0xb8,0x7c,0xd4,0x3f,0x98,0xc5,0xbf,0x3f,0x68,0x8c,0x71,0xbe,0xac,0x15,0x57,0xc0,0x2,0x50,0x17,0xc0,0x61,0x4f,0xe0,0x3f,0xd0,0xb2,0xe0,0x3f,0x5a,0xc6,0x22,0xc0,0x6c,0x85,0x30,0xc0,0xf0,0x58,0x34,0x40,0x4e,0x79,0x67,0xbf,0x1e,0xe7,0x42,0x40,0xa,0x4b,0xaa,0x3f,0xae,0x8a,0x78,0x3f,0x16,0x12,0x11,0xbf,0xb,0x3c,0xb,0xc0,0x3b,0xe1,0xa1,0x3f,0x94,0x9d,0x48,0xc0,0x69,0x36,0xd,0xc0,0x6b,0x99,0x66,0xc0,0x0,0x9c,0xd1,0xba,0x32,0x31,0x2d,0xc0,0xed,0xc,0xec,0xbf,0xb8,0xf5,0xce,0xbf,0xd0,0xf0,0xc,0x40,0xdf,0x4b,0x31,0x40,0xec,0x4e,0x58,0x40,0xbc,0xec,0xd,0xbf,0x6,0x2,0x98,0x40,0xe6,0xb4,0x20,0xc0,0x76,0x26,0x29,0x3f,0xb3,0xb1,0xa9,0x3f,0xb2,0x42,0x92,0xc0,0xe2,0x7d,0x47,0x40,0xfb,0x13,0x61,0x40,0x22,0x69,0x6f,0x40,0xb6,0x59,0x5d,0x40,0xce,0xd1,0x34,0x40,0x65,0x32,0x42,0xc0,0x77,0x6f,0x66,0x40,0x66,0xa3,0xf0,0xbf,0xeb,0xc7,0xb0,0x3f,0x3,0x8d,0x91,0xc0,0xbc,0xab,0x12,0xbf,0x8e,0xf5,0x12,0xc0,0xd6,0x1c,0x1b,0xc0,0xad,0x5e,0x6e,0xc0,0xac,0xd,0xe1,0xbe,0x9a,0x62,0x46,0xc0,0x68,0x1d,0x48,0xc0,0x10,0x41,0x94,0xc0,0x0,0xb,0x53,0x40,0x7e,0x40,0x68,0x40,0xac,0x76,0x43,0xbf,0x20,0xf3,0x31,0x40,0x42,0x40,0x91,0x3f,0xae,0x2c,0x43,0xc0,0x14,0x9d,0x3c,0xbf,0x4a,0xc8,0xa,0x40,0x0,0x66,0xe9,0x3c,0xa0,0x90,0x83,0xbe,0x96,0x4e,0x40,0xbf,0x9e,0xa4,0x61,0x40,0x5c,0x24,0x66,0xc0,0x5c,0xfe,0xcc,0x3e,0x3c,0x72,0x4c,0xc0,0x58,0x2d,0x3b,0x40,0x54,0x16,0xd6,0xbe,0x30,0xc0,0x3c,0xc0,0x7e,0xd0,0x53,0xc0,0xb8,0x83,0xeb,0xbe,0xd0,0xb7,0xb8,0x3e,0xa8,0x74,0x41,0x40,0xa2,0xeb,0x80,0xbf,0x3c,0xd1,0x26,0xc0,0x7c,0xe3,0x9a,0xc0,0x78,0x47,0x56,0xbe,0x34,0x8b,0x85,0x40,0xce,0x8f,0x94,0xc0,0x21,0xb8,0x80,0xbf,0xa6,0xeb,0x79,0x40,0xca,0xa6,0x8c,0x40,0x42,0xbf,0x52,0xc0,0x94,0x72,0x8b,0xc0,0x8c,0xc4,0x9e,0x40,0xce,0x77,0x19,0xc0,0xbb,0x58,0xaf,0x3f,0x4,0xc0,0x9e,0xc0,0x16,0xa4,0x12,0x40,0xe0,0x38,0x11,0xbd,0x5e,0xa4,0x72,0xbf,0x20,0x38,0x1f,0xc0,0x25,0x2c,0xb,0x40,0x46,0xc8,0xff,0xbf,0x3d,0x1b,0xe,0xc0,0xae,0x42,0x4a,0xc0,0xc1,0xa8,0x82,0x40,0x90,0x74,0xc,0x3e,0xbe,0x16,0x4b,0xbf,0xe4,0x37,0x7c,0x3f,0x26,0x94,0x58,0x40,0x4e,0x1e,0x86,0xc0,0xc5,0x72,0x51,0x40,0x52,0x9d,0x12,0x40,0xe6,0x8a,0x2c,0x40,0x20,0x91,0x23,0xbf,0xc4,0xf2,0x3e,0xc0,0xb8,0x2b,0xa8,0xbe,0x18,0xcd,0x9a,0x40,0xb2,0xda,0x3d,0xc0,0x41,0x2,0x85,0xc0,0xbc,0x8f,0x9f,0xbf,0x6f,0x63,0x2,0x40,0xea,0x59,0x7e,0xc0,0x24,0xee,0xd3,0xbe,0xdc,0xd2,0x75,0x3f,0x92,0x8b,0xaa,0xbf,0xe4,0xbe,0x86,0xc0,0xcb,0x17,0xe5,0xbf,0x16,0xa9,0xb3,0xbf,0xcb,0x88,0xf1,0x3f,0xc4,0xa9,0x9f,0xc0,0xc,0x5d,0x87,0x3f,0x10,0xbe,0x1a,0xbf,0x7,0x50,0x5a,0x40,0xc0,0xc7,0x26,0xc0,0x3c,0x44,0x34,0x40,0xf0,0x79,0xe0,0xbd,0xcd,0x87,0xc8,0x3f,0x4,0x86,0x97,0xc0,0x1c,0x22,0x2d,0xbf,0x6e,0x52,0x48,0xc0,0xd8,0xe9,0x30,0x40,0x52,0x5,0x8e,0xc0,0x8d,0x88,0x6e,0x40,0xb6,0xec,0x88,0xc0,0x66,0x25,0x4e,0x40,0xdd,0x16,0xe3,0xbf,0x9e,0x4a,0x89,0xc0,0x80,0x80,0xa4,0x3e,0x24,0x70,0x88,0xc0,0x80,0x80,0xcc,0x3f,0xa,0x2,0x96,0x40,0x18,0x43,0xf4,0xbe,0xb4,0x42,0x3a,0xc0,0x7c,0xd,0x70,0x40,0x98,0xe4,0x7,0x3f,0xd8,0x81,0x9b,0x3e,0x88,0x6d,0x22,0x40,0x48,0x99,0x98,0xc0,0x56,0xb0,0x19,0xc0,0x2d,0xc,0xd0,0x3f,0x8c,0x6a,0x86,0x3e,0x66,0xd5,0xfa,0xbf,0x72,0x16,0x6a,0xc0,0xeb,0x83,0x65,0x40,0x7f,0x2b,0xbe,0xbf,0x7c,0x5f,0xb5,0xbe,0x7e,0xd9,0x34,0x40,0x30,0xac,0x8c,0xbd,0x7e,0x4c,0x7f,0xc0,0xd6,0xe5,0x91,0xc0,0xac,0x18,0xe5,0x3e,0xd,0xb8,0x8a,0x3f,0xb0,0xa1,0x57,0x40,0xf2,0xe1,0x23,0x40,0xa6,0x19,0x9e,0x40,0x1c,0xbb,0x11,0x40,0x66,0x1,0x1b,0x40,0x23,0x46,0x8b,0x40,0xac,0x9,0x4,0xc0,0x2c,0x86,0x20,0x40,0xed,0xfe,0xb3,0xbf,0xbc,0x9d,0x2f,0x3f,0xb,0xc6,0x2b,0x40,0xc4,0x94,0x94,0xc0,0x10,0x77,0x3e,0x40,0x6a,0x5a,0x65,0x3f,0x26,0xf1,0xb5,0xbf,0xce,0xc1,0xf6,0xbf,0xaf,0xea,0xe7,0xbf,0xfb,0xbe,0x90,0x3f,0x7c,0x1a,0x16,0xbf,0xf7,0x5e,0x9a,0x3f,0x7e,0x65,0xd0,0xbf,0x20,0xc2,0x79,0x3d,0x88,0x7e,0x7d,0x40,0xe6,0xbf,0x9f,0xc0,0xb0,0x5f,0x10,0xbf,0x95,0x0,0x30,0x40,0x66,0x3c,0xa,0x40,0x3e,0xd,0xc3,0x3f,0x3e,0xf9,0x59,0x40,0x3e,0xbe,0x99,0xc0,0x40,0x1b,0x79,0xc0,0x43,0xfc,0x97,0xc0,0x7c,0xaf,0x89,0x40,0x41,0xdf,0x36,0x40,0x63,0xcd,0x58,0x40,0xd8,0x1,0x96,0x40,0xd9,0xe7,0xbb,0xbf,0x5a,0x16,0x96,0x40,0x80,0x14,0xd9,0x3e,0xff,0x24,0x90,0x3f,0x7d,0x73,0xa5,0xbf,0xc,0xd0,0xd2,0xbf,0xee,0xd2,0x36,0xc0,0x9d,0x85,0xaf,0x3f,0xfb,0x78,0x3d,0x40,0xf8,0xcf,0x40,0xc0,0xca,0xe3,0x17,0xc0,0xca,0xc4,0x59,0xbf,0xce,0xb1,0x95,0xc0,0xf6,0xdd,0x4b,0xbf,0x5b,0x7b,0x92,0x3f,0x80,0x15,0xce,0xbe,0xb0,0x3d,0xb7,0x3e,0x67,0x9f,0x41,0x40,0xe6,0x39,0x5d,0xc0,0x9b,0x10,0xd1,0xbf,0x49,0xbd,0x85,0xbf,0x79,0x49,0x8,0x40,0xd8,0xb5,0xbc,0x3f,0x92,0x77,0x8a,0xc0,0x2c,0xd8,0xd7,0xbe,0x22,0x4e,0x78,0xc0,0xdb,0x6f,0x7a,0xc0,0x32,0x6e,0x16,0x3f,0x9a,0xa,0x3c,0xc0,0x3a,0xe7,0x7e,0x40,0x48,0x3e,0x29,0xc0,0x6,0x1a,0x80,0xbf,0x6,0xff,0x10,0x40,0x46,0x5,0xb9,0x3f,0x24,0xd1,0x52,0x3f,0xb8,0xfb,0x1b,0xbe,0xc5,0x91,0x80,0xbf,0x8e,0x91,0x14,0xc0,0x82,0x8c,0x9b,0x40,0x7b,0xd2,0x72,0x40,0x34,0x40,0x1d,0xc0,0x80,0x8,0x40,0x40,0x64,0x1a,0xd1,0x3f,0x46,0x5f,0x57,0xc0,0xd5,0x6f,0x17,0xc0,0x0,0xf5,0xb4,0xbc,0x80,0x43,0x3b,0xc0,0xde,0x5b,0x48,0xc0,0x70,0x7c,0xcc,0xbd,0x74,0x34,0x8b,0xc0,0x34,0x12,0x52,0xc0,0xdc,0x93,0x4b,0x3f,0x8e,0x74,0x4,0xbf,0x86,0x5b,0x19,0x40,0xb2,0xd6,0x64,0x40,0x71,0x71,0x4c,0x40,0xb6,0x2a,0xf,0xc0,0xe0,0x93,0x15,0x3f,0x95,0x95,0xd4,0xbf,0x9c,0x22,0x9b,0x3f,0x8d,0xb1,0x92,0xc0,0x5c,0x37,0x82,0x40,0x3a,0x2,0x52,0x40,0x91,0x59,0x88,0xbf,0x57,0x7e,0x9,0xc0,0x12,0x20,0x85,0x40,0xcb,0x56,0x30,0x40,0xdb,0x3c,0x9b,0x40,0x5c,0xfc,0x3c,0xc0,0x20,0xc2,0x60,0xc0,0xc6,0xd9,0x8f,0xc0,0xce,0xf7,0x40,0xbf,0x80,0x8,0xd1,0x3c,0x60,0x67,0x82,0x40,0xfd,0xde,0x25,0xc0,0x68,0x67,0x8f,0xc0,0x0,0x28,0x57,0x3e,0x9e,0xa2,0x61,0x3f,0x7c,0x2d,0xb0,0x3f,0x43,0xd8,0xfc,0xbf,0x72,0x2,0x7b,0xc0,0xbc,0x22,0x95,0xc0,0xa6,0xf0,0x9e,0x40,0x9d,0x89,0xa6,0xbf,0x68,0x2e,0x70,0xbf,0xd6,0x19,0x2e,0x40,0xbe,0xe7,0x29,0xc0,0x50,0x85,0x92,0xc0,0xa5,0xe2,0x9b,0xc0,0xfc,0x2e,0x89,0xbe,0xa2,0xf2,0xc9,0x3f,0x5b,0xfe,0x16,0x40,0x3e,0xed,0xf,0xc0,0x18,0x3b,0xbb,0x3e,0x10,0xd2,0x65,0x3e,0x24,0x9,0x43,0x40,0x2a,0x88,0x40,0xc0,0x77,0xc9,0x6b,0x40,0x5a,0x92,0x90,0xbf,0x60,0x89,0x9,0x40,0x76,0x39,0x84,0xc0,0xf9,0x44,0xe4,0xbf,0xa8,0xe2,0x30,0xc0,0x38,0xcf,0x1a,0xc0,0x5c,0xbc,0x77,0xc0,0x3b,0xdc,0x92,0x3f,0xa3,0x4c,0x9c,0x40,0x28,0xfa,0x70,0x40,0xfa,0xf1,0x47,0xc0,0xdc,0x9b,0xff,0xbe,0xc1,0xa7,0xaa,0xbf,0x8c,0xc7,0xb,0xc0,0x1f,0x22,0xc,0xc0,0xd,0x3e,0xaa,0x3f,0xb2,0x66,0xa,0xc0,0x96,0x15,0x60,0xc0,0xae,0x1e,0x2b,0x3f,0xef,0x12,0x98,0x40,0x20,0x5c,0x2b,0xbe,0x21,0x94,0x9a,0x40,0x65,0x91,0x4c,0xc0,0xcd,0x64,0x86,0x40,0x70,0xe5,0xef,0xbd,0x95,0x49,0x64,0x40,0x3c,0xe9,0x2c,0x3f,0xa4,0x5e,0xa2,0x3f,0xdc,0x71,0x86,0xc0,0xd0,0xa9,0x69,0xbf,0xe0,0x88,0x75,0xbd,0x6a,0xe5,0x4d,0xbf,0xbb,0xb9,0x50,0x40,0xba,0x3c,0xef,0xbf,0xa8,0xa2,0x0,0xc0,0x8b,0x2c,0x68,0xc0,0x7d,0x6d,0xd3,0x3f,0x6f,0xf8,0x83,0x40,0xa8,0xc9,0x62,0x3f,0xfa,0x7a,0x44,0xc0,0xa2,0xec,0xf2,0x3f,0x82,0x9,0x2b,0x3f,0xd1,0xea,0x4a,0x40,0x0,0xa9,0x92,0xbb,0x48,0x45,0x95,0x40,0x66,0x70,0x8a,0x40,0xbd,0xc6,0x4b,0xc0,0xdf,0xb3,0x73,0x40,0x8f,0x2e,0xd8,0xbf,0xf2,0x4a,0x9c,0xc0,0x5d,0x6c,0x95,0x40,0x5c,0x29,0x2c,0xc0,0x84,0x96,0x4b,0x3f,0x96,0xb,0x93,0x40,0x1e,0xcc,0x19,0xc0,0x54,0x9,0x66,0x40,0x0,0x6c,0x98,0x3f,0xa0,0x64,0x16,0x3d,0x84,0xe3,0xf6,0x3f,0xe4,0x56,0x12,0xc0,0xf8,0x92,0x8,0xc0,0xb6,0x62,0x87,0xc0,0x78,0xfe,0x83,0x40,0x1e,0xdb,0x6,0xc0,0xa8,0xb6,0x7a,0x40,0xe6,0x3f,0x27,0x3f,0xbc,0xcc,0xa3,0xbe,0x49,0x8d,0x8c,0x40,0xe8,0x19,0x20,0x40,0x9c,0xe7,0x2f,0x40,0xf6,0x1e,0x33,0xbf,0xb8,0xc6,0x5,0x40,0x7a,0xaf,0x99,0xc0,0x30,0x6b,0xf5,0xbd,0x80,0xf6,0x8d,0xbc,0xbf,0x20,0x85,0xc0,0x60,0x87,0x6a,0xbf,0xd2,0x57,0xd5,0x3f,0xce,0x0,0x58,0x40,0xc4,0x71,0xe2,0x3e,0xcc,0x26,0xf3,0xbf,0x3f,0x88,0x17,0xc0,0x30,0xdd,0x4e,0xc0,0x50,0xc0,0xee,0xbf,0xce,0x1d,0x1b,0xc0,0x57,0x73,0x73,0xc0,0x62,0xbb,0x7a,0x3f,0xaa,0x2,0x4e,0xc0,0x60,0xca,0xe8,0xbd,0x1a,0x27,0x66,0x40,0xb6,0xdb,0x54,0xc0,0x27,0xbf,0x48,0x40,0xa9,0x7e,0x81,0xc0,0xe8,0x72,0x87,0xc0,0x3a,0xd,0x9a,0x40,0x25,0xe8,0x1c,0xc0,0x5f,0x91,0x88,0x40,0xff,0x8f,0x8f,0x40,0xb7,0xb0,0xb0,0x3f,0x28,0x94,0x1f,0xc0,0x75,0x62,0xa5,0x3f,0xf4,0x30,0x85,0x3f,0x29,0x47,0x85,0x3f,0xe2,0x6e,0x1f,0x3f,0xf3,0x36,0x9d,0x40,0xfe,0x6e,0x30,0x3f,0xa1,0xd3,0x1e,0x40,0x74,0x6a,0xee,0xbf,0x96,0x19,0xd2,0xbf,0x76,0xbb,0x84,0x40,0xa8,0xc0,0xd7,0xbe,0xe6,0x2a,0x5,0x40,0x3a,0xd2,0xc,0xc0,0xf0,0x3f,0x77,0x3f,0xd4,0x67,0x78,0xc0,0x66,0xeb,0x32,0x3f,0x84,0x3d,0x45,0x3f,0x70,0x2a,0xd8,0xbe,0x72,0x5,0x1,0x40,0xa5,0xa9,0x2b,0x40,0x28,0x6c,0x63,0x40,0x50,0x5,0x92,0xc0,0xe4,0xe4,0xc7,0xbe,0x84,0xf1,0x38,0x40,0x8,0xac,0x54,0x40,0xe,0xc6,0x7a,0xc0,0x0,0x44,0xb6,0xba,0x1c,0xd3,0x83,0xbe,0x84,0xce,0x54,0xbf,0x59,0x22,0x9,0x40,0x55,0xed,0x5,0x40,0x57,0x67,0x91,0xc0,0x8c,0xce,0x4c,0x3f,0xb5,0x5c,0x2c,0xc0,0x87,0x14,0x25,0x40,0x30,0x44,0xea,0xbd,0x7c,0x5e,0x5e,0x3f,0x40,0xcb,0x32,0xbf,0x54,0xfa,0x7e,0x40,0xc7,0xa3,0x84,0xc0,0x4c,0x14,0xb,0x40,0x58,0xb5,0x9b,0x40,0x61,0xd3,0xfc,0xbf,0x11,0xa4,0xa4,0x3f,0xc4,0xff,0x1d,0xc0,0x45,0x89,0x1a,0xc0,0x3e,0xa7,0x2e,0xc0,0x7b,0x2c,0x1e,0x40,0x84,0x63,0x4e,0x40,0x30,0x30,0x29,0xbf,0xd8,0xae,0x1b,0xbf,0x64,0xf8,0x66,0xc0,0x40,0xc0,0x2c,0x40,0x7f,0x94,0x11,0x40,0x18,0x82,0x67,0xbe,0x62,0x13,0x49,0xc0,0x67,0x89,0x20,0x40,0xa4,0xf1,0x50,0xc0,0x16,0x69,0x50,0x40,0xc1,0x8a,0x7e,0xc0,0x44,0xa8,0xe0,0x3f,0x46,0x65,0x58,0xc0,0xba,0x68,0x16,0x3f,0xfe,0xaf,0x9a,0x40,0x9a,0xf9,0x60,0x40,0xb6,0xb,0x6f,0xc0,0x7f,0x8d,0x98,0xbf,0x74,0x66,0x54,0x3f,0xe0,0x94,0xd5,0xbf,0x38,0xb3,0x6b,0xbf,0xb6,0xca,0x71,0x40,0x3a,0x71,0x6f,0xc0,0xe6,0xd5,0x7a,0xc0,0xf2,0x5b,0x83,0xc0,0x20,0x52,0xba,0xbd,0x82,0xf2,0x5a,0xbf,0x40,0x4b,0xa6,0x3f,0x44,0x41,0x2f,0xc0,0xb6,0x51,0x25,0xc0,0x5,0x87,0x11,0xc0,0x90,0x23,0xf6,0x3f,0x8a,0x86,0x9a,0x40,0x65,0x3c,0x8a,0xc0,0x22,0x5,0x30,0x40,0xc,0x3c,0x53,0x40,0xdb,0x92,0x61,0xc0,0xbe,0xc5,0x3a,0xc0,0x42,0x85,0x78,0x40,0xfd,0xfe,0xf8,0xbf,0x17,0xf,0x2c,0x40,0x90,0xff,0xc9,0x3e,0x62,0xac,0x8e,0xc0,0x39,0x65,0x2c,0x40,0x38,0x87,0xb,0x3f,0x2a,0xc5,0x42,0xc0,0x28,0x51,0x60,0x3f,0x1f,0x4d,0xf2,0xbf,0xf6,0x8c,0x35,0xc0,0x4d,0xdc,0xc6,0xbf,0xb1,0xdb,0x82,0xc0,0xf4,0xa8,0x94,0xc0,0x80,0x99,0xd6,0xbd,0x56,0xb7,0x50,0xc0,0xd0,0xb9,0xd9,0x3f,0xd5,0x7e,0x58,0x40,0x3e,0xc0,0x12,0xbf,0x7a,0x41,0x87,0xc0,0x96,0x54,0x92,0xc0,0x98,0x21,0x28,0x40,0x88,0xde,0xa7,0x3e,0x95,0x20,0x8b,0xc0,0x5a,0x0,0xc,0xc0,0x8e,0x3,0xc8,0x3f,0xcc,0xf9,0xcf,0x3e,0xcc,0xf0,0x19,0x40,0x3c,0x9f,0x96,0x40,0xa8,0xa3,0xe5,0xbf,0x34,0x62,0xc3,0xbf,0x41,0x6b,0x9e,0xc0,0xad,0x88,0x92,0x40,0xf8,0xf8,0xdb,0xbe,0x1c,0x43,0xb9,0xbf,0x44,0xa,0xe8,0xbe,0xe6,0x9f,0xa,0xc0,0xe2,0xb1,0x4,0x3f,0x25,0x92,0x6d,0x40,0xf2,0x69,0xdf,0x3f,0x94,0x95,0x9e,0x3f,0xc8,0xde,0x12,0xc0,0x5a,0x46,0x31,0x40,0x5c,0x35,0x9f,0x40,0x94,0x98,0x88,0xc0,0x80,0x3a,0x35,0xc0,0x56,0x79,0x9b,0x40,0xad,0x50,0x77,0x40,0x82,0x2b,0xa7,0x3f,0x3f,0x5f,0x92,0x40,0xe0,0xcd,0xd3,0xbd,0x92,0x35,0x97,0x3f,0xd2,0x9b,0x18,0x40,0xd1,0x6a,0x95,0x40,0xb0,0x47,0x70,0xc0,0x50,0x3c,0xf,0x40,0xa,0x37,0x2,0x40,0x1d,0xcb,0x5,0xc0,0x4,0x84,0x8,0xc0,0xf9,0x2f,0xf4,0x3f,0x2c,0x95,0x3e,0xc0,0xc,0x9e,0x2c,0x40,0xc6,0xaf,0x51,0x40,0x63,0x18,0x1d,0x40,0x91,0xa0,0x2f,0xc0,0x62,0x96,0x96,0x40,0x9e,0xdb,0xf3,0x3f,0x24,0x5,0x9d,0xc0,0x4b,0x64,0x9a,0xc0,0x21,0xe2,0xe2,0x3f,0x1a,0xa0,0x13,0x40,0xf2,0xca,0x8a,0x40,0x17,0xaf,0x77,0x40,0x16,0xb4,0x46,0x40,0x26,0x91,0xc0,0xbf,0xc0,0xaf,0xad,0xbe,0xd6,0x6c,0x48,0xc0,0x80,0xa7,0x2a,0x3e,0x4a,0x2e,0x87,0x3f,0x34,0xf8,0x11,0x40,0x29,0xe4,0x83,0x3f,0xde,0x47,0x68,0x3f,0x0,0xb7,0x89,0x3b,0x1a,0xd4,0x7a,0xc0,0x3a,0x78,0xb,0xc0,0x81,0x80,0x94,0xbf,0xe4,0x15,0xab,0x3f,0x20,0x32,0x46,0x3e,0x29,0x9,0x34,0xc0,0x44,0xd4,0x14,0xc0,0x43,0x19,0x9e,0xbf,0x19,0x71,0x88,0x40,0x1c,0x77,0x55,0x40,0xb9,0x80,0x89,0xc0,0x14,0x6d,0x2d,0xc0,0x4b,0x3e,0xee,0x3f,0x55,0x87,0xdc,0xbf,0x89,0x95,0xc7,0xbf,0x63,0x52,0x82,0xc0,0x5c,0xd5,0x2,0xbf,0xbd,0xc9,0xdc,0x3f,0x78,0xf9,0x8d,0x40,0xb7,0xae,0xad,0xbf,0xcd,0x34,0xfd,0xbf,0x6,0x99,0x6c,0x3f,0x98,0xf6,0xca,0x3e,0xb4,0x2d,0x1b,0x3f,0x98,0x72,0x94,0xc0,0x30,0xdc,0x79,0x40,0x20,0x7a,0x71,0xbd,0x6c,0xb7,0xdb,0xbe,0xb,0x2,0xcf,0xbf,0x9,0x72,0x93,0xc0,0x9,0xa0,0xd3,0xbf,0xd4,0xe2,0x92,0xc0,0x6c,0xa9,0x3,0x40,0x2b,0xe1,0x27,0xc0,0x5e,0x25,0x91,0xc0,0x1d,0x1d,0x22,0xc0,0x8f,0x61,0xfa,0x3f,0xcc,0x17,0x32,0xc0,0x9e,0x4e,0x77,0xc0,0xd8,0xb2,0xfb,0xbf,0x23,0x68,0x96,0x40,0xc0,0xd6,0x30,0x40,0xe,0x17,0x99,0x3f,0x19,0xc4,0xa4,0xbf,0x10,0x93,0x2,0xc0,0xca,0x3e,0x83,0x3f,0x82,0x1e,0x66,0x40,0x8c,0xe0,0x76,0xc0,0x38,0xc,0x79,0x40,0xb,0x1,0x9a,0xc0,0x5e,0xa2,0x90,0xc0,0x98,0x9a,0x98,0xc0,0x1f,0x20,0xcf,0x3f,0xe0,0x3d,0x52,0x3e,0x58,0x94,0x9f,0x3f,0x13,0xc0,0x6a,0xc0,0x85,0x45,0x41,0xc0,0xf8,0xee,0x6,0x40,0x64,0x46,0x64,0x40,0xae,0x3a,0x86,0xc0,0xa4,0x31,0x8e,0x3e,0xc0,0xf4,0xa9,0xbe,0xc2,0xce,0x9b,0xbf,0xd4,0x57,0xdd,0x3f,0x92,0xf3,0x73,0xc0,0xba,0x2d,0x1d,0x40,0x9f,0x3e,0xf9,0xbf,0x38,0xfc,0x57,0x40,0x35,0xae,0x9e,0xbf,0x2a,0x51,0x60,0x40,0xf2,0xbe,0x55,0xc0,0xc2,0x43,0x91,0xc0,0x5b,0x4d,0x9d,0x40,0x5b,0x5c,0xd9,0xbf,0x20,0x7d,0x2d,0x3d,0x3c,0x4c,0x6a,0x40,0xa2,0xe5,0x8e,0x40,0x15,0x55,0x86,0x3f,0xe3,0x4a,0x95,0xc0,0x78,0x55,0x46,0xc0,0xe,0x2d,0x47,0x40,0xa1,0x1,0xcb,0x3f,0x9,0xd0,0x2d,0x40,0x27,0x3d,0xf0,0xbf,0xa2,0x6d,0x94,0xc0,0xec,0x2c,0x4d,0xbf,0x4,0xec,0xff,0x3f,0xc8,0x68,0x5f,0x40,0xd9,0x83,0x54,0xc0,0x32,0x0,0x1d,0xc0,0x5a,0x7c,0x85,0x40,0x54,0x4a,0x83,0x40,0x14,0x35,0x9b,0x40,0x5e,0x58,0x64,0x40,0x6f,0x6c,0xab,0x3f,0x0,0x8e,0x41,0xbc,0xa1,0xfc,0x6d,0xc0,0xb,0x18,0xe6,0xbf,0x2c,0xca,0x9c,0xc0,0xee,0xef,0x50,0x40,0xc6,0x5f,0x45,0x40,0x54,0x48,0x10,0x40,0xcc,0x77,0x63,0xbf,0x54,0x68,0x87,0xc0,0x65,0x88,0x8b,0x40,0x25,0x3a,0x91,0x3f,0x8d,0x4a,0x87,0x3f,0x48,0xf1,0xa2,0xbf,0x72,0x21,0x67,0xc0,0x1c,0x56,0xd,0x3f,0x88,0x8a,0x49,0xbf,0x0,0x61,0x90,0x40,0xa,0xa8,0xed,0x3f,0xc7,0x51,0xd7,0x3f,0x46,0xf6,0x6a,0x40,0x4e,0x54,0x28,0xc0,0xe0,0x1f,0x57,0x40,0x0,0xb2,0xed,0x3c,0x5e,0xe,0x93,0xc0,0x49,0xc0,0x48,0x40,0xcc,0x6d,0x57,0xc0,0xa4,0x43,0x44,0x40,0x3a,0x43,0x78,0x40,0xac,0x69,0xbc,0xbe,0xef,0xa6,0xd2,0xbf,0xd4,0xbc,0x57,0x3f,0xb1,0x31,0x6f,0x40,0xc9,0x66,0x22,0x40,0x29,0x1e,0x74,0x40,0xc8,0xa7,0x14,0xbe,0x61,0xcf,0x71,0xc0,0x67,0x28,0xe,0x40,0x4c,0x65,0xbc,0x3e,0x2d,0xc6,0x98,0x3f,0x8,0xf6,0x94,0x40,0xf,0x95,0x92,0xbf,0x6e,0x7f,0x91,0x40,0x2b,0xf9,0x3c,0xc0,0x8f,0x14,0x4f,0xc0,0x8a,0x42,0x51,0x40,0x1c,0x51,0x73,0x40,0x95,0x12,0xf3,0xbf,0x7a,0xcc,0x6a,0x3f,0xd2,0x21,0x13,0x3f,0xa6,0x5f,0xcc,0x3f,0x3e,0x73,0x41,0xbf,0xd9,0xe5,0x9b,0xc0,0x37,0xb6,0xd5,0x3f,0xd0,0x51,0x9b,0xc0,0x3e,0x99,0x5c,0xc0,0xda,0x20,0x7c,0xc0,0x64,0xcc,0xfb,0x3f,0xd6,0x36,0xb,0x40,0x7c,0x69,0x3a,0xc0,0xb4,0x43,0x8f,0x40,0xa1,0xa0,0x60,0xc0,0x24,0xab,0x69,0x40,0x73,0x0,0xc,0x40,0x19,0x46,0x8c,0xbf,0xd0,0x20,0x7d,0x40,0xac,0x8f,0x6b,0x40,0x74,0xa9,0x82,0x40,0xaa,0xfa,0x81,0xc0,0xa6,0x64,0xef,0xbf,0x1f,0x85,0x62,0xc0,0x42,0x8e,0x7f,0x40,0xe0,0x67,0x8f,0x3f,0x94,0xe4,0x21,0xc0,0xd2,0x20,0x28,0xbf,0xa4,0x14,0x5d,0x40,0xc7,0x62,0x95,0x40,0x40,0xee,0x28,0x3d,0x69,0xb,0x91,0xc0,0xd1,0x19,0x12,0xc0,0xdf,0x9e,0x60,0x40,0xfa,0xc9,0x42,0x3f,0x34,0xd0,0x55,0x40,0x5b,0xdb,0x83,0x40,0xd4,0x3b,0xdb,0xbf,0xfa,0xbe,0x39,0x40,0x3a,0xf5,0x13,0xbf,0x90,0xe3,0xd,0xc0,0x74,0x6,0x5d,0xc0,0x3c,0xf6,0x79,0x3f,0x7,0x8b,0x8b,0x3f,0xfe,0xf9,0x51,0x40,0xac,0xf7,0x9c,0x40,0xb0,0x0,0x7b,0xc0,0x7a,0xe9,0x4d,0xbf,0x1e,0xa2,0xc1,0xbf,0xf4,0xbe,0x23,0x40,0x6c,0xb,0x1c,0x40,0x60,0x1b,0x91,0x40,0x3e,0x5d,0x5c,0x40,0xfc,0x5b,0x59,0x40,0xd2,0xd7,0x72,0xc0,0xa6,0xf1,0x53,0xc0,0x8e,0x33,0x80,0xc0,0xcf,0xc4,0x1d,0xc0,0x65,0x89,0x1d,0xc0,0x7a,0x93,0x5f,0x40,0x0,0x48,0x1b,0xc0,0x60,0x3f,0x89,0x40,0xd0,0x3,0x87,0x40,0xa0,0x83,0x47,0x40,0x3e,0xba,0x3b,0x40,0x70,0x40,0x63,0x40,0x26,0xcb,0x51,0x3f,0x44,0x9d,0x54,0xc0,0x16,0x1d,0x6f,0x40,0xf6,0x2b,0x69,0x40,0xe4,0xc6,0x59,0x40,0x3c,0x66,0x5f,0xc0,0x8c,0x54,0x21,0xbf,0x22,0x7f,0x4f,0x40,0x68,0x77,0x22,0xbe,0x44,0xfc,0xb4,0xbe,0xde,0xff,0x2a,0xc0,0x11,0x3a,0x20,0x40,0x36,0x21,0xd,0x40,0x2d,0xb0,0x8b,0xbf,0xae,0x2d,0x6c,0x40,0xcc,0x41,0x3c,0xc0,0x26,0x72,0x26,0x40,0x68,0xf2,0x56,0xbe,0x92,0x4d,0x1,0xc0,0xae,0x12,0x46,0x3f,0xba,0xa3,0x8b,0xc0,0xc4,0xa2,0x82,0x40,0xc4,0x4a,0x87,0xbf,0xa8,0xad,0x24,0xc0,0xec,0x2b,0xfb,0x3e,0x8,0x24,0x38,0x40,0x84,0xf6,0x6d,0x40,0xca,0x9f,0x53,0x40,0x92,0xa9,0x6b,0xbf,0xfe,0x42,0x91,0x3f,0x7f,0xdd,0x92,0x40,0x75,0xe8,0x2b,0x40,0x8b,0x6b,0x9f,0x40,0x40,0x9b,0x5d,0x3f,0x1f,0xb4,0x99,0xc0,0x3b,0xd9,0xbd,0x3f,0x29,0x84,0xa2,0xbf,0xe6,0xe8,0x64,0x3f,0x5,0xba,0xf9,0x3f,0x1b,0x94,0x34,0x40,0x94,0xb5,0x17,0xc0,0x76,0x84,0x6d,0xc0,0x7e,0x87,0x92,0x40,0x2a,0xe8,0xa1,0x3f,0x58,0x70,0x19,0x40,0x40,0x48,0xae,0x3f,0xf2,0x90,0x65,0xbf,0xed,0x51,0x93,0xc0,0x32,0x96,0x8f,0x40,0x76,0x9a,0x97,0x40,0x30,0xf5,0xd4,0xbd,0x49,0x6e,0xa7,0xbf,0x9e,0xa9,0xc,0x40,0x93,0xaf,0x95,0xc0,0x44,0x65,0xb0,0x3f,0xb2,0x8c,0x88,0x40,0x6a,0xb2,0xa6,0xbf,0x14,0xae,0x8d,0xbe,0xee,0xed,0x1e,0x40,0xfc,0x9d,0xe7,0xbe,0x80,0x11,0xd2,0xbd,0xda,0xe0,0xcb,0x3f,0xc0,0x3c,0xc6,0xbe,0x0,0xab,0xb8,0xbc,0xe8,0xe0,0x9a,0xbe,0xea,0xcd,0x33,0x40,0x2e,0xc9,0x93,0x40,0xcc,0xbc,0xe4,0x3e,0xa,0x2a,0x3c,0x3f,0x32,0xb2,0x63,0xc0,0x94,0x43,0x32,0x40,0x8d,0xe0,0x34,0x40,0xce,0x35,0x69,0xc0,0x1,0xb1,0x3b,0x40,0x49,0x6b,0xaf,0x3f,0x2,0x6b,0x44,0xc0,0x66,0xf8,0x52,0xbf,0x8d,0x6f,0x8e,0xc0,0xe0,0x3a,0x2d,0x3f,0xd,0xb6,0x20,0x40,0x56,0xea,0x5c,0xc0,0xc4,0x3e,0xc0,0xbe,0x86,0xca,0x7b,0x40,0xc5,0x3f,0x75,0x40,0x37,0x65,0x4c,0x40,0x8,0x1f,0x33,0xc0,0xe0,0x7c,0xe8,0xbd,0x52,0x4f,0x1a,0xc0,0x82,0x16,0x8f,0x40,0xf0,0x54,0x62,0x3e,0xdc,0x38,0x45,0xc0,0xe,0x7c,0x31,0xbf,0xe4,0x14,0x8e,0x3e,0xcb,0xd4,0xd7,0x3f,0xd6,0xde,0x42,0xbf,0xfc,0xbb,0x58,0x3f,0x1f,0xbe,0x96,0xc0,0xbb,0xa0,0xc1,0xbf,0xc2,0xd5,0x30,0x40,0x8c,0x60,0x3,0x40,0x98,0x73,0x9c,0x40,0xc3,0x9b,0x7f,0x40,0x81,0xf,0x26,0x40,0x2c,0x5b,0x1b,0xc0,0x3a,0x5d,0x90,0x40,0xc0,0x74,0x5b,0x40,0x88,0x64,0xe5,0xbf,0x92,0x35,0x14,0xc0,0x8,0xef,0x1e,0xc0,0xac,0x21,0x4b,0xc0,0x24,0x3f,0x0,0x40,0xf4,0x70,0x26,0xc0,0xd0,0x6f,0x8d,0x40,0x86,0xd5,0x8f,0x3f,0xc0,0x24,0xac,0x3d,0xa0,0x59,0xc9,0x3f,0x7b,0x2a,0x34,0x40,0xb2,0x73,0x54,0xbf,0x9e,0x85,0x77,0xc0,0x8b,0x47,0x9c,0xc0,0xb4,0xc8,0x94,0x40,0x47,0xb3,0x95,0x40,0x57,0xf4,0xef,0xbf,0x7c,0xe4,0x8c,0x40,0x3b,0x6c,0xfd,0x3f,0x2,0x1d,0x8b,0xc0,0x6a,0x3e,0x45,0xbf,0xb0,0x7d,0x90,0xc0,0x2e,0xda,0xa,0x40,0xf3,0xd7,0xe3,0x3f,0x11,0x51,0x18,0x40,0xe8,0xc,0x4e,0xbe,0xfc,0x5d,0x39,0x3f,0x9c,0x18,0x40,0xc0,0x98,0x8e,0x84,0xc0,0xb8,0xba,0xe1,0xbf,0x4d,0x7d,0xe9,0x3f,0x32,0x9a,0x6c,0xbf,0xe6,0x12,0x84,0xbf,0xf4,0xa7,0x2e,0xc0,0x8,0xc4,0x1f,0xc0,0x9,0x86,0x27,0xc0,0x29,0x7,0x84,0xbf,0x2b,0x76,0x95,0x40,0xba,0xc4,0xa3,0xbf,0x8e,0x59,0x29,0xbf,0xf8,0x22,0x28,0xc0,0x10,0xaf,0x42,0xc0,0xdf,0xb1,0x9c,0xc0,0x5c,0xe1,0x4b,0xc0,0xdb,0x6b,0xb8,0xbf,0x60,0x10,0x94,0xbf,0xac,0x4b,0x5c,0xc0,0x94,0x2c,0xc6,0xbe,0xe7,0xeb,0x86,0x40,0x12,0x25,0x77,0xc0,0x28,0xbc,0x47,0x40,0x3a,0x3d,0x76,0xc0,0xd6,0xfa,0x67,0x3f,0xa0,0x3d,0x47,0x3d,0x92,0xcb,0x80,0xc0,0xa0,0xe5,0x23,0xc0,0xc2,0xfd,0x17,0xc0,0x26,0xa1,0x73,0xc0,0x94,0xc4,0xba,0x3e,0x28,0x97,0x7e,0xc0,0xca,0x1,0x95,0x40,0xe4,0xac,0x91,0x3e,0x62,0xe8,0x73,0xc0,0x2b,0xe8,0xff,0xbf,0x35,0xbb,0x8b,0x40,0x20,0x3f,0x52,0xbe,0x1d,0xff,0x12,0x40,0x42,0xd0,0x5b,0x40,0xff,0x70,0x23,0xc0,0x9f,0x4f,0x89,0x40,0x80,0x6,0x29,0xc0,0xe0,0x64,0x85,0xc0,0x66,0xf5,0x41,0x40,0x7a,0x30,0x73,0xc0,0x3,0x5f,0x59,0xc0,0xc6,0xa2,0x73,0xc0,0xf8,0x18,0xdf,0x3f,0xc4,0xb4,0x81,0xbe,0x3e,0xce,0x89,0x40,0x38,0x7f,0xc,0xc0,0xa0,0x26,0x77,0x3e,0x76,0x77,0x25,0x40,0x58,0x3,0x51,0xbf,0x40,0x70,0xb3,0xbe,0x7c,0x8a,0x4b,0xc0,0xdc,0x94,0x3d,0x40,0xe2,0xe,0xf0,0x3f,0x6c,0x1c,0x5b,0xbf,0x29,0x3b,0x7,0xc0,0x8a,0x16,0x55,0x40,0x6,0x4f,0x8c,0xc0,0x70,0x56,0x6,0x40,0x20,0x5f,0x5f,0x40,0xd9,0xae,0xd6,0xbf,0xd9,0x40,0xfe,0x3f,0x3c,0x95,0xab,0x3f,0x4e,0x65,0x30,0x3f,0xd3,0x84,0x9,0xc0,0x1c,0x47,0x3a,0xbf,0xf2,0x58,0x3e,0xbf,0x8a,0x97,0xf6,0x3f,0xf0,0x85,0x9e,0xc0,0xd0,0x35,0x7e,0xbe,0x2b,0xf1,0xc9,0x3f,0x35,0xaf,0xc0,0x3f,0x50,0xfc,0x2d,0xc0,0x62,0xa4,0xe4,0xbf,0x96,0xfb,0x3d,0x40,0xec,0x5f,0x95,0x3f,0xa5,0xb,0x9f,0x40,0x36,0xac,0xe5,0xbf,0xe5,0x72,0x31,0x40,0x3e,0x3a,0x2f,0xbf,0x7a,0x0,0x4b,0x3f,0x30,0xa9,0xe4,0xbd,0x88,0xd3,0x97,0xc0,0xae,0xc3,0x1,0x40,0x76,0x24,0xb0,0x3f,0x22,0x66,0x8b,0xc0,0xa8,0xb,0x30,0xbe,0xb4,0x74,0x6f,0x3f,0x52,0xc1,0x80,0x40,0x5e,0x16,0x9e,0x40,0x5c,0x1,0x63,0xbf,0xaa,0x22,0x62,0xbf,0xe0,0x3f,0x8f,0xbf,0x40,0x95,0x6b,0xc0,0xe3,0x7a,0x1c,0x40,0x64,0xa6,0x9c,0x40,0x16,0x8a,0x89,0x40,0x9a,0x6d,0x8b,0xc0,0xe4,0xc6,0x93,0xc0,0xb6,0x16,0x50,0xc0,0x46,0xe7,0x65,0xbf,0x96,0x91,0xa5,0xbf,0xa8,0x5b,0x96,0xc0,0xe4,0x86,0x8b,0xc0,0x14,0x54,0x7d,0xc0,0xda,0x4e,0xb8,0xbf,0x90,0x5a,0xa6,0x3d,0xe9,0xb3,0x99,0x40,0x64,0xf2,0x96,0xc0,0x86,0xea,0x43,0x40,0xee,0x9b,0x2,0xc0,0xe6,0x4d,0x9e,0x40,0x2e,0xd4,0x85,0xc0,0xc7,0x95,0x8d,0xc0,0x40,0x11,0x3d,0xbf,0x64,0x60,0x4,0x40,0x8,0xe8,0x82,0xc0,0x4b,0xa6,0x95,0xbf,0x5a,0x27,0x7b,0xc0,0xb8,0xf1,0x36,0x40,0x74,0x28,0x18,0xc0,0xce,0xc8,0x1a,0xc0,0x24,0xf,0x8a,0xc0,0xad,0xb8,0xc1,0x3f,0xfe,0x0,0x93,0x40,0xbe,0x7a,0xa3,0x3f,0x55,0x4b,0xfa,0x3f,0x8f,0x2a,0x7a,0x40,0xb0,0xac,0xac,0xbe,0x80,0x3,0xcc,0xbc,0x76,0xbd,0x88,0x40,0xf6,0xc3,0xd6,0xbf,0xb6,0xa9,0x92,0xc0,0xb4,0x6f,0x24,0x3f,0x8c,0x36,0x8,0x40,0xd2,0x3b,0xd3,0x3f,0x4e,0xcb,0x6d,0x40,0x64,0xbc,0x85,0x40,0x0,0x82,0x7,0x3c,0x7d,0x34,0x3c,0x40,0x56,0xa,0x87,0xc0,0x98,0x65,0x9,0x3f,0x7a,0xfb,0x3b,0x40,0xfd,0x3d,0x44,0x40,0x56,0x12,0x96,0xc0,0x4b,0x19,0x8c,0x40,0x78,0x49,0x2c,0x3e,0x20,0x85,0x2,0x3f,0x34,0x2a,0x97,0x3e,0x50,0x55,0x9b,0x3d,0x3c,0x46,0x40,0xc0,0x88,0x7c,0x8b,0x40,0x81,0x65,0xc8,0x3f,0x6e,0xc7,0x60,0xc0,0xe2,0x3e,0x75,0xc0,0x60,0x5c,0x33,0x40,0xb6,0xfc,0x7b,0x40,0x32,0x0,0x66,0x3f,0x53,0xd,0x8c,0x40,0xdc,0x13,0xd3,0xbe,0x48,0x48,0xfb,0xbf,0xe,0x3b,0x13,0x40,0xc0,0xde,0x1c,0xbd,0xda,0xb,0x1c,0x3f,0x2c,0x8c,0xc9,0x3e,0x1e,0x34,0x71,0x40,0x88,0x7b,0x15,0x40,0x98,0x48,0x28,0x40,0x80,0xef,0xf,0x3f,0x24,0xb,0xbc,0xbf,0xb8,0xd1,0x5e,0xc0,0x2c,0x30,0x23,0xbf,0xba,0xdc,0x8d,0xc0,0xae,0x6a,0x34,0xc0,0x2,0x84,0x9c,0xbf,0xba,0xc1,0x6e,0x40,0xf0,0xeb,0x9e,0xc0,0xeb,0xcb,0x3b,0x40,0x29,0xb8,0x43,0xc0,0xfe,0x78,0x94,0xc0,0xb6,0x22,0x58,0xc0,0xa8,0x8,0x58,0xc0,0xd0,0xfd,0x9a,0x40,0xc0,0x3c,0x69,0x40,0xc0,0x2,0x98,0x40,0x19,0xc6,0x2c,0xc0,0x10,0x6a,0x99,0xc0,0x5a,0xfd,0x98,0xbf,0x96,0xa8,0x7c,0x40,0x34,0x1c,0x25,0x40,0xfd,0x3a,0x7e,0xc0,0xd8,0xac,0xb6,0xbf,0xa8,0xb5,0x12,0x3e,0x43,0xeb,0x9a,0x40,0x12,0x28,0x5c,0xc0,0xc2,0xfc,0x58,0x40,0x62,0x2e,0x3c,0x40,0x3b,0x5e,0x2c,0xc0,0x5a,0x77,0x6e,0xc0,0x8c,0x66,0x3f,0xc0,0x33,0x99,0x53,0x40,0xbe,0xb7,0x9b,0xc0,0x48,0x1a,0x59,0x40,0xd9,0xd0,0x92,0x40,0x7c,0x24,0x96,0xc0,0xfc,0x1,0x40,0xbf,0xb2,0x72,0x58,0x40,0x50,0xbd,0xa1,0xbf,0xe0,0xb6,0x8,0x40,0x20,0x32,0x3c,0xbd,0xb6,0xcc,0x10,0xc0,0x29,0x9e,0x67,0x40,0xbc,0xab,0x44,0x3f,0x5c,0x95,0x3d,0xbf,0xe7,0x16,0xd9,0x3f,0x2,0xc7,0x29,0xc0,0x36,0xa2,0x74,0xbf,0x2,0x9e,0x3e,0xc0,0x65,0xfb,0x37,0xc0,0x60,0x7a,0x38,0xc0,0x90,0x9a,0xac,0xbe,0xc8,0x3f,0x6a,0xc0,0xfe,0xb5,0x11,0xbf,0xd2,0x51,0xcc,0xbf,0xed,0x5a,0x85,0xbf,0xc6,0x18,0x16,0xc0,0x44,0xc,0x45,0xc0,0xf9,0xbe,0x93,0x40,0x4d,0xea,0xf4,0x3f,0xbb,0xcc,0x86,0x40,0xe8,0x22,0x90,0xbe,0xbe,0xc0,0x6b,0x40,0x20,0xe9,0xa0,0x3d,0x60,0x44,0xf1,0x3d,0x79,0x60,0x94,0xc0,0x58,0xb0,0xdd,0x3f,0x8e,0xf6,0x2f,0x40,0x34,0x40,0x9a,0xbf,0x56,0xd7,0x8d,0xc0,0x7d,0xa7,0x5f,0xc0,0x1d,0xb9,0x5d,0x40,0x58,0x61,0xb9,0xbf,0xb7,0x69,0x22,0x40,0xd8,0x24,0x6e,0x3f,0x8a,0x30,0x89,0x40,0x88,0xb3,0x2f,0xbe,0xf,0x6e,0x91,0x3f,0x90,0x89,0x5e,0xc0,0xd4,0xcc,0x56,0xc0,0x14,0xc2,0x6e,0x40,0x82,0xdc,0x4f,0xc0,0x98,0x89,0x3,0x3e,0xaf,0x45,0x98,0xc0,0xf8,0x50,0xf2,0xbf,0xf6,0xda,0x26,0xbf,0x6a,0x51,0x41,0x40,0xe9,0xdc,0x45,0x40,0xd0,0x6b,0xdc,0x3f,0xb0,0xa0,0x9a,0xbf,0x53,0xbe,0x9,0x40,0x25,0x5e,0xa4,0x3f,0x24,0x18,0xcd,0x3f,0x7a,0x3f,0x39,0x3f,0x0,0x12,0xa7,0xbe,0x34,0xf8,0x95,0x40,0x80,0x4a,0x5f,0x40,0x9c,0x43,0xb1,0xbe,0x85,0x68,0x9d,0xc0,0xb1,0xe0,0x9a,0x3f,0x92,0x3c,0x60,0x3f,0x65,0xe5,0x16,0x40,0x97,0x5e,0x96,0xc0,0x66,0xcb,0x75,0x3f,0xa8,0x3a,0x87,0x40,0xea,0x4d,0x29,0x3f,0xa7,0xa,0x1e,0xc0,0x7c,0xde,0x17,0xc0,0x22,0x2c,0xc0,0x3f,0x69,0xf0,0xc,0x40,0x92,0x20,0x77,0xc0,0x3c,0x7c,0x8e,0x40,0x88,0x7d,0x27,0xc0,0xbe,0x8a,0x89,0x3f,0x5e,0x9c,0x4d,0x40,0xa7,0x5e,0x6a,0xc0,0xf2,0xf2,0x5f,0x40,0x0,0x68,0xd8,0x3c,0x35,0x9c,0xc9,0xbf,0x8,0x8b,0x4b,0xc0,0x3b,0xb1,0x80,0x40,0x9e,0xff,0x38,0x40,0xea,0xb8,0x89,0xbf,0x6e,0x1e,0x9b,0x3f,0x7f,0xb9,0xad,0x3f,0x83,0x7d,0x80,0xc0,0x92,0xbc,0x8d,0x40,0x91,0x6,0x8b,0xc0,0xfc,0xd8,0xed,0x3f,0xc2,0x85,0xa,0x40,0xd0,0x1a,0x9c,0xbd,0xe2,0xa,0x24,0xc0,0x5d,0x8f,0x86,0xc0,0x50,0x6f,0x53,0x40,0x98,0x99,0x91,0xbe,0x40,0xff,0xa,0xc0,0xb4,0x33,0xe0,0xbf,0xae,0xc6,0xa,0x3f,0xec,0xd,0x79,0x40,0xcc,0xa6,0x8f,0xc0,0xce,0xd4,0x1d,0x3f,0xc8,0xd8,0x8d,0xc0,0xfc,0x39,0x85,0xc0,0x62,0xc4,0x42,0xc0,0x3c,0xd7,0x6b,0x40,0xd8,0xb9,0x79,0xbf,0xac,0x9,0x1a,0x3f,0x2c,0x4f,0xf7,0x3f,0xf8,0x65,0x2b,0x3f,0x46,0x43,0xf3,0x3f,0x39,0x30,0x25,0xc0,0xfa,0x8a,0xac,0x3f,0x66,0x16,0x79,0x40,0x7f,0xb3,0x9b,0xc0,0xb8,0xb6,0x2e,0x40,0x44,0x99,0x95,0xbf,0xfc,0xf6,0x36,0x40,0xa5,0x46,0x96,0xbf,0x15,0xe5,0x9b,0x3f,0x51,0x4a,0x75,0xc0,0x5d,0x30,0xae,0xbf,0x2a,0xc1,0x14,0xc0,0xc2,0x3c,0x76,0xc0,0x4,0x7f,0xa9,0x3f,0xd5,0x13,0x95,0x40,0xe4,0x4d,0x6e,0xc0,0xa5,0x6,0x9e,0x40,0x7a,0x1c,0x11,0x3f,0xa6,0xb5,0x99,0xc0,0x8a,0x92,0xb5,0xbf,0x34,0x29,0x51,0x40,0xab,0x99,0x87,0xc0,0x58,0x2d,0x4a,0xbf,0x84,0x2c,0x96,0x40,0xc7,0xd7,0xc4,0xbf,0x7e,0xcb,0x3c,0x40,0x30,0xa0,0x7c,0xbf,0xfa,0x98,0x2d,0xbf,0xe4,0x2f,0x36,0xc0,0xda,0x29,0x6f,0x40,0x8e,0x30,0x8d,0xc0,0x18,0xc9,0x52,0xc0,0x46,0x11,0x8f,0xc0,0xc8,0x88,0x29,0x3f,0x2e,0xeb,0x40,0xc0,0x9f,0x8e,0x91,0x40,0x43,0xff,0x5,0x40,0x56,0x2b,0x4b,0x40,0xfa,0x13,0xd,0x3f,0x75,0x6d,0x81,0x40,0x81,0x6,0x2a,0xc0,0x1b,0xd2,0xd5,0xbf,0x31,0xb,0x87,0x40,0x80,0xc6,0x1,0x40,0x1c,0x1d,0x46,0xc0,0xf8,0xaf,0xe,0xbe,0x3,0x3,0x6,0x40,0xee,0x9b,0x54,0x3f,0x6,0xe8,0x9e,0x40,0xc4,0x89,0x4,0xc0,0xc6,0x57,0x9c,0xc0,0xa0,0xad,0x33,0x40,0x88,0xbd,0xb4,0x3e,0x5c,0x75,0x81,0xc0 }); + // [-0.28461337 -4.4953146 2.9698997 4.5361137 1.2827688 4.9171333 -2.9463 + Tensor *b = NN_tensor(1, (size_t[]){ 56 }, DTYPE_F32, (uint8_t[]){ 0xd8,0xb8,0x91,0xbe,0x9e,0xd9,0x8f,0xc0,0xd6,0x12,0x3e,0x40,0xd8,0x27,0x91,0x40,0xc5,0x31,0xa4,0x3f,0x28,0x59,0x9d,0x40,0xad,0x90,0x3c,0xc0,0x28,0x20,0x64,0xbf,0x86,0x31,0x59,0x3f,0xd8,0x15,0x69,0xbe,0x26,0x91,0x81,0x40,0xea,0x63,0x7a,0x40,0xfe,0x3d,0xa0,0xbf,0xad,0x50,0x92,0xc0,0x8b,0xad,0x85,0x3f,0x52,0x82,0x49,0x40,0x1e,0x5e,0x17,0x3f,0xd5,0xca,0xe6,0xbf,0x5d,0x7a,0xaf,0x3f,0x6e,0xb5,0x95,0xc0,0xcd,0xf8,0x84,0x40,0xc2,0x4f,0x2c,0x3f,0x28,0xbe,0x9b,0x40,0xe2,0x79,0x88,0x40,0xf0,0x7d,0x36,0x40,0x1a,0x16,0xe8,0xbf,0x64,0xdc,0x23,0xc0,0x10,0xdf,0xa6,0x3e,0xdd,0x45,0x96,0x40,0xd4,0xf,0x32,0xbf,0x5c,0xd8,0x6b,0x40,0xb8,0xa,0x3,0xbf,0x4e,0xc3,0xfc,0x3f,0xda,0x64,0x2f,0xc0,0xa0,0x33,0x1f,0x3e,0xb5,0xe2,0x89,0x40,0x82,0x6e,0x82,0xc0,0x28,0xfe,0x1c,0xc0,0x5c,0x3c,0x64,0xbf,0xe,0x25,0x95,0xc0,0xf2,0xed,0x89,0xc0,0x50,0x2a,0xc6,0x3d,0x70,0xb0,0x1d,0xbf,0xb0,0x70,0x51,0x40,0x2,0xc0,0x8,0xbf,0xe7,0x46,0x60,0x40,0x32,0xea,0x35,0x40,0xf2,0x9a,0x79,0x40,0x96,0x94,0x84,0xbf,0xf8,0xec,0x1c,0x3f,0xcb,0xb6,0x8b,0xc0,0x12,0x10,0x38,0x40,0xac,0x92,0x6,0x40,0x68,0x50,0x83,0x3f,0x95,0xe,0x89,0xbf,0xec,0x62,0x91,0x40 }); + + + // [[[[ 22.802946 24.099442 63.91566 ... 98.62219 -90.273445 + Tensor *golden = NN_tensor(4, (size_t[]){ 1, 12, 12, 56 }, DTYPE_F32, (uint8_t[]){ 0x6f,0x6c,0xb6,0x41,0xa8,0xcb,0xc0,0x41,0xa3,0xa9,0x7f,0x42,0x22,0xba,0x3d,0xc0,0x3a,0x25,0x4e,0xc0,0x0,0xa7,0x9d,0xc1,0x6a,0xd9,0xce,0x42,0xb7,0xb4,0xa6,0xc1,0xd9,0xc9,0x4f,0xc1,0x14,0x55,0xb0,0xc1,0x98,0x19,0xa9,0x42,0x15,0x8b,0x39,0xc2,0x90,0x69,0xc3,0x40,0xad,0xfa,0x27,0xc2,0xbb,0x95,0x30,0x42,0x8e,0xd5,0xbe,0xc2,0x6f,0x69,0xb5,0xc1,0xab,0xb1,0x31,0xc2,0x69,0xdf,0x4c,0x42,0xca,0xa7,0x8,0xc1,0xf0,0x4c,0xdf,0x40,0xd1,0x83,0x43,0x42,0x5e,0xe3,0xde,0xc0,0x24,0xba,0x31,0x43,0x22,0xd7,0x25,0x42,0xf4,0xc3,0x8a,0xc2,0xfb,0x8d,0x87,0xc2,0x6e,0x5,0x4f,0xc1,0x69,0x24,0x5f,0xc2,0x42,0x29,0x28,0x41,0x83,0xf8,0x6c,0xc2,0xf0,0xbe,0x73,0x42,0x74,0xb2,0x27,0xc2,0xe0,0x16,0xac,0xc2,0xb0,0xdc,0x1f,0x41,0xb7,0xc5,0xab,0x42,0xf4,0xdb,0x1,0x41,0xb9,0x77,0xd7,0x42,0xa8,0x38,0x85,0x42,0xa2,0x53,0xef,0x40,0x33,0x6f,0xc3,0x42,0x5d,0x63,0x49,0xc2,0xcd,0x55,0x3b,0x40,0xa8,0x80,0x99,0xc1,0xd1,0xfd,0x89,0xc2,0xe4,0x87,0x8c,0xc2,0x5a,0xfa,0xe1,0x41,0x9b,0xf2,0x10,0xc3,0x7f,0x9c,0x6a,0xc2,0x81,0xf2,0x81,0xc0,0x61,0xc8,0x2c,0x43,0x42,0x2e,0x86,0x42,0xd9,0x81,0x93,0x42,0x90,0x3e,0xc5,0x42,0x1,0x8c,0xb4,0xc2,0x78,0xf6,0x9,0xc2,0xe4,0x8c,0xe7,0x40,0xd1,0x5a,0xfe,0xc2,0x36,0xf8,0x86,0xc2,0x8c,0xd,0xd6,0x42,0xd3,0xbe,0x35,0xc2,0x6f,0x18,0x2,0x42,0x7a,0xd5,0x9d,0xc0,0x5d,0x6c,0x70,0xc2,0x3c,0x52,0xb3,0x42,0xc6,0x28,0x77,0xc2,0xd8,0xa,0x17,0xc3,0x6f,0x52,0xc7,0xc2,0x69,0x11,0x89,0xc2,0x7b,0x6f,0xa,0xc0,0x54,0x5d,0xff,0x42,0xc8,0xab,0x2,0xc3,0xce,0x53,0xc7,0x42,0x54,0xa8,0xda,0x42,0x86,0x8d,0x59,0xc2,0xea,0x83,0xb7,0x41,0x6c,0x40,0x9,0xc3,0xe7,0xf9,0xeb,0xc2,0x69,0xf7,0xe,0x40,0xa2,0x11,0xdc,0xc2,0x83,0x9b,0x2a,0x43,0x37,0x7,0xa8,0x41,0x87,0x7a,0x10,0xc2,0xb5,0xe0,0xdd,0x41,0x1a,0xf8,0xd5,0x42,0xa3,0x27,0x17,0x42,0x35,0xb3,0xe2,0xc2,0xfa,0x68,0xfe,0xc1,0x86,0x59,0xe2,0x41,0x90,0xdd,0xa8,0xc2,0x33,0xbf,0xfd,0xc1,0xce,0x33,0x39,0xc1,0xa1,0xe0,0x17,0xc2,0x40,0x3b,0xe6,0x41,0xef,0x49,0xb2,0xc2,0xc4,0xe1,0x17,0xc3,0x5e,0xd5,0x20,0x42,0x25,0x75,0x5a,0x42,0x64,0x83,0xb7,0xc1,0x9c,0x68,0x4c,0x42,0x4f,0x92,0xa4,0x40,0xe6,0xf0,0xd,0xc3,0x11,0xf9,0x14,0x42,0x68,0x1,0xeb,0xc2,0x6a,0x68,0x13,0xc2,0xa2,0x5d,0x68,0xc0,0x6f,0x9e,0x78,0xc2,0xff,0xb6,0x8d,0x42,0xbe,0xbe,0x93,0x40,0xfe,0x61,0x54,0xc2,0x45,0x70,0x1a,0x43,0x5f,0xe0,0xcd,0x42,0x3e,0x2e,0x5,0xc2,0x14,0x32,0x97,0xc2,0x23,0x64,0x35,0x42,0x70,0x14,0xef,0xc2,0xdf,0x6f,0xc8,0xc2,0x1e,0x4f,0xf4,0x40,0x43,0x6,0x83,0x43,0xbd,0x73,0x33,0xc2,0x82,0x88,0xf,0xc3,0xfa,0x3b,0xec,0x41,0x60,0x2e,0x16,0xc2,0xd4,0xf8,0xed,0xc2,0x5a,0x41,0x7b,0x42,0xd8,0xc3,0x7c,0xc2,0x19,0x7e,0x86,0x40,0xaa,0x78,0xed,0xc1,0x52,0xcf,0x82,0x42,0x35,0x8f,0x85,0x42,0xcd,0xca,0xa7,0x42,0x29,0xba,0x80,0x42,0x79,0x5b,0x3a,0xc2,0x71,0x96,0xb2,0xc1,0x36,0x39,0x27,0xc2,0x1b,0xf9,0x2d,0x42,0x1a,0xd1,0x47,0x42,0x75,0xbe,0x97,0xc2,0x68,0x3d,0xfe,0xc2,0xb5,0x4,0xa0,0xc2,0xf0,0x7e,0x4e,0x41,0xdb,0x37,0x6a,0xc2,0x50,0xcc,0x42,0x42,0x8c,0x41,0xbe,0xc1,0xc1,0xa9,0x12,0x42,0xc0,0xfb,0x6,0xc2,0xb5,0xf1,0x1a,0x43,0xf,0x2c,0x2e,0x42,0x70,0x7b,0x90,0x41,0xb0,0x95,0x3b,0xc2,0x29,0x30,0x2a,0xc0,0x12,0x3c,0x38,0x42,0xc0,0x84,0xb4,0x42,0x93,0xc4,0x1c,0x42,0x8,0xd3,0x4e,0x42,0x98,0x54,0x0,0x42,0x88,0xbd,0xd8,0x42,0x4,0xa6,0xa1,0xc2,0xe,0x81,0x8c,0x42,0x4d,0xfa,0x28,0x42,0xac,0x4d,0xc2,0xc2,0x88,0x93,0x5e,0xc2,0x5,0x87,0xa1,0x40,0xfc,0x8d,0x0,0x41,0x10,0x60,0x2b,0x42,0x7,0x21,0x60,0xc1,0xca,0x16,0x5b,0x41,0x5d,0x2e,0x8b,0xc1,0x19,0x91,0x8f,0xc2,0xa0,0x17,0x81,0xc2,0x44,0x66,0x37,0x41,0x34,0x79,0x5d,0x41,0xa3,0xb,0x6e,0xc2,0x42,0xc0,0xf2,0xc2,0xd0,0xe7,0xb0,0x42,0x5c,0x4c,0x7,0x43,0xdf,0xdc,0x10,0x42,0x92,0xa9,0xb4,0xc2,0xb3,0xc,0x85,0xc2,0xea,0x9e,0x1c,0x42,0xdd,0xb3,0x21,0xc2,0x59,0xe1,0xb0,0xc2,0x43,0xe8,0x1d,0x42,0x43,0xaa,0x13,0xc3,0x72,0x3a,0x2b,0xc3,0xc5,0xec,0x45,0x42,0x4d,0xac,0x2b,0xc1,0xd0,0x65,0xbd,0x41,0xef,0x52,0x67,0x42,0x77,0xb4,0xd,0xc3,0x6,0xd5,0x84,0x42,0x30,0xe6,0x24,0x42,0xee,0x78,0xb7,0x42,0xe4,0xaf,0xf5,0xc2,0x7d,0xbb,0x1,0x43,0x8c,0x9b,0x26,0xc1,0x36,0xac,0x26,0x41,0x2d,0xbd,0x7c,0xc2,0x52,0xe3,0xf7,0xc1,0x78,0x92,0xfd,0x41,0xde,0x51,0xa7,0x3f,0x39,0x2c,0x90,0x42,0xd,0x91,0x6f,0xc2,0x80,0x39,0xa9,0xc1,0x1c,0x3e,0x6b,0xc2,0xb5,0x97,0xaa,0x42,0x6e,0xeb,0x95,0xc2,0xea,0xce,0xe5,0x41,0xb9,0x54,0x11,0xc2,0x6f,0xb,0x95,0x42,0x47,0x2d,0x31,0x41,0xf,0x88,0xe6,0x41,0x5b,0xf1,0x9d,0x42,0xf1,0x94,0x84,0x42,0x79,0xad,0xcf,0xc2,0x1f,0x2,0x95,0xc0,0x9a,0xfd,0x64,0x42,0xef,0x51,0x7c,0x42,0x95,0x2,0xea,0x42,0xa9,0x18,0x88,0xc2,0x7,0x2f,0x6f,0xc2,0xcc,0xfa,0xa0,0x41,0xfd,0x4,0x85,0x42,0x32,0xe3,0x23,0x42,0xa6,0x73,0xf0,0xc1,0xc8,0xeb,0x9d,0x42,0xc6,0xd,0x65,0x42,0xff,0xdf,0x22,0xc3,0xab,0x30,0x90,0xc2,0x94,0xc4,0xa2,0xc2,0x75,0xeb,0xa4,0xc1,0x34,0xab,0xe,0xc0,0x15,0x5d,0x49,0x42,0x6b,0xef,0xb8,0xc2,0xcc,0xfc,0xdb,0xc1,0x60,0x6b,0x6c,0xc1,0xb,0xb6,0x7a,0xc2,0x4,0x4b,0xe1,0x42,0xdc,0x38,0xad,0x41,0xd1,0x9a,0x7,0x43,0x46,0xde,0xf0,0x40,0x69,0x61,0xd9,0x40,0x7,0x41,0x6,0x42,0x18,0x33,0x2b,0xc3,0x3f,0x57,0xc8,0x40,0x47,0x4c,0xa9,0xc2,0x94,0x14,0x99,0x42,0x6c,0x1f,0x2b,0xc2,0x61,0x14,0x31,0x42,0xc2,0x16,0xe,0x42,0x15,0x60,0x2e,0x41,0x1,0x8d,0xc7,0x41,0x44,0x74,0xc9,0x42,0x0,0x29,0xf7,0xc1,0x52,0xdc,0xc1,0x41,0xd0,0xa1,0xb,0xc1,0x31,0x4f,0xd7,0x41,0xe8,0x30,0xa9,0xc2,0x93,0xfc,0x1a,0xc3,0x98,0xe7,0x8b,0x42,0xff,0xe2,0x24,0xc2,0x4a,0xe1,0x53,0x42,0x6f,0x88,0x8f,0x42,0x8e,0xba,0xbb,0xc2,0xf2,0xcf,0xad,0x41,0x87,0xd,0xe3,0x41,0x6b,0xb8,0xdb,0xc2,0x1d,0x7f,0x0,0x43,0x55,0xb4,0x65,0x43,0x60,0x3,0x63,0xc2,0x98,0x3d,0xd3,0x3f,0x3c,0x2d,0x3d,0xc1,0xc4,0x14,0x9b,0x42,0x4,0x8,0xe3,0x42,0xa9,0xd7,0xcc,0xc2,0x12,0x34,0x4e,0xc3,0xf8,0x35,0x83,0x41,0x93,0x2b,0x22,0xc1,0x36,0x42,0x95,0x42,0xb6,0xdf,0x7f,0x42,0x7f,0x66,0xb2,0x42,0x66,0x5f,0x9f,0x41,0xf9,0x94,0x81,0x42,0x6,0x63,0x2d,0x42,0x8e,0x28,0x2b,0x42,0x8a,0x3d,0x39,0x43,0x27,0x84,0x3f,0xc2,0xfb,0x6e,0x96,0x42,0x7e,0xed,0x9,0xc2,0xae,0x76,0x10,0xc2,0x86,0x1a,0x92,0xc1,0xe6,0xfd,0x67,0xc2,0x76,0x55,0x8a,0x41,0x26,0xd5,0x7e,0xc1,0x47,0x70,0x7,0x41,0xe7,0xc,0x66,0x42,0x1c,0xda,0x9b,0x42,0x80,0xe2,0xde,0xc1,0x1f,0xb0,0xda,0xc0,0x42,0x46,0xc3,0x42,0xee,0x77,0x11,0x42,0x99,0x7b,0x73,0xc2,0xc,0x38,0x72,0x41,0x11,0x9b,0x25,0x42,0x34,0x59,0x62,0x42,0x36,0x7c,0x96,0x42,0x50,0x6c,0x13,0xc3,0x19,0xb9,0xc8,0xc2,0x47,0x71,0x9d,0x42,0x56,0x3f,0x94,0xc2,0x29,0x55,0x86,0xc2,0xc6,0xa9,0x46,0xc0,0xa,0xa5,0x14,0xc2,0x9,0x6,0xff,0x41,0x6c,0x3c,0x28,0xc1,0x6a,0x27,0xb4,0xc2,0x3e,0xab,0x2f,0xc0,0xa0,0x42,0x29,0xc2,0xd5,0x1f,0x5,0xc2,0xf7,0x64,0x53,0x42,0x9a,0x57,0xba,0x40,0x5c,0xc7,0xa2,0xc2,0xb6,0x64,0xd5,0xc1,0x75,0xae,0x46,0x40,0xbc,0x59,0x85,0x42,0x58,0xa0,0x6,0x41,0x81,0x71,0x84,0x42,0x80,0xd5,0xa1,0x41,0x8a,0x85,0xc9,0xc2,0x8c,0xf6,0xf7,0x41,0x3,0x1a,0x8e,0xc1,0xe2,0x44,0x1c,0x43,0x15,0x0,0x23,0x42,0xb3,0xb4,0x47,0x42,0xbf,0xd2,0x77,0x42,0x3c,0x62,0xaa,0x42,0x25,0x18,0xc7,0xc2,0xc,0xf7,0x5a,0xc2,0x8,0xa8,0x23,0x41,0xd2,0x78,0x80,0xc2,0xb4,0x21,0xf1,0x41,0x36,0x8f,0x55,0xc2,0xaf,0x8c,0xa,0x43,0x42,0x24,0xff,0xc2,0x30,0x51,0x58,0xc2,0x65,0x3b,0xee,0xc2,0x51,0x6d,0xe4,0x42,0xbb,0x2d,0x21,0xc3,0xc3,0x4c,0xe,0x42,0xc9,0x85,0x33,0xc3,0xaa,0xa9,0x8e,0xc2,0xf5,0xfe,0xe6,0x42,0xbc,0xf8,0xa4,0xc0,0xe6,0xad,0x0,0xc3,0x8d,0x4c,0x97,0x42,0x93,0x72,0x2b,0x42,0x76,0xd2,0xc,0x43,0xf3,0x9b,0xe0,0x42,0x8c,0xc,0xe,0x42,0xfa,0xf4,0xc7,0x41,0x7e,0x58,0x7,0x42,0xf9,0x59,0x23,0xc3,0x98,0x36,0x80,0xc2,0x8f,0x41,0x0,0x43,0x25,0x65,0xb2,0x41,0xd5,0xb,0xad,0xc1,0x52,0x17,0x10,0x43,0xd3,0xb5,0x6c,0x43,0x8,0xdb,0xa4,0x42,0x1a,0xaf,0xaa,0x42,0xa0,0xec,0x5a,0xc2,0x3d,0xda,0xd3,0x42,0x64,0x38,0x89,0xc2,0xa0,0x97,0x0,0x42,0x85,0xee,0xfb,0xc1,0x21,0xe4,0x20,0x41,0xd,0x7f,0x41,0xc1,0x46,0x8b,0x1,0x41,0x79,0xf4,0x9a,0x42,0xdb,0x72,0x4d,0x43,0x50,0xe7,0x54,0x42,0x3f,0x33,0x22,0x40,0x32,0x8a,0x14,0x42,0x4,0xf3,0xdc,0xc2,0x7b,0x4f,0x39,0x42,0xac,0xd0,0x99,0x42,0xdf,0x7f,0x8d,0x42,0xbb,0x51,0x71,0x42,0x51,0xce,0x7c,0xc1,0xd,0xea,0x30,0xc2,0x3b,0xba,0x72,0xc2,0xb7,0xc8,0x1e,0xc3,0x4,0x29,0xae,0xc2,0x91,0x8c,0x6e,0xc3,0x72,0x5b,0x5,0x43,0x12,0x72,0x6,0x41,0xda,0xd0,0xb,0xc3,0x98,0xcc,0xc0,0x40,0xf6,0xff,0x92,0x41,0x8a,0x56,0x65,0x41,0x5b,0xf7,0xa1,0xc2,0xb6,0xf2,0xa4,0xc2,0xc1,0xca,0x89,0xc2,0x13,0x61,0x5b,0xc2,0x3c,0x6d,0x11,0x42,0xc8,0x56,0x7a,0x42,0x3f,0xb1,0x4,0x42,0x53,0x5f,0xf2,0x42,0x5c,0xb5,0x9e,0xc2,0x86,0xe7,0x90,0x42,0x4f,0x52,0x57,0xc3,0x42,0x23,0xa2,0x41,0xef,0x15,0x71,0x42,0x84,0x4a,0xa8,0x42,0x3e,0xa3,0xe1,0xc2,0x7d,0x6e,0x51,0x43,0x26,0x55,0xd,0xc2,0xa3,0xdf,0x8a,0xc2,0xe3,0x42,0x3f,0x41,0x11,0x28,0xd8,0xc2,0xa8,0x61,0x13,0x43,0x1b,0x32,0x19,0x42,0xb7,0xe6,0x98,0x42,0x15,0x4a,0xc1,0x42,0xec,0x38,0x36,0x42,0x87,0x39,0x1c,0x43,0xb6,0x16,0xd4,0xc2,0xc4,0xa9,0x4,0xc1,0x61,0xff,0x80,0x42,0x10,0x7f,0xe7,0xbf,0xeb,0x5e,0xec,0xc2,0xd6,0x4b,0xd7,0xc0,0x90,0xb6,0x22,0x42,0xf6,0x8a,0xb4,0xc2,0xdd,0xc3,0x55,0x42,0xb,0xe7,0x40,0x42,0x25,0x3a,0x0,0xc2,0x2d,0x43,0x2b,0xc2,0x3f,0x7f,0x4e,0xc2,0xae,0x14,0xed,0xc1,0xee,0xa8,0x73,0xc2,0x64,0xef,0x1,0x42,0x4d,0x39,0x1,0xc3,0x65,0x38,0x9a,0xc1,0xb1,0x46,0xc1,0xc2,0x9a,0x12,0xa0,0x42,0x55,0xe4,0x78,0x41,0xce,0xe7,0xa2,0x42,0xeb,0x75,0xfa,0x42,0x7e,0xc5,0xf2,0x42,0xb2,0x8c,0x59,0x42,0x14,0x43,0xfc,0x42,0xb3,0xfe,0xa5,0xc0,0x75,0x40,0x31,0xc3,0xc0,0x2a,0x87,0x41,0xa7,0xf2,0xd5,0xc2,0xf4,0x5d,0xf,0xc2,0xaa,0x72,0xce,0x41,0xab,0xc6,0x60,0xc1,0xa7,0x85,0xcb,0xc0,0x44,0x6f,0xca,0x40,0xb7,0x31,0x68,0xc3,0x3,0xe9,0x9c,0x40,0x18,0x35,0x6,0x43,0x89,0x0,0x3f,0x42,0xf,0xe6,0x5e,0x41,0xc9,0x7a,0xaa,0x41,0xe6,0x4,0xd5,0x41,0x1a,0x3d,0x99,0xc2,0x26,0x27,0xe1,0x42,0x91,0xcd,0x40,0x42,0x88,0x5e,0x8,0x42,0x26,0xac,0xaf,0x42,0xb3,0x1a,0xf,0xc1,0xd7,0x3a,0x88,0x42,0xa9,0xed,0xf5,0xc2,0x30,0x9d,0xcc,0xc1,0xa8,0xd9,0xa5,0x42,0x6f,0x5c,0x43,0x42,0x7b,0x68,0x7a,0x42,0x66,0x12,0x36,0xc1,0xda,0x61,0xfc,0xc1,0x8b,0xe7,0x42,0xc3,0x28,0x3d,0x60,0x42,0xf5,0x46,0x99,0x42,0x1f,0x44,0x84,0xc2,0x93,0x8a,0xfa,0xc1,0x93,0x85,0x2b,0xc1,0xf8,0xda,0xc0,0x3f,0xa3,0x88,0x16,0x43,0xfc,0xdf,0x3c,0xc2,0x7c,0x76,0xc9,0xc2,0x26,0x61,0x1f,0xc1,0x72,0x50,0xb4,0xc0,0x10,0x4a,0xe4,0x41,0xfc,0xfc,0x85,0x42,0x66,0xa7,0x24,0x43,0xaf,0x97,0x36,0xc2,0x15,0xe6,0x6a,0x42,0x43,0xb3,0x15,0xc2,0xbb,0xb,0x6c,0x42,0xf9,0x46,0x9,0x42,0xfe,0xdb,0x23,0x40,0xfc,0xb5,0x4b,0x42,0x44,0xee,0x5b,0xc2,0x45,0xd9,0x4a,0x42,0xdd,0x29,0x7,0xc3,0x90,0x4c,0xc1,0x41,0x9d,0xcc,0xdb,0x42,0x44,0xa6,0x85,0x41,0xe3,0xad,0x2a,0xc2,0x14,0x15,0xf3,0x42,0x94,0x9e,0xc3,0xc1,0x4c,0x7a,0x51,0xc2,0x21,0xe1,0x93,0x42,0xbf,0x3e,0x34,0x42,0xe9,0x92,0xc0,0xc1,0xe5,0x8,0xe1,0xc2,0x40,0x75,0xce,0xc2,0xed,0x9f,0xed,0x41,0x2b,0x3a,0xd5,0x41,0xa2,0xdb,0xc7,0xc2,0xcf,0xdd,0x29,0x41,0x56,0x5b,0xa1,0xc2,0x37,0x87,0x43,0x43,0x82,0x83,0x1e,0xc2,0x54,0x6c,0x4f,0xc2,0x45,0xca,0x26,0x42,0x91,0x76,0x98,0xc1,0xbb,0x55,0x2c,0x42,0x9c,0x51,0xb,0x42,0xf0,0x5,0xd1,0xc0,0x71,0x16,0x72,0x42,0xde,0xf7,0x53,0x42,0x59,0x2b,0xe1,0x42,0x8b,0x46,0x23,0x40,0x4f,0x71,0x43,0xc3,0x12,0xbe,0x77,0x42,0xe9,0xb5,0x30,0xc3,0xc4,0x7e,0x9c,0xbf,0x20,0xce,0xf8,0x41,0xc5,0x34,0xac,0x42,0x8a,0xcf,0x24,0xc2,0xe3,0x59,0x6b,0x42,0x7f,0xa8,0xd5,0xc2,0xac,0xeb,0xdc,0xc0,0xef,0xcc,0xb3,0x42,0xf6,0x5a,0xae,0xc2,0x11,0xfe,0x3c,0x42,0xc6,0x15,0x32,0x42,0x3d,0x68,0xe0,0xc2,0x7d,0x8c,0xaa,0xc0,0xa4,0x53,0xfe,0x42,0x58,0x20,0xb2,0x42,0x11,0x73,0x85,0xc0,0xe9,0x4,0x14,0x42,0xab,0xe5,0x18,0xc3,0xe,0x67,0xf1,0xc1,0x12,0xd9,0xe7,0x42,0x27,0xbe,0xc9,0x42,0xe0,0x1,0x88,0xc1,0xf2,0xa,0x2,0x40,0xa6,0x9f,0xb4,0x42,0x10,0xc7,0x8f,0xc2,0xca,0x3e,0x2c,0xc0,0xfc,0x6,0x4d,0xc2,0x3c,0x27,0x66,0x43,0xa3,0xbd,0x79,0xc2,0xf8,0x14,0x52,0xc1,0x54,0x37,0x32,0xc2,0x3c,0x52,0x30,0x43,0x8,0xbc,0x9b,0x41,0xa0,0xbc,0x56,0x42,0x10,0xfe,0xf6,0xc2,0xcb,0xc6,0x9a,0xc2,0x48,0xfe,0x56,0x43,0xe,0xf0,0x8d,0x42,0xfc,0xbc,0x80,0xc2,0x21,0xd3,0x9a,0x42,0x54,0x97,0x71,0xc2,0xb1,0x4d,0xad,0x42,0xdd,0xf3,0xb5,0xc2,0xea,0x3f,0xe3,0x41,0x66,0x87,0x8c,0xc1,0x84,0xea,0x5,0x41,0xc2,0x25,0xa2,0x40,0xee,0xb4,0x7d,0x42,0x93,0xe6,0x44,0x42,0x8,0x3b,0x6a,0xc1,0xec,0x4a,0xbe,0x41,0xa5,0x33,0x82,0x40,0x14,0xf9,0x57,0xc2,0x9e,0x4e,0x1b,0x41,0xbe,0x7f,0x9d,0x42,0x1e,0xc5,0xa9,0xc2,0x33,0x41,0xc2,0x41,0x9e,0x65,0x7a,0x42,0x35,0x13,0xb6,0xc2,0xc3,0x81,0xb1,0xc2,0xca,0x76,0x6d,0x42,0xe2,0x40,0x43,0xc2,0x11,0x3a,0xd8,0x3f,0xa2,0x3d,0x9e,0x3f,0x5e,0xc,0x2,0x42,0x79,0x3d,0x79,0xc2,0xcc,0xf2,0x6f,0xc1,0xde,0x2f,0xd2,0xc2,0xd0,0xad,0x3a,0x42,0x4d,0x82,0x91,0x42,0x86,0x90,0x12,0xc3,0x4b,0x56,0xb7,0xc2,0x27,0x59,0x9e,0xc2,0xe5,0x62,0x1d,0xc2,0xb8,0x57,0x5a,0xc1,0x7e,0xb1,0xb1,0xc2,0xd4,0x1,0xe1,0xc2,0xbf,0x12,0xa5,0x41,0x38,0x80,0xa8,0x41,0x66,0x32,0x3b,0x42,0xd0,0x6a,0x7c,0x41,0xaf,0xbe,0xaa,0xc1,0x6,0xf2,0x1e,0xc3,0xd3,0x48,0xcd,0xc1,0x50,0x7a,0x22,0x42,0x74,0x21,0x48,0x42,0x41,0x31,0x1f,0xc2,0x93,0x22,0x96,0x42,0xee,0xb6,0x4d,0xc1,0x7f,0xfb,0xe0,0x42,0x2,0x5,0x90,0xc2,0xc7,0x9e,0xa0,0xc2,0xc6,0x81,0x3c,0xc0,0x14,0xec,0x8a,0x41,0x8e,0x82,0xc5,0xc1,0x4a,0xe,0x26,0xc2,0xe6,0x32,0x91,0x40,0xfb,0x1d,0xe2,0xc1,0xeb,0x1a,0xb7,0x42,0xfe,0x71,0xa,0xc2,0xcc,0xe2,0x42,0x40,0x66,0xb0,0xa,0xc1,0x43,0x73,0xfe,0xc1,0x28,0xc4,0x54,0x42,0x56,0x48,0x1e,0xc3,0x30,0x8,0xd8,0x41,0xb9,0xed,0x32,0x42,0xb0,0x35,0xa5,0x42,0x96,0x2,0xc8,0xc2,0xc2,0x17,0x81,0xc1,0x56,0x8c,0x78,0x41,0x47,0x86,0x1,0xc2,0x2e,0x5,0x75,0x42,0x4d,0x26,0x95,0xc2,0x86,0x81,0x23,0xc3,0x27,0x60,0x1c,0x42,0xa6,0xd0,0x28,0xc1,0xb7,0xb1,0x82,0xc2,0xd8,0xe4,0x8c,0x41,0xd5,0xbc,0x91,0x42,0x43,0x56,0x2b,0xc3,0x2c,0x66,0x7d,0x41,0xb,0x30,0xec,0x41,0x53,0xe0,0xc9,0xc1,0x3a,0xf,0x8b,0xc1,0xc2,0xcd,0x82,0x42,0x56,0x17,0x7b,0x41,0xc5,0xad,0x82,0xc2,0x59,0x4e,0x45,0xc2,0xee,0x1e,0xb0,0xc1,0x42,0x1d,0xa4,0x40,0x14,0x61,0xa,0xc2,0xa8,0xdc,0xaf,0xc2,0xbb,0x6f,0xd8,0x42,0xcb,0xcf,0xc,0x43,0x39,0xda,0x2,0xc3,0x49,0x12,0x8,0xc2,0xf8,0x84,0xfa,0x42,0xf2,0x20,0xff,0xc2,0xb9,0x1e,0x67,0xc2,0x82,0xd5,0x2b,0xc1,0x61,0xab,0x75,0x42,0xc9,0x10,0x94,0x42,0x7d,0x9e,0xf3,0x40,0xaa,0x5e,0x1e,0xc2,0xd5,0x62,0x49,0x40,0x71,0xb4,0xd7,0xc2,0x5f,0x8e,0xb,0xc3,0xbb,0x15,0xf6,0x42,0x28,0xd2,0x74,0x42,0x9a,0x12,0x54,0xc3,0x74,0x8,0x99,0x41,0xe5,0xfa,0xf1,0xc0,0xf3,0x69,0xa2,0xc2,0x5e,0x7e,0x95,0xc2,0x33,0x44,0x95,0xc1,0x4f,0x91,0xbb,0xc2,0xe9,0x4d,0x45,0xc3,0x34,0xa6,0xe2,0x42,0xce,0xc9,0x25,0x40,0x8a,0x58,0xb5,0x41,0x74,0xfd,0x64,0xc2,0x63,0xbf,0xa3,0x42,0xe0,0x8,0xbb,0x41,0xa4,0x5f,0x76,0x41,0x94,0x4,0xd4,0xc1,0x42,0x1,0x9a,0x42,0x5a,0x1c,0xdc,0xc1,0x7a,0x93,0x31,0x43,0x33,0xbd,0xd,0x42,0x2,0x97,0xb8,0xc2,0x71,0x1d,0x86,0x42,0xd9,0xa6,0xbd,0x42,0xd9,0x16,0xd9,0xc2,0xaa,0xcb,0x1a,0x42,0x18,0xb5,0x95,0x42,0x58,0x29,0xd2,0xc2,0x3e,0x89,0xe,0x42,0x71,0x1,0xc1,0x42,0xa4,0x55,0x9,0x41,0xc6,0xbd,0x2e,0x43,0xd4,0x6e,0x26,0xc3,0x7d,0x4c,0x45,0xc2,0x7b,0xe9,0xa3,0x42,0x24,0x20,0x29,0xc2,0x58,0x17,0xa6,0x42,0x9d,0x9c,0x38,0x42,0xcd,0xe,0x78,0x42,0xc4,0xd8,0x6a,0x42,0x98,0x62,0xaf,0x42,0x75,0x4f,0x3e,0x43,0x8e,0x64,0x55,0x41,0xbe,0x8c,0xf5,0xc0,0x35,0xea,0xae,0x42,0xa6,0x47,0x81,0xc1,0xd3,0x3f,0xc7,0xc2,0xc5,0xc6,0xdc,0x42,0x73,0xe2,0x19,0x42,0x1a,0x56,0xbc,0x42,0x87,0x24,0x4d,0x43,0x72,0x3e,0x0,0x43,0xd6,0xd8,0x73,0x41,0x51,0x8b,0xe0,0x42,0x29,0x56,0xa,0xc3,0x4b,0xe0,0x2,0x43,0xe9,0xf3,0x2d,0x43,0x43,0x67,0x81,0x42,0x95,0xd4,0x5b,0x42,0xba,0xfd,0x83,0xc2,0x52,0xa6,0xaa,0x41,0xea,0xe0,0xce,0xc1,0xba,0x6b,0xc8,0x42,0x25,0x46,0x63,0x41,0xea,0x90,0x3d,0xc2,0x72,0x90,0xfb,0x41,0x21,0xa9,0x74,0xc2,0xb5,0xe0,0x58,0xc2,0x52,0xa1,0x9e,0x42,0x48,0x6,0x30,0x43,0x89,0xc3,0xad,0x42,0x0,0xff,0x5b,0xc1,0x96,0x93,0x0,0x41,0xb4,0x9b,0x97,0xc0,0x4,0x8f,0x1f,0x41,0xb2,0x57,0x1,0x42,0xf6,0xfb,0xb8,0xc2,0xee,0x7e,0x26,0x43,0x59,0x19,0x39,0x42,0x53,0x56,0x8a,0x42,0xdd,0x24,0xd,0x42,0x18,0x28,0x13,0x43,0x5c,0x31,0xcf,0xc1,0x9a,0x39,0xd1,0x42,0xc1,0xed,0x97,0xc2,0x89,0x44,0x87,0xc2,0x52,0xa2,0x9,0xc3,0x92,0x32,0xa,0xc3,0xb3,0xa5,0xde,0x41,0x3a,0xf8,0x99,0x41,0xef,0x7e,0xab,0xc2,0x7,0x67,0x90,0xc0,0x0,0x2e,0x52,0xc2,0x62,0x2f,0xc1,0x42,0xe2,0x83,0x26,0xc3,0x48,0xf1,0x64,0xc3,0x62,0xef,0xb8,0xc1,0xbc,0xb4,0x84,0xc3,0x76,0x44,0x33,0x42,0x43,0x3f,0x5a,0x42,0x72,0x78,0x88,0xc2,0x58,0x9a,0xd0,0xc2,0x88,0x86,0x5c,0x43,0x20,0x80,0x6,0x40,0x73,0x4d,0xc,0x43,0x11,0xa1,0x84,0x42,0xde,0x2d,0x40,0x41,0x23,0xb4,0x2b,0x43,0xb,0x55,0x3,0xc3,0x3,0xcc,0x1d,0xc2,0x96,0xea,0x7d,0xc2,0xec,0xf5,0xb3,0xc2,0x39,0xff,0x7f,0x42,0xe0,0x5b,0x34,0x42,0x6c,0x1f,0xd,0x43,0xf9,0x87,0xc,0xc3,0x75,0xd3,0x16,0x43,0xd7,0x72,0x29,0x42,0x36,0x7,0xba,0x42,0x77,0x77,0x53,0xc2,0xa0,0xf2,0xa3,0x42,0xdc,0x89,0xa9,0xc2,0xc3,0x43,0xb2,0xc2,0x44,0x85,0xfa,0x41,0x20,0x45,0x36,0x42,0x24,0xd8,0x7,0x43,0xdd,0x2f,0x16,0xc3,0xb6,0xdd,0x4e,0xc1,0x9a,0xef,0xa8,0xc2,0xf7,0xfc,0xdf,0x42,0x21,0xf,0x68,0xc2,0xb4,0x4a,0x74,0x41,0x48,0x48,0x29,0xc3,0xa8,0x5f,0xbf,0xbe,0x3,0xb0,0x8a,0x41,0xd7,0xce,0x9e,0xc2,0xd2,0xaf,0x6b,0x40,0xfc,0x7e,0x39,0x41,0xad,0x68,0x9c,0x40,0xed,0xc5,0xc8,0xc1,0xda,0x61,0x72,0xc1,0x34,0xf6,0x68,0x42,0xba,0x92,0x59,0xc2,0x88,0x8f,0xf3,0x40,0x1a,0xcb,0x4b,0xc2,0x94,0xd8,0xdc,0xc2,0xe6,0xa9,0x4,0x42,0xfe,0x2d,0x38,0x43,0x62,0x1,0x3d,0xc3,0x81,0x72,0x40,0x42,0xaf,0x45,0xfb,0x42,0xf6,0x12,0xf0,0x41,0xf0,0x79,0xde,0xbe,0x59,0x68,0x32,0xc2,0xd2,0xd2,0xbd,0xc1,0xf0,0x29,0xa7,0xc2,0xaf,0x2e,0xe3,0x41,0x10,0x62,0x3,0xc3,0x16,0xfd,0xe3,0xc1,0x53,0x9d,0x65,0xc2,0x3,0x84,0x9c,0x41,0xd6,0xf2,0x82,0x43,0xe9,0x53,0x26,0x43,0xfd,0x28,0x5f,0x42,0xf4,0x41,0xfb,0xc2,0xfa,0xd,0xf8,0xc1,0x8d,0xcf,0xea,0x42,0x23,0x86,0xee,0x42,0xf2,0x52,0x75,0x42,0x15,0xed,0x3,0xc3,0x56,0xc2,0xb9,0x42,0xb0,0x6f,0x9d,0xc2,0x3,0x30,0xd8,0xc2,0xfe,0xd2,0x29,0x43,0x89,0xd,0x2d,0x43,0xf6,0xfb,0xb5,0xc1,0xbc,0xc2,0x35,0xc1,0xf2,0x33,0x30,0xc2,0x11,0x12,0x21,0xc3,0xee,0xf2,0xf2,0xc2,0x5d,0xac,0x81,0xc2,0x48,0x97,0x10,0x43,0x5d,0xa2,0x7d,0xc1,0x33,0x2,0xe4,0x42,0x7b,0xdc,0xf6,0x42,0x20,0x4f,0x39,0x41,0x40,0xe4,0xc5,0x42,0xbd,0xee,0x63,0xc2,0xa2,0x15,0xcf,0xc2,0x7d,0xc7,0x9b,0xc2,0x65,0x4a,0xe,0x42,0x39,0xed,0x4d,0x41,0x12,0xfd,0xf2,0x42,0x69,0xc4,0x4d,0x42,0x5d,0xb1,0x26,0x42,0x96,0x9c,0x9e,0x42,0x8e,0xf7,0x54,0xc2,0x7c,0x49,0x77,0x42,0x1c,0x4c,0x30,0xc1,0xf7,0x1e,0x5a,0xc2,0x28,0x7,0xe1,0x3e,0x48,0x10,0x1d,0x41,0x7d,0x50,0xa,0xc2,0x8a,0xe7,0x5e,0x42,0x27,0x51,0xf9,0x42,0x53,0x5e,0x85,0x42,0x9b,0xa5,0x46,0xc2,0xff,0xc2,0x5f,0xc3,0xea,0xc8,0x50,0xc2,0xe0,0x3c,0x3c,0xc2,0x45,0xaf,0x9a,0xc1,0x9e,0x99,0x90,0x42,0xe1,0xb7,0xd4,0xc1,0xa7,0x4f,0x59,0x42,0xad,0x5c,0x1c,0xc3,0xc6,0x79,0x87,0x42,0x10,0x2f,0xa5,0xc1,0x8e,0x1f,0xed,0xc2,0x1d,0xf0,0x72,0xc2,0x11,0x53,0x23,0x42,0x51,0xe,0x89,0x42,0xac,0x3a,0x70,0x42,0x1d,0xe4,0x7,0x43,0xa1,0x4a,0x48,0x42,0xf6,0x71,0x37,0xc1,0x9d,0x43,0xe,0xc1,0x7c,0x96,0xf6,0x41,0x7a,0xbf,0x8a,0xc2,0xf0,0xec,0x1a,0xc3,0xe,0x5c,0xd1,0xc1,0xff,0xe0,0x10,0x43,0x1c,0x1c,0xcc,0x41,0xa4,0x80,0x17,0x43,0xb8,0x18,0x8b,0xc2,0xd2,0x27,0xcb,0x41,0xd9,0xb9,0x84,0xc1,0xa7,0xda,0xcd,0xc1,0xcc,0xc7,0x81,0xc2,0x2d,0x9e,0x20,0x42,0x84,0xe8,0x45,0x42,0xf1,0x87,0x8e,0x42,0x32,0x6d,0xac,0xc2,0xe6,0xb,0xa5,0xc2,0x4f,0x58,0x41,0xc2,0x4a,0x0,0xe6,0xc2,0xc2,0xde,0x5e,0xc1,0x45,0xbd,0x1a,0x42,0x14,0x3f,0x4,0xc3,0xa8,0x5a,0xcf,0x42,0x49,0xaa,0x3,0x43,0x83,0x64,0x87,0xc2,0x9e,0xa0,0xbb,0xc2,0x86,0x9d,0x97,0xc2,0xd,0x52,0x89,0x42,0x6f,0x96,0xc1,0x42,0xd0,0x7b,0x2f,0xc3,0xd0,0x1,0xdc,0x42,0x6d,0x51,0xdd,0xc1,0x12,0x31,0x2c,0xc3,0x4b,0xa7,0x1,0x42,0x6e,0xbf,0xfd,0x42,0x49,0x14,0x1c,0x43,0x1c,0xe9,0xb7,0x41,0xb6,0xd1,0x73,0x42,0xac,0x63,0xaa,0x42,0x24,0x12,0x35,0x42,0xb8,0x6c,0x4,0x43,0x80,0x64,0xa6,0xbe,0x9,0x7b,0x3c,0x42,0x34,0x8,0xdb,0xc2,0x9a,0x69,0x3e,0xc2,0x2b,0xda,0x27,0x40,0x75,0xab,0x8b,0x42,0xb3,0xc4,0xb,0xc2,0x24,0x5a,0x9e,0xc1,0xf3,0xad,0xcc,0x42,0x48,0x69,0x99,0x40,0xfb,0xae,0x59,0xc2,0x8e,0xd3,0x8a,0xc2,0x4c,0x0,0x1e,0xc3,0x39,0x8b,0x95,0x41,0x2,0x39,0x26,0xc3,0x98,0x40,0x8f,0xc2,0xef,0x41,0xa8,0xc2,0xf0,0xd6,0x4e,0x3f,0x32,0x62,0x23,0x42,0xd0,0xdd,0xd6,0x42,0x5b,0x41,0x25,0xc3,0x5b,0x57,0x2,0xc2,0x32,0x77,0x90,0xc3,0xcd,0x35,0xbf,0x42,0xc3,0xc,0xa5,0xc2,0x96,0x7f,0xe2,0x41,0xae,0xc3,0xa2,0x42,0x15,0x1e,0xcd,0x42,0x76,0xed,0x99,0x42,0x2b,0x68,0xe4,0x41,0xe7,0x73,0xe7,0x41,0x5b,0xb,0xd4,0x41,0x8d,0x26,0xca,0x42,0xfe,0x31,0xf0,0x40,0xb5,0x9c,0xf6,0x41,0xfd,0x65,0x54,0xc2,0xc8,0xd5,0x4d,0xc2,0xa8,0xf6,0x41,0xc2,0x9e,0xf2,0xdf,0x41,0x5e,0x9b,0x4d,0x43,0x50,0x91,0xaa,0x42,0x4e,0x25,0x7a,0xc2,0x1,0xe9,0xaa,0xc2,0x36,0x3c,0xd4,0xc1,0xbd,0x65,0x77,0xc2,0x48,0xe8,0xdf,0x42,0x4d,0xe1,0xa2,0x42,0x58,0x65,0x8a,0xc2,0x7f,0x8d,0xd0,0x42,0x37,0xef,0x19,0xc2,0x15,0x78,0x8b,0x42,0x87,0xed,0x55,0x41,0xbb,0x9e,0xf0,0x42,0x74,0x57,0xb9,0xc0,0x4e,0x7e,0xaf,0xc1,0xbe,0x88,0x8b,0xc2,0x8a,0x75,0x2b,0x42,0x95,0x98,0xe1,0x42,0x56,0x6e,0x87,0x43,0x58,0x9,0xc7,0xc2,0xca,0x92,0x1f,0x43,0xbf,0x91,0xc2,0xc2,0x9c,0x4c,0x1e,0x43,0x91,0xcc,0x55,0xc2,0x5,0xbe,0x85,0x42,0x98,0xf1,0xd5,0xc2,0xa5,0x71,0xf9,0x42,0x8a,0xf2,0xb4,0x41,0x18,0xdf,0x80,0x40,0xb,0x4b,0x85,0xc2,0x72,0x39,0x57,0xc2,0x8f,0x4,0xa5,0xc2,0x18,0x8f,0x4,0x42,0xc9,0x1b,0x1c,0x42,0x72,0x46,0xab,0xc2,0xbb,0x52,0x78,0xc2,0x5b,0x3b,0xee,0x42,0x4c,0xcd,0x43,0x42,0x70,0xff,0xe5,0x42,0x12,0x6c,0xdc,0xc2,0x12,0xc3,0xb8,0xc2,0x75,0xec,0x8b,0x41,0x44,0x48,0x99,0xc1,0x32,0x90,0xe9,0x41,0xe,0xbf,0x21,0x43,0xc1,0xd2,0x6a,0xc2,0xfd,0x21,0xaf,0x42,0xda,0x13,0x2a,0x41,0x37,0x51,0xa5,0x42,0xab,0xb2,0x0,0xc3,0xbc,0xc4,0x86,0xc2,0xa9,0xbe,0xc3,0x41,0x32,0x7f,0x99,0x40,0x99,0x1c,0x8a,0x42,0x84,0xea,0xea,0xc2,0x4e,0x1a,0x80,0xc2,0x41,0x5e,0x77,0xc2,0xc9,0x15,0xf4,0x41,0x59,0x63,0xbb,0xc2,0x50,0x48,0xb1,0x42,0xe9,0x98,0xa1,0x41,0x96,0xd7,0x5d,0xc1,0xb5,0xee,0x48,0xc3,0x51,0x12,0x6d,0x42,0x43,0x88,0x87,0x42,0x58,0x7,0xba,0x42,0xd3,0x83,0x4f,0x42,0x85,0x61,0x12,0x43,0xe0,0xea,0xc8,0x41,0x6,0x97,0x9b,0xc2,0x18,0x49,0xbd,0x42,0x46,0x9b,0xd8,0xc1,0x9b,0xcc,0xac,0xc1,0x19,0x65,0x6c,0x42,0xf0,0xfe,0xee,0x41,0xe8,0xae,0x6f,0x42,0xba,0x53,0x12,0xc3,0x38,0x18,0x33,0x42,0x2e,0x4b,0x9e,0xc2,0xec,0x8e,0xf7,0x42,0x9c,0x1c,0x5b,0xc1,0xa2,0xc0,0x85,0x42,0x3f,0xe3,0x56,0xc2,0x83,0xc,0x15,0x43,0xf,0x0,0xba,0xc1,0x7f,0xc7,0x44,0xc2,0x48,0x44,0x9f,0xc2,0x55,0x1a,0x8a,0x41,0x34,0x99,0x19,0x43,0x54,0xce,0x3c,0x41,0xe,0xff,0xb3,0xc1,0x25,0xe6,0x7f,0x41,0xa,0xe9,0x70,0xc2,0xa8,0x8d,0x36,0xc2,0xab,0x18,0xcf,0xc1,0xc7,0x47,0x5b,0xc2,0xe0,0x6,0x12,0x43,0xe3,0xfc,0xe6,0x41,0x49,0xe4,0xb9,0x42,0x76,0xce,0x75,0xc3,0xb2,0x80,0xa7,0x42,0xe7,0x1b,0x42,0x43,0xa9,0xf,0xfc,0xc1,0x85,0x3c,0x3,0xc3,0xb5,0xac,0x32,0x43,0x79,0xb0,0x28,0x41,0x7c,0x65,0xd5,0x42,0xca,0xd4,0x47,0x43,0x44,0x19,0x2a,0x42,0xce,0xbc,0xdb,0x40,0x8f,0xa4,0x28,0x42,0x3a,0xfb,0xce,0xc2,0xc8,0x56,0x1e,0x43,0x25,0x6e,0xf4,0xc2,0x87,0x91,0xa3,0xc2,0x7f,0xa4,0x6d,0x42,0xf7,0x35,0xd2,0xc2,0x71,0xd0,0xcf,0xc2,0x1,0xfd,0xa,0x43,0x81,0x95,0x9,0x42,0x3e,0x5,0xf,0x43,0x46,0x61,0xbd,0xc2,0xd8,0xf7,0x86,0x42,0xbe,0x9e,0xb8,0xc2,0x20,0x42,0x4c,0xbf,0x70,0xe6,0x1c,0x43,0x3e,0x2c,0xcc,0xc2,0xf5,0x8d,0xb6,0x42,0x9a,0x7a,0x1,0x43,0xbe,0x7a,0x43,0x42,0x14,0xc2,0x9e,0xc2,0x85,0x99,0xd4,0xc2,0x1e,0x3e,0xab,0xc2,0x60,0xfc,0x3,0xc3,0x4d,0xcf,0xa1,0x41,0xe5,0xe9,0xd1,0x42,0x23,0x80,0x10,0x43,0x29,0x74,0x2f,0x42,0xbb,0xef,0xb7,0xc1,0xe3,0xfa,0x18,0xc1,0xe2,0x1a,0x16,0xc3,0xbe,0xc9,0xf5,0xc1,0xd4,0x63,0x3a,0xc3,0xb2,0xa8,0xa8,0x40,0x52,0x98,0xf2,0x42,0xd5,0xba,0x2b,0xc3,0x15,0x43,0x4,0x43,0x2,0x72,0xbd,0xc2,0x47,0x37,0x37,0x42,0xdb,0x2c,0x64,0x42,0x37,0x34,0xa1,0x42,0xbe,0x76,0xc4,0xc2,0xa0,0x5,0x84,0xc2,0xfd,0x27,0xa,0x42,0x93,0x15,0x75,0x40,0x95,0xb,0xb9,0x42,0x68,0x29,0xad,0x41,0x50,0xf5,0x76,0x41,0x30,0x15,0x15,0xc3,0xaf,0xd6,0xfb,0x42,0xec,0x9e,0x2d,0x43,0x81,0x79,0xa5,0xc2,0x16,0xaa,0xaf,0xc2,0xc0,0x21,0x80,0x42,0x68,0x17,0xa3,0xc0,0x29,0xc3,0xa,0x43,0x36,0x80,0x9,0x42,0x22,0xc2,0xe1,0xc1,0x37,0x60,0x83,0xc3,0x65,0x35,0x92,0xc2,0x62,0xa2,0x1,0xc2,0x75,0x19,0xbe,0xc2,0x9b,0x22,0x15,0xc3,0x1f,0x9e,0x1f,0xc3,0x5c,0xf1,0x36,0xc1,0x55,0x37,0x76,0x42,0x10,0xda,0xf4,0x42,0x23,0xea,0xf6,0xc2,0xad,0xb3,0xe7,0x42,0x5f,0xf1,0xa6,0xc1,0xb9,0x8,0x8d,0xc2,0xba,0xc8,0x56,0x42,0x8a,0xb0,0x6,0xc0,0x26,0x7c,0x8f,0x40,0xe3,0x33,0x38,0xc3,0xf3,0xbb,0x45,0xc2,0x30,0xb2,0x28,0xc2,0xd1,0xfa,0xf,0x42,0x49,0x16,0x9d,0x42,0xe8,0x30,0xa,0x42,0xdb,0x36,0x85,0x42,0x73,0x6e,0x1d,0x42,0x59,0x17,0xe2,0x42,0xfd,0x2a,0xf,0xc3,0x2c,0x6c,0xa,0x41,0x18,0xb9,0x37,0x43,0x45,0xaa,0xa7,0xc2,0x2b,0xee,0x9a,0x42,0x10,0x8d,0x48,0x41,0x69,0xcc,0x2d,0x43,0xd4,0xa,0x1f,0x43,0xe7,0xb5,0x9c,0x42,0xee,0xa2,0xf4,0xc2,0x2b,0x9,0x7b,0xc2,0xee,0x18,0x49,0xc3,0x3e,0xc0,0x39,0x43,0x35,0xbc,0x3f,0xc3,0xc1,0x1a,0xb2,0xc2,0x13,0x44,0xd7,0xc2,0x75,0xf0,0x2b,0xc2,0xc1,0x2c,0xda,0x41,0x1c,0xd2,0x75,0xc2,0xa1,0x66,0x31,0xc3,0x89,0xcf,0x87,0xc2,0xc7,0xdd,0x15,0xc2,0x84,0xdc,0x82,0xc2,0x23,0xfe,0xe7,0xc1,0x61,0x6b,0xc7,0xc2,0xd0,0xf4,0x48,0xc3,0xeb,0x5e,0xe6,0x42,0xd7,0x2d,0x84,0x42,0x77,0x70,0xe7,0xc2,0x87,0xfc,0xc1,0x42,0x94,0x52,0x24,0xc1,0x47,0xae,0x18,0x43,0xb3,0x1d,0x9d,0xc1,0x22,0xfc,0x64,0x42,0xec,0xec,0x28,0x43,0x66,0x39,0x80,0x42,0xe8,0x70,0x1,0xc2,0xa8,0x7e,0x16,0x43,0x33,0x7c,0xd4,0x42,0x16,0x3,0x93,0x42,0x52,0x62,0x9c,0x41,0xa0,0x9b,0x33,0x42,0xf2,0x5,0xc2,0x42,0x50,0xe6,0x73,0x42,0x67,0xeb,0x6a,0xc2,0x9d,0x77,0xc9,0xc2,0xe,0x6,0x3,0x43,0x57,0x3c,0x17,0x43,0x84,0x54,0x1a,0x43,0x94,0xf5,0xf0,0x42,0xe6,0x4,0x2c,0xc2,0x6a,0x37,0xe9,0xc1,0xd7,0xfb,0xaf,0xc2,0xbb,0x9a,0xc0,0xc1,0xd,0xba,0x9b,0xc2,0xc3,0x92,0x75,0xc2,0xb2,0x1f,0x9,0xc2,0x99,0x46,0xe6,0x42,0xd6,0x8d,0xee,0xc2,0xab,0x55,0x7,0xc3,0xbb,0xdb,0xad,0x42,0x2,0x42,0x18,0x43,0xe6,0x42,0xb,0x42,0xa0,0x45,0x2c,0xc3,0x7,0x8c,0x78,0x42,0x4a,0xcd,0xec,0xc0,0x7e,0xb5,0x95,0xc2,0x3c,0x3d,0x20,0x43,0x56,0x4e,0x91,0x43,0xb4,0xb5,0x92,0x42,0x7a,0x5a,0xa0,0x42,0x15,0xc3,0x81,0x42,0x92,0x4,0x1c,0x42,0xeb,0x15,0xdd,0x42,0x65,0x8d,0x45,0xc3,0xd2,0x6e,0x44,0x42,0xf2,0xf7,0xb5,0x42,0xfa,0xec,0x36,0xc2,0xba,0xab,0x28,0x42,0x30,0xb6,0xd9,0x42,0x98,0xc9,0x3b,0x40,0x1a,0x26,0x22,0x42,0x14,0xa7,0xf4,0xc1,0xe0,0xd1,0x9d,0xc0,0x88,0x10,0x75,0x42,0x9e,0x14,0x16,0x41,0xce,0xda,0xf9,0xc1,0x26,0xba,0x60,0x42,0xd6,0x3d,0xce,0x42,0xb,0x85,0xfa,0xc2,0xb3,0x9a,0xda,0xc0,0xb0,0x26,0x5e,0x42,0xc8,0x24,0xa5,0x42,0x6c,0x90,0x3f,0x42,0x52,0x5f,0x17,0x42,0x12,0x8d,0x3b,0x40,0xd5,0xe0,0x5b,0xc2,0x5c,0xe,0x2a,0xc2,0x59,0xe4,0x81,0x42,0xad,0xe7,0xb8,0x42,0x37,0xce,0x9a,0xc2,0x61,0xb0,0x9b,0xc2,0x2f,0x96,0xa4,0xc2,0xe2,0xd7,0x9e,0x41,0xd9,0x6f,0x24,0xc3,0xec,0x16,0x58,0xc2,0x30,0x5a,0x83,0x42,0x4c,0xf3,0xba,0xc2,0x1,0xc4,0x98,0xc2,0x1d,0x62,0x76,0xc2,0x35,0xd4,0xd3,0x42,0xba,0x88,0x37,0x42,0x79,0x8e,0x2a,0x43,0xf6,0xca,0xd8,0xc1,0x23,0x3,0x9,0xc2,0x85,0xe3,0x86,0xc1,0xc4,0x23,0xe1,0xc2,0x7,0xbf,0xb,0xc3,0xc0,0xf7,0x99,0x40,0xb9,0xe9,0xcf,0x42,0x78,0x8b,0xb8,0x41,0xe0,0x56,0xcd,0x42,0xc7,0x39,0x26,0xc2,0xd6,0xe6,0x1,0x43,0xb2,0x70,0x83,0x42,0x6e,0x4b,0xf0,0x41,0x3b,0x33,0x23,0xc2,0x91,0xb2,0xc8,0x41,0xc,0x60,0x42,0x41,0x91,0x3c,0x5a,0xc1,0x62,0x5d,0xce,0xc2,0xa0,0x22,0xbf,0xc2,0xfc,0x1b,0xe9,0x42,0xf3,0x37,0xa,0xc2,0xba,0x10,0xbe,0x42,0xc0,0xdb,0x98,0xbe,0x31,0xf7,0x86,0x42,0x96,0x2e,0xb5,0x41,0xec,0x70,0x86,0xc2,0xba,0x1b,0xaa,0xc2,0x46,0x17,0xf8,0x41,0x8b,0xf5,0x38,0xc2,0x37,0x95,0x2b,0x42,0xa,0x4c,0x8a,0xc1,0xa8,0x0,0x0,0x43,0xf3,0x99,0xab,0x42,0x6a,0xc8,0x9,0xc2,0xa6,0xaa,0xb3,0xc2,0xe0,0xd5,0x56,0x41,0xa1,0xa1,0x20,0x42,0x7c,0xea,0xf,0xc2,0x7e,0x67,0x85,0x42,0x53,0xd2,0xac,0x42,0x5b,0x32,0xb9,0xc2,0x54,0xa6,0xb3,0xc2,0x68,0x23,0x49,0x43,0x5f,0xe2,0xd1,0x42,0xb8,0x1e,0x8f,0x41,0x15,0xa0,0xa6,0xc2,0xb3,0xe,0x3,0x43,0xdd,0x65,0xbf,0xc2,0x1f,0x15,0x78,0xc2,0x58,0x1f,0xae,0x42,0x43,0x2c,0x7a,0x42,0xdc,0x8,0xec,0x41,0xb,0x6e,0x4,0xc3,0x7c,0x21,0xd2,0x42,0xc5,0x66,0x44,0xc2,0x0,0xb7,0xef,0x41,0x41,0xc3,0x42,0xc2,0xc2,0xba,0x2e,0xc0,0x17,0x59,0xaf,0x42,0x1,0x37,0x80,0x42,0x15,0x34,0xf0,0x42,0x8,0x38,0x8,0x43,0x66,0xf3,0x42,0xc3,0xc6,0x81,0x56,0xc2,0x12,0xab,0x3c,0x43,0x34,0xed,0x3,0xc1,0x14,0x68,0xb1,0x42,0xea,0x3b,0x41,0x43,0x4a,0xb5,0xe4,0x40,0x68,0xa8,0x21,0x42,0x98,0x48,0x1e,0x41,0x2a,0xdd,0x9f,0x42,0xca,0x28,0x59,0xc2,0x88,0x1a,0x9,0x42,0x7e,0x68,0xb6,0xc2,0x46,0x1d,0xdf,0x42,0xb,0xe5,0x4,0xc3,0xa2,0xcb,0xdb,0xc2,0xcd,0xda,0x19,0xc2,0x86,0x19,0xab,0xc1,0xea,0x9c,0x39,0x42,0xa5,0xc4,0xa7,0xc2,0x88,0x9a,0xe6,0xc1,0xe5,0xbf,0x5,0x42,0x1a,0xbc,0x75,0x40,0xaa,0xf6,0x1,0xc1,0x9a,0x75,0x84,0xc2,0xf4,0x2b,0x5e,0x42,0x1c,0x91,0xc1,0x40,0x56,0x87,0x29,0xc1,0x7c,0xd8,0xde,0xc2,0x42,0x70,0x1e,0x43,0xbe,0x9d,0x81,0x41,0x87,0x57,0xe4,0x41,0x14,0x56,0x8f,0xc2,0xa3,0xcf,0x48,0x41,0x33,0xf4,0x1d,0xc3,0xf1,0x8,0xc7,0xc2,0x30,0x9,0x8f,0x41,0x42,0x77,0xe5,0x42,0x35,0xc6,0x73,0x41,0xe0,0x7f,0xb3,0xc2,0xa,0x4a,0x8f,0x42,0x1d,0xc7,0x22,0x41,0xd0,0xf8,0xcd,0xc2,0xb8,0x7d,0x2f,0x41,0x95,0x36,0x15,0x43,0x6d,0x3,0x89,0x42,0x6c,0xd0,0xd,0xc2,0x2f,0x61,0xf,0xc3,0xb,0x4,0x92,0xc2,0xe8,0x3f,0xa8,0x42,0x48,0x89,0xb5,0xc1,0x35,0x5d,0x72,0xc2,0xd3,0xe7,0xaf,0xc2,0xb0,0xf9,0xcf,0xc1,0xd,0x10,0x35,0xc3,0x60,0xd8,0xe,0x43,0xfa,0x41,0xaf,0x41,0xc1,0x12,0xa0,0xc1,0x1c,0x1d,0xd1,0xc2,0x4a,0xbe,0x74,0x41,0x41,0xf3,0x67,0x41,0x1,0x57,0x58,0x43,0x5,0xa4,0x7,0x42,0x9,0x8e,0x12,0xc3,0x55,0x97,0x96,0x42,0x38,0x52,0xfc,0x41,0x47,0x44,0xb9,0xc1,0x52,0x38,0xf4,0xc0,0x62,0x52,0xcb,0x41,0x5b,0x26,0x7,0xc3,0x80,0x63,0x33,0x42,0x35,0x7f,0xf9,0xc1,0xb3,0x9d,0xdd,0xc1,0xc9,0xf4,0x84,0x42,0xbe,0x47,0x13,0x41,0x6e,0x55,0x6b,0xc2,0x32,0x49,0xec,0xc1,0xff,0xc5,0xca,0x42,0x9f,0x23,0x43,0x42,0x9d,0xed,0x3,0x43,0x4f,0x64,0x19,0x42,0x8c,0xc1,0x3d,0x43,0x9,0x43,0x1f,0xc2,0x64,0x50,0x33,0x41,0xd6,0x3c,0x51,0x43,0x53,0xde,0xd3,0x41,0xcd,0xef,0xc,0x42,0xff,0x47,0xeb,0xc2,0x5a,0x33,0xbf,0xc1,0x12,0x31,0x40,0x43,0xf5,0xf5,0x60,0x42,0x5d,0x7d,0x59,0x43,0x1d,0xdd,0xf2,0x42,0x94,0xd3,0xc,0xc3,0xf6,0x3,0x8,0x42,0xe2,0xad,0x6f,0x41,0xf0,0x4c,0x48,0xc3,0x97,0xd9,0xc6,0x42,0xfe,0xb5,0x8d,0x42,0x49,0xa7,0x73,0x42,0x2e,0x90,0xe2,0x42,0xed,0xeb,0x49,0xc3,0xa0,0xbd,0x15,0xc2,0xba,0x75,0xba,0xc2,0xf4,0xd4,0x8f,0x42,0xc5,0xc,0xa0,0xc1,0xbe,0x83,0x39,0xc0,0xfb,0xea,0xeb,0xc2,0x43,0x96,0x8d,0x43,0x4,0x49,0xce,0xc0,0x5b,0x5d,0xb5,0xc1,0xf3,0xe0,0x8e,0x43,0xa,0xda,0x4b,0xc3,0x17,0x8e,0xd1,0x41,0x32,0x3,0x34,0xc2,0x5f,0x78,0x99,0x43,0x8b,0xfe,0x28,0xc1,0x74,0xe0,0x94,0xc2,0xcb,0xa5,0xf,0xc1,0x20,0xf8,0xa3,0xc2,0x30,0x37,0x8,0x43,0x71,0x96,0xbf,0xc2,0x7,0xae,0x80,0x42,0x59,0x3f,0x93,0x42,0xef,0x4,0x91,0x42,0x2b,0xaa,0x2d,0xc2,0x33,0xe1,0x96,0x42,0x54,0x3b,0xa4,0x42,0x99,0xe5,0x79,0xc2,0x54,0x42,0x90,0x41,0xce,0xce,0xcf,0x42,0xd3,0x5c,0x11,0xc3,0x39,0xc,0x3e,0x41,0xe8,0x9b,0x91,0x42,0x1b,0xd3,0x82,0xc1,0x8f,0x4a,0x1e,0xc1,0xd5,0x72,0x47,0x43,0xb2,0xd8,0x51,0x43,0xeb,0xad,0x93,0x42,0x9e,0x8f,0xf9,0xc1,0x4a,0x21,0x4c,0x41,0x85,0x4b,0x6a,0x43,0x7f,0xc3,0x9,0x42,0x75,0xb8,0x95,0x42,0x3b,0xbd,0x3f,0xc3,0x94,0x67,0xc5,0xc2,0x9b,0x5d,0xe1,0xc2,0x55,0x96,0xbc,0xc1,0x40,0xd8,0xb1,0xc1,0x2c,0xbc,0x6c,0x42,0x63,0x69,0x45,0xc3,0xe6,0x33,0x19,0x43,0x24,0xa8,0xc6,0x42,0x13,0x59,0x7f,0x41,0x1e,0x56,0x8d,0xc2,0x82,0x34,0x6b,0x43,0x69,0xf1,0x41,0x42,0x65,0xf6,0x79,0x43,0xbc,0xdb,0x19,0xc3,0x3,0xc0,0x48,0xc1,0x70,0x40,0x8c,0xc2,0xb5,0x3d,0x88,0x41,0xb8,0xd0,0xac,0xc2,0x11,0x74,0x42,0xc3,0x1e,0xf9,0x24,0x43,0xec,0xa5,0x5,0x42,0x82,0xdb,0x3e,0xc2,0xb2,0x19,0x15,0xc3,0xe3,0xc7,0x50,0xc2,0x3a,0xca,0x24,0x42,0x57,0x5c,0x36,0xc1,0x22,0x1d,0x31,0x43,0x6c,0xce,0xcb,0xc1,0x32,0xba,0xed,0xc2,0x96,0x8c,0x72,0xc0,0xd8,0x2d,0xc7,0xc1,0x4f,0x40,0x6,0x42,0xa4,0x1e,0x1b,0x43,0x56,0xef,0x85,0xc1,0xb,0xa6,0x8b,0xc2,0xbd,0x2e,0x80,0x42,0xd9,0xd1,0xcc,0x42,0xf7,0x68,0xe,0x43,0x27,0x3d,0x1f,0xc2,0xec,0xcd,0xc5,0xc1,0xfe,0x6,0x95,0xc1,0xd6,0x72,0x8c,0x42,0xe6,0xfa,0x5,0xc2,0x14,0xb2,0xa7,0xc2,0x2f,0xc0,0xcd,0xc2,0xb4,0x2f,0xc4,0x41,0x60,0x53,0x19,0x43,0x52,0xef,0xba,0x42,0x62,0x11,0xdc,0x42,0xd4,0x24,0x99,0x42,0x16,0x4f,0x49,0x41,0x69,0xba,0xf1,0xc2,0xdf,0xa6,0xea,0xc1,0xc2,0xc,0x98,0xc2,0xa0,0x67,0x1e,0xc3,0xab,0x24,0xea,0x42,0xe1,0x7f,0x84,0x42,0x28,0x61,0x20,0x43,0x3,0x26,0xa7,0x42,0x3f,0x4,0x45,0x43,0xf4,0xc0,0x41,0x43,0xdd,0xf4,0x35,0x43,0x11,0x95,0x9d,0x42,0xb4,0xa2,0x85,0x42,0x2c,0xc,0x26,0x43,0xa1,0x54,0x84,0x42,0xb8,0x34,0x8d,0xc2,0x63,0xd,0x82,0xc2,0xc2,0xab,0xd4,0xc2,0x2d,0x1f,0x22,0xc2,0x4c,0x26,0xe5,0x42,0x32,0x79,0x85,0xc1,0x27,0xbf,0x84,0x42,0x28,0x31,0x14,0xc3,0xfc,0xd0,0x34,0xc2,0x90,0x5f,0x3b,0x42,0xec,0x67,0x9c,0xc2,0xf8,0x5e,0xfc,0xc2,0xb9,0x15,0x5d,0xc3,0x83,0x69,0x4,0x43,0x5,0xf,0x56,0xc2,0x31,0x6b,0xd8,0xc2,0xf9,0x91,0x3d,0x42,0x9e,0x45,0xf6,0x42,0xa0,0x48,0x46,0x42,0x2d,0xbc,0x6b,0x40,0x6c,0x25,0x66,0xc2,0x7b,0x2b,0x66,0x42,0xb5,0xb0,0xa7,0xc2,0xe7,0x7f,0x2b,0xc2,0x2b,0x64,0x7,0x42,0xce,0xdc,0x16,0x43,0x7f,0xa1,0x25,0x42,0x21,0x7,0xc8,0xc1,0x24,0x8a,0x82,0x42,0x92,0x8d,0x2f,0xc3,0x23,0xbd,0xaf,0x42,0x2e,0x33,0x19,0x43,0x7b,0x7e,0xd8,0x42,0x75,0xeb,0xc,0xc3,0x51,0xf9,0x25,0x43,0x13,0xd0,0x25,0xc2,0x36,0x61,0x87,0xc2,0x81,0x29,0x18,0xc2,0x0,0xd1,0xb,0xc2,0xf1,0xda,0x85,0xc2,0x1,0xe3,0x74,0xc2,0xc4,0x50,0x33,0xc3,0x99,0x33,0x3d,0xc3,0xc2,0x14,0x4a,0x43,0xdb,0x94,0x8e,0x41,0x87,0xcf,0x86,0x42,0xf,0xa3,0x52,0x42,0x99,0x2f,0x82,0x42,0x68,0x66,0xa,0xc2,0x42,0xbc,0x15,0x42,0x99,0x27,0x4d,0xc2,0x4b,0x38,0x3,0x42,0x3b,0xea,0x38,0x42,0x4,0xcd,0x1b,0x43,0xaf,0x55,0x8a,0xc2,0xdc,0xed,0x8f,0xc0,0x2c,0x97,0x7,0xc2,0x77,0x56,0x7e,0xc2,0x27,0x8c,0x2a,0xc3,0x3,0x53,0xae,0x42,0x50,0xbb,0xa1,0x42,0x98,0xb0,0x37,0xc0,0xe,0x5e,0x52,0xc2,0x99,0xc7,0x56,0x42,0x1c,0x7f,0xb7,0x42,0x24,0x43,0x9c,0x42,0xf4,0xcb,0x2,0xc2,0x19,0x50,0x2,0x43,0xa3,0x6d,0x70,0xc2,0x5d,0x20,0x7f,0x43,0x76,0x2e,0x88,0xc2,0x5c,0x7d,0xb7,0xc2,0xec,0x8d,0xea,0x41,0x7f,0xfc,0x80,0xc3,0xeb,0xf9,0x4d,0x43,0x29,0xe2,0x89,0x42,0x5e,0xed,0xea,0xc2,0xd1,0xb2,0xa,0x42,0x61,0x4a,0x45,0xc2,0x3e,0xfb,0xac,0xc2,0x40,0x80,0x54,0xc2,0x5d,0x1a,0x9e,0xc2,0x14,0x82,0xb3,0xc2,0x8a,0x61,0x7d,0x41,0xd7,0x18,0xd5,0xc0,0x5,0x3d,0x6c,0xc2,0xea,0x7b,0xc3,0xc1,0x13,0x61,0x6,0x41,0x19,0xd3,0xe8,0x41,0x69,0x33,0x88,0x42,0x6c,0xac,0x30,0xc2,0xca,0xd1,0x22,0xc3,0xb3,0xbf,0x22,0xc2,0x72,0x13,0x67,0xc2,0x2d,0xa4,0x80,0xc2,0x80,0x67,0x56,0xc2,0x43,0x15,0x31,0x42,0xe3,0xf0,0x4,0xc3,0x6,0xa6,0x79,0xc1,0x36,0xff,0x8f,0x41,0xc4,0x14,0x8c,0x41,0xfb,0xf6,0x31,0xc2,0xbb,0xb5,0xa,0x41,0x53,0x12,0x9e,0x42,0x5a,0xa7,0x89,0xc2,0x38,0xf4,0xa2,0x42,0x38,0x4a,0xc4,0xbe,0x79,0xed,0x52,0x42,0x45,0x83,0xbb,0xc1,0xca,0x31,0x51,0xc2,0x37,0xcf,0x12,0xc2,0x83,0xfe,0x39,0xc3,0xbd,0xf9,0xc,0x42,0x57,0xea,0x22,0x43,0x3,0x30,0xda,0x42,0x6f,0x14,0x4,0xc2,0x64,0x90,0x8a,0x42,0x3,0xa9,0x48,0x42,0xf6,0xb5,0x1f,0x43,0x5,0xd9,0x82,0xc3,0xa4,0xa8,0x42,0x40,0x55,0x77,0x3,0xc2,0xe4,0xa7,0xc,0xc2,0x41,0x2d,0x5,0xc3,0x3d,0x87,0x41,0xc3,0x18,0x57,0x4,0xc3,0xad,0x26,0x2a,0xc2,0xbc,0x8d,0x2c,0xc2,0x14,0xe5,0x45,0x42,0x48,0x5f,0xa,0xc3,0x1,0xd5,0x2d,0xc3,0x89,0xad,0x1d,0xc2,0x7e,0xaf,0xb5,0x41,0xad,0xce,0xa8,0xc2,0x8b,0x56,0x18,0x43,0x41,0xbc,0x9a,0x42,0xfe,0x86,0x7e,0xc2,0xd6,0x92,0xd0,0xc2,0x9d,0xbe,0xd8,0x41,0xf,0x6d,0xcd,0xc2,0xbf,0x91,0x10,0x42,0xb6,0xcc,0xd0,0xc1,0x30,0x54,0x9,0x42,0x8c,0xfb,0x66,0xc2,0xe3,0x2b,0xac,0x42,0x2f,0xea,0xfd,0x42,0xab,0xb1,0x7,0xc2,0x2a,0xd,0xcf,0xc0,0x9,0x26,0x1f,0xc2,0xc0,0xfb,0xb3,0xc2,0x29,0x59,0x81,0xc2,0xb2,0xf8,0xc7,0x42,0x74,0xa3,0x1a,0xc1,0x3c,0x8a,0xde,0xc1,0x4c,0x0,0x3f,0xc2,0xfa,0x26,0xda,0xc2,0x90,0x72,0x43,0xc2,0x32,0x79,0x4c,0x40,0x13,0xdb,0x4c,0x43,0xc2,0xe3,0x84,0xc2,0x61,0x1b,0x75,0xc1,0x98,0x99,0xe,0xc2,0x7a,0xd2,0xaf,0x41,0x6b,0xef,0x32,0x43,0x1f,0x9f,0x59,0xc2,0x82,0x18,0x89,0x41,0xd3,0x31,0x5,0x43,0x42,0x3,0x7b,0x43,0x7f,0xb6,0x5,0xc3,0xac,0x48,0x4,0x42,0x26,0xbb,0x51,0x41,0xb7,0x56,0xe3,0x41,0xec,0x61,0xa4,0x42,0xf9,0xfe,0x4,0x43,0x44,0x7,0x14,0x42,0x62,0xf0,0xb8,0xc2,0xad,0x60,0x2,0x42,0xa4,0xa7,0xe,0x43,0xc2,0xe4,0xa4,0x42,0x71,0xa3,0x19,0x42,0xda,0xb0,0x25,0x42,0x0,0xa5,0x91,0xc1,0x33,0x5f,0x89,0xc2,0x1,0x1d,0x54,0xc3,0xb0,0x81,0xab,0xc2,0x10,0xb2,0xa0,0xc0,0x63,0x27,0x0,0xc3,0x3e,0xdc,0xbb,0x42,0x87,0xc0,0x10,0x43,0x4e,0x7e,0x10,0xbf,0x8f,0x4d,0x48,0xc3,0x8e,0xcd,0x8a,0xc1,0x81,0xab,0xb8,0xc2,0x82,0xb5,0xb8,0xc2,0xbe,0xbb,0x19,0xc2,0x17,0x9d,0xf9,0xc2,0x62,0xbd,0xbc,0xc1,0xed,0x15,0x6,0x42,0x90,0xd,0xb9,0xc2,0x3e,0x41,0xb,0xc2,0x5c,0x16,0x9,0xc3,0xde,0xf4,0x8e,0xc2,0x92,0xac,0x8b,0x42,0x6b,0x93,0xfd,0xc0,0xf3,0xa1,0x99,0xc2,0x21,0x3f,0x57,0x42,0xa1,0x89,0x62,0x41,0x8b,0x4a,0x8,0x43,0xa4,0x9b,0x16,0xc1,0x25,0xd9,0x48,0x42,0x20,0xe6,0x72,0xc2,0xfc,0xa5,0xfd,0x3f,0xca,0x64,0x77,0x41,0xa7,0x85,0x28,0xc3,0x98,0x7d,0x91,0x42,0x48,0x93,0x20,0xc2,0xcf,0xee,0x10,0x43,0x88,0xca,0x96,0x43,0x27,0x30,0x8b,0x42,0x9c,0xf2,0x12,0x43,0x8b,0x2e,0x51,0x42,0xee,0x63,0xa5,0x42,0x74,0x2b,0xf3,0x42,0x27,0xfd,0x70,0xc2,0xd8,0xe1,0x9,0x41,0xf8,0x64,0x13,0xc3,0x48,0x74,0xde,0x42,0x5b,0x4a,0xdb,0xc1,0x33,0xca,0x2,0xc1,0xc8,0xf7,0xc4,0x41,0x7e,0x8,0xbe,0x42,0x1e,0xfa,0xd6,0x42,0xa,0x4b,0x3,0xc3,0xee,0x41,0x18,0xc0,0xf3,0x62,0xb7,0x42,0xd8,0x45,0xf,0xc3,0xa8,0xb1,0x2e,0xc1,0xd0,0xc1,0xe3,0xc1,0xc9,0x2e,0x51,0x42,0x2f,0x93,0xf1,0x42,0xb0,0xa5,0x1c,0x41,0x79,0xfb,0x90,0xc2,0xd4,0x8e,0xd1,0xc2,0xb,0xfc,0xe3,0x41,0x6e,0xab,0x4b,0xc3,0xdc,0x83,0xe0,0x41,0x46,0xf9,0xb5,0x42,0x5a,0x2,0x8e,0x42,0x18,0xb1,0x7,0xc3,0x8f,0x5,0xdd,0xc2,0x9e,0x5d,0x1,0x42,0xb8,0xae,0x7,0xc3,0x84,0x47,0xd2,0x42,0x34,0x73,0x24,0xc1,0xf8,0xfe,0x49,0x42,0xaa,0x39,0x65,0x42,0x9e,0x73,0x11,0xc2,0xd9,0x94,0xa8,0xc2,0xda,0xca,0xf7,0xc2,0x8b,0xa2,0xe,0x42,0xb,0x5,0xad,0xc2,0x91,0x49,0x6,0xc2,0x58,0x20,0xaa,0xc2,0x59,0x16,0x1b,0x42,0x1a,0xd9,0x5d,0xc2,0x61,0x63,0x73,0xc2,0x9a,0x77,0xe1,0xc2,0x9,0x43,0x25,0xc2,0x60,0xb4,0xa,0xc3,0x69,0x58,0xca,0xc1,0x8d,0xd0,0x63,0x43,0xfa,0x4b,0x9c,0xc1,0x2d,0x6c,0xc9,0xc2,0xc6,0x64,0xd4,0x42,0x3,0xa5,0xaa,0x41,0x48,0x5c,0xeb,0xc1,0xd,0xa9,0x6c,0x42,0xa1,0x1b,0x63,0x42,0xbc,0x43,0x83,0x41,0x42,0xcf,0xba,0xc2,0xb2,0x34,0xc,0xc2,0x5c,0x3d,0xc7,0x42,0xd2,0xa5,0xf4,0x41,0xd7,0xcf,0x72,0x43,0xc3,0x78,0xba,0xc2,0x1e,0x4b,0x64,0xc1,0xf0,0xcb,0x7f,0x42,0xb3,0xa6,0x37,0xc3,0x65,0x63,0xb2,0xc1,0x98,0xf2,0x22,0xbf,0x47,0x70,0x28,0x43,0xd,0xac,0x6d,0x41,0x56,0x27,0x2f,0x41,0xa2,0x44,0x1d,0x42,0xfa,0xbb,0x6e,0xc1,0x78,0x8f,0xd5,0xc2,0x7a,0xde,0x81,0xc2,0x54,0xc1,0xc7,0x41,0x2a,0xd6,0x8,0x43,0x2e,0x40,0xd0,0xc1,0xbf,0xd0,0x6b,0xc2,0x66,0xaf,0xdb,0xc2,0x6e,0x8d,0x82,0xc2,0x74,0xbd,0x19,0xc3,0x7c,0xbe,0x15,0x42,0x42,0x6b,0x7b,0xc2,0x5d,0x9b,0xf3,0xc2,0xf6,0xd5,0x72,0x42,0x2b,0xbb,0x43,0x43,0x35,0x16,0xd7,0xc1,0xfb,0x17,0x1c,0xc3,0x0,0x94,0xbf,0xc2,0x56,0x9,0xf5,0xc2,0x68,0x2e,0x87,0x42,0x77,0xf1,0xa2,0x42,0x4,0x52,0xa1,0x42,0x48,0x9a,0x70,0x42,0xc0,0x45,0xd7,0xc0,0xc2,0x6f,0x64,0xbf,0xfd,0xfe,0x94,0x42,0xd4,0xc,0xd0,0xc2,0xa,0xaf,0x85,0xc2,0x5d,0x66,0xc0,0x41,0x44,0xda,0x84,0xbf,0xd2,0x5,0x16,0x43,0x13,0x48,0x6e,0x42,0x97,0x54,0xe6,0xc2,0xbf,0x12,0xb4,0xc2,0x6a,0x79,0xd3,0x42,0x20,0x7c,0x4f,0xbf,0xe8,0x16,0xd,0xc3,0xf0,0x91,0x9b,0x41,0x35,0xab,0x90,0xc2,0xc1,0xd5,0x86,0x41,0x12,0x87,0x31,0x43,0xa8,0xf2,0x1c,0x42,0xeb,0xad,0x57,0xc2,0xc9,0xb9,0x31,0xc2,0x5d,0x95,0x8b,0xc2,0x14,0xcc,0x2b,0x42,0xd0,0x24,0xb4,0x42,0x1c,0xbf,0x2e,0x42,0x9d,0xcf,0x40,0xc2,0x26,0x3e,0x95,0xc1,0x21,0xce,0xd4,0xc2,0x47,0x33,0x53,0xc2,0x48,0xdd,0xc8,0x42,0xe3,0x84,0xed,0xc2,0x4a,0xbe,0x45,0xc2,0x5b,0xa0,0x82,0xc2,0x7f,0x32,0x9d,0xc2,0xbb,0xf4,0x90,0x42,0xf2,0xb5,0xb7,0x42,0x2f,0xea,0x27,0xc1,0xb7,0xe8,0x32,0xc3,0x87,0x67,0xfc,0xc1,0x50,0x5c,0x87,0xc2,0x4b,0x47,0x27,0xc3,0x7e,0xd,0x8b,0xc2,0x80,0x8,0xe3,0x42,0x44,0x8c,0x15,0xc2,0x32,0x9f,0x5b,0xc2,0xc0,0x6b,0x25,0x43,0xd9,0x1d,0x2,0x43,0x1f,0x2d,0x15,0x42,0x65,0x89,0x26,0xc3,0xbc,0x44,0xdf,0x41,0x61,0x61,0xa1,0xc2,0x58,0x37,0xd9,0xc2,0x4,0xe0,0x87,0xc1,0x38,0x3f,0xe8,0xc1,0x5c,0xb8,0x94,0xc2,0x1c,0x77,0xc3,0x42,0xc6,0x19,0x5d,0x42,0x2e,0xbd,0x55,0xc2,0xa5,0xde,0xad,0xc2,0xe,0xd0,0xab,0xc1,0x1,0x37,0x50,0xc2,0x77,0xac,0x9b,0xc2,0x6c,0x55,0x13,0xc2,0xba,0xed,0xae,0xc1,0x33,0x9b,0xc2,0xc1,0x3a,0xf4,0xf,0x42,0x21,0x32,0x31,0x42,0x93,0x62,0x93,0xc2,0x34,0x47,0x7,0xc3,0xa8,0x2d,0xde,0xc2,0xd,0x38,0x4f,0xc2,0xea,0x7b,0x33,0xc2,0xd,0x98,0x84,0x42,0xe,0x11,0x0,0xc2,0xa5,0x9b,0x2,0xc1,0xb8,0xe8,0xec,0xc1,0x6d,0x6d,0xbf,0xc0,0x72,0xc7,0x5,0xc2,0x1b,0xdf,0x6d,0xc1,0xbe,0xc0,0xc0,0xc1,0x4d,0x55,0x11,0x43,0x3c,0xe6,0xcd,0x42,0x57,0x4d,0xed,0x41,0x50,0x4,0xd8,0x42,0x89,0x1c,0x5,0xc2,0xab,0x6c,0x86,0xc2,0x49,0x98,0x7d,0x41,0xb5,0xde,0x21,0xc2,0x86,0xf6,0x9b,0xc0,0xb2,0x1e,0xb7,0xc2,0x2c,0x34,0x48,0x42,0x4,0x4a,0xe5,0x42,0xa6,0x9b,0xa,0x42,0xc0,0x97,0x62,0xc2,0xce,0x98,0xce,0x41,0xe8,0x51,0x88,0x42,0xbb,0x8a,0xd7,0xc1,0xa1,0xe3,0xda,0xc1,0x92,0xd6,0xdc,0xc1,0x5b,0x4f,0x82,0xc2,0xf3,0xfb,0x2c,0xc2,0xfb,0xa9,0xd8,0x42,0xed,0x0,0x2,0x42,0x65,0xe4,0x27,0x42,0x5c,0x27,0xa0,0xc2,0xdf,0xe3,0x2,0xc3,0x4c,0x40,0x1b,0x42,0xbd,0xc3,0x32,0x43,0x45,0xd4,0xf0,0xc2,0x44,0xe3,0x60,0xc0,0x93,0xbb,0x9e,0xc2,0x38,0x99,0xfa,0x41,0x85,0xa5,0xa,0xc3,0xb8,0x8d,0xff,0xc2,0x95,0xca,0xa1,0x41,0x0,0xef,0x97,0xc2,0xd4,0xff,0xbc,0xbf,0x8f,0x9b,0x47,0x43,0x3b,0x74,0x4c,0xc3,0x92,0x10,0x34,0xc3,0x8f,0x72,0x24,0xc2,0xae,0x2a,0x8a,0xc2,0xa6,0xaa,0xb2,0xc2,0x55,0x15,0x87,0xc2,0x39,0x7,0x91,0xc2,0x29,0xe1,0x16,0x42,0x18,0x39,0x8,0xc3,0x5a,0x19,0x1,0x42,0x8c,0x83,0xb7,0x42,0x54,0xf8,0x8d,0x42,0xcc,0xa2,0x7b,0xc0,0x8e,0xa4,0x57,0xc3,0x46,0x6c,0x80,0x42,0xca,0xd7,0x80,0xc2,0x6d,0x73,0x96,0xc1,0xca,0x8,0x91,0xc0,0x44,0x90,0xb,0xc1,0xb2,0x9d,0xcb,0x40,0x79,0x8c,0xb2,0xc2,0x25,0x61,0x98,0x41,0x6d,0xe6,0xd5,0xc1,0x5f,0x44,0xe2,0x40,0x62,0xd,0x7f,0xc1,0xb1,0x6e,0xed,0xc2,0xa4,0x36,0x1,0xc2,0x5,0x49,0xef,0x41,0xfa,0xee,0x40,0x41,0xe,0x86,0xc9,0xc2,0x30,0xee,0xf4,0xbf,0xc1,0x54,0x63,0xc2,0x97,0x72,0xa0,0x42,0x18,0x20,0xc2,0xc0,0x32,0xa8,0x64,0x42,0xe1,0xcc,0x72,0x42,0x7e,0x56,0xdf,0x42,0x18,0x7,0xc8,0xc2,0x64,0x3,0xa0,0x42,0x4c,0x92,0x1f,0xc2,0xc1,0x89,0xc6,0x42,0xf2,0xd9,0x16,0x42,0x9c,0x36,0xc7,0x41,0xfc,0x9a,0x55,0x42,0xa1,0x82,0x0,0xc3,0x17,0xfe,0xf8,0xc1,0xdc,0x96,0xb6,0x40,0x39,0xcb,0xa8,0xc2,0xa9,0x64,0xea,0xc1,0x8c,0x80,0x9b,0x3e,0xaa,0x86,0x78,0xc1,0x5f,0xf2,0x7b,0xc2,0x79,0x9,0x58,0x42,0xc8,0x9b,0xe3,0xbf,0xd9,0x79,0x17,0xc2,0x4d,0x6e,0x8b,0xc2,0xd4,0x17,0x86,0xc1,0xfa,0x3f,0x2,0xc2,0xa2,0x46,0x4e,0xc1,0x96,0xa4,0xf,0xc3,0x3a,0xd4,0x9d,0x42,0xbd,0x56,0xc2,0xc1,0x9c,0xce,0x3d,0x41,0xf,0xde,0x93,0x41,0xce,0xcb,0xd2,0x42,0x4a,0x8a,0xa0,0xc1,0xc3,0x63,0x7c,0x42,0xaa,0xa,0x3d,0xc2,0xa3,0xe3,0xc0,0x40,0xc1,0x78,0x9a,0x42,0x2e,0xed,0x44,0xc2,0x1,0x38,0x91,0xc3,0x1b,0x7a,0x23,0x43,0x1f,0xd7,0xbc,0x42,0x9d,0xdf,0x21,0x42,0x2f,0x20,0x45,0xc3,0xb4,0xbd,0x84,0x43,0xb8,0x60,0x2,0x41,0x74,0x38,0x42,0x42,0xb5,0xf0,0xb5,0x42,0xa2,0xc7,0x24,0x42,0x28,0x59,0x35,0x42,0x8f,0xaf,0x2f,0xc2,0x84,0x25,0x5,0x43,0x3b,0xef,0x26,0x43,0xee,0x7,0xab,0x42,0xf9,0x65,0x4f,0x41,0xfb,0x1a,0x49,0x43,0x20,0x18,0x87,0x41,0xc2,0x78,0xe8,0xc2,0x21,0x69,0x41,0x43,0x1c,0x89,0xcc,0xc1,0xa8,0x83,0x45,0x43,0x16,0xe0,0x2,0x43,0xca,0x45,0x57,0x41,0x19,0xae,0xed,0x42,0x8e,0x2e,0x73,0xc2,0x28,0x39,0x12,0x41,0x53,0x4b,0xaf,0x41,0x19,0xd7,0xd7,0xc2,0xa0,0x2e,0xba,0x3d,0x72,0x71,0xd5,0x42,0xa1,0x4b,0xdc,0xc2,0xb6,0x28,0x4f,0x43,0x5d,0xce,0x27,0xc1,0xce,0xf1,0x62,0xc2,0x75,0x1b,0x10,0xc3,0x71,0x65,0xa1,0xc2,0xa8,0xa6,0x82,0xbe,0x70,0x3e,0x8a,0xc2,0xda,0xee,0x37,0xc3,0x37,0x73,0x44,0x43,0x80,0xcb,0x3b,0xc2,0x11,0xe6,0xca,0xc2,0xb1,0x2f,0xb2,0xc2,0x12,0x2c,0xe8,0xc2,0xec,0xf7,0x4,0xc3,0xa1,0x9,0xc,0xc3,0xb2,0xf6,0x30,0xc3,0x1c,0x1d,0x76,0xc1,0xdd,0x59,0x3d,0x42,0xe7,0xf6,0x3,0xc3,0x20,0xda,0xd4,0x42,0x87,0x37,0xba,0xbf,0x9a,0x4e,0xda,0x42,0x8b,0xf,0xac,0x42,0xdb,0x97,0xe2,0x42,0x93,0xed,0xe,0x43,0xa2,0x8b,0xe3,0x42,0x1b,0xa,0x3a,0xc3,0xd6,0x1c,0xd7,0xc1,0x2e,0x6c,0xd,0x43,0x4e,0x91,0x8f,0x41,0x81,0xf1,0x14,0x43,0x9a,0xd3,0x65,0xc2,0xf9,0x57,0x2f,0xc2,0xc4,0xfc,0xdb,0x42,0xab,0x96,0x3e,0x43,0xcc,0xc2,0xce,0x41,0x4e,0x30,0xc4,0xc2,0xd5,0x29,0xe2,0xc2,0x81,0x58,0x23,0xc2,0x3f,0x25,0x99,0xc2,0x90,0x3c,0xf8,0x42,0x38,0xda,0x9d,0xc1,0xe9,0xca,0xf8,0xc2,0xbb,0x9,0xdf,0x42,0x4a,0x25,0xf,0x41,0x33,0x51,0x7d,0xc2,0xd4,0x56,0x94,0xbf,0xd8,0xa1,0x15,0x43,0x4f,0xc5,0x2,0x43,0x6e,0x11,0x89,0xc0,0x84,0xac,0xd0,0x42,0x51,0xda,0x81,0xc1,0x37,0x15,0xd4,0x42,0x32,0x53,0x9b,0xc2,0x1c,0x4e,0xa9,0xc2,0xec,0x49,0xeb,0x41,0xf0,0xcc,0x1a,0x42,0x31,0x24,0x1d,0xc3,0xae,0x83,0xaa,0x41,0xfa,0xfa,0xa6,0x42,0x6f,0xb0,0xbd,0xc0,0xa9,0xf2,0xc,0x42,0x2b,0xa3,0x9,0x43,0x6a,0xa1,0x9a,0xc2,0xd6,0xf7,0x4b,0x42,0xbe,0x26,0xce,0x42,0xe,0x18,0x8e,0xc2,0x4b,0x89,0x13,0x43,0x9c,0xb6,0xc,0xc2,0xc0,0x37,0x15,0xc3,0xdf,0x41,0xe9,0xc2,0xa3,0xf,0xbd,0x41,0x52,0x22,0x21,0xc2,0x6a,0x6a,0xed,0x42,0x34,0x8d,0xdc,0xc1,0x46,0x92,0x77,0x42,0x77,0x10,0x45,0xc2,0x2b,0xd4,0xdc,0x41,0x2e,0x3f,0x5a,0x42,0x94,0x4d,0x4,0x43,0xd5,0xb,0x10,0xc2,0x46,0x78,0x2b,0x42,0xe2,0xb6,0x9f,0x42,0x73,0x5b,0xf7,0x41,0xae,0xaa,0x4d,0x42,0x3c,0x53,0x5,0xc1,0x23,0x55,0xb3,0x42,0xb8,0x91,0x9f,0xc2,0xa0,0xec,0x26,0x42,0xe8,0x38,0x64,0x42,0x5e,0x56,0xc9,0xc2,0xc8,0xa9,0x6a,0xc2,0x74,0x6f,0x4c,0xc2,0xcc,0xdd,0x9b,0xc1,0x9e,0xcd,0xb0,0x41,0x81,0x9,0x87,0x42,0x2b,0x4e,0x4,0x43,0x3f,0xe0,0xbf,0x42,0xbc,0x83,0xca,0xc2,0xf2,0xe3,0x6c,0x41,0x7d,0x7e,0xf4,0x42,0x18,0x14,0x40,0x42,0x51,0x66,0xb9,0xc2,0xad,0x6e,0x99,0x42,0xe6,0xaa,0xc3,0x42,0x90,0x42,0xb3,0xc2,0xca,0xb9,0x1e,0x43,0x5a,0x41,0x53,0x41,0xa8,0xcd,0x88,0xc2,0x82,0x96,0x3e,0x43,0x56,0x6f,0xf4,0xc2,0xba,0xfb,0xac,0xc2,0x65,0xf0,0xc9,0x42,0x64,0x9a,0x11,0x42,0xfc,0xfe,0xd7,0x42,0x3a,0xe9,0x86,0xc2,0xe4,0x8c,0x96,0x42,0xb3,0x27,0x3c,0xc2,0xed,0x21,0xcf,0x41,0x41,0x10,0xcd,0xc2,0x44,0xf3,0x69,0xc2,0x2a,0x10,0x55,0xc2,0xe3,0xb1,0x2c,0xc3,0xc7,0x29,0x29,0x43,0xb7,0x77,0xcc,0x42,0x81,0x4f,0xfb,0xc2,0xa8,0x74,0x3c,0x43,0x62,0x5c,0x99,0x42,0x60,0xc5,0xb2,0xc1,0x5f,0x6c,0x44,0x42,0x23,0x80,0x91,0xc1,0x72,0xd,0xf2,0xc2,0x74,0xbc,0x72,0x42,0x41,0xba,0x45,0x43,0xc2,0xcb,0x80,0x43,0x33,0xd5,0x5e,0x42,0x4a,0x2,0xf0,0x42,0x27,0x2,0x8c,0xc3,0xab,0xca,0xc,0xc3,0xd9,0x72,0xc,0x43,0xd2,0xb9,0xdb,0xc0,0xb0,0xdd,0x88,0xc2,0x24,0xa1,0x9f,0xc1,0x6c,0xa0,0x80,0xc2,0xc6,0xc7,0x50,0x42,0x2,0xcb,0x6c,0x42,0x9c,0x37,0x8f,0x42,0xb8,0xf5,0x7,0xc2,0xc9,0x5c,0x9e,0x42,0x16,0x9f,0xbb,0xc0,0xd9,0xe5,0xf,0xc3,0xa,0x74,0x55,0xc3,0x16,0xfd,0x37,0xc1,0x5,0xa1,0x58,0xc2,0xde,0xc1,0xa8,0xc1,0x7f,0x98,0x21,0x42,0xad,0x6d,0x31,0x43,0x50,0x38,0x8,0xc3,0x78,0xfc,0xf3,0xc1,0x7b,0xa2,0xd6,0xc1,0x87,0x5,0x17,0x43,0xf4,0x6c,0xcb,0x41,0xf5,0x68,0x97,0xc2,0x77,0x6d,0x69,0xc2,0x5e,0x8e,0x53,0xc2,0xf3,0xdb,0x84,0xc2,0x0,0x4,0x17,0xc3,0xbc,0xda,0xb8,0x40,0x71,0xfb,0x26,0x41,0x11,0x42,0x59,0x42,0x4b,0x75,0xbe,0xc2,0x12,0x5f,0xd0,0x42,0x1b,0x39,0x61,0x42,0x5b,0x79,0xa0,0x42,0xf0,0xca,0xec,0x42,0x58,0xd6,0xe0,0x42,0x54,0x9c,0x12,0xc3,0x4c,0xdc,0x8f,0x42,0x97,0xcc,0x80,0xc1,0xa1,0x64,0x2c,0x42,0xe,0xe4,0x2,0x43,0x6f,0x44,0x6d,0xc1,0x53,0x8c,0xd5,0x41,0xcc,0xd3,0x5b,0x43,0x62,0x48,0xeb,0xc1,0x9,0xd8,0xb,0x43,0xf6,0xa3,0x96,0x43,0x0,0x9f,0x12,0xc0,0x4e,0xf6,0x10,0x43,0x74,0x7b,0xb0,0x42,0x2e,0xf5,0xe6,0xc2,0x30,0xe0,0x4,0xc3,0x23,0xce,0x48,0x42,0x1f,0x9c,0x4e,0x43,0x52,0xc7,0xb0,0xc1,0xd1,0x88,0x10,0x42,0xaa,0xa5,0x13,0x43,0x1,0x5c,0x6e,0xc2,0xa4,0xa4,0x64,0xc2,0xb0,0xa6,0xf3,0xc2,0x79,0xb6,0xb1,0x42,0xbb,0xd8,0x2b,0xc2,0xda,0xd4,0xef,0xc2,0x98,0xf5,0x3a,0xc2,0x53,0x26,0xdd,0xc2,0x28,0xcb,0xf4,0xc2,0xa1,0xc1,0xb4,0xc1,0x89,0x12,0x28,0xc2,0xf6,0x1f,0x8c,0x41,0xa,0xb8,0x4c,0x43,0x99,0x7c,0x2d,0x43,0x3b,0x14,0x4,0xbf,0x3c,0xa,0x14,0x40,0xa7,0x10,0xdc,0x41,0x2f,0x68,0x2a,0xc2,0x9d,0x10,0x57,0xc2,0xaf,0xc0,0xd6,0xc2,0x2b,0x95,0x83,0x42,0x7d,0x35,0x8a,0x42,0x74,0xe7,0x80,0x41,0x2f,0x3,0x6b,0x42,0x36,0xa2,0xba,0xc1,0x43,0x29,0x1e,0xc3,0x80,0xd2,0x2e,0x43,0x47,0x22,0x9e,0xc2,0x4d,0x5,0x9b,0x42,0xa1,0x0,0x20,0xc3,0x3,0x3f,0x7e,0x42,0x18,0x4e,0x7b,0x42,0xd,0x28,0xb0,0x41,0x2a,0x78,0xcb,0xc2,0x2f,0x3d,0x14,0x43,0x4f,0xa9,0x87,0x42,0xaa,0x2b,0x92,0xc1,0xc9,0x78,0xf1,0x42,0xf,0x3b,0x8b,0x42,0xf0,0x57,0xa8,0xc2,0x5d,0xec,0x54,0x41,0xeb,0x8f,0x99,0x42,0xf8,0xa2,0x1,0xc2,0xce,0x30,0xe4,0xc0,0x26,0xc6,0x9f,0xc2,0xb9,0x9d,0xe9,0x42,0x73,0x2d,0x25,0xc3,0x2f,0xa0,0x8c,0xc2,0xba,0xd9,0xe2,0x42,0x2e,0xf5,0x97,0xc0,0x95,0xb1,0x26,0x42,0xae,0x6e,0x61,0x42,0xd6,0x9d,0xe9,0xc1,0xaa,0x66,0x7,0x42,0x38,0x3a,0x8f,0xc2,0xd1,0x2a,0xaa,0xc2,0xc9,0xe1,0x42,0x42,0xcb,0xee,0x13,0xc3,0x15,0x8f,0xcb,0xc2,0x25,0x18,0xb1,0x41,0x36,0x3e,0xf1,0x42,0x7e,0xf4,0xe4,0x42,0x1e,0x73,0x35,0x42,0xd7,0x60,0xa5,0xc1,0x42,0x84,0x61,0xc3,0xc0,0x2c,0xfb,0x42,0x8d,0x57,0xe1,0xc2,0xc0,0xe6,0x39,0x43,0x18,0x86,0x5c,0x43,0xd0,0x26,0xb2,0xc1,0x60,0xc5,0xe,0x43,0x18,0x80,0x6a,0xc2,0xc4,0x37,0xc1,0xc2,0xa8,0xa3,0x80,0xbf,0x12,0xc6,0x8f,0xc3,0x3e,0x4d,0x3f,0xc2,0x9,0x4b,0xf6,0xc2,0x5f,0xa9,0xaf,0xc1,0x49,0xf9,0xc9,0x40,0x2f,0xfb,0x91,0xc2,0x4e,0x6d,0x6a,0xc2,0xf9,0xec,0xbe,0xc2,0xf2,0xc9,0x46,0x42,0x12,0x43,0x76,0xc2,0xb8,0xc9,0x33,0x42,0x5f,0xf,0x9,0xc3,0xef,0x7,0x5b,0xc3,0xa,0x3d,0x6,0x43,0x5c,0x4d,0xcf,0xc0,0x4e,0xe1,0xa8,0x42,0x8,0x42,0x14,0x43,0x1c,0xd3,0x1c,0xbf,0xd3,0x65,0x94,0x42,0x65,0xa3,0x68,0x42,0xe7,0xca,0x15,0xc2,0x32,0xa5,0x4d,0xc2,0x56,0x68,0xaa,0xc2,0x61,0x33,0xd0,0xc2,0x43,0xdc,0xae,0xc2,0x70,0x40,0x3a,0xc3,0x90,0x8,0x8a,0x40,0xce,0xc,0xd0,0x41,0xbb,0xc4,0x34,0xc2,0x41,0x33,0xb6,0xc2,0x61,0xff,0x24,0xc3,0x7a,0x67,0x14,0xc2,0xfa,0xe3,0xc6,0x42,0x6e,0x2c,0xb2,0x42,0x6f,0x82,0x27,0xc3,0x79,0x52,0xb1,0xc2,0x83,0xb1,0x2,0x42,0xca,0x35,0xb7,0x42,0x30,0x71,0xff,0xc2,0x2b,0xa0,0xc0,0x41,0x11,0x47,0x3e,0xc2,0xb0,0x94,0x29,0x43,0x21,0xee,0xf,0xc2,0xc0,0x7d,0xbd,0x41,0x68,0xd,0x44,0x42,0xef,0x12,0xba,0xc2,0xc0,0xea,0xba,0x42,0x6f,0xf1,0x25,0xc2,0xf9,0xee,0xde,0xc2,0x42,0xbc,0xa5,0xc1,0x2c,0x5d,0xe,0xc3,0xb2,0x15,0x6a,0x42,0x13,0xe1,0xa6,0xc2,0x88,0x65,0x2d,0x42,0x5a,0x39,0x4e,0xc3,0x46,0x13,0xab,0xc1,0x3c,0xdd,0xb7,0x41,0x9d,0xdd,0xfa,0x42,0x4a,0x44,0x3c,0x41,0x7a,0xa0,0xf8,0x42,0x9e,0x1d,0x35,0xc3,0x3a,0x75,0xb0,0xc1,0x32,0x7,0x51,0xc2,0x59,0xc8,0x59,0x42,0x93,0xe4,0xc3,0xc2,0x38,0xec,0x5c,0xc3,0x9a,0xc0,0x1f,0xc3,0x68,0xab,0xa5,0xc2,0xa0,0xf3,0xa5,0x42,0x8,0xc3,0x68,0xc1,0x9a,0x74,0x90,0x42,0xa6,0x6b,0xb0,0xc2,0x66,0xc3,0xac,0xc2,0x15,0xeb,0x70,0x42,0xb1,0x87,0x9,0x43,0x7f,0x1,0xc7,0xc2,0x1b,0xb6,0x52,0xc2,0x8,0x51,0xff,0x41,0xdb,0x69,0x29,0xc1,0x7b,0xbf,0x6e,0xc3,0x4c,0xff,0x75,0xc2,0xc8,0x96,0xa,0x43,0x6f,0xb4,0x1a,0x43,0x4d,0x5f,0xd2,0x42,0x46,0x16,0x65,0x42,0x25,0x75,0x7a,0xc2,0x2f,0xc9,0x33,0xc2,0x8f,0x11,0x76,0xc3,0x66,0x66,0xc8,0x42,0x23,0xd,0x47,0xc3,0x49,0xe7,0xdb,0xc2,0xcb,0xdc,0x16,0xc2,0x66,0x76,0xd,0xc3,0x44,0x69,0x79,0x3f,0x55,0xee,0x9a,0x41,0xb,0x85,0x52,0xc3,0xac,0x59,0x1,0xc2,0xaf,0x7b,0xd7,0xc1,0xaf,0x9,0xbb,0x41,0x75,0xae,0x4,0xc2,0x8a,0x98,0x78,0x42,0xcd,0x86,0xb8,0x42,0xee,0xa7,0x1b,0xc3,0xc8,0xf,0xb6,0xc2,0xe0,0xb7,0x56,0x43,0x6,0xbe,0xc5,0xc2,0x24,0xb9,0xac,0xc1,0xc,0xe9,0x29,0xc2,0x94,0x90,0xc7,0x41,0x99,0x41,0x10,0x42,0x37,0xd7,0x2c,0x42,0xb5,0xac,0xf3,0x42,0xe0,0x79,0x4a,0x41,0x4a,0xd8,0x5c,0x41,0x15,0x5f,0xcd,0x41,0x4,0xe7,0x8c,0x42,0x2d,0x82,0xe1,0xc1,0x6c,0xa3,0xab,0x42,0x1c,0xf0,0x4f,0x42,0xc1,0xb0,0xd2,0xc2,0x40,0x3e,0x86,0xc3,0x86,0x21,0x5b,0xc2,0xc3,0x4f,0xb,0x42,0xb8,0x7a,0xc6,0x42,0xbd,0xb2,0xc,0xc3,0x52,0x4b,0xee,0x41,0xae,0x98,0xd9,0x42,0x81,0x84,0xf2,0xc2,0x4b,0xcd,0xd,0x42,0x8f,0x73,0x9c,0x42,0x9d,0x6,0xd9,0xc2,0x46,0x9f,0x2,0xc3,0x5b,0x84,0x73,0x42,0x85,0x28,0x85,0x42,0x84,0xde,0x71,0xc0,0x3a,0x8e,0xa6,0x42,0x69,0xdf,0xd9,0x42,0x4f,0x10,0x10,0xc2,0xc2,0x1,0xec,0x42,0x7d,0xba,0xcd,0x42,0x1a,0x6a,0xdd,0xc2,0xa,0x53,0x75,0x41,0x16,0x92,0xda,0xc0,0x65,0xa7,0xe,0x42,0x1f,0x9f,0x84,0x42,0x93,0xb4,0xa4,0xc2,0x45,0xbe,0x74,0x42,0xda,0x1e,0x23,0x42,0xee,0xe2,0x5a,0xc2,0x1a,0x4d,0xcd,0xc2,0x48,0xf2,0x98,0x41,0xcc,0xfe,0x30,0xc2,0x89,0xc4,0xf8,0xc0,0xf2,0x49,0xde,0xc2,0x3,0x1e,0xd5,0x42,0xc0,0x8f,0x4,0x42,0x84,0x29,0x58,0x42,0xcb,0x6d,0x47,0x43,0xa3,0x5,0xf2,0xc1,0x55,0x44,0x0,0x43,0x38,0x81,0xfb,0xc2,0x30,0x23,0x4,0x42,0xdc,0xc8,0xc9,0xc1,0x15,0xd6,0x64,0xc2,0x67,0x54,0x40,0x42,0xbf,0xf6,0xa3,0x42,0xd1,0x1e,0xbe,0xc2,0xa3,0x27,0x85,0xc2,0x70,0x3d,0x28,0x41,0x4d,0x83,0xb3,0xc2,0xc7,0x24,0x90,0x42,0x29,0xd1,0xef,0x42,0x4,0xab,0x3e,0xc1,0x34,0x4b,0x33,0xc0,0x2,0x3,0x40,0x42,0x9e,0xff,0x13,0xc2,0x16,0xc8,0x60,0xc2,0x67,0x24,0x13,0xc3,0x66,0xad,0xad,0xc2,0xca,0x98,0x90,0xc2,0x74,0xbb,0x1,0x43,0x83,0xb4,0x5c,0xc2,0x41,0xa,0x24,0x43,0x4d,0x7f,0x2f,0xc3,0x9e,0x5f,0xf7,0x42,0x86,0x6b,0x42,0x42,0x18,0x63,0x17,0x42,0xa5,0xfa,0xa7,0xc1,0x7b,0xaa,0xac,0xc2,0x87,0x2d,0x11,0xc3,0x64,0xe2,0x45,0xc3,0xcf,0x37,0x0,0xc3,0xc3,0x8b,0x1a,0xc3,0x81,0xf9,0x7d,0x42,0x95,0x1e,0xd9,0xc2,0xf1,0x84,0xc4,0x42,0x3f,0x35,0x1a,0x43,0x97,0x17,0x80,0x42,0x1a,0x2f,0x10,0x42,0xac,0x2,0xb4,0x40,0xf,0xa2,0x83,0x41,0x58,0xbe,0x47,0x43,0x80,0xef,0xbc,0x42,0x27,0x70,0x57,0x43,0xd,0x27,0x9b,0xc2,0xd4,0xc3,0x1b,0xc3,0xc5,0x87,0xc,0xc2,0xd2,0x2d,0xbc,0x42,0x7f,0x99,0xbb,0x42,0xa4,0x92,0x5f,0xc3,0x72,0xdc,0x65,0x42,0x9c,0xbb,0x6,0xc2,0x74,0x40,0x8a,0xc2,0x27,0x62,0x75,0x43,0x60,0x8a,0x9d,0x42,0xe1,0x3b,0xb,0x42,0xbd,0xbf,0x1e,0xc2,0xae,0xdf,0x9e,0xc2,0x9b,0xaf,0x50,0x43,0x3a,0x65,0xdd,0xc1,0xf5,0x70,0xb0,0x42,0x4,0xed,0xff,0xc2,0x2d,0x5d,0x16,0x43,0x59,0x71,0x5,0xc1,0xad,0x54,0x5f,0xc2,0xc3,0x6b,0x4d,0x42,0xb1,0xaf,0x6f,0xc0,0xbb,0xce,0xca,0xc2,0x43,0xec,0xe0,0x41,0xe5,0x28,0x90,0xc2,0xc0,0x79,0xc3,0x41,0x18,0x49,0xcf,0x40,0xa4,0xc,0xac,0x42,0x61,0x26,0x76,0x41,0xf7,0x66,0x5d,0x42,0x8c,0xea,0xe2,0xc1,0x6f,0xa,0x3f,0xc2,0x37,0xca,0x5d,0xc2,0xf,0x68,0xfa,0x42,0x52,0x5,0xde,0x41,0x65,0x43,0xe2,0x42,0xef,0xad,0x40,0x42,0x85,0xd7,0x17,0xc3,0xd0,0x47,0x42,0xc2,0x6,0xed,0x79,0xc1,0x11,0x4f,0xff,0x42,0x9a,0xae,0xd9,0xc2,0x6,0xbb,0xb8,0xc2,0x12,0x7,0x2a,0x42,0x88,0xca,0x55,0x3f,0x28,0x86,0x3e,0xc1,0xc9,0xc0,0x4e,0xc3,0x11,0xc6,0x13,0x41,0x3e,0x1e,0xea,0x41,0x14,0x8f,0xdc,0x41,0x7b,0x4b,0xb,0x42,0xb9,0xb8,0x36,0x42,0x84,0x5b,0x23,0x42,0xda,0x69,0xcd,0xc2,0x3e,0xfa,0x8c,0xc1,0x6d,0xd7,0x76,0x42,0xa8,0x44,0xcf,0x42,0x2c,0xab,0x89,0x42,0x95,0xb1,0x2c,0x42,0x9b,0xc2,0x9b,0xc0,0xcc,0x39,0x67,0x40,0xba,0x7b,0x49,0xc0,0xbb,0xd3,0x0,0x43,0x58,0x48,0xe9,0xc1,0xe6,0x56,0x35,0xc3,0x72,0x5c,0x2a,0x42,0x70,0x31,0x98,0x42,0x2a,0x9a,0x8f,0x42,0x8b,0xc9,0x7c,0x42,0x22,0xb5,0x9e,0xc2,0xa7,0x86,0x11,0x41,0xd3,0xe,0xbf,0xc0,0x13,0xa9,0x34,0xc2,0x8a,0x73,0xaf,0xc0,0x34,0x7b,0x82,0xc3,0x9c,0xe7,0xb1,0xc1,0xec,0x5c,0xf7,0x41,0x80,0x39,0x99,0x40,0xba,0xc1,0xb0,0xc0,0x43,0xda,0xa9,0xc2,0x7b,0xde,0x4,0x42,0xa8,0x15,0x37,0x42,0x54,0x14,0x9e,0xc1,0xfa,0xa2,0x5,0xc3,0x40,0xf8,0xaf,0x40,0x8a,0x88,0x34,0xc2,0x20,0x56,0xa1,0x41,0x21,0xb2,0x4a,0xc2,0xa2,0xa5,0x99,0xc1,0x1b,0x7d,0xf7,0xc1,0x4c,0x31,0x66,0xc1,0x84,0x9,0x1,0xc3,0x3f,0xf7,0x50,0xc3,0x9,0xcb,0x93,0x42,0xe3,0xbd,0x8e,0xc2,0x76,0xc2,0x0,0x41,0xd2,0xf1,0x33,0x43,0xd0,0xfb,0x95,0xc1,0xc2,0x7f,0x0,0xc3,0xa4,0x92,0x10,0x41,0xbe,0xcf,0x17,0xc2,0xf2,0x3e,0xb8,0x41,0xd0,0x5d,0xe,0xc3,0x5a,0x33,0x92,0xc2,0x2b,0xc4,0x3b,0x42,0xe1,0x9e,0x1a,0x42,0x70,0x9c,0xe0,0xc1,0x44,0x34,0xb0,0xc2,0x43,0x5c,0x13,0xc2,0x3c,0xb6,0x24,0xc3,0x9d,0x38,0x0,0x43,0x93,0xea,0x22,0xc2,0xe1,0x2,0x18,0x42,0xc2,0xe7,0xf1,0x42,0x86,0x1c,0x19,0x43,0xb4,0x4,0x30,0x41,0xff,0x19,0x59,0x41,0xce,0x66,0x15,0xc2,0x69,0x60,0x42,0x41,0xa4,0x72,0xa7,0x41,0x18,0x2d,0x87,0xbf,0x5f,0x7f,0x17,0x41,0x30,0x9e,0xa9,0x42,0x96,0xc4,0x5d,0x41,0x6d,0x2d,0x95,0xc1,0xc6,0x2e,0x5b,0x41,0xfa,0x64,0xb,0xc2,0x84,0xc8,0x42,0xc2,0xb6,0xba,0x40,0x41,0xf9,0xfd,0x29,0x43,0x17,0x50,0x33,0x42,0x81,0x6e,0x6c,0x42,0x71,0x1b,0x26,0x43,0xc7,0x7d,0xd2,0xc1,0x81,0x44,0xa9,0xc2,0xfa,0xc0,0xc8,0xc1,0x8f,0xe7,0x25,0x43,0x53,0x92,0x10,0x43,0x1e,0x91,0xa,0xc2,0x8f,0x51,0x7b,0x41,0x4a,0x86,0x30,0xc2,0xe,0x57,0x88,0x42,0xd4,0xbc,0x76,0x42,0x1a,0xaa,0xe1,0x42,0x38,0xfd,0x59,0xc2,0xbb,0xb4,0xc,0x42,0xf4,0xc7,0xb7,0xc2,0xd9,0x29,0x24,0xc2,0x80,0x56,0xe3,0x42,0x6b,0xfd,0x61,0x42,0xd5,0x70,0x8b,0xc2,0x54,0x9d,0xec,0xc1,0x4a,0x0,0x9c,0xc0,0x9a,0x5c,0xcc,0x41,0xdc,0xa0,0xc3,0xc2,0x5b,0xb6,0xe4,0xc1,0x4e,0x7,0xcc,0x41,0x32,0x4,0xfa,0xc2,0xea,0x97,0xed,0x41,0xeb,0x69,0x77,0xc2,0x11,0x3c,0xc7,0xc2,0xb4,0x17,0x92,0x42,0x34,0xc1,0x41,0xc1,0x71,0x33,0xdc,0x42,0xcd,0x1d,0xca,0x42,0xc,0x9,0x7f,0xc2,0xb9,0x96,0x17,0xc3,0x80,0x7f,0x27,0x3e,0x6,0x3a,0x21,0x42,0xc9,0x47,0x19,0x42,0x1e,0x31,0x31,0x42,0x8d,0x40,0x1c,0x43,0xce,0xd9,0xbd,0xc1,0x48,0x48,0x89,0xc1,0x7,0xed,0x8,0x43,0xfa,0x51,0xe5,0xc1,0xf2,0x61,0xc1,0x3f,0x1e,0x46,0xb1,0xc2,0x16,0x82,0xf6,0x42,0x2e,0xef,0xb5,0xc1,0x63,0x2,0x3e,0xc3,0x9e,0x3c,0x4e,0xc2,0x1c,0xb6,0xc2,0x41,0x2c,0x7f,0x2f,0x43,0x9c,0xbc,0x50,0x43,0x80,0x8a,0x89,0xc2,0x60,0x9,0x6f,0xc0,0x9a,0x80,0x9,0xc3,0x41,0xbe,0xe0,0x41,0xdf,0xc3,0xa3,0x42,0x45,0x39,0x8,0x42,0xe2,0xac,0x4f,0x42,0x97,0xe,0x6,0x43,0xaa,0x96,0x4f,0x42,0xc,0x21,0x8f,0xc1,0x7e,0xeb,0x9b,0x40,0x3d,0xdc,0xe3,0x42,0xa9,0xbc,0x8,0x43,0x69,0x23,0xfc,0x42,0x8f,0xc2,0xd,0xc3,0x27,0x41,0xed,0x42,0x83,0x7b,0x20,0x43,0x16,0xf3,0x96,0x42,0x2,0x9f,0xf,0xc0,0xd3,0x3d,0xa3,0x41,0xee,0xba,0x36,0x43,0x4f,0x34,0x99,0xc2,0xc7,0xaf,0xba,0x42,0x5a,0xb5,0x8c,0x42,0x51,0x7d,0x19,0x41,0x9d,0xb4,0x2f,0xc3,0xe3,0x9,0xdd,0xc1,0xd0,0x1d,0xd2,0xc2,0xee,0xea,0x88,0x40,0x43,0x36,0xe2,0x40,0x94,0xdc,0x22,0xc3,0xa3,0x4f,0xfd,0xc0,0xd2,0x45,0x9c,0xc2,0xb1,0x7b,0xa6,0x41,0x30,0xe0,0x3f,0x41,0xfe,0x79,0xbc,0xc2,0x7e,0x79,0x4b,0x42,0x12,0x68,0x22,0xc2,0x4a,0xba,0x5f,0x43,0x29,0xdf,0xc0,0x42,0x41,0x73,0x3c,0xc3,0xae,0x58,0x72,0xc2,0x37,0x2a,0xb6,0x42,0x71,0x20,0xc3,0xc0,0x12,0x72,0x1f,0x43,0x5f,0x7,0x11,0xc3,0x73,0xf3,0xa,0x42,0x93,0x2f,0x90,0xc0,0x82,0xb8,0x4b,0x43,0x88,0xa1,0x81,0x42,0x28,0x50,0x4d,0xc3,0x94,0x70,0x85,0x42,0xea,0xa,0xdd,0x42,0x7e,0xac,0xc9,0xc1,0x76,0x84,0xa1,0xc2,0x37,0x5e,0x20,0x43,0x87,0xac,0x1,0xc3,0x79,0x1b,0x6a,0x43,0x60,0x4a,0x10,0xc2,0xe4,0x84,0x2c,0x42,0x35,0xec,0x65,0x43,0x16,0xe8,0xa1,0xbf,0x76,0x1d,0x9,0xc3,0x1,0x30,0x37,0x42,0x30,0xe6,0xe1,0xc1,0x17,0x28,0x23,0xc3,0x9b,0x6,0x41,0x43,0xcf,0x79,0x3,0xc3,0xf9,0x45,0x0,0xc3,0x41,0x16,0x5f,0x42,0xc4,0xf5,0x61,0x42,0xa5,0x2b,0xfd,0x42,0xba,0x2,0x7f,0x43,0xb7,0xa9,0x8a,0x41,0x48,0x58,0x9f,0xc1,0x74,0x1e,0x14,0x3f,0xfc,0x6a,0xaf,0x41,0x6b,0x92,0x85,0xc2,0x72,0x83,0x95,0xc1,0x33,0xed,0x17,0xc3,0xe2,0xbf,0xf4,0xc1,0x1d,0x9,0x64,0x42,0xe7,0xca,0x97,0xc2,0xb3,0x85,0xf7,0x42,0xa1,0xf4,0x4d,0x41,0x35,0xb,0xac,0x42,0x7b,0x90,0x19,0xc2,0x28,0x48,0x5,0xc2,0xcc,0x48,0xa7,0xc2,0x3f,0x22,0xa9,0x42,0x4,0x7c,0x7d,0xc2,0xfc,0x26,0xe7,0xc2,0x94,0xe9,0xa0,0x42,0xb2,0x59,0xa1,0x42,0x27,0x43,0xe6,0x42,0xc0,0x66,0xe8,0xc2,0x1a,0xe,0x39,0x42,0xad,0x24,0x2,0xc3,0x82,0xb7,0x6,0xc2,0x43,0xa3,0xa1,0x42,0x70,0xf2,0xe,0x43,0x5c,0x9a,0xc3,0xc2,0x63,0xc9,0xb9,0x42,0xaa,0xa5,0x3a,0x42,0x18,0x5b,0x40,0x40,0xbe,0x21,0x5f,0x43,0xe6,0x9d,0x2c,0xc2,0x26,0x94,0xf7,0x42,0x80,0x8f,0x2d,0x42,0xfa,0xb9,0xf2,0x41,0xfe,0x2e,0x52,0x43,0x7a,0xd2,0xf,0xc3,0xb8,0x4f,0x1c,0x43,0xee,0x34,0x93,0x40,0xc6,0x5f,0xb0,0x41,0x9b,0x9e,0x38,0x43,0x6e,0xf0,0x3c,0x42,0x9,0xa4,0x7,0xc3,0xef,0x0,0xe1,0xc2,0xd0,0xf9,0x66,0x3f,0x1c,0xd8,0xe7,0x40,0xbf,0x9d,0x91,0x42,0x65,0x6e,0x1a,0x42,0x7d,0x2f,0xd6,0xc2,0x26,0xf7,0xbb,0x41,0x8,0xe3,0xd8,0xc1,0xae,0x4d,0xdf,0xc2,0xc,0x82,0xb,0xc3,0x38,0x2a,0x3,0xc3,0x9f,0x2b,0x54,0xc2,0xdc,0x35,0xae,0x42,0x63,0xdb,0xe,0xc1,0xc,0xd0,0xd1,0x41,0xa9,0x30,0xd3,0xc2,0xc7,0x5e,0x2a,0xc2,0x67,0xd3,0x2,0xc3,0x36,0x8b,0x8e,0x41,0x33,0x64,0xb8,0x3f,0xd0,0xb3,0xbf,0xc2,0x4d,0xf5,0x98,0xc2,0x32,0x11,0x9e,0xc2,0xe9,0x58,0xf4,0xc1,0x92,0x4b,0xbe,0x42,0xef,0x13,0xc9,0x41,0x5f,0x23,0x17,0xc3,0x76,0xc1,0x98,0x41,0xbe,0x4b,0x20,0x43,0x66,0xf5,0xb,0xc2,0xc9,0xe2,0xd4,0x41,0xf3,0xa7,0x96,0xc2,0xba,0x1c,0x45,0x43,0xbf,0xe0,0x72,0xc0,0xc1,0x93,0x6e,0xc3,0xa,0x95,0x54,0xc2,0xd1,0x9a,0xf,0x43,0x1c,0x87,0x7b,0xc2,0xce,0x2,0x1c,0x43,0x61,0x34,0x39,0xc2,0x17,0x7,0x2a,0xc2,0xbf,0xe5,0xec,0x41,0x1d,0x88,0xa2,0xc1,0xda,0xa,0x84,0xc2,0xa3,0xdd,0x3a,0xc1,0xf0,0xb8,0xb1,0x42,0x8c,0x19,0xe4,0x42,0xf3,0xa8,0x91,0x42,0xf6,0xc7,0x88,0xc2,0x15,0xfa,0xe9,0x40,0x16,0x61,0xe4,0xc2,0x91,0x58,0xb6,0x42,0x3a,0xc7,0xf2,0x41,0xf7,0x8c,0xd7,0xc2,0xc9,0x55,0x2a,0x43,0x54,0xfc,0x6c,0x43,0x4e,0x44,0xac,0xc2,0x8a,0xc1,0x6c,0xc3,0x18,0x8c,0x1,0xc3,0xa7,0x32,0x1c,0xc2,0x3,0xef,0xe3,0xc0,0x51,0x9a,0x35,0x41,0xab,0x94,0x13,0xc3,0x2e,0xda,0xa1,0x42,0xf9,0x25,0xac,0xc1,0x8c,0xfc,0x35,0xc2,0x31,0xcc,0xda,0x42,0x65,0xb5,0xf0,0x40,0x7f,0x3f,0x97,0x42,0x2d,0xf3,0x16,0x43,0x27,0x2,0x31,0xc3,0x83,0x64,0xac,0xc2,0x15,0x83,0x33,0xc3,0x17,0xf6,0x8c,0xc2,0x62,0x3f,0xb8,0xc2,0x8a,0x6f,0xfb,0xc2,0x9a,0x5d,0x20,0xc2,0x1b,0xa2,0x23,0xc3,0x78,0x8c,0xbb,0x41,0x76,0xde,0x21,0x40,0x87,0x58,0x33,0x42,0xfc,0xc6,0x70,0xc2,0x33,0xfa,0x34,0xc2,0x97,0x7f,0x31,0x42,0xb9,0xc2,0xdc,0x41,0x8c,0x6b,0xfa,0x41,0xe1,0xe5,0x8e,0x42,0x6c,0x30,0xc1,0x41,0x2d,0x70,0x67,0x42,0x74,0x36,0xb6,0xc2,0xd5,0x7a,0xf,0x42,0xb3,0xe2,0x3,0xc3,0x40,0x6b,0xac,0x42,0xa3,0x9d,0x70,0x41,0x53,0xeb,0x1e,0x42,0x38,0xc2,0xe6,0xc2,0xf2,0x5e,0xb6,0xc2,0xb4,0x8b,0x42,0xc3,0xb2,0x7,0xe4,0x42,0xea,0xe0,0x0,0x41,0xdc,0x39,0x75,0xc0,0xd4,0xdf,0x8e,0xc2,0x83,0xff,0xdb,0x42,0xc2,0x45,0x9,0x42,0x8d,0x75,0xe8,0xc2,0x70,0x66,0x83,0xc1,0x8a,0xf5,0x28,0x43,0xac,0xd1,0x99,0xc2,0xff,0x6a,0xb1,0xc2,0x53,0xb1,0xc8,0x42,0x26,0x57,0x59,0xc2,0x73,0xe1,0x2,0x43,0x4b,0xc0,0x71,0xc2,0x5f,0xa3,0xa0,0xc2,0x20,0xfd,0x87,0xc2,0x87,0xef,0x11,0x42,0x57,0xcc,0x47,0xc3,0x23,0xe7,0x8b,0xc2,0x4c,0xad,0xfb,0x41,0x96,0xdc,0x7,0x42,0x5c,0xa0,0x94,0xc2,0xb7,0x83,0x1f,0xc3,0xcd,0x36,0x86,0xc2,0x64,0x2a,0xa0,0xc1,0x6c,0x75,0xb6,0xc2,0x2f,0xbe,0xeb,0x41,0xb2,0xea,0x97,0x42,0x6e,0x92,0x3b,0xc3,0x5,0x1,0x43,0xc2,0x1f,0xcc,0x91,0x42,0x7e,0x8,0xa6,0x41,0x6d,0xa5,0xd4,0xc2,0x57,0x3b,0x2e,0xc3,0xdf,0xb5,0xea,0x42,0xd6,0x14,0x1e,0xc3,0xf6,0x6b,0x2,0x43,0x9c,0x8b,0x20,0x43,0x2b,0x65,0xd4,0xc1,0x4d,0x51,0xd6,0xc1,0x51,0xa0,0x2e,0xc2,0x3,0x38,0xc2,0x42,0x5,0xbe,0x9f,0x42,0x8f,0xe6,0x9,0x43,0x3e,0x7e,0x81,0xc1,0xfd,0xd9,0x11,0xc2,0x1e,0x17,0x46,0xc3,0xf3,0x17,0xda,0x41,0x74,0xe,0x7c,0x43,0x16,0xad,0x2f,0xc0,0xef,0xc6,0x20,0xc3,0x43,0x6,0x8,0xc3,0x46,0xc7,0xdc,0xc1,0x64,0x6d,0xad,0xc2,0x4a,0xa8,0xac,0x42,0xdb,0x95,0xdd,0x42,0x86,0xab,0x68,0xc1,0x39,0x1,0x64,0xc1,0x5d,0x4b,0x37,0x41,0xf1,0x9e,0x1,0x43,0xf6,0x94,0x2,0x42,0x31,0x18,0xd1,0xc2,0x0,0x1a,0x72,0x41,0x75,0xfa,0x7e,0x42,0x1,0x3c,0xc0,0x42,0xf6,0x4a,0x1e,0xc2,0xaf,0x8a,0xd1,0xc2,0x23,0x25,0x91,0x41,0xd4,0x94,0x76,0x41,0xe1,0xe3,0x27,0xc3,0x38,0x2e,0x1e,0x41,0x96,0xe9,0x89,0xbf,0x17,0xeb,0xc2,0xc1,0x52,0x13,0xfc,0x41,0x17,0x57,0x55,0x41,0x25,0x85,0xa1,0x41,0xb0,0x15,0xa4,0x41,0x34,0x76,0xaf,0xc2,0x7d,0x57,0xd5,0x42,0xd3,0xf7,0x9f,0x42,0xbe,0xda,0x42,0x41,0xf3,0x49,0xbf,0xc0,0x1d,0x4a,0x2f,0x43,0x65,0xed,0x8e,0xc2,0xe5,0x2f,0xfa,0xc2,0xe4,0xd0,0x50,0x43,0x65,0x27,0x8d,0xc2,0x43,0xdb,0x85,0xc2,0xb9,0x90,0xf0,0xc2,0x99,0x71,0x4b,0xc3,0xf1,0x59,0x6,0xc3,0xe2,0xeb,0x52,0xc2,0xca,0xee,0xe7,0x42,0x12,0x51,0xba,0xc2,0xee,0x54,0x25,0x43,0xa0,0xee,0xc7,0xc2,0x6f,0x31,0x9d,0xc1,0xec,0x97,0x8b,0xc2,0x12,0x5d,0x2e,0xc2,0x59,0x12,0x39,0x43,0x64,0xa,0xeb,0xc1,0x7c,0xf3,0x65,0x42,0x3f,0x8b,0x32,0xc2,0x67,0xcb,0x97,0xc2,0xb2,0xd8,0x98,0x42,0x72,0x6c,0xb2,0x40,0x40,0x7f,0x5,0xc2,0xdc,0xb8,0xf2,0x42,0xc0,0xf0,0xf,0xc3,0x2b,0x4,0x8e,0xc2,0xad,0x6e,0x12,0x42,0x84,0xd4,0xe6,0x42,0x2e,0x30,0x85,0x41,0x85,0x77,0x6,0xc3,0xf9,0xad,0x34,0x43,0xbb,0x42,0xd7,0xc2,0xf3,0x45,0xd6,0x42,0x6e,0x18,0xf0,0x42,0x4,0x29,0x50,0xc2,0x5b,0x62,0x55,0xc2,0x50,0x35,0x1f,0x3f,0x13,0xad,0x96,0xc1,0xde,0xec,0x3d,0xc2,0xd2,0x63,0xe6,0x42,0x3a,0xf,0x8b,0x42,0xed,0xe3,0xfc,0xc1,0xa8,0x70,0xa0,0xc2,0xc2,0xf7,0x51,0xc2,0x24,0xa2,0x8,0xc3,0xbd,0x69,0xf7,0x42,0xb9,0xf3,0xe5,0xc2,0xe1,0x7b,0x88,0xc0,0x36,0x6e,0x6e,0xc2,0xda,0xfa,0xe3,0x42,0xa2,0xf5,0xaa,0x42,0xb3,0x33,0x6c,0xc0,0x0,0x66,0x11,0x43,0x6e,0xac,0x93,0x41,0xe,0x89,0xb0,0x42,0x56,0xa0,0x1d,0xc2,0x83,0x59,0xd5,0x42,0x9,0xfe,0x93,0xc2,0x72,0xf3,0x47,0xc3,0x3b,0x5f,0xaf,0x42,0x8d,0x6f,0x42,0x41,0x9a,0xed,0xa,0xc2,0x6d,0xe1,0xab,0xc2,0xd3,0x0,0x8,0x41,0x3a,0x2b,0x17,0xc2,0x78,0xb0,0x25,0x43,0xe0,0x6e,0xe8,0xbe,0x3,0xc6,0x8d,0x40,0x54,0xd1,0x39,0x43,0x19,0xbb,0xfa,0xc2,0xa5,0xeb,0x38,0xc3,0xd8,0xcc,0x8d,0xc1,0xcf,0x20,0x98,0x42,0xde,0x6e,0x20,0x43,0xb9,0x59,0x21,0xc3,0x5,0xee,0xc3,0x42,0xe9,0xbf,0xfd,0xc0,0xcc,0x55,0x16,0xc3,0xa8,0xb7,0xa2,0x42,0x53,0xea,0xcf,0xc1,0x55,0x5f,0x74,0x42,0x18,0x2e,0x24,0x41,0x79,0x3e,0xf5,0xc0,0xf1,0xa5,0xb4,0xc0,0x34,0x58,0x8c,0x42,0x7b,0x2f,0xc8,0xc2,0x50,0x2c,0xa1,0x42,0xef,0x89,0x3d,0x42,0xf5,0x4b,0xa2,0xc2,0x19,0xc1,0x9c,0x42,0xff,0x2f,0x49,0x42,0xc0,0xe,0x5d,0x43,0xa7,0xb5,0xef,0x42,0xca,0x2e,0x9,0x43,0xaf,0x8c,0x8b,0x42,0x86,0xd2,0xe,0xc3,0xa9,0x16,0xf9,0x41,0x27,0x90,0xd4,0x42,0x87,0x83,0xf,0xc3,0xce,0xf0,0x5c,0xc2,0x75,0x3d,0x16,0x43,0x8a,0xd7,0xc6,0xc1,0x56,0x66,0x4,0xc1,0xe9,0x85,0x2,0x42,0x70,0x79,0x5f,0x3d,0xa2,0x5,0xf6,0xc2,0x96,0xce,0xb0,0x42,0xc2,0x93,0xf,0xc3,0x99,0x5,0x17,0xc2,0xcf,0x1d,0x27,0x41,0xaa,0x98,0xaa,0xc2,0x64,0x8,0x1c,0xc2,0x3b,0xaf,0x17,0xc2,0x5e,0x9,0x7e,0xc1,0x3e,0x51,0x2e,0x42,0x79,0x9,0x86,0x42,0x91,0x3f,0x37,0x42,0x45,0x12,0xcd,0xc1,0x71,0x31,0x72,0x41,0xf3,0x2a,0x2b,0xc3,0x5b,0x97,0x44,0xc3,0xdc,0x97,0x28,0xc2,0x9f,0xfa,0xec,0x41,0x45,0x39,0xdd,0x41,0xe7,0xd3,0x6e,0x42,0xfd,0xc4,0xa,0x43,0x4,0x2b,0xc6,0xc2,0x41,0x2,0x24,0x43,0x6c,0xc6,0x39,0xc3,0x32,0x94,0x18,0xc2,0xf8,0x50,0x7b,0x42,0x73,0x44,0x25,0x43,0x9d,0x88,0xce,0x42,0x16,0x7,0x8f,0x42,0x0,0xec,0x3b,0xc3,0xa6,0xb2,0x84,0x43,0x26,0xf0,0x26,0x43,0xc4,0x19,0x6d,0xc1,0xc2,0x4f,0x16,0x43,0xf7,0x24,0xc0,0xc2,0x68,0xfd,0x4a,0x41,0x56,0xd7,0xdc,0x42,0x9b,0xb3,0x24,0x43,0xe3,0x8f,0x48,0xc3,0x98,0xb6,0xa4,0xc2,0x27,0x34,0x43,0x42,0x58,0x37,0xc6,0xc2,0x2b,0xf1,0x44,0x42,0xda,0x19,0xe7,0xc1,0x99,0x20,0xba,0x41,0x63,0xc1,0xe7,0x42,0x91,0x56,0x86,0xc2,0x14,0x7b,0xda,0xc1,0x4c,0x30,0xdb,0xc2,0x75,0x69,0x12,0x42,0xa6,0xa1,0x6d,0x42,0x6e,0x2d,0x1b,0xc2,0x24,0x8b,0x4b,0x42,0xca,0x4a,0x42,0x42,0xb5,0xb6,0xd7,0xc1,0x52,0xe3,0xbe,0x41,0xde,0x1,0xe7,0xc1,0xc0,0x71,0xaf,0x42,0xc3,0x97,0x8c,0x42,0x81,0xf8,0x95,0xc1,0x25,0xcb,0x25,0xc2,0x88,0xac,0x84,0x42,0x2b,0xa9,0x52,0x43,0x47,0x9a,0x89,0xc2,0x89,0x11,0x21,0x42,0x39,0x5f,0x94,0xc2,0xf2,0x7d,0x3,0xc3,0x7d,0x5,0x2f,0x41,0xf0,0xb2,0x9b,0x3f,0x21,0x50,0xa5,0xc1,0xeb,0xf7,0x72,0xc2,0x93,0xc4,0xc2,0xc2,0x24,0xfa,0x16,0x43,0xb2,0x0,0x58,0xc0,0x27,0xeb,0x63,0xc3,0xf7,0x14,0x99,0x42,0x65,0xdf,0x1f,0x42,0x46,0xa6,0x10,0xc0,0x7e,0xc6,0x3d,0xc2,0xd0,0x89,0x39,0x41,0x9d,0x48,0xac,0xc2,0xe4,0xe2,0xe,0x43,0xa5,0xc3,0x7e,0xc3,0xc8,0x2b,0x5,0x40,0x5c,0x68,0xcf,0x42,0x97,0x74,0x18,0xc3,0xf,0xb0,0x1a,0xc2,0xd9,0x1,0xec,0x42,0xe3,0xd1,0x3a,0xc3,0xfd,0x13,0xff,0x42,0xed,0xf5,0x71,0x42,0x42,0xc2,0xea,0x40,0x73,0x8d,0xd,0xc2,0x4a,0x64,0x8a,0xc2,0xe,0xe8,0x1d,0x41,0x75,0x4d,0xa9,0x42,0x61,0xd9,0x54,0xc2,0x35,0x65,0xdd,0x41,0x6,0xbf,0x19,0x42,0xe1,0xbd,0x39,0x43,0x2f,0x98,0xb4,0x42,0x25,0xac,0xd5,0xc2,0x2b,0xe5,0x17,0x42,0x28,0x98,0x36,0xc1,0xa,0x7,0xb1,0x42,0xff,0x90,0x48,0xc2,0x30,0x13,0x8d,0xc3,0x11,0xc1,0xc3,0xc2,0x3f,0xc9,0xf6,0x42,0xa7,0x73,0xb9,0xc2,0x4,0x56,0xb6,0x41,0xd0,0xf,0x6b,0x42,0x2,0x51,0x3f,0x40,0x4a,0x1,0x26,0x43,0xa3,0xd0,0x50,0x41,0xbe,0x31,0xff,0x42,0xb2,0x1c,0xd3,0x42,0x9,0xf5,0x1,0x42,0xa2,0xf,0x99,0x42,0x29,0xe8,0xb2,0x42,0xc7,0xeb,0xd7,0xc2,0x55,0x22,0x99,0xc2,0x96,0x4f,0xf4,0x42,0xe8,0xdc,0xc6,0x42,0x2a,0xac,0x5f,0xc2,0x11,0x5f,0xb,0xc1,0xf1,0x7a,0xf4,0x42,0xde,0x19,0x7,0xc1,0x78,0x69,0xd3,0xc2,0xeb,0x78,0x6,0x43,0xee,0x3c,0x95,0xc1,0xa8,0xd0,0xe,0x43,0x82,0x54,0xf9,0xc2,0x99,0xef,0x51,0xc3,0x47,0x91,0xd4,0xc1,0xe,0xa2,0x81,0x3f,0x87,0x1e,0x41,0x42,0x5d,0xd3,0xba,0xc2,0x23,0xb1,0xb1,0x42,0x4e,0x49,0xc2,0x40,0xea,0x61,0xaa,0x41,0xe9,0x2d,0x62,0x43,0x65,0xbf,0x6e,0xc2,0x6e,0x24,0x95,0x42,0x98,0x1d,0x59,0xc2,0xd8,0xdf,0x27,0xc3,0x8a,0xbb,0x25,0x43,0xbc,0x68,0xc4,0xc2,0xd6,0x63,0x2,0x42,0xa9,0xfa,0x9,0x43,0x21,0x63,0xd1,0xc2,0x8a,0xbc,0xce,0x41,0x5c,0xd4,0xfc,0xc2,0x54,0x96,0x9e,0xc2,0xd1,0x68,0x5d,0x41,0x26,0x86,0x88,0x41,0x4e,0x72,0x41,0xc1,0x95,0x6a,0x5,0x43,0xe8,0xc2,0x33,0x41,0x6e,0x4f,0x47,0xc2,0x6e,0x23,0x59,0xc1,0x9b,0xb2,0x57,0xc2,0xe5,0xcc,0xef,0x41,0x8d,0xe3,0x8a,0x41,0xb0,0x3c,0x54,0x42,0xb0,0x9d,0x8b,0x42,0xac,0x18,0x61,0xc1,0x90,0x80,0xd,0xc1,0x88,0x43,0x1c,0x41,0x3f,0xd1,0x78,0x43,0x6,0xc0,0xa6,0xc2,0x36,0x72,0x1e,0xc1,0x64,0x16,0xda,0x3f,0x94,0xbc,0xe5,0xc2,0x58,0xfe,0x5c,0x41,0xe0,0xec,0x77,0xc2,0x80,0xe2,0x85,0xc2,0x5c,0x80,0x9f,0xc2,0xce,0x30,0xfd,0xc0,0x2c,0xc1,0x3,0x43,0x59,0x23,0x26,0x43,0x3c,0xf0,0x95,0xc2,0xa2,0x1d,0x53,0xc2,0xe5,0xe,0xff,0x41,0x85,0xbb,0x45,0xc2,0xaf,0xe,0xfa,0x41,0x62,0xb9,0xd0,0xc0,0x13,0x6c,0xdf,0x42,0x54,0x15,0x86,0xc2,0x23,0xee,0x47,0x42,0xdd,0x87,0x29,0x41,0x2d,0xaf,0xfd,0x42,0xf4,0x5f,0x37,0x41,0x61,0xa8,0x43,0x40,0xb6,0xc0,0x3,0x42,0x9f,0xc8,0x2,0x43,0x97,0xaf,0xb7,0x41,0x5b,0x3f,0x88,0x41,0x2d,0x7b,0x5b,0x42,0x10,0xe0,0x8d,0x41,0xec,0x9e,0x88,0x41,0x82,0x76,0xe5,0x42,0x3b,0xf2,0x28,0x43,0x8e,0xe7,0xb2,0x42,0x3d,0x4b,0xa6,0x42,0x4c,0x3,0x53,0x43,0x58,0xff,0x49,0x42,0x22,0xfb,0x17,0xc2,0x55,0x30,0xaf,0x42,0x4a,0x77,0x8,0x40,0x66,0x13,0x19,0x43,0xb3,0xbe,0x9e,0x42,0xc6,0xd,0x9f,0x41,0xd1,0x41,0xdf,0x41,0x62,0x2d,0x93,0xc2,0x62,0xab,0x87,0xc2,0x3f,0x6,0x1a,0x42,0x48,0x5e,0xa7,0xc2,0xa7,0x3d,0xc1,0x42,0xbb,0xc,0xc5,0x41,0x2b,0xe5,0x9a,0x42,0x3c,0x5a,0x51,0x42,0x2e,0xa3,0x98,0x41,0xee,0x75,0x9c,0xc1,0xb9,0x73,0xb8,0xc1,0xa0,0xe1,0x1,0x41,0x43,0x87,0x94,0xc1,0x4d,0x20,0xf,0x42,0x2d,0xeb,0xc7,0x42,0x4e,0x2d,0xdf,0x42,0x5,0x85,0xcc,0xc2,0x56,0x6b,0x7c,0xc0,0x2f,0x9a,0xc8,0x42,0x9f,0xd5,0xd9,0xc2,0xb9,0x23,0x80,0x42,0x4f,0x35,0xb5,0x42,0xb9,0xf8,0x82,0x41,0x3a,0x11,0xd7,0x3f,0x2,0xc0,0x82,0xc3,0x9c,0x5a,0xa3,0xc1,0x97,0xbb,0x5d,0xc2,0x5e,0x20,0x71,0xc2,0xc7,0x34,0x5f,0x42,0xf6,0x34,0x0,0x42,0xa3,0xa2,0xbc,0x41,0xe0,0x37,0x1b,0xc3,0x7c,0xfe,0x51,0xc2,0xaf,0xb2,0x2b,0xc2,0x61,0x14,0x1,0x43,0x6,0x5b,0x7d,0x42,0xf6,0x4,0x26,0x42,0xca,0x1c,0x6a,0xc2,0xbe,0xfb,0x24,0xc3,0xba,0x9,0xa,0xc3,0x9b,0x31,0xd1,0x42,0xf7,0xda,0xa8,0xc2,0xf2,0x41,0xf,0x43,0xf7,0xbe,0xd6,0x42,0x36,0x2d,0xfb,0x41,0xf2,0x4f,0x34,0x42,0xfa,0x9c,0xb2,0xc2,0xe,0x8a,0x2f,0x43,0x65,0x4,0x35,0xc2,0x25,0xaf,0x3a,0xc2,0xbe,0xc7,0x8,0x42,0xd2,0x4c,0x85,0x42,0xb7,0x7f,0xb3,0xc1,0x83,0x87,0xf3,0xc2,0xc,0x19,0x12,0x43,0x85,0x8c,0x4e,0x43,0xc5,0xc8,0xce,0x42,0xe9,0x36,0x2d,0xc2,0xd9,0xb,0xe2,0xc2,0xee,0x1d,0xec,0xc2,0x25,0xd,0x11,0x43,0x89,0xf8,0xe8,0xc2,0x4c,0x27,0xca,0xc1,0x78,0xd6,0x48,0x43,0x27,0x6b,0xcc,0x41,0x8c,0x22,0xf,0x43,0x5a,0xb7,0x9,0x43,0x22,0x41,0x18,0x43,0xd4,0x6,0x58,0xc2,0xe8,0xa7,0x21,0x43,0xf1,0xec,0x57,0x42,0x56,0x9d,0x3a,0xc2,0x80,0x8f,0xd8,0xc1,0x69,0x4d,0xde,0xc2,0x10,0x89,0x3f,0x42,0xbb,0x26,0x52,0x42,0x1b,0xcf,0x29,0x42,0x43,0xa1,0x91,0x42,0x37,0xcd,0x2,0x43,0x96,0x40,0xcf,0x42,0x48,0xb8,0x8a,0x41,0x35,0xd1,0x10,0x43,0x28,0x7f,0xad,0x42,0x24,0x4c,0x34,0x42,0xfb,0xf5,0x1,0xc3,0x1b,0xbf,0x53,0x42,0x24,0x1a,0xc3,0xc2,0x3c,0x61,0xb,0xc2,0x4d,0xb0,0xe3,0x42,0xb5,0x17,0x4a,0x42,0x30,0x52,0xee,0xbe,0xbe,0xa5,0xac,0x41,0xc5,0x9c,0x2,0x42,0xd5,0x52,0x88,0x42,0x40,0xeb,0xf6,0x41,0x87,0xd7,0x97,0x42,0xe2,0xdc,0x87,0xc0,0x6c,0xab,0x2a,0x41,0xd0,0xe4,0x17,0x42,0x59,0x42,0x96,0xc2,0x92,0xd7,0xc0,0xc2,0x7,0x45,0x33,0xc2,0x6d,0xc7,0x54,0x42,0x8f,0x18,0x12,0x43,0x9c,0xc,0x8e,0xc2,0xb8,0xf4,0x83,0x3f,0xbd,0x12,0x8c,0x42,0x97,0x58,0xd2,0x42,0xaa,0x56,0x2a,0xc2,0xcb,0xda,0x15,0xc3,0x8c,0xc3,0x4,0x42,0xa1,0x79,0x5c,0x42,0xdd,0x45,0x40,0xc2,0x21,0xa6,0x4b,0x42,0x46,0xa7,0x5d,0xc2,0x7e,0x9f,0x9d,0x42,0xe6,0x33,0xdf,0xc2,0x42,0xea,0xf3,0xc0,0x64,0xde,0xa1,0xc2,0x2f,0x6a,0xb0,0xc2,0x4c,0x52,0xdf,0xc2,0x71,0xaa,0x50,0x42,0x95,0x75,0x19,0xc2,0xbc,0x6b,0x3a,0xc3,0xe0,0x8f,0x7e,0xc2,0x4e,0x5c,0xe8,0x42,0x4e,0x42,0x14,0xc3,0x86,0x8c,0xd4,0x42,0xfc,0xff,0xc,0x43,0x74,0x15,0x3b,0x43,0x92,0x32,0x25,0x43,0xd8,0xcc,0xc1,0xc2,0x61,0x7a,0x4a,0xc2,0x97,0xae,0x52,0xc3,0xde,0xbf,0xd8,0xc2,0xf1,0x2c,0x5f,0xc2,0xbe,0x21,0x98,0xc2,0x54,0x3a,0x36,0x42,0x69,0x63,0x79,0x42,0xd0,0x3e,0x3,0xc3,0x4e,0xd6,0x88,0x42,0xc8,0xcd,0xd6,0x42,0x31,0xf0,0xbb,0x42,0xa7,0x34,0x9d,0x42,0xc9,0xa7,0x1,0x43,0xe3,0xd2,0x9f,0xc2,0x8a,0xa5,0x23,0xc1,0x51,0xe,0x3,0xc3,0xe6,0xdc,0x9,0x43,0x60,0xb5,0x3f,0x43,0x5f,0x22,0x8f,0x41,0xc5,0xac,0x3f,0xc3,0xf9,0x5e,0xf,0xc2,0x4d,0xd9,0x47,0x43,0x7,0x9,0xb3,0x42,0xc2,0x9c,0x3f,0x40,0xcc,0xf3,0xb6,0xc2,0x9a,0xd6,0x9,0xc3,0xf4,0xf2,0x20,0xc3,0x43,0x73,0xc9,0x41,0x51,0xc9,0x53,0x43,0x33,0x62,0xdc,0x42,0xb2,0xdc,0xea,0x42,0x98,0xe9,0x42,0xc1,0xdd,0x9a,0x25,0xc2,0x1c,0xf4,0xfa,0x42,0xb6,0x99,0x29,0x42,0x9e,0xc1,0x40,0xc1,0xf0,0x20,0xa6,0xc1,0x14,0xb1,0x37,0x43,0xc6,0x29,0xa2,0x42,0x9e,0x11,0x9,0xc3,0x36,0x16,0xf4,0xc2,0x81,0x12,0x25,0xc3,0xe6,0xdc,0x6a,0x42,0xdc,0xed,0x46,0x43,0xf8,0xec,0x4e,0x43,0xdc,0xf5,0xb4,0xc1,0xb0,0x24,0xb6,0xc2,0x44,0xcd,0x4,0x42,0x3d,0xa1,0x97,0x42,0xd0,0x44,0xd7,0x40,0xc8,0x5e,0xff,0x42,0x19,0xb4,0x23,0x43,0x71,0xad,0x8a,0x42,0x38,0x4e,0x9f,0xc1,0x7e,0xad,0xa5,0x42,0x6a,0x7,0x98,0xc2,0x87,0x5e,0x49,0xc3,0x20,0x69,0x37,0x42,0x50,0x9c,0x8,0xc2,0x17,0x49,0x4a,0xc2,0x43,0x75,0x95,0x43,0x2,0x35,0x4e,0xc1,0xa8,0x96,0xb1,0xc2,0x96,0x99,0x10,0x43,0xac,0x7b,0xa1,0x42,0xc8,0xb8,0x42,0xc1,0xd6,0x26,0xd1,0xc2,0xae,0x9a,0xc3,0x41,0x44,0xbe,0x8b,0x42,0xef,0xfa,0x4c,0xc2,0x2d,0x88,0xd1,0xc2,0xf4,0x77,0x25,0xc2,0x26,0x97,0x37,0x42,0x63,0x12,0xd7,0x42,0x8e,0x77,0xf2,0x42,0xbc,0x91,0xb9,0xc2,0xd7,0xd1,0xbf,0xc1,0xf1,0x45,0xbb,0x42,0x73,0xb3,0x1c,0xc2,0xab,0x4b,0x0,0xc3,0xe6,0xc5,0xb7,0x42,0x66,0x74,0x7,0x43,0x3d,0x35,0x93,0x40,0x3a,0x13,0xde,0x42,0xbb,0xe6,0x44,0x42,0x28,0x9f,0xe5,0x3f,0x9b,0x91,0x93,0x40,0x2c,0x51,0xa2,0xc2,0x43,0x60,0xfc,0x42,0xd5,0x32,0x4e,0x42,0x35,0xc0,0x4,0x43,0xe8,0x7b,0x9f,0x42,0x56,0xd5,0x99,0xc2,0xf6,0xe9,0xfd,0x42,0x5,0x26,0x94,0x41,0x57,0x40,0x4c,0x43,0xe2,0xb2,0x6c,0xc2,0xf5,0x24,0x74,0xc2,0xe0,0x82,0x33,0x42,0xda,0x89,0x8f,0x42,0x6a,0x47,0xc7,0xc1,0xaf,0x33,0xae,0xc2,0x96,0xd3,0x88,0x42,0x6,0x48,0x7,0x43,0x92,0xd6,0xdf,0xc2,0x85,0x1,0xef,0xc2,0xbe,0xaf,0x49,0xc1,0x55,0xa7,0x97,0xc2,0x12,0x4d,0x96,0x42,0xf5,0x15,0xe1,0x41,0x9a,0x4f,0x24,0xc3,0xde,0xf9,0xae,0xc1,0x52,0x54,0xb,0x42,0x12,0xbc,0x4,0x43,0xd8,0x4e,0x16,0xc2,0x89,0xc4,0xd4,0xc2,0x95,0x33,0x54,0xc3,0x83,0xd,0x8e,0xc3,0x2a,0x42,0x5,0x42,0x52,0xdb,0x2e,0xc3,0x18,0x0,0xc8,0x40,0xc5,0x6a,0xa7,0x42,0x40,0x4a,0x4f,0xc2,0x70,0x92,0xc8,0x42,0x69,0x19,0xd6,0xc2,0xee,0xca,0x69,0xc2,0x35,0x7b,0x90,0xc2,0xad,0x26,0xe5,0xc1,0x27,0x24,0xce,0x42,0x37,0x62,0xe7,0xc1,0x4a,0x33,0x32,0xc1,0x9c,0x1b,0x82,0x3e,0x2e,0x8b,0x60,0xc2,0x4e,0x73,0x4d,0x42,0x19,0xa,0xc1,0xc0,0xa8,0xe4,0x3,0xbf,0x3f,0x5d,0xfb,0x42,0xbe,0xb3,0xc0,0x42,0x80,0x6e,0xd9,0xc0,0xe4,0xc4,0xe1,0xc2,0x6e,0x36,0xdc,0xc2,0xd5,0xb0,0x78,0xc2,0x90,0xa3,0x21,0x43,0x7,0xc8,0x65,0x42,0x5e,0x77,0x4,0x42,0xea,0x26,0x7d,0xc2,0xc1,0x6e,0x6d,0xc2,0x69,0x3a,0xf,0x43,0x90,0x10,0x58,0xc0,0x68,0x76,0xbd,0x3f,0x91,0xfd,0xbe,0xc2,0xbf,0xb6,0xef,0xc0,0x61,0xe8,0x7,0x43,0x6b,0xda,0x79,0x42,0xef,0x5b,0x7,0x42,0x10,0x88,0xc1,0xc2,0xc,0x7,0xda,0x42,0x74,0x4a,0x2e,0x43,0xf1,0x3d,0xf,0x43,0x8c,0x69,0xc0,0xc1,0xd5,0x63,0x97,0x42,0xc2,0x5e,0xa5,0xc1,0x87,0xb4,0x3b,0x42,0x9c,0xe4,0xbf,0x42,0x2f,0x9d,0xb,0x42,0xe7,0xb2,0xa4,0xc2,0x5c,0x1,0xa4,0xc1,0x37,0x36,0x8a,0xc2,0xd1,0x81,0x1c,0x41,0x45,0xae,0xda,0xc1,0x78,0x99,0x12,0x42,0x40,0x64,0x95,0x43,0x17,0x8b,0x1c,0xc3,0x9d,0xdd,0xad,0x41,0xca,0x56,0xce,0x42,0x7d,0xeb,0x91,0xc2,0xad,0xab,0x1f,0xc2,0x81,0x5d,0x1d,0xc2,0x6,0x57,0x56,0x42,0x98,0x77,0xe9,0xc2,0xb0,0x42,0xa0,0x41,0x94,0x7b,0x1,0xc3,0x85,0xfb,0xb,0x43,0x50,0x4b,0x64,0x42,0x99,0x4b,0xcc,0x42,0xff,0x8d,0x46,0xc3,0xd1,0x2a,0xfd,0xc2,0x82,0x4a,0x96,0x41,0x1f,0x31,0xed,0xc1,0xa0,0xdf,0x20,0xc3,0x83,0x9c,0xfc,0x42,0xf4,0x85,0x8,0x42,0x82,0x58,0xcc,0x42,0x3a,0xb3,0x8e,0xc1,0x15,0x9b,0x91,0x41,0xce,0x95,0xe7,0x42,0x47,0x9c,0x51,0xc2,0x6d,0x7e,0x8e,0x42,0xae,0x85,0xc4,0x40,0x36,0x4b,0x8a,0x41,0x1d,0x62,0xb8,0xc2,0xa9,0x14,0x7e,0x43,0xc0,0x22,0xc6,0x40,0xca,0x80,0xc6,0x42,0xb3,0x9,0x36,0x42,0x2e,0x65,0xbd,0x41,0x26,0x54,0x62,0xc2,0x6e,0x23,0xad,0xc2,0x18,0x94,0xbf,0x41,0x15,0x82,0x14,0xc2,0xbb,0x4b,0x4a,0xc3,0x58,0xe0,0x3e,0xc2,0x59,0x5b,0xb4,0x42,0x2d,0x7b,0x92,0x43,0x1e,0x8,0x3d,0xc2,0xd3,0x2f,0xd,0x42,0x60,0x9a,0x6c,0x42,0x4f,0xdb,0x9c,0xc2,0x98,0xc0,0x1f,0xc3,0xf3,0x61,0xef,0x42,0xc,0xc2,0xb2,0x41,0xe1,0x52,0xd7,0x40,0x8d,0x62,0xb8,0x42,0xd5,0xa9,0x33,0xc2,0xd8,0xf0,0xda,0x41,0x7d,0x6d,0x38,0x43,0xdb,0x51,0x89,0x41,0x87,0xc7,0x28,0x43,0xcd,0x5b,0x63,0x41,0x57,0x3,0x6,0xc3,0x54,0xd5,0xe5,0x42,0x7,0xd1,0x83,0x42,0xa9,0xe2,0x28,0x43,0x7f,0x7c,0x90,0x42,0x6f,0x49,0xa5,0xc2,0x6a,0xf3,0xaf,0xc1,0x63,0xb2,0x50,0xc2,0xd4,0xa5,0xa4,0xc0,0x29,0x94,0xc2,0xc2,0x1d,0x33,0x73,0xc2,0x50,0x31,0xeb,0x3e,0xef,0xe8,0x88,0x42,0x9d,0x36,0x8b,0xc1,0xe4,0xbd,0x5f,0x42,0x7,0x37,0x8e,0xc2,0x47,0xd9,0x64,0x43,0xde,0x7c,0x21,0xc2,0xf8,0x44,0x13,0xc1,0x96,0xd8,0xde,0xc2,0x24,0x15,0xf1,0xc1,0x13,0x51,0xed,0x42,0xa0,0x0,0x23,0x42,0xd6,0x23,0x36,0x42,0x23,0xfe,0x37,0x42,0xff,0x97,0xbd,0x42,0x7f,0x39,0x69,0xc2,0xc8,0x9f,0x3d,0xc3,0x78,0xc,0xa2,0x42,0xf0,0x44,0xb6,0x42,0x7b,0x51,0x40,0xc2,0x28,0x5e,0x15,0x42,0xa7,0x9f,0xae,0xc2,0x8a,0x2e,0xd6,0xc1,0xfd,0x5f,0x82,0x42,0xe0,0x10,0x4d,0x40,0x7f,0x59,0x8e,0x42,0x77,0x9a,0xd,0x43,0x99,0x57,0x61,0xc2,0xca,0x9e,0x38,0xc3,0x78,0xc3,0x44,0xc1,0x51,0x4,0x6f,0x42,0xec,0xd9,0x3,0xc0,0xff,0xf1,0x9e,0xc1,0x27,0x6b,0x55,0x42,0xe6,0x5d,0x4a,0xc1,0x1b,0xda,0x79,0xc1,0xd5,0xc9,0xdb,0x42,0x2a,0xc3,0x93,0x43,0x1f,0xd,0xd3,0x42,0x3b,0x31,0x7e,0xc2,0xce,0x73,0xc5,0x42,0x5f,0x79,0x28,0xc3,0x8d,0xd1,0x43,0x41,0x58,0x75,0x25,0xc2,0xca,0xc0,0x37,0xc3,0x49,0x82,0x3,0xc3,0xe2,0xd5,0x85,0xc1,0xc0,0x4c,0x7e,0xc2,0x2e,0xe6,0xa4,0xc2,0x6,0xc0,0x9b,0x41,0x3a,0x56,0x1e,0x42,0xe4,0xa2,0x55,0x43,0x76,0xe4,0x4f,0xc2,0x60,0x93,0x6e,0x41,0x31,0x95,0x3b,0xc2,0x8c,0xbd,0x65,0xc2,0x59,0xe8,0xe9,0x42,0x7f,0x9d,0xb5,0xc2,0x7e,0x25,0xe5,0x42,0x6c,0x82,0xf7,0xc2,0xd,0xaf,0xc3,0x42,0xf2,0x5b,0x8e,0xc2,0x3c,0x17,0xac,0xc1,0x1e,0x70,0x83,0xc1,0xb0,0x92,0x67,0x43,0x73,0x9e,0x53,0xc2,0xc2,0xb7,0x86,0xc1,0x3e,0xb6,0xac,0xc2,0x21,0x57,0x98,0x42,0x5e,0x88,0x48,0x41,0x76,0xbc,0x14,0x43,0x5,0x73,0xc8,0x41,0xbe,0x41,0xf,0xc3,0x25,0x72,0xeb,0x42,0x98,0xa6,0x9c,0xc3,0x68,0x82,0x4e,0xc2,0x94,0xca,0x8c,0xc2,0xca,0xd,0x8c,0xc1,0x29,0xde,0xc7,0x41,0x2a,0x37,0xa8,0xc2,0x10,0x60,0x10,0x43,0x6,0xa1,0xc,0xc2,0x8c,0x82,0x5c,0x42,0x26,0xf8,0xdc,0x42,0x3a,0x45,0xd6,0x42,0x9b,0xc9,0x92,0x42,0xe4,0x1,0xe6,0xc2,0xe4,0xad,0x9c,0x42,0x85,0xa2,0xeb,0xc1,0xbb,0x2,0xc4,0xc2,0x22,0x72,0x19,0x43,0xca,0xd9,0x22,0x43,0x32,0x4e,0x90,0x42,0xf5,0xd7,0x29,0xc3,0x6a,0x2c,0xbd,0xc2,0x4d,0x7d,0x1b,0xc3,0xdf,0xc4,0x19,0x43,0xb9,0x43,0x34,0xc2,0x41,0x19,0xb7,0x41,0x77,0x48,0xa,0x43,0x44,0xc3,0xaa,0x42,0x35,0x3c,0x62,0xc2,0x3f,0xd8,0x3,0xc3,0x6a,0x78,0x69,0xc2,0x9e,0xe9,0x5a,0xc1,0xcc,0xfc,0xb,0xc3,0x62,0x13,0xc7,0x42,0xc,0x3a,0x76,0xc2,0xc9,0xdd,0x2c,0x43,0xfa,0x2f,0x1c,0xc3,0xc1,0x6f,0x36,0x42,0xe1,0xf2,0x1b,0xc3,0x22,0xc6,0xa0,0x41,0x5b,0x6c,0xd0,0xc1,0xf2,0x82,0x81,0x42,0x43,0x60,0x42,0x41,0x2d,0xf4,0xfc,0x41,0x18,0xfd,0xfe,0x41,0x7e,0x5a,0x3e,0x42,0x69,0x86,0xc3,0x41,0x69,0x22,0x37,0x43,0xa9,0x52,0x20,0x43,0x82,0xf8,0x4e,0xc2,0xbe,0x96,0xea,0x42,0xb2,0xac,0xc6,0xc2,0x9d,0x4e,0xab,0xc2,0xd3,0xa6,0x97,0xc1,0x7d,0xd7,0xc7,0xc2,0x92,0x28,0x30,0xc2,0x8f,0x5,0x7,0xc3,0x51,0xa7,0xba,0x40,0xce,0x9e,0xb3,0x42,0xca,0xb3,0x3b,0x42,0x2b,0xdd,0xcc,0x41,0x3d,0x65,0xd6,0xc2,0x1e,0xe,0x92,0x41,0xd5,0xea,0x34,0x43,0x6c,0x86,0xf2,0x42,0xbf,0x58,0xd6,0xc2,0x47,0xf1,0x2a,0x41,0xff,0x7b,0xfe,0x42,0xa4,0x15,0x1f,0xc3,0x65,0x4,0x1b,0x43,0x8e,0x45,0x6a,0xc2,0x5e,0xf,0x6a,0x42,0x71,0x11,0x88,0xc1,0x68,0x57,0xd4,0x41,0xb3,0xad,0xf0,0xc1,0x44,0x94,0xb6,0xc1,0xfa,0x15,0xd,0x40,0x41,0x6,0x81,0x42,0x8c,0x3a,0x48,0x42,0x2f,0x45,0xb,0xc3,0x66,0x30,0xd6,0x42,0xb9,0xba,0x97,0x43,0xe6,0x96,0x14,0x42,0x3b,0x5,0x6,0xc3,0x7,0x8c,0x7e,0xc2,0x2,0x2a,0xef,0x41,0x9,0xa7,0xf,0xc1,0xe5,0xf2,0x7d,0x42,0xf,0xc4,0x3,0xc3,0xd8,0x7c,0x80,0xc1,0xa8,0xfe,0xc5,0xc2,0xe5,0x4f,0x4c,0xc1,0xe4,0x73,0xf1,0xc1,0x19,0xfa,0xe4,0x41,0x13,0x6,0x33,0xc2,0x38,0xdd,0x55,0x42,0xb1,0xe3,0x34,0xc2,0x0,0xec,0x6c,0xc1,0x9f,0x6a,0x4,0x43,0xf9,0x9b,0xef,0xc1,0x9b,0x3a,0xa7,0x42,0x60,0x9c,0x2,0xc3,0x67,0xa1,0x4b,0x43,0x17,0x51,0x5,0x43,0xc5,0xea,0xc,0x43,0x26,0xcd,0xba,0xc2,0x20,0xeb,0x9,0x40,0x38,0x5a,0x86,0xc2,0x8c,0xdc,0x7c,0x40,0x96,0x88,0x11,0x42,0x69,0x17,0xcb,0x42,0xf1,0x9b,0xe7,0xc1,0x7f,0xbf,0x6c,0xc1,0x19,0xc,0xf5,0x42,0xf6,0x73,0xb6,0x42,0xa9,0x47,0x8f,0x42,0x3d,0xf3,0x1d,0xbf,0xff,0x1f,0xc3,0xc0,0x56,0x3f,0x1,0xc3,0xbb,0xfb,0x95,0xc1,0xfa,0xa5,0x3e,0xc3,0x39,0x95,0x30,0x42,0xbc,0xab,0xbe,0xc1,0xbd,0xa2,0xce,0x42,0xc,0xb,0xb3,0x42,0xa4,0x6c,0xd7,0x42,0xd4,0x5c,0x32,0x42,0x61,0x5a,0x74,0x42,0xce,0x7d,0x10,0xc2,0x4c,0xe5,0x19,0xc3,0x9f,0xf9,0xad,0x41,0x7,0xd1,0x8b,0x40,0x85,0xc7,0xc7,0x42,0x5b,0x1a,0xa0,0x42,0xc0,0x18,0xf9,0x42,0x1e,0xe4,0xcc,0xc2,0x39,0x62,0xe1,0xc2,0x76,0xec,0x1f,0x41,0xf7,0x11,0x99,0x42,0xc0,0x30,0x17,0xc3,0x9d,0x16,0x49,0xc2,0xf4,0xfb,0x4c,0x43,0x8b,0xd0,0x76,0xc2,0x26,0xde,0x97,0xc1,0x42,0x8b,0xd5,0x42,0x8d,0x3b,0xa4,0xc2,0xf,0x3,0x13,0x42,0xf0,0x9b,0xb2,0xc2,0x42,0x2e,0xa,0x42,0x23,0xec,0x10,0x43,0x18,0xf0,0xde,0x41,0x85,0x22,0x9e,0x41,0x3a,0x75,0x3,0x41,0x80,0x8,0x84,0xc2,0x29,0x3a,0xff,0x41,0xcd,0x30,0xaf,0xc1,0x4b,0x2,0x13,0x42,0xdf,0x5d,0x62,0xc1,0x11,0x93,0xd2,0x40,0x5e,0x39,0x19,0x42,0xf4,0xb,0xd2,0xc2,0xfb,0xea,0x45,0x42,0x1d,0x18,0x1b,0xc2,0x39,0xaa,0xb,0xc2,0x11,0xba,0xa0,0xc2,0x7e,0xa5,0xfa,0xc2,0x22,0x1c,0x72,0xc2,0x1e,0xb8,0x38,0x42,0x2e,0x1,0x20,0x41,0x19,0xb,0x3b,0x42,0x10,0xa2,0x35,0xc2,0x5a,0xdd,0x19,0x43,0x22,0x8b,0xcf,0xc2,0x26,0x5,0x10,0x41,0x54,0x54,0x53,0xc3,0x84,0xb7,0x74,0xc2,0xbd,0x44,0xa2,0x42,0x12,0xaa,0x2f,0x42,0x6d,0x5c,0xca,0xc2,0x99,0x18,0x9,0xc3,0xf3,0x4b,0x67,0x41,0xd8,0x40,0xbc,0xc2,0xef,0x65,0xcf,0x41,0x43,0xd6,0xf2,0x41,0xa7,0x43,0xfd,0xc0,0x5e,0x26,0x0,0xc0,0xd9,0x8b,0x59,0x42,0x3c,0x93,0x2,0xc3,0xf6,0x70,0x60,0xc0,0xdf,0xf9,0x8d,0x41,0x5b,0xad,0x44,0xc2,0x3d,0x66,0xd,0x43,0xd4,0xb3,0x9c,0xc2,0x0,0x35,0x94,0xc2,0xec,0x7d,0x28,0x42,0xb6,0x25,0xca,0x41,0x8e,0x1f,0x18,0x42,0xb1,0x14,0x3d,0xc2,0x83,0x96,0x66,0x42,0xee,0x5b,0xa7,0xc2,0x77,0x21,0x70,0x42,0x4e,0x4a,0x82,0x42,0xa6,0x63,0x8d,0xbf,0x75,0xc2,0x7a,0x42,0x89,0xf5,0xb6,0xc2,0xd6,0x41,0x35,0x41,0x46,0xa4,0xbe,0xc2,0x2c,0x30,0xb0,0x3f,0x81,0x6e,0x21,0xc3,0x82,0x47,0x6d,0x40,0xd0,0x1e,0x40,0x42,0x45,0x8b,0x26,0x42,0x59,0x84,0xe0,0x42,0x6,0xba,0xf6,0x40,0xb4,0x55,0x53,0x42,0x6d,0x75,0xd0,0xc2,0x56,0x5f,0xe,0xc3,0x52,0xa5,0x37,0x42,0x4f,0x56,0x61,0xc2,0x8f,0xb6,0x9c,0x42,0xc3,0x3a,0x89,0xc2,0xee,0xbb,0x59,0x41,0xb,0x24,0x98,0xc2,0xc8,0x29,0xc8,0x41,0x75,0xd4,0x57,0xc1,0xa6,0x76,0x3f,0x42,0xff,0x17,0x5f,0xc1,0xc0,0x6a,0x8e,0x42,0x90,0xac,0xbe,0x42,0x3f,0x5e,0xf3,0x42,0x7,0xa7,0xe,0xc3,0x9f,0x47,0x84,0xc2,0x89,0x3e,0xb9,0xc1,0x99,0x84,0x18,0x42,0x69,0x28,0x2,0xc1,0x9f,0x4,0xff,0xc1,0x9c,0x90,0xfc,0x41,0x2a,0xc0,0xca,0xc2,0xd1,0xc0,0x8f,0x42,0xde,0xed,0xa,0x41,0xc7,0xb,0x5e,0xc2,0x4f,0xd7,0xd7,0x42,0xd3,0x64,0xad,0x41,0x33,0x38,0xa2,0x40,0xda,0x63,0xea,0x42,0xa5,0xa6,0x31,0x42,0x89,0x5d,0xa9,0xc2,0xbd,0x67,0x75,0x42,0x16,0x4f,0xf0,0x42,0xc4,0xe,0x4a,0x42,0xd6,0xf3,0x23,0x40,0x16,0x57,0x60,0x43,0x96,0x64,0x36,0x42,0x29,0xa6,0x5a,0x42,0x26,0xd2,0xd7,0xc1,0x2c,0x89,0x66,0xc2,0xcc,0xe9,0xf8,0x42,0x47,0x2e,0x47,0xc0,0xa6,0x74,0x91,0xc2,0x99,0x8f,0x5b,0xc2,0x4c,0x94,0x10,0x42,0xec,0x42,0xb1,0x41,0xe8,0xaf,0xf,0x43,0xc7,0x9e,0xf9,0x42,0x18,0x2c,0x46,0x3f,0xc6,0x24,0x42,0x42,0xbd,0xe6,0x15,0x42,0xbf,0x44,0xe7,0xc1,0xd7,0x22,0x14,0x42,0x81,0x86,0x50,0x42,0x19,0xc3,0xef,0xc2,0xec,0x3b,0x3b,0xc2,0xb3,0xa2,0x57,0x42,0x67,0xf5,0x75,0x42,0x40,0x83,0x76,0xc1,0x79,0xb4,0x4b,0x40,0xcf,0x4d,0x41,0xc2,0x37,0x2f,0x98,0xc2,0x32,0x2d,0x66,0xc2,0x15,0x54,0xa3,0x41,0xf6,0x2f,0xf3,0x42,0x6a,0x39,0xfe,0x42,0xc8,0x9a,0x1e,0x43,0x9,0xc7,0x60,0x42,0x6,0xe5,0xb1,0xc2,0xbe,0x81,0x73,0x42,0xda,0xf4,0x37,0xc1,0x4,0x43,0xcd,0xc2,0x9c,0x4e,0x9e,0x41,0xb6,0x52,0x8f,0xc1,0x47,0xf8,0xb3,0x42,0xe1,0xe8,0x1a,0x43,0x22,0xce,0xa,0xc1,0x8b,0xb5,0x98,0x41,0x75,0x13,0xcb,0x42,0xe0,0x5a,0xe,0xc3,0xbc,0x6b,0x8d,0xc2,0xce,0xca,0xa5,0xc2,0xb0,0x1e,0x99,0xc2,0xc3,0xb7,0x43,0x42,0x94,0x45,0x45,0xc2,0x91,0x2b,0x88,0xc1,0xd8,0x1c,0x1,0xc2,0x7e,0x89,0x87,0x41,0x4a,0x11,0x1e,0xc0,0xe4,0xf9,0xd1,0x40,0x2,0xb0,0xcb,0xc2,0xac,0x6,0x1a,0x43,0xac,0xe3,0x99,0xc2,0x27,0xd4,0x8,0xc2,0x57,0x74,0x96,0xc0,0x18,0x3c,0xb0,0x43,0x69,0xc3,0xc5,0x41,0x17,0x37,0xaf,0xc1,0x39,0x6f,0xf1,0x42,0x40,0x94,0x88,0x42,0x24,0x19,0xf3,0x40,0xa9,0x61,0x59,0xc2,0x19,0x95,0xeb,0x41,0xf2,0xac,0xa3,0x42,0x77,0x9e,0x1f,0x41,0xe7,0x7e,0xc3,0x42,0x96,0x7d,0x1e,0xc3,0xcb,0x82,0x9d,0xc2,0x34,0xfd,0xba,0xbe,0x75,0x9c,0x95,0x42,0xa9,0xb,0x54,0xc3,0x2c,0xb1,0x60,0xc3,0x68,0xd8,0x90,0x42,0xe8,0x9b,0xd4,0x40,0xe7,0xab,0x0,0xc3,0x16,0xdb,0x66,0x43,0x86,0xc5,0x34,0xc2,0x8b,0x86,0x24,0x43,0xd2,0x4a,0x10,0xc1,0xc5,0xfa,0x37,0xc3,0x32,0x81,0x5a,0xc2,0x74,0x80,0xf2,0x42,0x6,0x61,0x94,0xc1,0xb0,0x89,0x3d,0x42,0x9c,0xf,0xa8,0x41,0x8a,0xdd,0x96,0xc1,0x63,0x2f,0xb9,0x42,0x30,0x8,0x5b,0xc2,0x29,0xd5,0x16,0x43,0xcc,0xc8,0x85,0xc1,0x9e,0x35,0x62,0x42,0xdd,0x99,0x1a,0xc2,0x11,0x9f,0x24,0xc2,0x80,0x91,0xfd,0xc1,0x39,0xca,0xc1,0xc2,0x80,0x85,0x28,0xc3,0x5d,0x87,0x79,0xc2,0x18,0xfa,0x43,0xbf,0xdc,0xbe,0x2,0xc3,0xe8,0x5a,0x62,0xc2,0x98,0x6d,0xe8,0xc1,0xb5,0xa5,0xc3,0x42,0x78,0xc2,0xd,0xc3,0xe,0x8a,0x91,0xc0,0xc6,0xe5,0x52,0x40,0xdd,0xfa,0xd6,0xc2,0x7a,0x5a,0xa1,0xc2,0x61,0x2b,0x1f,0xc3,0x64,0x7f,0xe7,0xc1,0x8c,0xa3,0xab,0xc2,0x89,0x62,0xa1,0xc1,0x3a,0x50,0x6c,0xc3,0x2b,0xe3,0x51,0x42,0x17,0x6e,0x35,0x42,0xb8,0xe4,0x4b,0x42,0x9a,0x6e,0x3e,0x43,0x76,0xfa,0xac,0x40,0x5b,0x56,0xc1,0xc0,0xa7,0x64,0x57,0xc1,0x5e,0xcc,0x7,0x42,0xac,0x18,0xba,0xc2,0x5a,0xc5,0x53,0x43,0x80,0x79,0xc,0x42,0x71,0xbd,0xf0,0x42,0x11,0x39,0xea,0xc2,0xb8,0x97,0x19,0x43,0xc4,0x2,0x59,0xc0,0x36,0xea,0x75,0x43,0xb3,0x5e,0x11,0x43,0xaa,0xb7,0x1b,0x42,0x15,0x86,0x31,0xc2,0xcd,0x74,0x26,0x42,0xab,0x86,0x3d,0x42,0xef,0xd2,0x89,0x41,0x1c,0xe4,0x1d,0xc2,0x5b,0xa9,0xf9,0xc1,0x2a,0x39,0xb9,0x42,0x64,0x13,0x72,0xc2,0xc9,0xb4,0x8c,0x42,0x30,0x6d,0x78,0x42,0xc3,0x8f,0x8f,0x42,0xcb,0xd0,0xf1,0xc2,0x5c,0xfd,0x86,0x40,0xf8,0x94,0x35,0x42,0x92,0x23,0xc9,0xc2,0xb6,0xab,0xbf,0x42,0x46,0xdf,0xc8,0xc1,0xe0,0xc4,0x10,0x42,0xb0,0xca,0xd7,0x42,0xc6,0xb1,0xbb,0x42,0x5c,0xcb,0x12,0xc2,0x56,0x8a,0xb6,0xc2,0xc2,0x88,0x8e,0xc2,0xa,0x8c,0x18,0xc2,0x22,0xa,0x2e,0x43,0xf0,0x79,0xa9,0xc2,0xdf,0x3d,0x19,0xc2,0xea,0x47,0x26,0xc3,0x89,0x3d,0x19,0xc3,0x79,0xbb,0x71,0xc2,0x5,0xf7,0x4,0xc2,0xad,0xa2,0x67,0xc3,0x76,0x37,0x5,0x43,0xd6,0x50,0x7b,0xc2,0xd4,0xc8,0x10,0xc0,0xf9,0x97,0xa7,0xc1,0xeb,0xb5,0xe6,0xbf,0xa7,0xf1,0x8b,0xc1,0x33,0x7b,0xde,0x42,0xbb,0x6e,0xaa,0x42,0x43,0xc0,0x24,0xc3,0xb9,0x6a,0x32,0xc2,0xc4,0x6b,0x92,0xc1,0xc0,0xc4,0xda,0xc2,0x4e,0xe6,0xaf,0xc1,0xee,0x55,0x3e,0xc1,0x59,0x35,0x9,0xc3,0x2c,0x1,0x8c,0x42,0xbe,0xc9,0xa4,0x42,0x9e,0x9e,0xa3,0xc2,0x2d,0xf8,0x29,0xc3,0xa4,0xe9,0xba,0xc1,0x15,0x5a,0x19,0xc3,0xfc,0xd3,0x5e,0x43,0xe2,0x7b,0x8f,0xc2,0x6f,0xf7,0x39,0x43,0xf6,0x62,0x87,0xc3,0x45,0xc0,0x0,0x43,0x30,0x85,0x81,0x43,0x72,0xea,0x23,0xc3,0xf3,0xa8,0xdf,0x41,0xa5,0xb6,0x5a,0xc2,0xdc,0x70,0xd6,0x41,0xf7,0xe1,0x60,0xc3,0xf9,0x68,0xf5,0xc1,0xa1,0x83,0x4c,0x42,0x48,0x7c,0x3e,0xc2,0x49,0xad,0x8b,0x42,0x33,0xeb,0x32,0xc2,0xb3,0xf4,0x11,0xc3,0xe8,0xef,0xb4,0xc1,0xb6,0xb1,0xd6,0x42,0x5b,0x48,0xad,0xc2,0x22,0xdf,0x13,0xc3,0xe9,0x58,0x12,0x43,0xdc,0xb3,0xd6,0xc0,0xde,0x50,0xdb,0xc1,0x6e,0xf,0x80,0xc1,0x91,0xb6,0xf,0x43,0xd,0x12,0xd7,0x42,0xad,0xb7,0x59,0x42,0x28,0x6e,0xd,0x41,0x36,0x36,0x53,0xc1,0x70,0xb8,0xcd,0xc1,0xd0,0x9c,0x2c,0xc2,0x92,0xbf,0x86,0x42,0x16,0x2c,0x88,0xc1,0xa5,0x6d,0xc1,0xc2,0x90,0x35,0x32,0x42,0x4d,0x3b,0xe8,0x42,0x4d,0x6c,0x2c,0xc3,0x94,0xfe,0x5c,0x42,0x94,0xa,0x74,0x43,0xa3,0xb7,0x2f,0x42,0xea,0x38,0xc2,0xc1,0xe6,0x11,0xd6,0xc2,0xde,0xa2,0x3,0xc3,0xbb,0x86,0x18,0x43,0xd3,0xe,0xb2,0x42,0x57,0x87,0x1f,0x43,0xe9,0xa2,0xff,0xc2,0xfc,0xd7,0xc5,0x42,0xd0,0xa3,0x6c,0x42,0x52,0xda,0x89,0x42,0x6b,0x17,0x61,0x42,0x9c,0x22,0x1c,0xc2,0xf8,0x58,0x6f,0x43,0x8d,0xaf,0xed,0x42,0xee,0xd3,0xb6,0x41,0x9f,0xa8,0xb7,0x42,0x5,0x9,0x0,0x43,0x3f,0xfa,0x1,0x42,0x44,0xc9,0x42,0x43,0x28,0xf1,0xa0,0x42,0xb2,0xcf,0x1e,0xc3,0x2c,0xb6,0x38,0x42,0xa7,0xb9,0x3f,0xc3,0x96,0xe8,0x66,0x43,0xb,0x2c,0xb4,0x42,0x21,0xad,0xe,0x42,0x57,0xe9,0x37,0xc3,0x91,0x4a,0x10,0xc3,0x1a,0xb2,0x61,0x42,0x37,0x31,0xc6,0xc2,0x9f,0x54,0x20,0xc3,0x7e,0x7b,0x1c,0x42,0xe9,0xb3,0x0,0x43,0x74,0x96,0x91,0xc2,0x81,0x10,0x24,0xc2,0xab,0xf5,0x10,0x41,0x27,0xaf,0x42,0xc2,0xbd,0xd8,0xbc,0xc1,0xa6,0xb5,0x9b,0xc2,0x72,0xef,0x2d,0x42,0x8f,0x34,0x82,0xc2,0xbd,0x48,0x1,0x42,0xd1,0x39,0x18,0x43,0xb0,0xe5,0x1d,0xc2,0xdd,0xa,0xef,0x42,0x8f,0xb4,0x0,0x42,0x3d,0xba,0x5b,0xc2,0x50,0xe1,0xbb,0x41,0xf5,0x7b,0xcb,0x42,0x94,0xd4,0x9,0x42,0x47,0x76,0xa8,0xc2,0x4d,0x92,0x3,0xc3,0xe3,0x12,0x75,0xc2,0x14,0x9,0xc0,0xc2,0x6e,0xfb,0x8b,0xc2,0x54,0x10,0x48,0x43,0xc5,0xe1,0x29,0x43,0xfc,0x4d,0x8b,0x42,0x3e,0xfb,0x77,0xc2,0x9d,0xbb,0xe7,0xc2,0x62,0xb9,0x51,0xc2,0x51,0x46,0x7c,0x42,0x28,0xb,0x83,0xc2,0x2c,0x27,0x3a,0x43,0x70,0x25,0x80,0x42,0xa6,0x86,0xd0,0x41,0x5c,0xc6,0x69,0xc0,0x12,0x18,0xd,0x43,0x21,0x66,0xe,0x42,0x67,0xe6,0xcb,0xc2,0xf8,0x1c,0xc7,0x42,0x58,0x47,0xdd,0xc1,0x44,0x48,0xb4,0xc2,0x80,0x5a,0x32,0xc2,0xc0,0xdb,0x9e,0x3f,0xe7,0x8,0xae,0x42,0xc7,0x36,0xf,0xc3,0xe4,0x5f,0x92,0x42,0xc9,0x13,0x3c,0x43,0x75,0xf1,0x74,0x41,0x8c,0x15,0x93,0xc1,0x77,0xa0,0xf0,0xc0,0xe7,0x9,0xb5,0xc1,0x37,0x74,0x96,0xc2,0xeb,0x35,0xbf,0x41,0x12,0x12,0x43,0xc2,0x26,0x5a,0xec,0x40,0xec,0x23,0x21,0x42,0x9d,0x58,0xb3,0xc2,0xf9,0xc7,0xcd,0x42,0x64,0xf8,0x1d,0x43,0xdb,0x8a,0x57,0xc2,0x78,0xd7,0x39,0x43,0x8f,0x73,0x2,0x42,0x4c,0x83,0x72,0xc2,0xfa,0x6d,0x39,0xc1,0x3a,0xe7,0x6f,0xc2,0xec,0xee,0xb8,0x3f,0xf4,0x47,0xf9,0xc2,0x5a,0x1f,0x7,0xc1,0xd,0x40,0x2e,0xc3,0x87,0x6d,0x88,0x42,0xd5,0xda,0x31,0xc2,0x73,0xc9,0x3c,0xc1,0x9e,0x3a,0xba,0x42,0x70,0xc4,0xcb,0xc2,0xbc,0x6,0x5,0x42,0x70,0x6d,0xb4,0x41,0x7d,0x4f,0x11,0xc3,0x12,0x66,0xa6,0xc1,0x77,0x7d,0xf5,0x42,0x4a,0x17,0x1e,0xc3,0x4e,0x86,0x8a,0xc2,0x7d,0x5e,0xb0,0xc2,0xf2,0x95,0x25,0x43,0xaa,0xb7,0xfc,0x42,0xdf,0xf6,0x3e,0x41,0xc9,0x52,0x65,0xc2,0xcd,0xfd,0xb7,0xc2,0xf,0x5e,0x11,0xc3,0x69,0x81,0x5,0x43,0x63,0x74,0x2e,0x42,0x16,0xad,0x6,0x43,0x6c,0xa9,0x5,0x43,0xd7,0x21,0xc1,0x40,0xaa,0x38,0xdb,0xc2,0xf,0x92,0xb9,0xc2,0x26,0x11,0xfc,0x42,0x78,0x27,0xb6,0x42,0x57,0xbc,0x65,0xc1,0x5e,0xf8,0xb3,0x42,0x85,0x6b,0x6b,0x42,0xa4,0xd2,0x64,0x42,0x37,0x9f,0x43,0x42,0xe,0xbc,0x33,0x43,0x3a,0x7c,0xd9,0x42,0xcf,0x6,0xfd,0xc2,0x2,0xd9,0x2e,0x43,0xa3,0xe0,0xd4,0x41,0x7a,0x71,0x1,0x43,0xdf,0x1a,0xda,0xc2,0xbf,0xfb,0xe3,0x42,0xce,0x9b,0x18,0xc3,0x33,0x8d,0x9d,0xc1,0x6f,0xfd,0x3b,0x42,0x93,0xc7,0x41,0xc2,0xde,0x4d,0x73,0xc1,0x33,0x7d,0x37,0xc2,0x71,0xce,0xfb,0xc2,0x8,0x31,0xef,0x42,0x98,0xba,0x9a,0xc2,0xce,0xbb,0x41,0xc2,0x87,0xe1,0x56,0xc2,0xc2,0xbf,0xf5,0xc2,0x55,0x1a,0x54,0xc2,0x45,0x8f,0x1e,0xc3,0x7,0xa7,0x41,0xc2,0x28,0x27,0x1f,0x42,0x35,0x87,0x41,0xc2,0xc,0x6f,0xb9,0xc1,0xdb,0xca,0xb8,0x42,0x67,0xf8,0xd,0xc3,0xdd,0x1d,0xb4,0xc1,0xc4,0x96,0xe0,0xc2,0xfe,0xce,0x2e,0xc3,0x0,0x52,0xf7,0xbd,0xa8,0x72,0x44,0x42,0x40,0xa4,0x80,0x3f,0x26,0xf4,0x8d,0xc1,0xf1,0x8,0x1c,0x42,0x6a,0x56,0xe0,0xc1,0x35,0xd,0xb0,0xc2,0x2c,0xe0,0x38,0x40,0x59,0x81,0xd3,0x42,0x5,0x51,0x98,0xc1,0x25,0xff,0x2c,0x43,0x2c,0x23,0x4b,0xc2,0xbe,0xfe,0x23,0x41,0x70,0x83,0x2e,0x43,0xcf,0x5a,0xb6,0xc2,0x91,0xf0,0x14,0xc2,0xd2,0x47,0xc3,0xc2,0xa,0x53,0xa5,0x42,0x3f,0x9d,0xa1,0x42,0xc0,0xde,0xb9,0xc2,0x6f,0xa4,0x1a,0x43,0xd2,0x1e,0xa2,0xc2,0x18,0x9c,0x9f,0x42,0x1d,0x8e,0xda,0xc2,0xd2,0xd0,0xd4,0x42,0x82,0x90,0x82,0x42,0x9,0x60,0x49,0xc1,0x47,0xa0,0x2e,0x42,0xe,0x47,0x14,0x40,0xc6,0x6e,0x3b,0x42,0xe9,0xd5,0xb,0xc2,0xd,0x73,0x44,0xc3,0xa5,0x93,0xbb,0x41,0xf8,0x69,0xa8,0x42,0x70,0x2e,0xc7,0xc2,0xfe,0xf6,0xde,0x41,0xdd,0x1a,0x47,0x43,0x70,0xd4,0x6d,0x42,0x53,0x59,0x6b,0xc2,0x80,0xf0,0x11,0xc3,0xa0,0xfd,0x2a,0xc3,0xd6,0x73,0xf0,0x42,0x29,0xa8,0xe6,0x42,0x54,0xaa,0x5e,0xc2,0x45,0x77,0x17,0x42,0xae,0x78,0xe3,0xc2,0x16,0x1c,0x78,0xc0,0xed,0x9,0x6e,0x42,0xc7,0xb,0xa6,0x42,0xb6,0x96,0x3f,0xc3,0x38,0x69,0x96,0x41,0x95,0xd,0x5d,0x42,0x17,0x92,0xe2,0xc2,0xeb,0xc9,0xc7,0x42,0x6d,0xf0,0x34,0x42,0xd0,0x9d,0xcf,0x42,0x4a,0xf6,0xd5,0xc1,0x70,0xa6,0x2f,0xc1,0x60,0x99,0xbf,0xc2,0xbc,0xdc,0xcb,0x42,0x69,0xc6,0x85,0xc2,0xd9,0x1c,0xad,0xc2,0x28,0xdd,0x3c,0x41,0x9,0x91,0xf1,0x42,0xb2,0x43,0xad,0x42,0xe0,0xeb,0x14,0x42,0xe0,0xde,0xaf,0xc2,0xd,0x78,0x89,0x40,0x60,0xb4,0xf9,0x42,0x97,0x41,0x10,0x41,0x50,0x5a,0x95,0xc2,0xcf,0x9c,0x8b,0x42,0x2f,0xa,0x1b,0x43,0x5a,0x28,0x68,0xc2,0xcc,0x7b,0x6c,0x42,0x87,0xfd,0x5c,0xc2,0x5f,0x82,0xbc,0x42,0x4a,0x82,0xaa,0x42,0x8e,0x64,0x3b,0xc2,0xef,0x22,0x4e,0xc2,0x4c,0x3c,0x11,0xc3,0x70,0xed,0xcb,0xc2,0x33,0x4,0x3a,0xc2,0xa9,0x45,0x70,0x43,0x78,0x43,0xd6,0x41,0xad,0x3f,0x1c,0x43,0x43,0x27,0xe1,0x41,0x5a,0x88,0x36,0xc2,0xb7,0x1c,0x6b,0x42,0xa3,0x2c,0x15,0xc3,0xa1,0xbf,0x2c,0xc3,0x30,0x76,0xa4,0xbf,0x9e,0xec,0xa3,0x42,0xf9,0xf7,0xac,0xc2,0x70,0x21,0xb7,0x40,0x5c,0xf1,0x69,0x41,0x69,0xb3,0x33,0x43,0xdd,0x1c,0xbd,0xc2,0x3c,0x9d,0x60,0xc2,0x60,0xb5,0x9b,0xc2,0x3b,0x7,0xc4,0x42,0x45,0x19,0x26,0xc2,0x61,0xcf,0x3,0xc3,0xf4,0xd6,0x31,0x42,0xcf,0x4,0xd3,0xc2,0xcc,0xf,0x8c,0x41,0x68,0xf1,0xc1,0x41,0x8a,0xef,0xb4,0x42,0x5f,0xae,0xf0,0x41,0xc3,0xf6,0x55,0xc2,0xb8,0x62,0xfa,0xc1,0x11,0xb2,0x6,0xc3,0x78,0xc0,0xb8,0x41,0xee,0xf,0x12,0x43,0x50,0x7f,0x77,0x42,0xe,0xed,0x94,0xc1,0x60,0xdf,0x6,0x41,0xc1,0xa5,0x5,0xc3,0x76,0x77,0x80,0x42,0x52,0x45,0xef,0x40,0x5a,0x39,0xc7,0xc2,0xd6,0x40,0xb3,0xc2,0x34,0x46,0xa4,0x41,0xe5,0x3f,0x3c,0xc2,0x3d,0xae,0x62,0xc2,0xec,0xf2,0xd9,0x42,0x73,0x8e,0x28,0xc1,0xee,0x26,0x6,0x43,0x5e,0xe2,0xdc,0xc1,0x29,0xf1,0x4e,0xc2,0x21,0xb6,0xbd,0x42,0xf8,0x29,0xd,0x41,0xaa,0x1,0x8a,0x42,0xd3,0xbe,0x2b,0x43,0xf2,0xc3,0x2e,0x42,0x5b,0xe2,0x82,0xc2,0xcd,0x6,0x77,0x42,0xa2,0x8,0x24,0xc1,0xc6,0xc8,0x6b,0xc1,0x99,0xc9,0x1e,0xc2,0x5a,0x68,0x34,0x43,0x73,0x3e,0x2e,0x42,0x93,0xe0,0xf1,0x40,0xf3,0x57,0x98,0xc2,0xad,0x15,0x36,0x43,0x3e,0x65,0xed,0xc2,0xf5,0x10,0xb8,0xc2,0x31,0x40,0xf,0x42,0x62,0xb0,0xc0,0xc1,0x33,0x1c,0x6a,0x41,0xe4,0x8f,0xf7,0xc1,0x3a,0x3c,0xe1,0x3f,0xda,0x64,0xa0,0x42,0x4d,0x19,0x91,0x42,0x23,0x53,0x89,0xc2,0x18,0xb1,0x24,0xc3,0xda,0xf8,0xcb,0x41,0xc2,0x17,0x8f,0xc2,0xb3,0xc5,0x4d,0xc2,0xe2,0x81,0x82,0xc2,0x6a,0x6c,0x15,0x43,0x62,0x1f,0x89,0xc1,0xde,0xbe,0xba,0x41,0xc6,0xc4,0xac,0xc1,0xa9,0x91,0x19,0xc3,0xf2,0x4e,0x17,0xc3,0x59,0xe6,0x16,0xc2,0x25,0x8b,0xc8,0xc2,0x70,0xa4,0xb6,0x42,0x46,0x6f,0x4,0x42,0x8a,0x74,0x47,0xc1,0xb6,0x8a,0x58,0x42,0x29,0xbf,0xf8,0xc0,0xe9,0x73,0x25,0xc1,0xca,0xd4,0x66,0xc2,0x34,0x58,0xd1,0xc1,0x48,0x1,0xab,0x42,0x94,0x87,0x1,0xc2,0x3a,0x6c,0x22,0x42,0x20,0xa8,0xa6,0xc2,0x16,0x26,0xf1,0x41,0x6c,0x18,0x1a,0xc1,0x8f,0xe,0x55,0xc2,0xd6,0x6b,0x35,0x43,0x43,0xdd,0xe8,0xc2,0x4a,0xef,0x80,0xc1,0xa1,0xd5,0x2d,0x42,0x12,0xfd,0xa2,0x41,0x54,0xc0,0x0,0xc0,0x28,0xd9,0x9a,0xc2,0xaa,0x51,0x4f,0x42,0x70,0x96,0x40,0xc2,0x94,0xf9,0x26,0x42,0xb3,0x76,0xdc,0x42,0x0,0x5b,0x9c,0x42,0x76,0x55,0xc9,0x42,0xd,0xdb,0x70,0x42,0x6d,0x66,0xc7,0x41,0xc0,0x5c,0xa9,0xc1,0xf6,0x56,0x5e,0xc1,0x37,0xf4,0x6b,0x42,0x72,0xcd,0x8d,0xc2,0x6,0x32,0x20,0xc3,0x65,0xcc,0x2,0x43,0xb8,0x37,0xde,0xc0,0x2e,0xd7,0x52,0xc2,0x54,0xa4,0x9b,0xc2,0xc4,0xf0,0x46,0xc2,0x4e,0x35,0xb8,0xc2,0x5,0x3b,0x8,0xc3,0xb1,0x56,0xcc,0x41,0xa1,0x8,0xaf,0x42,0x3e,0xd2,0xe9,0xc1,0xab,0x13,0x56,0x41,0x42,0xb6,0x92,0xc2,0x62,0x1c,0x4,0x42,0x71,0x92,0x7b,0x42,0x40,0xff,0x9e,0xc1,0x9f,0x74,0xbf,0xc2,0xa5,0x44,0x7,0xc3,0x5f,0x8e,0x38,0xc3,0xb4,0x81,0x2f,0xc2,0x4e,0xc2,0xef,0x40,0xde,0x3c,0xf5,0xc2,0xfe,0xd5,0x75,0x41,0x2f,0x94,0x6c,0xc1,0xb2,0x20,0x30,0xc2,0x58,0xc9,0x6,0x42,0x55,0x18,0xd5,0x42,0x2,0xc4,0x42,0xc1,0xd6,0x69,0x2c,0x42,0x2b,0xc,0xe,0x43,0xa,0xb8,0x19,0x40,0x7,0xfe,0xbc,0xc2,0x42,0x5d,0x7,0x43,0x93,0x8c,0x89,0x42,0x43,0xe6,0x1f,0x43,0x5b,0x1c,0xfc,0x42,0xb1,0x37,0x94,0x42,0x61,0x3e,0xc1,0x41,0x68,0x27,0xec,0x41,0x67,0xfe,0x31,0x43,0xaf,0x64,0x4c,0x42,0x19,0x10,0xe,0x41,0x68,0xd8,0xe8,0xc2,0xa4,0x69,0x32,0x42,0xa5,0x1a,0x6d,0x41,0xa3,0x9d,0x71,0xc3,0x4,0x6b,0x10,0x41,0x28,0x20,0x65,0x43,0x8f,0x2,0xb7,0x42,0x51,0x7f,0x4e,0xc1,0xab,0x19,0xee,0x41,0x2b,0xe7,0x83,0x42,0x37,0x25,0xa,0xc2,0xb3,0x9a,0xdd,0xc1,0xd0,0xc,0x52,0x40,0x76,0x35,0x5f,0xc2,0xfe,0x8d,0x77,0x42,0xe4,0xd8,0x31,0x42,0xee,0xa4,0x38,0x42,0x82,0x8e,0xf9,0x41,0xf4,0x22,0xd0,0xc2,0xa,0x2f,0xc5,0xc1,0x1d,0x5d,0x2f,0x42,0x8b,0xd4,0xc1,0xc2,0x37,0xa7,0x49,0x42,0x6d,0xd6,0xe5,0xc2,0xaa,0x38,0x6,0xc3,0x9d,0x7c,0x64,0x42,0x77,0x80,0x99,0xc2,0xda,0x84,0x47,0xc3,0x27,0x1f,0x69,0xc2,0x36,0x39,0xe7,0x40,0xc0,0x49,0x8c,0xc1,0x45,0x95,0x86,0xc0,0xc4,0x55,0xcb,0xc0,0xb2,0x94,0x1,0x43,0x34,0x5b,0xec,0xc2,0x7,0xa5,0xcf,0x41,0x15,0x80,0x82,0xc1,0xd1,0x85,0x44,0x41,0xc0,0xee,0x34,0x43,0x4f,0x84,0xa,0x41,0x56,0x97,0xa6,0xc1,0x7,0xa0,0x31,0x43,0xd4,0xc1,0x25,0xc3,0xba,0xcc,0xab,0x42,0x33,0xd4,0xc1,0xc2,0x4,0x1d,0x15,0x43,0xe1,0x84,0xa7,0xc2,0x65,0xb1,0x83,0xc2,0x8c,0xb5,0x98,0x40,0xc3,0x4c,0x23,0xc2,0xca,0xba,0x60,0xc2,0x15,0x75,0xa5,0xc2,0x98,0x4f,0xc2,0xc2,0xc1,0x79,0x15,0x42,0xc7,0x1d,0xa9,0x42,0xda,0x4d,0xdf,0xc1,0xd3,0xbc,0x1,0x43,0x43,0x75,0x13,0xc3,0x72,0x2a,0x9d,0xc0,0x4e,0x8f,0xab,0x41,0xeb,0xab,0xa9,0x42,0x9,0x4,0x9e,0xc2,0x1d,0xc6,0x2b,0x41,0x5f,0x63,0xb9,0xc2,0x4a,0x83,0x54,0xc1,0xb2,0xac,0x97,0xc2,0x64,0x86,0x92,0xc2,0x66,0x1e,0x5e,0xc3,0x94,0xb,0xc9,0x40,0x31,0xbe,0xad,0xc2,0xdf,0x87,0xb9,0xc2,0xfe,0x64,0x1b,0xc3,0x5a,0xbb,0x8b,0x43,0x74,0x90,0x9d,0xc0,0xc9,0x76,0x45,0xc3,0xe0,0xde,0x29,0x42,0x53,0x56,0x74,0xc3,0xbe,0xf8,0x9a,0xc0,0x53,0x83,0x19,0x43,0x31,0x79,0x1f,0x43,0xea,0x30,0xe3,0xc2,0x3e,0xba,0x8c,0xc2,0x4c,0x87,0x9c,0xc2,0xcd,0xf3,0xa6,0x41,0xc,0xb7,0xb,0x43,0x70,0x1d,0x80,0x42,0xa8,0x4b,0xe1,0xc2,0xf1,0x61,0x90,0xc2,0x14,0xe3,0x2f,0xc2,0x5a,0x6,0xc0,0x41,0x25,0xaf,0x43,0x41,0x95,0x2f,0x8c,0x42,0xbe,0xf2,0x49,0x43,0x67,0xa8,0x92,0x41,0x5,0x6,0x3,0xc3,0x78,0x92,0xd2,0x42,0xe2,0xc2,0x20,0xc3,0xb6,0xa9,0x38,0x42,0x51,0xf3,0x67,0x42,0xee,0xb4,0xae,0x42,0xd7,0xf9,0x17,0x42,0x3e,0xfc,0x5f,0xc2,0x3e,0xc4,0x1e,0xc1,0xdd,0xd7,0x12,0x42,0x43,0x3c,0x99,0x40,0xca,0x7e,0x41,0xc1,0x37,0xf9,0x29,0x43,0xfb,0x98,0x1a,0x42,0x44,0x6,0x79,0xc2,0x32,0x3,0x3,0x43,0xe5,0x8f,0x14,0x43,0xeb,0xe5,0x9f,0xc1,0x44,0x35,0x32,0xc3,0xd8,0x8b,0xdd,0xbe,0xb,0x97,0xa6,0xc2,0x10,0x43,0x16,0xc2,0x2a,0xe8,0xf0,0xc2,0x2d,0x12,0x30,0xc2,0x66,0xa2,0xe4,0x42,0xac,0xa5,0xa8,0xc2,0x62,0x4b,0x4b,0x42,0x1a,0x57,0xe4,0x40,0x84,0xdd,0x19,0xc0,0xdc,0xd5,0x9,0x42,0xc5,0x73,0xc7,0xc2,0xc8,0xf2,0xb0,0xc2,0x3d,0xf4,0x9f,0x43,0x5e,0x95,0x6e,0x42,0x68,0x7f,0x18,0xc3,0x1f,0x83,0x96,0xc0,0x7b,0x3f,0x22,0xc1,0xdd,0xd8,0x8c,0xc2,0x2f,0x45,0x70,0x42,0x4b,0xe6,0xcd,0xc2,0xf0,0xe6,0x12,0xc2,0x28,0x83,0x65,0x42,0x21,0x7b,0x54,0x42,0x4e,0xcc,0xa5,0x42,0xbe,0x77,0xe9,0xc2,0x30,0xc7,0x3e,0xc3,0x77,0xdc,0x2a,0xc2,0x39,0x53,0x66,0x42,0x7,0xfa,0xd6,0xc2,0xa5,0x66,0x6,0x41,0xe0,0xeb,0xd1,0x42,0x75,0xd4,0xc6,0x42,0x24,0x4b,0x8a,0xc2,0x2,0x84,0xb5,0x42,0x2f,0x57,0x43,0x43,0x88,0x71,0x85,0xc1,0xe8,0xe6,0x70,0x42,0x98,0x70,0x95,0xc2,0xf2,0x2c,0xc5,0xc1,0xf1,0x19,0xb1,0x42,0xc,0x85,0xd7,0xc1,0x38,0xca,0xc7,0xc2,0x9,0x2a,0x93,0xc3,0x22,0xcf,0xd6,0x3f,0xa8,0xee,0xd4,0x41,0x82,0xa0,0x6e,0x42,0x63,0x2f,0x1f,0x43,0x40,0x13,0xf6,0xc2,0x83,0x18,0x78,0x42,0xed,0xa6,0xe1,0x42,0xfd,0x78,0x80,0x42,0xf,0xad,0xce,0x42,0x2b,0xa7,0x5d,0xc2,0x46,0x35,0xec,0xc2,0x85,0x40,0x58,0x43,0x6e,0x19,0xbc,0x42,0xfd,0xf4,0x3f,0xc2,0x2a,0xb0,0x52,0xc2,0x53,0x43,0x3f,0x42,0x9d,0xdb,0xb7,0xc1,0x93,0x6f,0xc3,0x41,0xad,0x6,0x1a,0xc3,0x98,0x9f,0x4b,0x42,0xee,0xc9,0x2b,0xc1,0x4d,0xc1,0xdf,0xc1,0xc8,0x6b,0xb0,0xc2,0x59,0xc4,0x5,0xc2,0x24,0x8e,0x78,0x43,0xaf,0xd,0x3b,0x43,0x32,0x22,0x1c,0xc3,0x1c,0x9c,0x71,0x43,0x2a,0x94,0x99,0x42,0x42,0x5c,0xe8,0xc1,0x34,0x1c,0xff,0xc1,0x3f,0x2c,0x32,0x42,0x91,0xf3,0x7,0x42,0x77,0x4b,0x63,0x42,0x38,0x3c,0x28,0x41,0x3,0x5,0x91,0xc2,0x51,0xf6,0x4c,0x41,0x76,0x7a,0x59,0x42,0x2a,0xe5,0xaa,0x41,0x4f,0x6d,0x24,0x43,0x4a,0xa7,0xf0,0x41,0xb1,0x5b,0x81,0xc2,0x84,0x68,0x72,0x42,0x6,0x45,0x41,0x42,0xb9,0x76,0x1f,0x42,0xc3,0x98,0xe5,0x42,0x33,0xe2,0xa6,0xc2,0xbc,0xd2,0x9f,0x42,0xe,0x8d,0x3,0xc0,0x93,0x24,0x59,0x43,0x5,0xea,0x64,0xc2,0x13,0x70,0x56,0xc3,0x4e,0x39,0xf7,0xc1,0xda,0xb1,0x3d,0xc3,0x6f,0x7b,0x93,0x42,0x47,0x4d,0xed,0x41,0x30,0x73,0x10,0xc1,0xb9,0x81,0x40,0xc3,0x84,0xc2,0x8f,0x42,0x90,0x80,0xac,0xc2,0x4e,0xa8,0x19,0xc2,0xfc,0x6e,0x55,0xc3,0x67,0x3f,0x84,0xc2,0x18,0xe8,0xef,0xc1,0x42,0x70,0x6,0xc3,0x87,0xa8,0x30,0x42,0xbf,0x3c,0xa7,0xc1,0x88,0x17,0x29,0x42,0xd4,0x4d,0xa7,0xc2,0xfa,0xb9,0x54,0x43,0x9e,0xb0,0xcf,0x40,0xaf,0xc0,0x4f,0x42,0x67,0x46,0x3e,0xc2,0xeb,0x45,0x53,0x40,0x84,0x77,0x52,0xc0,0x76,0x58,0xba,0x41,0xe4,0x6a,0x8,0x43,0x73,0x90,0xe0,0x41,0xaa,0x17,0x1b,0x42,0xed,0xc4,0x35,0xc2,0xc0,0x55,0x2,0xc2,0xc7,0xa5,0xac,0x42,0xa7,0xa9,0xbc,0x41,0xac,0x9d,0x25,0xc3,0xf7,0x97,0x6e,0xc1,0x9d,0x2b,0x23,0x42,0x15,0xda,0xb5,0x40,0x9f,0xe9,0x64,0x42,0x52,0x19,0xb4,0x41,0xd9,0x3e,0x10,0x43,0xce,0x34,0xfe,0xc1,0xba,0xb7,0xbf,0xc2,0x77,0x16,0x31,0x43,0x32,0x42,0x59,0xc2,0x3d,0x4f,0xb3,0xc2,0x7,0x33,0xd3,0xc2,0x9,0x7f,0x41,0x42,0xd7,0x1a,0x4d,0xc3,0x6a,0x59,0xf8,0x42,0x72,0xec,0x3f,0x43,0xc7,0x69,0x14,0xc1,0xf4,0x34,0x8d,0x41,0xb3,0xc9,0xfd,0xc2,0xce,0x9f,0x40,0x42,0x19,0xb1,0xb1,0x42,0x58,0x3e,0xcb,0xc1,0x49,0xf5,0xa5,0x42,0xbf,0x82,0x84,0x42,0x27,0xda,0xc4,0xc2,0xc5,0x7b,0xb4,0x42,0x9,0xf8,0x68,0xc3,0x2,0x65,0x8e,0xc2,0x2,0xd6,0xc,0xc2,0x4a,0xd4,0x25,0x43,0x82,0x30,0x7b,0xc2,0x66,0x71,0xe9,0xc1,0x27,0xb7,0xc8,0x42,0x15,0xc5,0xa0,0x42,0xb0,0x4f,0x24,0x43,0x39,0xb6,0x93,0xc2,0xee,0xa9,0x7e,0xc2,0x21,0x86,0xdd,0xc2,0x42,0x1e,0x96,0xc1,0x5,0xc4,0x37,0x42,0x10,0xb7,0xce,0x42,0xc9,0x37,0x58,0xc2,0xf5,0xb1,0xd9,0x42,0xa0,0x34,0x9b,0x41,0x44,0x32,0x60,0x43,0xce,0xe6,0x3d,0xc3,0xab,0x6b,0xa4,0x42,0x5b,0x37,0x3b,0x43,0xeb,0x8d,0xd5,0x41,0x37,0x6a,0xcf,0x41,0xba,0x1e,0xbc,0x42,0x3d,0xe5,0xcf,0x41,0xbc,0x4c,0xca,0x42,0x80,0xbb,0x62,0xc2,0x60,0x43,0x34,0xc3,0xab,0xb3,0x16,0x43,0x6f,0xd6,0xb1,0xc2,0xd9,0x37,0x2a,0xc3,0xb7,0xbd,0x9b,0x42,0x46,0xa4,0xe3,0x41,0x54,0xde,0x73,0x42,0x4,0xe1,0x97,0xc2,0xcf,0x80,0x88,0x40,0xcf,0xc9,0xb3,0xc2,0xa6,0xef,0x86,0xc0,0x50,0x9d,0x54,0x43,0xe9,0x1f,0xde,0xc2,0xfa,0x1f,0xd2,0x42,0x94,0xd3,0xa1,0xc1,0x22,0x37,0xb9,0x41,0xe5,0xa5,0x65,0xc2,0xe2,0x66,0xd4,0xc2,0x72,0x1a,0x5a,0x41,0x14,0x24,0xac,0xc1,0x6f,0x9d,0x27,0xc3,0x64,0x7b,0x86,0xc2,0xe8,0x99,0xc4,0xc2,0x75,0x4e,0x10,0xc3,0x4f,0x89,0x12,0x42,0x33,0xa5,0x9c,0xc2,0xe9,0x66,0x66,0x42,0x7,0x28,0x1e,0x42,0xb2,0x99,0xbe,0xc2,0x43,0x8,0xf7,0x42,0x90,0xfc,0xa1,0x42,0x9c,0xfd,0x2b,0x41,0x4f,0xd4,0x81,0xc2,0x46,0xd9,0xa6,0x42,0x1b,0x99,0x6f,0x41,0xf8,0x5a,0xbd,0x40,0xd4,0x70,0x98,0x41,0x9b,0xdb,0xdf,0x42,0xc0,0xa4,0x17,0x42,0x6b,0xc9,0x12,0x42,0xe,0xae,0x6,0x42,0x1,0xd4,0x76,0xc1,0xd6,0x25,0xfd,0xc2,0xac,0x20,0x5,0x43,0x35,0xc9,0x96,0xc2,0x9d,0x9b,0xc7,0x42,0xb0,0x51,0xbd,0xc2,0x53,0x8c,0x4,0x42,0x85,0x13,0xb5,0x42,0x12,0x99,0xcc,0x41,0x20,0x89,0x9,0x43,0x5a,0xf4,0xb4,0xc2,0x3e,0xef,0x19,0x42,0x20,0x8f,0xdb,0x42,0x27,0x3f,0x43,0x42,0xb2,0x39,0x9,0xc3,0xcb,0x1c,0x8,0x40,0x8,0x9b,0xb2,0x42,0xcb,0xbd,0x6c,0xc2,0x29,0x9d,0x5,0x43,0xd9,0x67,0x89,0xc2,0x98,0x2d,0x64,0xc1,0xef,0x1b,0xfd,0xbf,0x40,0x30,0x10,0x43,0x78,0x73,0x60,0xc0,0x12,0xb5,0x17,0x43,0x25,0xe7,0xae,0xc1,0xd1,0x2a,0xe,0xc2,0xd0,0xd9,0xe2,0x42,0x81,0xa4,0xfc,0xc2,0xc1,0xfc,0x73,0xc3,0x0,0xdd,0xb,0xc3,0x33,0x63,0xdb,0x42,0x39,0xc7,0x28,0x43,0x8f,0x6d,0xd0,0xc1,0xa8,0x7b,0x14,0xc2,0x35,0xb8,0xaf,0xc2,0x43,0x96,0x37,0x42,0x40,0x8c,0x94,0xc2,0x1e,0x60,0x99,0x42,0x74,0xba,0x2e,0x41,0xe8,0x3d,0xc6,0xc2,0x6e,0xc,0x30,0xc2,0x8d,0xc5,0x8a,0xc2,0x9c,0x3d,0xae,0xbf,0xa2,0x27,0x4a,0x42,0x9,0x49,0xa0,0x42,0xeb,0x97,0xfc,0xc2,0xf8,0x2e,0x1b,0xc3,0x1d,0x11,0xd2,0xc1,0x13,0x5d,0xe1,0x42,0xe7,0x20,0xe8,0xc2,0xb8,0x85,0xd4,0x42,0xd8,0xdd,0x14,0xc3,0x2e,0x50,0x7c,0x40,0xe7,0x5d,0x30,0x43,0x2c,0xfb,0xdf,0xc2,0xb8,0x84,0xde,0x41,0x74,0x52,0xa7,0xc2,0x9b,0xfa,0x25,0xc2,0x14,0x74,0x15,0x43,0xb5,0x2e,0xb,0xc3,0x1a,0xc5,0x45,0x42,0xb9,0xb0,0x72,0xc3,0x90,0x22,0x0,0x42,0x97,0x56,0xca,0x41,0x37,0xea,0x3a,0x43,0xc0,0x2f,0x9a,0x40,0xf9,0x35,0x3c,0x43,0x1f,0x30,0xae,0x42,0xb1,0x9d,0x66,0xc3,0xa6,0x3,0xc0,0xc2,0x44,0xec,0xaf,0x41,0x80,0x99,0x5e,0x42,0x53,0x87,0x56,0xc2,0xe4,0x1,0xf7,0xc0,0xc0,0xe1,0x9e,0xc2,0xd4,0x27,0x9c,0x43,0xd8,0xca,0xc8,0x41,0x2f,0xe8,0x3f,0x42,0xe6,0xf8,0x58,0x41,0xfc,0x70,0x76,0x43,0x1f,0xc9,0xd4,0xc2,0xed,0x8c,0x41,0xc3,0x47,0x32,0x9a,0x41,0xa9,0xfe,0xa6,0x41,0xbf,0xc9,0x46,0x43,0x21,0x92,0x5,0xc3,0x9d,0xd6,0x34,0xc2,0xdb,0xb5,0x55,0x43,0xe2,0x1b,0x14,0x42,0xaa,0xfd,0xf2,0xc2,0xf7,0x64,0x0,0x43,0xf2,0xc7,0x81,0xc2,0xf2,0x8c,0x8b,0x42,0x7f,0x2c,0x17,0x43,0x57,0x7,0x71,0xc1,0x65,0xf9,0x3,0xc3,0x96,0x3c,0x99,0x42,0x31,0xa5,0x57,0xc2,0xc9,0x74,0x2c,0xc1,0x9e,0x3,0x94,0x42,0x8e,0x96,0xb8,0xc1,0xf,0xda,0xc,0x43,0xe6,0x39,0x28,0xc2,0xd0,0xed,0x9f,0xc2,0x12,0x3,0xee,0x42,0x7c,0x6c,0x55,0x42,0x79,0x19,0xe3,0xc1,0x16,0xf0,0xbe,0x42,0xa6,0x26,0xce,0x42,0xa0,0xc8,0x10,0xc3,0x58,0x5c,0x4,0xc2,0x5e,0xb,0xee,0x42,0xd4,0x45,0x6b,0x42,0x6f,0xe7,0x0,0x42,0x4b,0xd7,0x3,0xc3,0x79,0xae,0x61,0x42,0xb5,0x58,0x8,0xc2,0x53,0x9c,0xd5,0x41,0x27,0xac,0x96,0xc2,0xb7,0xb3,0x7,0xc3,0x19,0xac,0x34,0xc1,0x3c,0xaa,0x29,0xc3,0x5c,0xd4,0x79,0x41,0x2d,0x32,0xf0,0x42,0xf5,0x7d,0x5,0x43,0x2a,0xe0,0xcf,0x41,0xe7,0x45,0x88,0xc2,0x85,0x6e,0x4e,0xc2,0x98,0xe4,0xe,0x43,0xbc,0x18,0xe2,0x41,0xb0,0xcf,0xd6,0xc2,0xfb,0x23,0x7a,0xc2,0xcb,0x34,0x25,0xc2,0x69,0xe0,0xee,0x41,0xd9,0x69,0x8,0x43,0x15,0x7c,0x2b,0x43,0x25,0xce,0x3d,0x42,0x4e,0xc8,0x15,0xc2,0xee,0x13,0x90,0xc2,0x58,0x81,0x4d,0x43,0xa2,0x7e,0xb5,0xc1,0xfd,0xa,0x78,0x42,0x57,0x86,0xf1,0x41,0xff,0x54,0x2e,0x43,0xf2,0x10,0x93,0x40,0xc0,0xf,0x29,0x41,0x5a,0x2b,0x83,0xc2,0xb8,0x21,0x8d,0x42,0x9c,0x2e,0xa5,0x42,0x6a,0xac,0x48,0x40,0x7f,0xa4,0x5d,0x41,0x2d,0x1e,0x81,0xc2,0x6f,0xac,0xce,0x42,0x51,0x18,0x1b,0xc3,0x2f,0x48,0x38,0x42,0x11,0x62,0xa8,0xc2,0x47,0xf9,0x12,0x43,0x75,0xfa,0xee,0xc2,0xac,0x68,0x7e,0x42,0x22,0x81,0x9a,0xc2,0x82,0xfc,0x3a,0xc2,0xc,0xaa,0x24,0x42,0xca,0xa9,0xc0,0x42,0x81,0xdc,0x5e,0xc1,0xd,0xfd,0xc8,0x42,0x1b,0x5e,0x6d,0xc1,0xe2,0x43,0x59,0xc1,0xef,0xa4,0x99,0x42,0xd2,0xd6,0x29,0x43,0x51,0xae,0xe5,0x42,0xf9,0x7b,0xbd,0xc2,0x34,0xe6,0xe0,0x42,0x36,0xb6,0xfd,0x42,0xd8,0x8f,0x3a,0x43,0xd2,0xab,0x1c,0xc2,0xc0,0xca,0xf1,0xc1,0x70,0x54,0x48,0xc3,0x7a,0x54,0xa9,0xc0,0x6c,0x90,0x13,0xc1,0x3e,0x3a,0xd4,0x42,0x1c,0xe7,0x88,0xc2,0xe1,0x48,0xce,0xc2,0x2e,0xfa,0xe4,0x42,0xa0,0x72,0xca,0xc2,0x84,0x14,0xba,0xc2,0xb,0x99,0xf6,0xc2,0x2,0x46,0xf1,0xc2,0x1,0xa,0x57,0x41,0x6d,0xa0,0xd7,0xc2,0x24,0x86,0xf2,0x42,0x6,0xb4,0x8a,0x42,0xb9,0x30,0xd3,0x42,0x6d,0x4a,0x1d,0x41,0x58,0x2e,0x96,0xc1,0x4b,0x2d,0xd8,0xc0,0x6e,0xe1,0xf,0xc3,0x13,0x50,0xc0,0xc2,0xe4,0x5e,0x94,0xc2,0x7f,0xd4,0x93,0x40,0x70,0x41,0xc9,0xbf,0xf,0xd3,0x3e,0xc2,0x63,0xb5,0x87,0x42,0x57,0x52,0x10,0xc3,0xa,0xfe,0xe9,0xc0,0x9e,0x94,0xb,0xc3,0x93,0x5,0x68,0x42,0x61,0x44,0x3b,0xc2,0x73,0x5e,0xc1,0x42,0xfb,0xa8,0x89,0xc1,0xb7,0xf7,0x9b,0xc2,0x86,0x37,0x7f,0x42,0x5e,0xf0,0x92,0xc1,0x4f,0x43,0xc,0xc2,0x8e,0x49,0x17,0x41,0x97,0x7c,0x9,0xc2,0x6a,0xbb,0xe7,0xc1,0x7c,0xd6,0x11,0xc2,0x6c,0x4c,0xb7,0xc2,0xa7,0x65,0x0,0xc2,0x23,0xc1,0x73,0xc2,0xcb,0xc8,0xc1,0x42,0xb4,0x7f,0xa3,0x41,0xc2,0x55,0x8,0xc3,0x76,0x27,0xdf,0x41,0x1e,0x63,0xff,0x42,0x91,0x81,0xf8,0x42,0x82,0xf8,0x18,0xc2,0x67,0xbe,0xd5,0x42,0xb3,0x69,0xc0,0x42,0x77,0xd6,0x96,0x43,0x3d,0x91,0x2,0xc3,0x6d,0xc9,0xb8,0x42,0x56,0x84,0xa8,0x42,0x26,0x7,0x21,0x41,0xc9,0xb4,0xea,0xc2,0x27,0x78,0xa2,0x42,0xe,0x7f,0x9c,0x42,0x72,0x30,0x18,0x43,0xe7,0xf8,0xbd,0x41,0x10,0xda,0x51,0xc0,0xd2,0xce,0xfc,0x41,0xa5,0xba,0x6,0x42,0xac,0x42,0xa4,0xc2,0x39,0x6,0x33,0x43,0x25,0xf0,0xf1,0x42,0x8a,0x6b,0x84,0x41,0x65,0x75,0xb7,0x42,0x2e,0x13,0x77,0x42,0xdd,0xa6,0xb2,0x42,0xa2,0xdf,0xfb,0x41,0xce,0x71,0xdc,0xc2,0x20,0x96,0x54,0xbe,0x13,0x7,0xe4,0x42,0x49,0x84,0x5c,0x42,0x81,0xee,0x53,0x42,0x82,0x23,0xec,0xc0,0x21,0x7e,0x68,0x42,0xb6,0xe7,0xe5,0xc2,0x7,0xa6,0x46,0x42,0x5c,0x23,0x19,0x42,0xeb,0x60,0xd2,0x41,0x78,0x66,0xd5,0x42,0x64,0x9a,0x28,0xc2,0x15,0x9c,0xc,0xc2,0x34,0xa,0xb3,0x40,0xe3,0x2c,0xbf,0xc2,0x32,0xdf,0xf6,0xc1,0x27,0x2d,0x84,0xc2,0xb3,0xea,0x10,0x43,0x6c,0x40,0x94,0xc2,0x68,0xcc,0x40,0x42,0xc2,0xab,0xea,0x41,0xb8,0xec,0xbc,0x42,0xe4,0x1e,0x98,0xc2,0x13,0xe5,0xba,0x42,0x40,0xe8,0xaf,0xc2,0x5,0x99,0xf4,0xc1,0xce,0x2c,0x39,0x41,0x8a,0x62,0x87,0x42,0x2e,0x79,0xa4,0x41,0x22,0xd6,0x87,0xc2,0xa1,0xc7,0x8f,0xc2,0x8e,0x70,0x2,0x41,0x94,0xc0,0x9,0x43,0xa2,0x14,0x80,0x41,0x3c,0xa0,0x2,0xc1,0xbc,0xee,0xee,0xc2,0x4a,0x16,0x30,0x42,0x4e,0x90,0x84,0xc2,0xce,0x85,0x86,0xc1,0x2f,0x60,0x97,0xc2,0xdf,0xa0,0xbd,0x41,0x76,0xb,0x8d,0x42,0x9f,0xac,0x32,0xc0,0x5e,0xe1,0xaa,0x42,0x89,0x7,0x50,0x41,0x30,0xf6,0x8b,0x41,0x32,0x95,0x4c,0xc0,0x8c,0xe6,0x4,0xc2,0x57,0xa0,0x35,0x43,0x15,0xf,0x53,0x43,0x63,0x39,0x16,0x42,0x4b,0xcf,0x33,0x43,0x24,0xbc,0xbf,0xc1,0xb1,0x57,0x3e,0xc3,0xa,0x41,0x90,0x42,0xc6,0x28,0x6f,0xc1,0xf4,0x2e,0x65,0x42,0x1,0x9c,0x99,0x42,0xa4,0x7d,0x93,0xc1,0x28,0xeb,0xdc,0xc2,0xaa,0x67,0x8e,0x42,0x6c,0xf,0x22,0xc3,0x62,0x5,0x88,0x40,0x35,0x3f,0x94,0xc0,0x46,0xea,0xd6,0x42,0xf4,0xed,0x3,0x43,0x17,0x1f,0xd,0x43,0xb4,0x8a,0x84,0x42,0xcf,0xb,0x0,0x42,0xf0,0x94,0xc6,0xc1,0xa,0x30,0xa3,0xc2,0x90,0xc7,0x53,0x3f,0x73,0xa3,0xb9,0xc0,0x21,0x1e,0xc4,0x41,0x4e,0xba,0x6b,0xc1,0x6e,0xb7,0x2f,0xc1,0x29,0xf3,0xeb,0x40,0x8,0x24,0xba,0x42,0xd5,0xa4,0xf8,0xc2,0x14,0xc2,0x32,0x42,0x5,0x78,0x62,0xc2,0x86,0xc4,0x4f,0xc0,0x8f,0x61,0xaa,0xc2,0x9e,0xb,0x97,0x42,0xbd,0x31,0x19,0xc3,0xa2,0x8a,0x15,0xc2,0xaa,0x79,0x82,0x40,0x61,0xc7,0xee,0xc2,0x63,0x22,0x1d,0x43,0x79,0x24,0x30,0x42,0xd7,0xfe,0xcf,0xc2,0x62,0x4c,0xa9,0x41,0x32,0xfa,0x93,0x42,0xa0,0x7a,0xd7,0xc0,0x8a,0x79,0x7e,0xc1,0x9d,0x3a,0x8b,0x41,0x81,0xf7,0x9e,0x42,0x3d,0xa6,0x2,0xc2,0x95,0x2b,0xe,0xc3,0x21,0x76,0xe,0x42,0x75,0xdc,0x97,0x42,0x87,0xd8,0x16,0x43,0xcf,0x20,0x5a,0xc2,0xa,0xfa,0x8f,0x40,0x8d,0xd6,0x7b,0xc2,0x4a,0xe0,0xbf,0xc2,0x41,0xdf,0xb8,0xc2,0x6,0xfe,0xf4,0xc2,0x6b,0x25,0x94,0x42,0xb8,0xcf,0xb4,0xc2,0xbc,0xba,0xb3,0x42,0xf9,0x30,0x96,0xc2,0xe3,0x58,0xd0,0x42,0x3f,0x97,0xb3,0xc2,0xef,0x76,0x8e,0x42,0x35,0xd9,0x9c,0x41,0xf6,0x67,0x3f,0xc1,0x1,0xc1,0xa3,0xc2,0xb5,0x43,0xa5,0xc2,0x63,0x55,0x7,0xc2,0x8a,0xec,0xb3,0x42,0xf4,0x79,0x26,0x41,0xb,0x55,0xd,0x43,0x2,0x6e,0x92,0x40,0x1b,0x8d,0x7,0xc2,0xa7,0xcc,0x8d,0xc0,0x4,0x24,0x3a,0x42,0xda,0x37,0x9d,0xc0,0x9f,0xda,0x7b,0xc2,0x56,0x9,0xdd,0x42,0x7e,0xda,0x78,0xc2,0xda,0xa9,0x5,0xc2,0x42,0x9f,0xcc,0xc2,0x5c,0xef,0xbe,0xc0,0x47,0xa3,0xaa,0x42,0xd3,0xfa,0x9f,0xc2,0xc9,0xd9,0xf,0x43,0x89,0x80,0xa,0x42,0x96,0x8b,0xa3,0xc1,0x36,0x20,0xa6,0x41,0xf1,0x68,0x0,0xc1,0x18,0xd8,0x7,0x43,0x47,0x5a,0x57,0x43,0x52,0xb7,0x13,0xc3,0x86,0xa3,0x44,0xc2,0xe5,0xef,0xa4,0xc1,0xc5,0x7e,0xf5,0x41,0xfd,0x2b,0x15,0x43,0x8f,0xd9,0xc4,0x42,0x2d,0xd7,0x56,0x43,0x20,0xc,0xaf,0xc2,0x40,0x23,0x38,0xc2,0x6d,0xc6,0xd1,0xc1,0x70,0x8a,0x3d,0x42,0xc2,0x11,0x88,0x42,0xb6,0x6c,0x44,0xc3,0xbc,0xa8,0x22,0xc0,0x22,0xd8,0xce,0xc0,0x22,0x6d,0x2c,0x42,0x6,0xf9,0x23,0x42,0xec,0xab,0xba,0xc2,0x84,0x3b,0x94,0xc1,0x4e,0xb8,0xeb,0x3f,0x26,0x65,0xa,0x42,0x36,0x4f,0xa,0x43,0x8a,0x20,0x47,0xc1,0xf8,0xda,0x70,0xc2,0x19,0x3a,0x50,0xc2,0x77,0xc,0x60,0x42,0xc9,0x9,0xee,0xc2,0xea,0x5b,0xfd,0xc2,0x89,0x2e,0x9,0x43,0x12,0x8c,0x9d,0x42,0x1a,0xef,0x2f,0xc3,0xbe,0x2d,0xd4,0xc2,0x92,0x3e,0xe6,0x42,0xf2,0x94,0x95,0x42,0xc8,0x26,0xd1,0x41,0x92,0x39,0xc0,0x41,0x8a,0x78,0x60,0x42,0xbd,0x63,0xcf,0x42,0x2b,0xb7,0xc1,0xc2,0x73,0xfe,0x5,0x43,0xb8,0xf7,0xa,0xc3,0xd8,0xb,0x43,0x42,0x47,0x3c,0x3b,0x43,0x7c,0x71,0x92,0x42,0x16,0x9e,0x94,0xc2,0x51,0xef,0x53,0xc2,0xf,0x2,0xe,0x43,0x12,0xd4,0x96,0x42,0x9f,0xfc,0xf1,0xc1,0xff,0x50,0x5c,0xc2,0x47,0xf9,0xf0,0x41,0x24,0x2a,0xf1,0xc1,0x25,0x43,0x1e,0x43,0xdd,0xab,0x2d,0xc3,0x7a,0x80,0x42,0x43,0x4f,0x1e,0x1,0xc3,0x6c,0xad,0x81,0xc1,0xe6,0xea,0x5d,0x42,0x54,0xdb,0x11,0x43,0xf9,0xc3,0x14,0xc3,0x6f,0x80,0x1a,0x41,0xb9,0x68,0x68,0xc2,0x69,0xa2,0x1b,0xc0,0x3f,0xe5,0x4,0x43,0xa1,0x69,0x55,0x42,0x71,0x5d,0x31,0xc3,0xa,0xee,0xb8,0x41,0x7c,0x5f,0xce,0xc2,0xeb,0x20,0xea,0xc1,0x3b,0x43,0x35,0xc3,0xc1,0xf4,0xe2,0xc2,0x27,0x62,0x1b,0x42,0x5c,0xec,0x7,0xc2,0xcd,0x4e,0x75,0xc2,0xdd,0xe8,0x3a,0xc2,0xf8,0xaf,0x5e,0xc2,0x9d,0x4d,0xbf,0xc2,0x7a,0x1b,0xbe,0x40,0xab,0xee,0x1f,0xc3,0x2a,0x86,0xc,0x43,0x8,0x94,0x54,0x3f,0xad,0x94,0x20,0x43,0x39,0xa5,0x89,0x42,0xc2,0xfb,0xbb,0x41,0x45,0x29,0xc9,0x41,0x25,0x7d,0x8d,0xc2,0x80,0x98,0xb6,0xc2,0xeb,0x50,0x35,0xc2,0xd,0x50,0x46,0xc2,0x9e,0x4d,0xfa,0x41,0xb4,0x24,0x21,0xc3,0x8a,0x3,0x10,0xc2,0x8b,0xf3,0x98,0xc2,0x51,0xa9,0xb3,0xc2,0x81,0xd9,0xc2,0xbf,0x6,0x4a,0x2f,0xc3,0x61,0x89,0x7,0xc3,0x18,0x4e,0xb6,0xc1,0x8c,0xfb,0xd7,0x41,0x9,0x69,0x56,0xc2,0x45,0x31,0x87,0x40,0x2d,0xa2,0xc,0xc3,0xcb,0xef,0x82,0xc2,0xc0,0x59,0xf,0xc1,0x3f,0xe1,0xbb,0xc1,0xa3,0xb2,0xa8,0x42,0xf8,0xa5,0x36,0x42,0xbb,0x4,0xe,0xc3,0x10,0xf3,0xb7,0x42,0x7,0x2,0x18,0x42,0x8e,0x4a,0xb3,0x42,0x90,0x90,0x43,0xc2,0xfd,0xf1,0x4a,0xc1,0x3c,0xc7,0x7f,0xc3,0x82,0x1,0x3f,0x41,0x5f,0xbe,0x3c,0xc3,0x2a,0x72,0x11,0x43,0xf8,0x2e,0xae,0x42,0xc,0x77,0xb5,0xc1,0x1d,0x4,0xfc,0x40,0x9a,0x3a,0x31,0x42,0x42,0xf3,0x2f,0xc0,0x2f,0x21,0x1a,0x43,0xa3,0xe6,0xed,0x41,0x2,0xc3,0x56,0xc2,0xa1,0xf7,0x3b,0x42,0x1d,0xc6,0xd9,0x42,0x1b,0x81,0xda,0xc2,0x2a,0xaf,0xb0,0x42,0xf6,0x68,0x25,0xc1,0x55,0xdb,0xa0,0xc2,0xe7,0x6f,0x66,0xc0,0x19,0x75,0xb3,0x42,0x84,0xb9,0xc1,0x41,0x9a,0xdd,0xba,0x41,0x8c,0x1,0x44,0x42,0x1d,0x6d,0x83,0x40,0xa5,0x27,0xc4,0xc2,0xfc,0x4c,0x9,0xc3,0x22,0x50,0xb1,0x42,0xf5,0x85,0xc4,0x42,0xd6,0x9f,0x0,0x42,0x73,0x17,0xb,0xc2,0xae,0xc2,0x47,0x42,0xab,0x25,0x87,0x41,0x78,0x5f,0xb4,0xc2,0x7,0x5,0x5b,0x41,0xd1,0xa1,0x24,0x42,0xc6,0xca,0x64,0x42,0xd,0x14,0xf0,0xc0,0xba,0x3b,0x18,0xc2,0x41,0xf1,0x12,0x42,0x8e,0x80,0xa7,0x40,0xe2,0x3b,0x7f,0x41,0xbb,0x40,0xab,0x41,0x9d,0xed,0x2f,0xc3,0x14,0xf0,0x81,0x43,0xae,0xf8,0x4,0x43,0x29,0x24,0xb7,0x41,0x1b,0xf0,0x2e,0xc2,0x62,0x57,0xa2,0xc2,0x1a,0xc5,0xc9,0xc2,0x5,0xa2,0x24,0xc2,0x1c,0xcf,0xe8,0x40,0x30,0xdc,0x4e,0xc1,0xeb,0xc,0x4e,0xc1,0xf2,0xf8,0x28,0xc1,0x37,0x62,0xf,0x42,0xe3,0x74,0x17,0x42,0x92,0x71,0xe8,0xc2,0x9,0x62,0x9d,0xc0,0xe6,0xa1,0x94,0xc1,0x5c,0xdd,0x13,0x43,0x13,0x6d,0xe7,0xc0,0x69,0xf4,0x7e,0x42,0xbd,0x5e,0xe4,0xc0,0xfb,0x82,0x17,0x42,0x24,0x82,0xdd,0x42,0xb2,0xeb,0x44,0xc2,0x3e,0xd8,0x54,0xc3,0xf3,0x1,0x82,0x42,0xdf,0xdb,0x1b,0xc2,0xc4,0xb9,0xf9,0x41,0x76,0xaa,0x9a,0xc1,0x73,0xc2,0xc1,0xc2,0xd8,0x14,0x8c,0xc1,0x1e,0xbb,0xbc,0x41,0x60,0xce,0x88,0xc2,0xc0,0x88,0x87,0x42,0x44,0x4c,0x1a,0x42,0x25,0x1c,0x99,0x41,0xb,0x2e,0x69,0xc3,0x5e,0xe,0x12,0xc3,0xfe,0xd0,0x21,0x43,0xcf,0xad,0x7a,0x41,0xbb,0x82,0x9a,0x42,0x2c,0x7c,0xd9,0x42,0x66,0xc0,0x6e,0x42,0x84,0xde,0xe4,0x40,0xf7,0x51,0x3,0x41,0xdf,0xd4,0x16,0xc3,0x3c,0x74,0x11,0xc3,0xde,0x65,0xf,0x43,0x46,0x14,0xcf,0xc2,0x74,0x59,0x44,0xc2,0xd8,0x96,0x75,0x42,0xec,0xca,0x37,0xc3,0x29,0xf4,0x41,0x43,0x15,0xfd,0x35,0xc1,0xf1,0x87,0x1,0x43,0x2a,0x7d,0xa7,0xc2,0x11,0x1b,0xe5,0x42,0x5c,0x61,0x8e,0xc1,0x80,0x4f,0xc0,0xc2,0xf1,0x5f,0xa,0xc3,0xa3,0xd4,0x10,0x43,0x42,0x55,0x90,0xc3,0xdc,0xca,0xe,0x43,0xcd,0xe8,0x2a,0x42,0x48,0x40,0xb7,0x42,0x66,0xf0,0xce,0xc2,0xed,0x74,0x98,0x41,0x4c,0x1d,0xc0,0x40,0xb8,0xe0,0xc,0xc2,0xee,0xa1,0xeb,0xc1,0xa5,0x79,0x2,0xc3,0x60,0x3e,0x80,0x43,0x88,0xcd,0x12,0xc0,0x15,0x68,0x3f,0xc1,0xb7,0xfb,0x56,0x42,0xae,0x63,0xf,0x43,0x29,0x35,0x6c,0x42,0xe4,0xf9,0x52,0x43,0x13,0x64,0x87,0xc2,0xd8,0x45,0x13,0x41,0xcf,0x6,0x88,0x42,0xda,0x9c,0x11,0x43,0x19,0x24,0x4,0x43,0xd4,0xa4,0x19,0xc1,0x70,0x40,0x48,0x40,0x1c,0x38,0xfd,0x41,0x5,0xe,0x22,0x41,0xa0,0xb1,0x4d,0xc3,0xd1,0xfa,0xa8,0x42,0x6f,0x1e,0xf1,0xc2,0x59,0x71,0x36,0x42,0x4e,0xee,0x18,0xc3,0xa5,0x7b,0x50,0xc3,0xa8,0x81,0x2b,0xc3,0xf8,0x88,0x95,0x42,0x8f,0x8a,0xe0,0xc2,0xa0,0x49,0xc0,0xc2,0x2b,0xb7,0x19,0xc1,0xc7,0x59,0xeb,0x41,0xf7,0xaa,0x84,0xc2,0x77,0x7,0x2,0xc3,0x24,0xed,0x11,0x43,0xb5,0xba,0x8,0xc3,0x8,0x79,0x82,0xc3,0x1a,0xd6,0xd0,0x42,0x1e,0x77,0x4c,0xc1,0x57,0x3c,0xad,0xc2,0xaf,0xe,0x4c,0xc3,0x99,0x5b,0x8c,0xc2,0x16,0xed,0xf0,0x40,0xd2,0x9f,0x1c,0x43,0x8f,0x92,0x20,0xc3,0x44,0x49,0xf,0xc1,0x11,0xcc,0x15,0x43,0x12,0xf0,0xf2,0xc1,0xf,0x8e,0x65,0x41,0xf8,0xfa,0x55,0x41,0x5,0x47,0xf3,0x40,0x4c,0xfc,0xd4,0x42,0x1a,0xdd,0xe3,0x42,0x78,0x25,0xb1,0xc2,0x45,0xea,0x7f,0x41,0x7c,0xc9,0x71,0x42,0x9f,0xb1,0x37,0xc3,0xce,0xff,0x4f,0x42,0xc8,0x8f,0xd3,0xc1,0x8c,0xa,0xa2,0x42,0x76,0x92,0x6,0xc3,0x2e,0x8f,0x43,0xc1,0xcd,0xb8,0x61,0x42,0xe4,0x6b,0x3,0xc3,0xc5,0x80,0xdb,0x41,0xb6,0x57,0x18,0xc3,0x56,0x9a,0xc5,0x42,0x7,0x92,0x61,0x42,0x5b,0xde,0x63,0x42,0xac,0x67,0x78,0xc3,0xf6,0x47,0xcd,0xc2,0x46,0xde,0xda,0x41,0x24,0x3,0x35,0x42,0x67,0x10,0x92,0x42,0x35,0xa6,0x4b,0xc2,0xe9,0xfd,0x29,0x43,0x1d,0x90,0x83,0xc2,0x66,0xfa,0x31,0x42,0x91,0x72,0x70,0x42,0x3f,0xee,0x6c,0xc2,0xeb,0x65,0x43,0x42,0xcb,0x31,0x2c,0x42,0x29,0x4,0x48,0x42,0x6b,0x9,0x47,0xc2,0xf4,0x4,0xa0,0xc1,0xc3,0x5b,0xbb,0xc2,0x46,0x19,0x4c,0xc2,0x20,0xaa,0x3d,0xc2,0x73,0x8b,0x4a,0xc2,0x1c,0xd2,0xe7,0x40,0x96,0x66,0x60,0xc2,0x2f,0x96,0x5f,0x42,0xff,0x1,0x98,0x42,0xdf,0xcd,0x35,0x42,0xc7,0x9e,0x2d,0x42,0x9c,0xf1,0x5b,0x41,0x6f,0x7a,0xfc,0x42,0xb7,0xd3,0xb4,0xc2,0x71,0xad,0x1f,0xc2,0xd4,0xe8,0xd4,0xc1,0xf9,0x4c,0xf3,0xc2,0xed,0x1e,0xd8,0xc2,0x44,0x59,0x97,0x42,0x8,0x82,0xa6,0xc1,0x52,0x22,0x52,0x42,0x24,0xb0,0x74,0x42,0xd,0xb,0xe5,0xc1,0x37,0xac,0x89,0x42,0x5e,0xa6,0xda,0xc2,0x9f,0xf2,0x40,0x43,0x54,0x1b,0xbc,0xc2,0xa7,0x27,0x2f,0x41,0x68,0x85,0x56,0x42,0x97,0x5b,0x52,0x42,0x16,0x84,0xa,0xc2,0x16,0x63,0x21,0xc3,0x45,0x69,0xf1,0xc1,0xc0,0xdc,0xce,0xc2,0x86,0x6d,0x40,0xc2,0x6,0xa3,0xe1,0x3f,0xaa,0xf4,0xc5,0xc1,0xcb,0x89,0xc4,0x41,0x91,0x2,0x19,0xc2,0x14,0xdd,0x25,0x43,0x53,0xac,0xf2,0xc2,0x7c,0xcf,0x59,0xc2,0x70,0x36,0x57,0x43,0x12,0x53,0x3,0xc3,0x30,0xee,0x86,0xc2,0x70,0x93,0xcc,0xc2,0x5d,0xc9,0x76,0xc2,0x8f,0x3,0x40,0xc3,0x83,0x1c,0x94,0xc2,0xd7,0x60,0x9c,0x41,0x82,0x1b,0x32,0xc3,0x5b,0x97,0x8e,0x40,0xa7,0x8a,0x85,0xc1,0x56,0x74,0x65,0x42,0x81,0xbb,0xd1,0xc2,0x6f,0xee,0x6b,0xc2,0x9a,0x59,0xa2,0x41,0x8a,0x6d,0x5,0xc2,0xb,0x0,0xcd,0xc2,0xfb,0xd8,0x83,0xc1,0x60,0xe3,0xd6,0xc0,0x6d,0x13,0xb,0x43,0xa8,0xf6,0x4c,0x41,0x3d,0x52,0x1,0x43,0xa6,0x10,0xc1,0xc1,0xa,0xfb,0xce,0x42,0x80,0xbd,0x40,0xc2,0x8f,0xd2,0xcb,0x42,0x45,0xcc,0x8d,0x42,0xa7,0x66,0x6,0xc2,0xe7,0xcd,0x9e,0x42,0x9d,0x2a,0x81,0x42,0xc2,0x19,0x2d,0xc3,0x97,0xe5,0x5,0xc2,0xae,0x96,0xd0,0xc2,0x68,0x29,0xae,0xc2,0x86,0xd5,0xa,0xc3,0xef,0x0,0xd8,0xc2,0x91,0x89,0x80,0xc3,0x4b,0xd,0xb3,0x42,0xe4,0x4e,0xf0,0x42,0xce,0xb1,0x5d,0xc2,0x9e,0x14,0x8a,0x42,0xd7,0x9a,0xa1,0x42,0xd7,0x5f,0x72,0x41,0xd,0x1a,0x66,0x43,0x1,0x81,0x1b,0xc3,0x67,0xea,0x23,0x43,0x3d,0x96,0x62,0x42,0x10,0x9f,0x28,0x42,0xe0,0x39,0x11,0x43,0xa9,0x9,0x11,0x43,0xd9,0x6a,0xb4,0xc2,0xef,0xc3,0xb7,0x42,0xcd,0x36,0xe1,0xc2,0xb6,0x42,0x9e,0x41,0x88,0x9b,0xe5,0x42,0x8a,0x58,0x25,0x43,0xd0,0xfb,0xb6,0x42,0x43,0xe8,0x93,0xc2,0xde,0xb1,0xcf,0x42,0x57,0x4f,0x25,0xc2,0x50,0x46,0x8c,0xc1,0xa6,0xb7,0x83,0xc2,0x4,0xf0,0x2c,0xc1,0x68,0xec,0xd5,0xc2,0x56,0x51,0xd,0xc1,0x0,0xbf,0x7c,0x40,0x65,0xf2,0xb,0x40,0xde,0x20,0xdd,0x41,0xa0,0xe2,0x12,0x43,0x1f,0x8f,0x42,0x43,0x7,0x3d,0x8d,0x42,0x52,0x16,0xff,0x41,0x61,0x70,0xfa,0x41,0x33,0xa4,0xac,0xc2,0x7a,0xd5,0x24,0xc2,0xee,0x9a,0x23,0x42,0x2,0x19,0x3d,0x43,0x5,0x68,0x78,0xc3,0x8c,0x42,0x8b,0xc2,0xa,0x16,0x23,0x43,0xf0,0xe2,0x41,0x42,0xcf,0x82,0xec,0x42,0xa4,0x1a,0xcb,0x41,0x91,0xa3,0xf,0x41,0xfa,0xfe,0xf2,0x41,0xf7,0x91,0x41,0xc2,0xbc,0x2,0x7f,0xbf,0x2b,0xf1,0x22,0xc3,0x8c,0xcb,0xaf,0xc2,0x4a,0x50,0x0,0x42,0xda,0x2a,0x12,0x43,0x3f,0x6,0x98,0x42,0x31,0x9c,0x52,0x42,0x82,0x1b,0x91,0xc3,0xc,0xbf,0xfc,0x42,0x33,0x1f,0xc7,0xc2,0x6c,0x9,0x14,0x43,0x7f,0xbb,0x15,0xc3,0x1a,0x98,0x40,0xc3,0x83,0xe9,0x1,0xc3,0x33,0x54,0x5c,0xc1,0x55,0xb2,0x44,0x42,0x90,0x7f,0x9e,0x41,0xcd,0x14,0x9,0xc1,0xe5,0xc0,0x8c,0xc2,0x42,0x96,0xdf,0x41,0xc7,0xf0,0xe4,0xc2,0x9,0x29,0xa,0x43,0x85,0x74,0x1c,0xc3,0x59,0x41,0x9d,0x42,0x81,0x61,0x83,0x42,0x29,0xd,0x8c,0xc3,0xdd,0xd3,0x5c,0xc2,0xbf,0xe,0x99,0xc2,0x5e,0x21,0x3d,0xc3,0x76,0xc1,0x5e,0xbf,0xf1,0x3e,0xfe,0xc2,0x5f,0x69,0x92,0x43,0x77,0x56,0x2b,0x43,0x83,0x84,0x41,0x41,0xb8,0x34,0x59,0x42,0xda,0x42,0xf4,0x42,0x29,0xde,0x33,0xc3,0xba,0x51,0xce,0x42,0xf4,0x99,0x34,0x43,0x19,0x55,0xe1,0xc2,0x5a,0xb7,0x4a,0x42,0x69,0x12,0x1b,0x43,0x9f,0x53,0x79,0x42,0x3d,0xfa,0x8f,0xc1,0xbb,0xee,0x86,0xc2,0x15,0x37,0xa6,0xc2,0x96,0xaf,0x3,0x42,0x7a,0xa0,0x1e,0x43,0xdc,0x42,0x15,0xc3,0x50,0xa0,0x39,0x40,0x3a,0x6a,0x40,0xc2,0x74,0x7d,0xdc,0x42,0xba,0xb,0xca,0xc1,0xe0,0x18,0x4,0x42,0x6e,0x6e,0xab,0x42,0x58,0x9c,0xd5,0xc2,0x50,0xf6,0x5d,0xc1,0x4,0x2f,0x34,0x42,0xaa,0x81,0x88,0x42,0xa0,0x9e,0xf9,0xc1,0x25,0x63,0x7e,0x42,0x54,0xb4,0x97,0xc2,0xfe,0xec,0x6e,0xc3,0xde,0x9b,0xa1,0xc0,0x61,0x6f,0x16,0x42,0x61,0xe3,0x48,0xc2,0xec,0xc5,0x22,0xc2,0x24,0xcb,0x62,0xc2,0x7a,0x7a,0xaa,0x42,0x35,0xb7,0xb7,0xc1,0xbb,0x34,0x74,0xc2,0x85,0x46,0xd1,0xc2,0x55,0x5,0x87,0x41,0xf,0x7,0x72,0x42,0x60,0x93,0x14,0xc2,0x15,0x71,0xf,0x43,0x41,0x56,0x9f,0x41,0xfd,0xaf,0x1e,0x42,0x59,0x69,0xd7,0xc1,0x74,0x36,0xc6,0x42,0xcd,0x9c,0x21,0xc3,0x2f,0xe,0xa5,0xc1,0xb9,0xf9,0x58,0x43,0xd,0x89,0x50,0xc3,0x3b,0xb2,0x6b,0x42,0x8b,0x5,0x18,0xc1,0x59,0xf8,0x28,0x41,0xd4,0x5e,0xd0,0xc2,0x98,0xd1,0x88,0x41,0x93,0x8,0xfe,0xc2,0x60,0x69,0x12,0x42,0x64,0x78,0xb7,0x41,0x45,0xb,0x8f,0x41,0x41,0x52,0x66,0xc3,0x14,0x1e,0xd0,0xc2,0xb9,0xc5,0x96,0x41,0x7d,0x40,0x7b,0x41,0x76,0x5f,0xe0,0x42,0x36,0xf6,0x5a,0x42,0xaf,0x84,0xf3,0xc2,0xf9,0x38,0x24,0xc3,0x52,0xbc,0xaa,0x40,0x8a,0x14,0x86,0xc2,0x10,0x71,0xdf,0x41,0xcf,0xd8,0xa5,0xc2,0x68,0x7e,0x90,0x42,0x66,0x6c,0x87,0xc1,0xf5,0x47,0x76,0x42,0x85,0x46,0xb6,0xc2,0xbe,0x56,0xd,0xc3,0xe6,0xef,0xc6,0x40,0x70,0xb3,0x21,0xc3,0xe2,0xee,0xe2,0x42,0xf2,0x2e,0xb6,0x42,0x7d,0x9c,0xb9,0x41,0xa5,0x47,0x9,0xc3,0xf5,0x99,0xa9,0xc1,0x1b,0x3d,0xf6,0x41,0x43,0xfc,0x9f,0xc2,0x66,0xad,0x89,0xc1,0x4,0xc4,0x44,0x43,0xb3,0xee,0x11,0xc2,0xa,0xeb,0xa6,0xc2,0x74,0xb9,0xa8,0x42,0xc0,0x90,0x93,0xc0,0x0,0x32,0xb4,0xc2,0x74,0x98,0x8a,0x41,0x2f,0xca,0x94,0x42,0x4e,0xc7,0x4,0x43,0xc2,0xcd,0xe5,0x42,0xe3,0xf8,0x9b,0x42,0x7f,0xb6,0x2e,0x43,0xd0,0x25,0x81,0x42,0xcd,0x15,0xff,0x40,0x2b,0xce,0x65,0xc3,0x3d,0x20,0xb4,0x42,0x26,0x2b,0xf3,0x41,0xd0,0xdb,0x4c,0xc2,0xe0,0x19,0xbd,0xc2,0x3a,0x9f,0x25,0xc2,0x44,0x70,0x30,0xc2,0x42,0x6f,0xa3,0xc2,0x8e,0x14,0x35,0xc2,0x85,0xfd,0x25,0x43,0xb4,0x8a,0x29,0xc2,0xa5,0x3,0xaa,0xc2,0x68,0x66,0xb9,0x42,0xab,0xeb,0x95,0x42,0x36,0x5d,0xbe,0xc2,0x74,0x25,0xa,0x42,0xbc,0x50,0x4d,0x41,0x9a,0x5d,0x97,0x42,0x4c,0x4d,0xe4,0xc1,0xb,0x9a,0x6e,0xc1,0x31,0x4,0x17,0xc2,0x0,0x88,0x12,0xc1,0x44,0x85,0x2f,0x42,0x8d,0x5f,0xf0,0xc2,0xd3,0xa3,0xff,0xc1,0x74,0xa2,0xeb,0x42,0x5a,0x39,0xa5,0x41,0x26,0x56,0xc7,0xc0,0x36,0xe6,0xe4,0xc2,0x47,0xb7,0xb,0x40,0xff,0xd1,0x62,0xc2,0x48,0x8d,0xb1,0x42,0x4c,0xcc,0xeb,0xc2,0x50,0x5d,0x45,0x40,0x5d,0x38,0x1,0xc3,0xae,0xaf,0x96,0x42,0x92,0x97,0x5b,0xc2,0x2a,0x4f,0xf4,0x42,0x74,0xd4,0xb2,0xc2,0x5d,0x57,0x13,0x43,0x75,0x78,0xa1,0xc2,0x92,0x8c,0xea,0x42,0x70,0x5,0x26,0x41,0xf3,0xa9,0x77,0x42,0xd9,0x53,0x69,0x42,0x7c,0xd2,0xc3,0xc2,0x3e,0xa1,0xfd,0x42,0xe,0x22,0x1a,0x42,0x87,0x4,0x3b,0x42,0x60,0x4f,0x75,0x42,0x5,0x9f,0x54,0xc2,0x11,0xb2,0xcd,0xc2,0x2d,0xb5,0x88,0xc2,0x1,0x46,0xa6,0xc2,0x33,0x1c,0x5b,0x42,0xec,0x14,0x67,0x42,0xe2,0xe2,0xb7,0x41,0x35,0x3e,0x7,0xc2,0xf2,0xf,0x9d,0xc0,0x78,0xa7,0x97,0x42,0xb8,0x11,0x15,0x42,0xcc,0x28,0xe0,0x42,0x57,0x16,0x54,0xc1,0xed,0xa7,0x14,0x42,0x1a,0x7,0x79,0xc2,0x38,0xef,0xbb,0xc2,0xa2,0x67,0x85,0xc2,0x80,0x9e,0xc2,0x42,0x52,0xb4,0x6f,0x42,0xdf,0x8c,0x1b,0x43,0x2f,0xb6,0x7c,0x42,0x2d,0xed,0x2,0x43,0x5b,0x74,0xae,0xc2,0xbf,0xdf,0xcf,0xc2,0xc8,0x27,0xcd,0xc1,0x96,0x3b,0x8b,0xc2,0x14,0x7f,0x5b,0xc3,0xc0,0xcc,0xd4,0x42,0x48,0x3a,0xab,0x42,0x13,0x9a,0x9,0x43,0xae,0xc8,0xa8,0xc2,0x60,0x41,0x26,0x42,0xf8,0xf3,0x8,0xc3,0x8e,0xd5,0x9f,0xc2,0x5c,0xd0,0xc5,0x42,0xd4,0x9f,0xe3,0x41,0x8e,0x4d,0x26,0x43,0x68,0x8d,0xa7,0x42,0x7c,0x3,0xae,0x42,0x5b,0x9b,0x4a,0x42,0xfb,0x8e,0x98,0x42,0xc0,0x6d,0xa3,0xc2,0xde,0x8e,0x96,0xc2,0x77,0xfb,0xea,0x41,0x9c,0x73,0xd0,0xc1,0x18,0x70,0x2d,0xc2,0x26,0xf0,0x12,0x43,0x65,0x9c,0xd0,0xc2,0x36,0x5f,0xef,0x42,0xf0,0x1,0xa7,0x42,0xc0,0xb7,0x80,0xc2,0xa0,0xba,0x3,0x41,0x87,0xa5,0x7,0x40,0x55,0x61,0x23,0x43,0xac,0xc5,0xc1,0x41,0xec,0x39,0x54,0x42,0xf0,0x0,0xe7,0x42,0xb3,0x6d,0x91,0x42,0xc7,0xa6,0x88,0x42,0x2f,0xfc,0xeb,0xc2,0xc4,0xcf,0x64,0xc1,0x76,0xeb,0x61,0x42,0xd1,0x1f,0xd1,0x41,0x68,0xbc,0x19,0x42,0x7c,0x7a,0x31,0xc0,0x56,0x3,0x23,0xc2,0x72,0xec,0x41,0xc2,0x3e,0x96,0xb2,0xc1,0x54,0x1d,0x15,0xc2,0x54,0x81,0xcb,0x41,0x49,0xc1,0x27,0x42,0xa4,0xe2,0x79,0xc1,0x65,0x3a,0xb1,0x42,0x11,0x29,0xad,0xc2,0x69,0x17,0xd3,0x42,0x7f,0xfe,0x2b,0xc2,0x9b,0xdf,0xea,0x41,0xef,0xc9,0x4,0x43,0x1,0x92,0x3a,0x43,0xdf,0xb3,0xc0,0x42,0xf9,0x31,0x53,0xc2,0x8a,0x1b,0x9c,0x42,0x30,0x56,0x8b,0x42,0x52,0x42,0x8a,0x41,0xa0,0x30,0x71,0x42,0x9b,0x62,0xe6,0xc2,0x54,0xbb,0xf3,0x42,0xde,0xef,0x22,0xc3,0xff,0x6c,0xd6,0x42,0xd1,0xd2,0x34,0x43,0x56,0xb5,0xcb,0xc2,0x32,0x9a,0x6f,0x42,0x4,0xf9,0x83,0x42,0x49,0x16,0xde,0x41,0xee,0x65,0xc2,0x42,0x1e,0x43,0x4,0x43,0xaa,0xc4,0xf1,0xc2,0x55,0xbe,0xfb,0x42,0x7f,0xa5,0x6e,0x41,0x43,0x40,0x85,0xc2,0xad,0x32,0x78,0x41,0x93,0x9a,0xe3,0xc1,0xf3,0x10,0xc7,0x41,0x64,0xbf,0x77,0xc2,0x86,0x87,0xc2,0x42,0x9f,0xd2,0x2a,0x42,0x9c,0x77,0xf2,0x40,0x5e,0x3b,0xac,0xc2,0x35,0x41,0x30,0x42,0xf2,0x7b,0x41,0x42,0x49,0xe3,0x8,0x41,0x5,0x1b,0xba,0x43,0xfc,0xa6,0x14,0xc2,0xd5,0x42,0x20,0x42,0x55,0x64,0x29,0xc3,0xc7,0xde,0xff,0x42,0xce,0x32,0xa9,0x42,0x9f,0x31,0xf0,0x42,0x74,0x49,0xab,0x41,0x3,0x6d,0xe,0xc2,0x90,0x4b,0x2b,0xc2,0x55,0xff,0xbf,0x42,0x35,0x3e,0x31,0x42,0x2e,0xe3,0x20,0xc3,0xf6,0xea,0xb7,0xc2,0x6,0xf9,0x94,0x42,0x3d,0x6d,0xfe,0xc2,0x1c,0xb9,0x6d,0x42,0xde,0x75,0x32,0x42,0x7c,0x29,0x9,0x42,0x51,0x8d,0xca,0xc2,0x73,0xc1,0x9d,0x42,0x3f,0xe7,0x1c,0xc2,0x26,0x3f,0x26,0xc0,0x83,0xa,0xe,0x42,0x6f,0x40,0x2f,0x43,0x85,0x30,0x80,0xc2,0xf8,0x1f,0xb1,0xc2,0xb5,0xb0,0xeb,0xbf,0x64,0xc4,0x85,0xc0,0xf0,0xc2,0x83,0x41,0x64,0xe0,0xce,0x42,0x95,0x74,0xb0,0x42,0x1f,0x26,0x18,0xc3,0x47,0xa6,0x66,0xc2,0x47,0xab,0x4a,0x42,0xb2,0xd5,0x98,0x42,0xfc,0x95,0x19,0xc3,0x4b,0x50,0xb8,0x42,0x5b,0xb0,0xce,0xc2,0x19,0xa8,0xf5,0x42,0xd7,0xc0,0xc8,0xc2,0x0,0xad,0x0,0xc3,0xe3,0x84,0xa,0x43,0x53,0x8a,0x51,0xc2,0x49,0x47,0xf1,0xc0,0x5c,0x6c,0x82,0xc2,0xfb,0xbb,0xfa,0x41,0x8e,0xeb,0xc0,0x42,0xd,0x8d,0x40,0x43,0xe0,0x17,0x60,0xc2,0x17,0x47,0x3e,0x41,0x8c,0x4f,0x83,0x42,0xf2,0xcf,0xc3,0x40,0x91,0xdc,0xb5,0xc1,0x8b,0x17,0x95,0x42,0x4,0x17,0x2d,0x42,0x7e,0xf4,0x1c,0x43,0xc8,0xf5,0xad,0x42,0xe2,0x68,0xe1,0xc2,0x82,0x77,0x31,0xc2,0x6c,0xc7,0xd3,0xc2,0xce,0x91,0xf2,0xc2,0x2f,0x2e,0xba,0xc2,0xc5,0xef,0x3c,0xc0,0x7d,0x9d,0x69,0x42,0x4,0x88,0x12,0x40,0x9b,0x14,0xef,0x42,0x3d,0x8,0xa2,0xc1,0xac,0xe2,0x1,0xc3,0x1,0x3b,0x85,0x42,0xf3,0x97,0x60,0x42,0xd5,0x3f,0xda,0x42,0xbd,0x40,0x75,0xc2,0x71,0xe1,0xcd,0x40,0x9c,0xa0,0xa5,0x41,0x31,0xce,0x23,0x43,0x67,0xc7,0xe0,0xc2,0x61,0xe3,0x75,0x41,0x52,0xcd,0xdd,0xc1,0x5,0xa6,0xad,0x40,0x4e,0xdc,0xdc,0x41,0xc5,0xf6,0xa3,0x42,0x6,0xb8,0x30,0x43,0x54,0x95,0xf8,0xc2,0xee,0x72,0x40,0xc3,0x14,0x5d,0x39,0x42,0x65,0xab,0x5,0xc3,0xee,0x97,0x82,0x41,0x5f,0xc6,0x61,0xc2,0xd6,0xbf,0xac,0x42,0x59,0xa8,0x7,0xc2,0xec,0x34,0xd1,0x42,0x50,0x27,0x35,0xc2,0x25,0x58,0x80,0x43,0x9,0x23,0x9f,0xc2,0xab,0x32,0x7b,0x42,0xdf,0xc4,0x93,0x42,0x70,0xe0,0x3c,0xc2,0xc4,0x11,0x23,0xc3,0x6d,0x9a,0xa1,0xc1,0x1d,0x3e,0x60,0xc3,0xc7,0x6f,0xdc,0xc2,0xb1,0x98,0xa5,0x41,0xc4,0x1d,0x3b,0xc3,0xae,0xb2,0x67,0x42,0x6e,0x3d,0x7e,0xc1,0xac,0xe9,0x97,0xc2,0x97,0xb4,0x18,0xc2,0xaa,0xa3,0x50,0x42,0x4e,0x93,0xa8,0x42,0x40,0xf8,0x83,0xc2,0x22,0x81,0xae,0x41,0xc3,0x30,0xf6,0x41,0x6f,0x88,0x3f,0xc2,0x52,0x95,0xe1,0xc2,0x54,0xa1,0x81,0xc2,0x26,0x27,0x8,0x43,0xd4,0xb5,0x3c,0x43,0xd4,0x85,0xe,0x42,0x96,0x53,0x80,0xc0,0xb4,0xa1,0x41,0xc3,0xc2,0x12,0x48,0xc2,0x1d,0x20,0x81,0x41,0xe3,0x26,0xf1,0x42,0x95,0x19,0x5e,0xc2,0x3,0x33,0xa2,0x42,0x9e,0x60,0xe7,0x41,0x94,0x1d,0xc,0x42,0x64,0xf7,0x3a,0xc3,0x55,0xd7,0x56,0xc1,0xf4,0xf2,0x8,0xc2,0x1c,0x78,0x78,0xc1,0x1b,0x7f,0xb3,0xc0,0x45,0xf1,0xc,0xc3,0xb,0xca,0x84,0xc2,0x67,0xc9,0x37,0x42,0x82,0xb,0x30,0xc1,0xa8,0x7c,0xa9,0xbf,0xb,0xb8,0x58,0xc1,0xfa,0x76,0x9c,0x42,0xe,0x5c,0x34,0x42,0x95,0x27,0x90,0x42,0x89,0xdf,0x55,0x42,0xa6,0xa9,0x2f,0x41,0xd8,0xb7,0x20,0xc3,0x27,0x3c,0x93,0xc2,0x3a,0x3a,0x8a,0x42,0x12,0x9d,0x53,0x43,0xdb,0x6f,0x2d,0xc2,0x6c,0x23,0x91,0xc1,0x22,0x47,0xd8,0x42,0xf1,0x2a,0x9b,0x42,0x89,0x71,0xfe,0xc2,0x50,0x65,0xe8,0xc2,0x70,0xbb,0x2,0xc2,0x60,0x46,0x9d,0x42,0xec,0xae,0x23,0x43,0xe3,0xd0,0x9e,0x41,0xc2,0xe9,0x52,0xc1,0xdc,0xfd,0x73,0xc1,0x5d,0x52,0x9,0x42,0x3d,0xf1,0x55,0x42,0x7c,0x25,0x96,0xc2,0x94,0x94,0xf0,0x42,0xfa,0x39,0x9a,0xc2,0xa1,0xe6,0x7,0xc3,0x39,0xc0,0xd8,0xc2,0xe,0x8,0x1,0x43,0x5a,0x7c,0xf1,0x42,0x9a,0xb6,0xc0,0xc2,0xe0,0xd3,0x9c,0x42,0x59,0x50,0xfb,0xc2,0x3a,0x73,0x44,0xc3,0x23,0xba,0x2f,0x42,0xe3,0xf8,0x95,0xc2,0x8e,0x68,0x27,0x41,0x5f,0x48,0x9d,0x42,0xf4,0x90,0x93,0xc2,0x84,0x71,0x32,0xc2,0x30,0x38,0x81,0x42,0xb3,0x7d,0x92,0x42,0xa4,0xb,0x9e,0x41,0xac,0x8b,0x1e,0xc2,0xc6,0x7b,0x1b,0x41,0x5d,0x6c,0x43,0x43,0x4d,0xd8,0xac,0xc2,0xd0,0x33,0x88,0x42,0x11,0x61,0x3a,0x42,0xa4,0xae,0x9b,0x42,0x91,0x48,0x44,0xc2,0xa4,0x20,0xcb,0xc1,0x62,0x56,0x42,0x41,0xb1,0x92,0x5c,0x42,0xde,0xb6,0x83,0x43,0x55,0x55,0x9,0xc2,0xac,0x1a,0xde,0xc2,0x9,0x7f,0xd6,0xc2,0x8,0x69,0x43,0xc3,0x8c,0x60,0x8e,0xc1,0x33,0xd9,0xed,0x42,0x6,0x4b,0xb8,0x42,0xbb,0x4f,0x33,0x42,0xc0,0xd4,0x50,0x40,0xb4,0x6,0x46,0xc2,0x6d,0x67,0x2,0xc2,0x6e,0x90,0x1d,0x43,0xfa,0x27,0x35,0xc2,0xa3,0xe6,0x1,0xc2,0xc9,0x64,0x1b,0xc3,0xf1,0xed,0x37,0x43,0x89,0x29,0x9,0xc3,0xd,0x49,0xae,0x42,0x27,0xf4,0x7,0xc3,0x3a,0xc9,0x6,0xc3,0xc6,0xfa,0x30,0xc2,0xec,0x0,0x74,0x42,0x58,0xc9,0x9,0x43,0x10,0x83,0x2d,0xc3,0x8,0x6a,0x6d,0xc3,0x9c,0x6,0x98,0x42,0xc6,0xbe,0xb9,0xc2,0x9c,0x10,0x7a,0x41,0x58,0xca,0xe2,0xc2,0x80,0x93,0xef,0xc1,0xcd,0xfd,0x8,0xc3,0x7a,0xb8,0xbf,0xc2,0x31,0x66,0xa3,0xc2,0xe8,0x72,0x38,0x42,0xb1,0xf5,0xef,0x42,0xa4,0xdd,0xdb,0xc1,0xec,0x23,0xa1,0x42,0xc0,0x25,0xfc,0x41,0x87,0x47,0x33,0xc2,0x34,0x9,0xb6,0xc2,0x7c,0x94,0x3b,0x42,0x0,0xb6,0xf1,0x42,0x9b,0x3c,0x5d,0xc1,0xad,0x5,0x5,0xc3,0xb7,0xa8,0xe9,0xc1,0x29,0xab,0x72,0xc2,0xc2,0x7f,0xa1,0x42,0x20,0xa7,0x67,0x42,0x55,0x6a,0x30,0xc2,0xb1,0x21,0xb0,0x41,0xee,0x90,0xdf,0x42,0xb1,0xde,0x57,0x41,0xe1,0xea,0x99,0x42,0x27,0x91,0x98,0x42,0xc8,0xb0,0x1,0xc2,0x64,0xf9,0x4a,0x42,0xbe,0x43,0x95,0xc0,0x7d,0x2c,0xf0,0xc1,0x41,0x28,0xdf,0xc2,0x79,0xc4,0x69,0xc0,0xc7,0x9b,0x11,0xc3,0x18,0x12,0x73,0x3f,0x1c,0x28,0x34,0x40,0x1d,0x9b,0xdf,0xc2,0xec,0x48,0x4f,0xc2,0x7b,0xc9,0x12,0xc3,0xb5,0x5d,0xbf,0x42,0xe5,0xd6,0xc,0xc3,0xe4,0xf,0x1e,0xc2,0x36,0xb6,0x8f,0x41,0x4b,0x7d,0xa0,0xc0,0xc0,0x88,0xc9,0xc2,0x4c,0x7f,0xac,0x42,0xea,0x5c,0x1e,0xbf,0xdb,0xc2,0xec,0x42,0x98,0x1,0x10,0xc3,0xae,0xfb,0x15,0x42,0x3d,0x11,0x19,0xc3,0xb4,0x7f,0x49,0xc2,0x38,0xe0,0x1c,0x43,0x57,0xf9,0x5e,0x41,0x2a,0xbc,0xf2,0x41,0x9a,0x48,0xdd,0xc2,0x98,0x7b,0x95,0xc0,0x66,0x19,0xae,0x3f,0xdf,0xff,0x67,0x41,0x7f,0xcd,0xf8,0xc1,0xfb,0x88,0x28,0x42,0x26,0x2a,0x45,0x43,0xec,0xed,0x6e,0xc2,0xd9,0xd9,0xa6,0x40,0x9c,0x69,0xf4,0x42,0x6e,0x6e,0x4b,0xc2,0x71,0x10,0x3,0x43,0x45,0xbc,0x21,0x41,0x4a,0x6d,0x46,0x43,0xe0,0xaf,0x4a,0xbf,0xab,0xe,0x21,0xc2,0x2,0xd2,0xa7,0xc1,0x4d,0xfd,0x8b,0xc2,0xc5,0xe3,0x30,0x42,0x22,0x83,0x72,0xc2,0xd8,0xff,0xb2,0xc2,0x46,0x89,0x19,0x41,0x10,0x2a,0x8e,0x42,0xc,0x91,0x21,0x41,0xda,0x8e,0x12,0x42,0x10,0xfb,0x66,0xc3,0x45,0x17,0xd2,0x42,0xf3,0xb0,0xd7,0xc2,0xd8,0x8,0xe,0x43,0x3,0x6e,0xb3,0x42,0xb1,0xc0,0x33,0x42,0x32,0x14,0xb6,0x42,0x39,0x49,0xc,0x43,0xe,0xdf,0x13,0x43,0xce,0x8d,0x70,0x42,0xb2,0xf8,0x5,0xc2,0xe1,0xeb,0x21,0x43,0xb,0x8,0x26,0xc1,0x16,0xbb,0x8,0xc3,0xfe,0xfb,0xce,0xc1,0x89,0xc6,0x0,0x42,0xae,0x7b,0xf8,0x42,0xae,0xe1,0x6c,0x42,0x6a,0x21,0x6b,0x42,0x1c,0x3b,0x70,0x42,0x6a,0xba,0xb,0x43,0x4d,0x3a,0x1a,0xc3,0x52,0xf8,0x60,0xc2,0x43,0x15,0xd4,0x42,0xf8,0x1f,0x2c,0xc3,0x63,0xe9,0xfe,0xc2,0xd6,0x83,0x28,0x42,0x36,0x10,0xf5,0x42,0xaa,0x86,0x4a,0x42,0x9a,0x68,0xfc,0x42,0x90,0x9c,0x87,0x42,0x84,0x53,0x3f,0xc3,0x9a,0xea,0x59,0x43,0xa8,0xb8,0xb,0xc3,0x44,0xa5,0x8c,0x41,0x78,0x54,0x5b,0x41,0xba,0x32,0x17,0x41,0xbf,0x2c,0xe2,0x41,0xb9,0xed,0x96,0x42,0x93,0xd1,0x9a,0x42,0x2f,0xec,0xa,0xc3,0xe1,0x92,0xdd,0xc2,0x8,0xd9,0xb2,0xc2,0x14,0xa0,0x16,0x43,0xda,0x32,0x31,0xc3,0xb9,0x41,0xd,0x43,0x2b,0xa5,0xf5,0x42,0xe,0x7e,0xc2,0x41,0xc4,0x47,0x6b,0xc2,0x36,0xcf,0x7,0x43,0x46,0x25,0x3b,0xc2,0x60,0xf7,0x1b,0x42,0xab,0x0,0xe2,0xc1,0xb0,0xaf,0x57,0x42,0xf0,0x3e,0x81,0xc2,0xd1,0xff,0x7a,0xc2,0x9e,0x78,0x1d,0x42,0xc5,0x52,0xcc,0x42,0x15,0xd5,0x37,0x43,0x37,0xcd,0xcd,0xc2,0xb3,0x6,0x69,0x43,0x82,0x38,0x8b,0x42,0x19,0xef,0xba,0xc1,0xa3,0xbd,0xf5,0xc2,0x9c,0xc,0x57,0xc3,0x36,0x15,0xc7,0xc2,0x80,0x15,0xc,0x41,0xc0,0x77,0xd,0xc2,0x8b,0xfe,0xc8,0xc2,0xc,0x11,0x93,0x43,0xe5,0x81,0x95,0xc2,0x7a,0x1c,0xe,0xc1,0x83,0x93,0x4e,0xc1,0x73,0x86,0xeb,0xc2,0x18,0x6f,0x3b,0xc3,0x73,0x7a,0x92,0x41,0x62,0x76,0xd2,0xc2,0x66,0x7a,0x39,0xc2,0x27,0x23,0x83,0x42,0xe6,0x7f,0x8c,0xc1,0x7e,0xe1,0xad,0x42,0xda,0x11,0x20,0x42,0x77,0xc9,0x84,0x42,0x97,0xbd,0x80,0xc3,0xeb,0xbd,0x8b,0x42,0x4a,0xe9,0xb6,0xc2,0x16,0x3b,0x21,0xc3,0xf4,0x66,0x50,0xc2,0x3,0x1d,0xa7,0xc1,0x66,0x3d,0x3d,0xc2,0xd0,0xaf,0xd1,0xc1,0x5a,0xb9,0xbb,0xc2,0xb3,0x4e,0x11,0x43,0xc3,0x5e,0x13,0xc2,0x91,0xbe,0x52,0xc2,0x9f,0xf4,0x47,0x42,0x93,0xd2,0x9e,0xc2,0xf3,0xd6,0xd1,0x42,0xcd,0x34,0x3b,0xc3,0xbe,0x36,0xdb,0x42,0x3a,0x45,0xe9,0x40,0xe0,0xd5,0x37,0xc2,0x95,0x46,0x33,0xc3,0xc0,0x6b,0xa0,0x42,0xc2,0x59,0x40,0x42,0x4e,0xe4,0x85,0xc1,0xe9,0xc0,0xd,0xc3,0xd8,0x58,0xf9,0x42,0xef,0x48,0x5,0x43,0xb1,0xa5,0x8e,0x41,0x7,0x7b,0xb6,0x42,0xd2,0x11,0x92,0xc2,0xd6,0xf0,0xcb,0xc2,0xd9,0x2a,0x15,0x43,0xb3,0x6e,0xdf,0x41,0xfc,0xf7,0xd8,0x42,0xf4,0x24,0x2a,0xc0,0xb1,0x3a,0x16,0x42,0x19,0xb0,0x87,0x42,0xc2,0xc1,0x51,0x43,0x92,0xb2,0xfb,0x42,0xdb,0x8f,0x45,0x42,0xb4,0x46,0xe9,0x42,0xce,0xb4,0xb,0x43,0xf9,0xb8,0x59,0x42,0x66,0x2c,0x42,0xc3,0x1a,0x54,0x44,0xc1,0x88,0xb4,0x13,0xc3,0x43,0x41,0x7f,0x43,0xbc,0xb3,0x7,0x43,0x7f,0x24,0xb,0x43,0x23,0xc8,0xc2,0xc1,0x28,0xcd,0x59,0xc2,0x33,0xba,0x6f,0xc2,0xff,0x1b,0x51,0xc2,0x5a,0x14,0x68,0x42,0x57,0xed,0x47,0x42,0x20,0x95,0x4a,0xc3,0x1f,0xf9,0xd8,0xc2,0xb9,0x8e,0xcb,0x42,0x5,0x45,0xa5,0xc1,0xa7,0x5f,0x7a,0x42,0xf4,0xe2,0x73,0x41,0x8f,0x21,0x82,0x42,0xc9,0xc1,0x12,0x42,0x85,0xd2,0xa,0x42,0x62,0x2e,0x8a,0x41,0x5f,0xfc,0x9a,0x42,0xbf,0xe5,0x69,0xc2,0x45,0x65,0xfe,0x42,0xd9,0x13,0x13,0xc2,0x4f,0xd5,0x9a,0x42,0xc2,0x54,0x76,0x42,0xa7,0xed,0x52,0xc2,0xe0,0x4b,0x5,0xc2,0xba,0x2b,0x8e,0xc1,0xa9,0x52,0x2b,0xc1,0x86,0x45,0xb5,0xc1,0x9a,0xcd,0x3,0x42,0x70,0xcf,0xb3,0xc1,0xbe,0xd,0xe1,0xc2,0x18,0xa2,0xa,0x43,0x91,0x91,0x75,0xc1,0xd8,0xf7,0xe0,0xc2,0xe8,0xd7,0xbf,0xc0,0x9d,0x25,0x54,0xc2,0xf6,0x60,0xc9,0xc2,0x5c,0x75,0x4,0xc3,0xad,0x15,0xd8,0x41,0x2d,0x63,0x56,0xc2,0xbf,0xff,0x9b,0x42,0x90,0x2b,0x12,0x43,0xd6,0x1f,0x6d,0x42,0xee,0x51,0xcb,0x42,0x21,0x4a,0x3e,0xc3,0x1c,0x98,0x90,0x40,0x59,0x1a,0xe3,0xc1,0x20,0xd7,0xae,0x42,0x34,0x40,0xcb,0x41,0x94,0x29,0xe,0xc2,0xb1,0x3e,0xda,0x42,0x24,0xba,0xd6,0x42,0x18,0xd6,0xb6,0x40,0x7,0x84,0xb8,0xc1,0xb0,0x55,0x67,0xc3,0x36,0x4a,0x9f,0xc2,0x0,0x8a,0xfd,0x3d,0xf3,0x5c,0xf2,0xc1,0x16,0xee,0xe1,0x42,0x5d,0x47,0xe5,0xc2,0xe5,0xca,0xfc,0xc1,0xad,0xd6,0x53,0x42,0xcf,0x60,0xde,0xc1,0xc5,0x7f,0x9c,0x41,0xc0,0xdc,0x2c,0x43,0x62,0x6e,0xa9,0x42,0x8d,0x21,0x84,0x42,0x9d,0xcd,0x13,0x41,0xe,0x1c,0x8e,0xc2,0x14,0x52,0x3e,0x42,0x43,0xb9,0x3b,0xc2,0x5c,0x4d,0x56,0x42,0x9b,0x96,0x88,0xc0,0x8f,0x5b,0x54,0x43,0x9f,0x27,0x70,0x42,0x10,0x76,0x7b,0xc2,0x8b,0x97,0x19,0x43,0x63,0x75,0x17,0x43,0xed,0xf0,0x18,0xc3,0xd5,0xa2,0x96,0xc0,0x21,0xde,0xfa,0x42,0xa7,0x72,0x8f,0x42,0x84,0x92,0x87,0x41,0x60,0x76,0x3f,0x42,0x85,0xa8,0xe1,0x41,0x5b,0x23,0x85,0x42,0x6,0x34,0x3e,0x43,0xbc,0x39,0x1b,0xc1,0x42,0xcb,0xb7,0x42,0xd9,0xc3,0xbf,0xc1,0x80,0x93,0xc3,0xc1,0x33,0xbc,0x76,0x42,0xe7,0x5b,0xe8,0x42,0xe9,0x65,0x5a,0x42,0x5c,0xa5,0x29,0x42,0xcb,0x8,0xe7,0x41,0x3b,0x63,0xd5,0xc0,0x3b,0x26,0x33,0xc2,0x99,0x39,0x4,0x42,0xb5,0x72,0x4c,0x41,0x8b,0x38,0x8a,0x42,0x1e,0xc6,0x99,0xc0,0x76,0x1,0xa6,0x42,0x1f,0x4,0xa1,0x42,0x5e,0x48,0xba,0xc1,0x4,0x69,0xa7,0xc2,0xea,0x91,0x2b,0xc1,0x16,0x41,0x11,0xc2,0x51,0xef,0xf5,0xc2,0x14,0xdb,0x3e,0xc1,0x33,0x63,0xd,0xc2,0x81,0xb3,0xb7,0x42,0x94,0xbf,0xcf,0x42,0x94,0xcc,0x39,0xc1,0x6f,0xe,0xa1,0xc1,0x2a,0xda,0xa5,0xc0,0xf9,0x3b,0x44,0x42,0x48,0x9,0xf1,0x42,0x5a,0xfb,0x4,0xc3,0x17,0x4e,0x92,0xc2,0xfe,0x54,0xeb,0xc1,0xd7,0x73,0x2a,0x42,0x8,0x18,0x42,0x41,0x28,0xd8,0xf1,0x42,0x9,0x5a,0x5f,0x41,0xa8,0xf9,0xf5,0x41,0x4e,0x90,0xc8,0xc2,0x2a,0xff,0xe,0xc2,0xc8,0xd0,0x3b,0xc2,0xb2,0x44,0xf,0x43,0x6,0x58,0x84,0x40,0x6a,0x71,0x80,0x42,0x11,0xb1,0x51,0x42,0xd9,0x13,0x9f,0x41,0xf8,0x97,0x3b,0x42,0x74,0x2b,0xe,0xc3,0x17,0xf0,0xbd,0xc1,0x61,0xb9,0x88,0xc2,0x80,0xf2,0xe2,0x42,0x24,0x71,0x10,0xc2,0xbf,0x26,0x4c,0xc2,0x66,0x56,0x8a,0x42,0x4a,0x24,0xed,0x41,0x49,0x2f,0xe4,0xc1,0xf2,0x40,0x15,0xc3,0xaa,0xeb,0x9f,0x42,0xeb,0x49,0x9d,0xc2,0xd5,0xe2,0x41,0x41,0x25,0xb9,0x3,0xc2,0xa2,0x70,0x14,0xc3,0xa,0x79,0x88,0xc2,0x54,0xe6,0x6,0x43,0x79,0x18,0xec,0x41,0x84,0x2a,0x1b,0x42,0x2c,0x21,0x65,0x42,0xd2,0x31,0xb7,0x42,0xb2,0x8a,0x9f,0xc2,0x9a,0xe9,0xf1,0xc2,0xff,0x31,0xce,0xc1,0x8,0xab,0x94,0xc2,0xa,0x2d,0xbb,0x42,0x45,0x61,0x84,0x42,0x28,0xcb,0x9,0xc2,0xa6,0x85,0xb3,0x41,0x9a,0x31,0xc6,0x42,0xc6,0x8f,0x17,0x41,0x11,0x85,0x81,0x42,0x23,0x1b,0x1b,0x43,0xe6,0xb5,0xf6,0xc0,0x46,0x8e,0x82,0x42,0x6f,0x2b,0x20,0xc3,0x40,0xec,0x21,0xbe,0xeb,0xe9,0xa,0x43,0x11,0xc3,0x73,0xc2,0x7b,0x90,0xc9,0x42,0x3e,0xac,0x4,0x43,0x89,0xcf,0x98,0xc1,0x52,0x86,0x41,0x43,0x2e,0xa9,0xac,0x40,0x4a,0x53,0x81,0x42,0x7a,0xf4,0xe0,0x40,0xe,0xb5,0x85,0xc1,0x44,0xdf,0x35,0x43,0x79,0xe,0x4,0x43,0x28,0x77,0x50,0xc3,0x16,0x8b,0xbe,0xc2,0xf1,0x26,0xf0,0x41,0x3f,0x93,0xfc,0x41,0xdb,0x8b,0x16,0xc1,0xf8,0x1f,0x6c,0xc1,0x7b,0xc5,0xe5,0xc1,0xa6,0xf,0x73,0xc2,0xf6,0xa5,0xec,0xc2,0x1a,0xf4,0x82,0x41,0x4e,0x70,0x9d,0xc2,0xe4,0xa4,0xe2,0xc2,0x43,0x4b,0xd0,0x41,0x76,0x52,0x5e,0x42,0xc,0xd1,0xb0,0x41,0x18,0xbb,0x5f,0x42,0x5f,0x93,0xf4,0x42,0xea,0x62,0x1b,0xc3,0x37,0x5e,0xf2,0xc1,0x8c,0x6a,0x83,0xc2,0xb1,0x69,0x7,0xc3,0xb3,0x31,0x8c,0x42,0x2f,0xdb,0x99,0xc2,0x20,0x50,0x7e,0x41,0x85,0x5c,0x4d,0xc2,0x64,0x28,0x27,0x41,0x8c,0x5b,0xaa,0x42,0x17,0xa4,0xe9,0x42,0x25,0x1f,0x2f,0x43,0x7d,0x6e,0x98,0xc2,0x68,0x9f,0xb8,0xc2,0x5e,0xb7,0x0,0xc3,0x1c,0x8c,0xc8,0xc2,0x88,0x1b,0x8c,0x41,0x46,0x37,0x40,0x42,0x42,0x88,0x3a,0xc2,0x2b,0x62,0xe6,0x42,0xba,0x4,0x6,0x42,0x20,0xea,0xa8,0x40,0xf1,0x57,0xcd,0x41,0x68,0xf4,0x0,0xc3,0x53,0xc3,0x2,0xc3,0x55,0x7,0xe8,0x42,0x6a,0x59,0x69,0x41,0x5e,0x88,0xa0,0x42,0x4a,0x5b,0x8f,0x42,0xc5,0xe3,0xc,0x43,0x1f,0xe8,0xf4,0x42,0x66,0x5e,0x6,0x43,0xbf,0xab,0xb9,0xc2,0xac,0xaf,0xa5,0x43,0xd5,0xf8,0xf,0xc1,0x84,0x93,0x89,0xc1,0xaa,0xe1,0xff,0x41,0xf6,0xb0,0xa7,0xc1,0x90,0x9e,0x66,0xc3,0xdb,0x28,0x14,0xc2,0xdb,0x65,0x25,0x42,0x1f,0x39,0x81,0xc2,0xf7,0xef,0xf9,0x42,0xfa,0x87,0xc4,0x41,0x1d,0xa7,0x3,0x43,0x8c,0x71,0x72,0xc1,0x2d,0xab,0xab,0x41,0x48,0x6f,0x20,0xc3,0xa4,0x82,0x88,0x42,0xda,0xfc,0x3a,0xc2,0x44,0x89,0x8b,0x42,0xea,0xc0,0xc9,0xc0,0x93,0xf3,0x5c,0x42,0xda,0x46,0x82,0x42,0xe8,0xb0,0x8a,0xc2,0xb2,0x1b,0xf6,0xc0,0xd7,0xc4,0x50,0x43,0x9b,0x93,0x1,0x43,0xd1,0xdd,0xef,0xc1,0x63,0x40,0xce,0xc2,0x6,0xd8,0xf9,0xc1,0xf3,0x84,0x86,0x42,0x56,0x69,0xba,0x42,0xc9,0xea,0xdd,0x40,0x24,0xf2,0x9d,0x42,0x8b,0x69,0x16,0xc3,0xbd,0xa0,0x27,0x41,0xbe,0x6e,0x91,0x42,0xc6,0x6b,0xa,0xc3,0xfe,0x53,0xb8,0x42,0xe4,0x97,0x81,0x41,0xcd,0xc5,0x5c,0x42,0x6b,0x70,0x5,0x43,0x30,0xc2,0x25,0x42,0xd3,0xf9,0x26,0x43,0xa8,0xa0,0x82,0x42,0xd8,0x1,0xb4,0xc1,0x6,0x7c,0xb,0x43,0x76,0x6d,0x42,0xc2,0x92,0x58,0x71,0xc3,0x99,0x4a,0xde,0xc0,0x7,0x2,0x18,0x43,0x24,0xb8,0xa,0x42,0xa,0xcd,0xf8,0xc2,0xfd,0x94,0x96,0x42,0x2b,0x42,0xbc,0xc1,0x49,0xf7,0xf1,0xc2,0xc8,0x60,0x19,0xc3,0xb9,0xab,0x47,0x41,0xb7,0x5a,0x75,0xc3,0x6a,0xdc,0xb1,0xc2,0xfc,0xb6,0x6,0xc1,0x4c,0x1c,0x7f,0x43,0xd5,0xe9,0x9,0xc3,0x95,0xb4,0x97,0x42,0x48,0xff,0xa,0x43,0x2b,0x5a,0x29,0xc2,0xa1,0x8b,0xc9,0xc1,0x76,0x0,0x39,0x41,0xc4,0xd3,0x16,0x43,0x9c,0xe7,0x8f,0x40,0x34,0x84,0xc5,0xc2,0xcd,0xee,0x9f,0xc2,0x1a,0x0,0xce,0xc1,0xc2,0x61,0x1e,0x43,0x98,0xf8,0xa4,0x41,0x85,0xa8,0x3e,0xc3,0xb6,0x81,0x88,0xc1,0x3c,0x82,0xf1,0xc1,0x2a,0x8d,0x7c,0x42,0x76,0x99,0xcc,0x41,0xfe,0xc2,0xbb,0xc1,0x18,0x70,0x16,0xc3,0x72,0xc7,0x82,0xc1,0xa7,0x9c,0xee,0xc2,0x3d,0xd,0x38,0x42,0xbe,0x40,0xed,0x42,0x8,0x88,0xe6,0xc2,0x37,0x44,0xaf,0x41,0x4b,0xde,0xc,0x43,0x48,0x44,0x67,0xc2,0x1e,0x8,0x15,0xc3,0x3a,0x82,0xd6,0x41,0x6e,0x1c,0x96,0xc2,0x4f,0xcd,0xcd,0xc1,0x5b,0xe6,0x40,0x42,0xa4,0xa1,0x74,0xc1,0xb,0x4b,0x24,0xc3,0x5d,0x76,0x7b,0xc2,0x1a,0x26,0x63,0x42,0x58,0xd5,0x8,0xc1,0xe9,0xe6,0x36,0x42,0xc1,0xa9,0x1a,0x42,0x5f,0xcf,0xc8,0x42,0x5,0x4,0x4c,0xc2,0x24,0xb1,0x8b,0xc2,0x4b,0xf,0x70,0x42,0x95,0xa0,0xb2,0x42,0x53,0xb9,0x8,0xc2,0x12,0xf3,0x8a,0x42,0xdc,0x21,0xed,0x42,0x56,0x82,0x36,0x42,0x50,0x53,0xc0,0xc2,0x98,0xa0,0x43,0xc1,0xcc,0x47,0x72,0x42,0xc5,0x2,0x5f,0x42,0x89,0x8d,0x4d,0xc2,0x1a,0xb6,0x8c,0xc2,0x0,0xba,0xc7,0xc2,0x26,0x8a,0xb5,0xc1,0x8e,0x15,0x66,0xc3,0x66,0x9,0xa6,0x40,0xcd,0x3,0x99,0xc2,0xe2,0x31,0xf8,0x42,0x56,0x8c,0xbe,0xc2,0xec,0x53,0xb3,0xc2,0xaf,0x9f,0x38,0xc3,0x34,0x56,0xa6,0xc2,0x50,0x82,0xdd,0x42,0xb0,0x15,0x21,0xc3,0xc3,0x94,0x74,0x42,0x6a,0x62,0xd7,0xc0,0x40,0x11,0x3,0xc2,0xe2,0xfa,0x8,0x43,0x4e,0x13,0x3f,0xc2,0xba,0x43,0x14,0xc3,0xea,0x7a,0x98,0xc1,0x49,0xb9,0x27,0x42,0x3a,0x5b,0x7d,0x43,0x9a,0x40,0x5,0x42,0x5c,0xca,0x3d,0x42,0x6b,0x83,0x8b,0x42,0x0,0x6d,0x95,0x42,0xa8,0xc3,0x8f,0xc2,0x9e,0x6a,0x9f,0x41,0x3f,0xc4,0x5e,0x42,0x34,0x46,0x86,0xc1,0x24,0x94,0x39,0xc2,0x24,0x2d,0xb4,0x42,0xc4,0xbe,0x64,0xc1,0x94,0x85,0x8b,0x42,0xd6,0x2e,0x2b,0x43,0x92,0xf2,0x20,0xc2,0xd,0x8c,0x42,0x43,0x97,0xfa,0x23,0x43,0x80,0x57,0xac,0xc1,0x80,0x2c,0xaa,0x40,0x6f,0x7a,0x14,0xc3,0xa2,0xd3,0x99,0x42,0x2,0x37,0x7,0x43,0x4a,0x5,0xb6,0xc1,0x91,0x88,0x93,0xc2,0x44,0x2b,0x5d,0x42,0x55,0xcf,0x8c,0x42,0xb3,0xda,0xd3,0xc2,0xa5,0x57,0x9e,0xc2,0xbc,0x45,0x6e,0xc1,0xc1,0x99,0x9,0x43,0x1,0x96,0xbe,0x42,0x5a,0x6,0x80,0xc3,0x33,0xfa,0xf8,0xc2,0x7e,0xbe,0x75,0x41,0x4f,0xa3,0x2b,0xc2,0xf4,0x98,0x8f,0xc2,0x91,0xd1,0x4b,0x42,0xa0,0x19,0x5,0x40,0x49,0x9e,0xc1,0xc2,0xe5,0x48,0x1d,0xc2,0x1c,0x2f,0x93,0x41,0x8c,0xc1,0xec,0xbf,0x8f,0x7e,0x11,0xc3,0x19,0x4,0xbf,0x42,0x8e,0x41,0x82,0xc3,0xfd,0x49,0x8a,0x42,0xa1,0xf3,0x32,0x42,0xba,0x44,0x8a,0xc2,0x6,0x9a,0x9d,0xc2,0x92,0xed,0x97,0xc0,0x2b,0x74,0x97,0x41,0x7a,0x49,0x61,0x42,0x5c,0xdc,0x87,0x42,0x90,0xcf,0x6,0xc2,0xa5,0x5b,0xd6,0xc2,0x50,0x6d,0x8,0xc3,0x93,0xc8,0x5,0xc2,0xbb,0xc4,0x63,0xc2,0x23,0x54,0x80,0x41,0x2c,0x66,0xbb,0x42,0x3a,0x6e,0x63,0x42,0x0,0x55,0x33,0xc3,0xb4,0x9e,0x11,0x40,0xb3,0x8e,0x1d,0x42,0xe6,0x58,0x95,0xc2,0x79,0x27,0xf0,0xc2,0x3,0xa2,0x7d,0xc1,0xfa,0xb4,0xc0,0x42,0x85,0x66,0x54,0x43,0x82,0x4b,0xa,0xc3,0x88,0x7d,0xea,0x3f,0x55,0xab,0xd5,0xc0,0x7a,0x8,0xc6,0x41,0xa1,0x4c,0xd5,0xc2,0x18,0x82,0xd0,0x41,0x49,0xbb,0xa0,0x42,0x57,0x6,0xe9,0xbf,0xf7,0xe1,0x18,0xc3,0xc6,0x87,0x0,0x43,0x6a,0x99,0xdd,0x42,0x37,0xc2,0x4,0xc3,0xa5,0xa6,0xbd,0x41,0xe4,0x4b,0xc1,0x42,0x2e,0x6b,0xb,0xc3,0x90,0x76,0x16,0xc2,0x92,0xc8,0xc8,0xc2,0x45,0x72,0xb3,0x40,0x4f,0x64,0xa1,0x42,0x93,0x6e,0xa,0xc2,0x5a,0x3f,0x98,0xc1,0x18,0xa9,0x14,0xc3,0x2a,0x3c,0xfe,0xc2,0x9a,0xfb,0x11,0xc3,0x8a,0x26,0xa4,0x42,0x84,0x80,0x61,0xc2,0xe1,0xbf,0x99,0x42,0x79,0xac,0x5,0xc3,0xb3,0x50,0x93,0xc2,0x48,0xd7,0x90,0xc1,0x50,0xff,0xa9,0xc2,0xdf,0xa6,0x19,0xc3,0x50,0x1b,0x6b,0xc1,0xb3,0xb2,0xae,0x42,0xbc,0x85,0x67,0xc2,0x18,0x22,0xf6,0x42,0x27,0x75,0x63,0xc2,0xef,0x64,0xba,0xc2,0xd9,0x95,0xa,0x41,0xeb,0x9f,0x30,0xc2,0xc0,0x3,0x51,0x3f,0xf5,0x2c,0xf,0xc3,0xd6,0xf6,0x6c,0x42,0xd4,0x75,0x17,0x43,0x35,0xab,0x4f,0xc2,0x83,0xb9,0xdb,0xc2,0xc0,0xe8,0xc9,0x42,0x52,0xca,0x66,0x42,0xff,0x45,0x9c,0xc2,0xf4,0x2f,0x83,0x3f,0x4e,0xd1,0x3c,0xc0,0x4d,0xd4,0x82,0x42,0xa5,0x4b,0x81,0x42,0xf2,0xc5,0xa9,0x42,0x5b,0x8f,0x20,0xc1,0xd9,0x61,0x9b,0xc2,0x89,0x47,0x3e,0x42,0x4b,0xda,0x2e,0x42,0xac,0xfb,0xf1,0x41,0x30,0x7b,0xfb,0x42,0x7d,0x74,0x1a,0xc3,0x9c,0x92,0xa5,0xc2,0x92,0xd8,0xbc,0x40,0x36,0x7a,0x95,0xbf,0xca,0x9a,0xc3,0x40,0xd4,0x80,0x7,0xc3,0xaf,0x31,0xda,0x42,0xee,0x2f,0xc8,0x42,0x90,0x9d,0x46,0xc3,0x66,0xe0,0x3b,0xc3,0x25,0x83,0x3e,0x43,0x8d,0x4c,0xe,0xc3,0xbf,0xa1,0x22,0xc3,0xd6,0xc5,0x35,0xc3,0x7d,0x57,0x93,0x42,0x16,0x82,0x97,0x41,0x79,0xd9,0x86,0x42,0xdf,0x2d,0x33,0x43,0x66,0xd2,0x8c,0x42,0x2b,0x7c,0xcd,0xc2,0xa2,0xf6,0xb8,0x41,0xf0,0x1d,0x30,0x42,0xe6,0x40,0x77,0xc2,0xa9,0xc3,0xef,0xc1,0x3b,0x18,0xbb,0xc2,0x8c,0xa1,0x52,0x43,0x11,0x82,0x9b,0x42,0x25,0x12,0xc8,0xc2,0x60,0x87,0x6f,0xc1,0xca,0xdb,0x43,0xc1,0x31,0xd,0xa0,0x42,0x4b,0x17,0x32,0x42,0x91,0xc9,0x28,0xc2,0x9d,0x7a,0x1e,0x43,0xbf,0x67,0x54,0xc2,0xd9,0xba,0xf1,0xc2,0x54,0x2f,0xdf,0xc2,0xe0,0xbd,0xe2,0x42,0x3c,0x42,0x8b,0xc3,0x54,0xaf,0xb7,0xc1,0x13,0x53,0xa3,0xc2,0x91,0xd8,0xa2,0x42,0x88,0x73,0x0,0xc3,0x99,0x25,0xc2,0xc2,0x10,0xc2,0xde,0x42,0x73,0xf3,0x3f,0xc3,0xc1,0xe8,0xab,0x41,0xd9,0x50,0x85,0x43,0x8e,0x7b,0xa1,0x41,0x69,0x7e,0xc,0x42,0x4a,0xbd,0x86,0x42,0xec,0xf7,0x58,0x42,0x4,0x72,0xd0,0xc0,0xda,0x56,0x16,0xc2,0x30,0x52,0x9c,0x40,0xf2,0xbb,0x9d,0xc3,0x14,0x3b,0xbb,0xbe,0xfa,0x9,0x55,0xc2,0xa,0x1d,0xa2,0xc2,0x3f,0xd2,0x84,0x42,0x9d,0x33,0xf5,0xc2,0x82,0xb3,0x23,0x42,0x92,0x2f,0xb6,0x41,0xc6,0xa5,0xf1,0xc2,0x40,0x38,0x9d,0x42,0x5c,0x9e,0x20,0x43,0x35,0xd2,0x8a,0xc3,0x3a,0xf1,0x90,0x41,0x81,0x1c,0x8f,0x42,0x26,0xe3,0x1c,0xc2,0x74,0xcb,0x5b,0x41,0xc9,0xe6,0x47,0xc2,0xe0,0xfa,0x3e,0xc2,0x8c,0xed,0x26,0xc2,0x16,0x22,0xa0,0xc2,0xf0,0x7f,0x61,0x42,0x64,0x8a,0xd7,0x42,0xb1,0x72,0x92,0xc2,0x48,0x2,0x23,0x40,0xa8,0x29,0xed,0x42,0x87,0x86,0x87,0x42,0x44,0xe5,0xa6,0xc2,0x2,0x93,0x1d,0x43,0xc7,0x1c,0xda,0x40,0x8,0xa6,0x47,0xc2,0x67,0xaa,0x4b,0xc3,0x6c,0x3e,0x2a,0x41,0x5b,0x8c,0xe1,0x42,0xfa,0xaa,0xe2,0xc1,0x5a,0xc0,0x4f,0xc3,0x97,0xd5,0x84,0xc2,0x46,0x73,0xce,0xc1,0xcc,0xef,0xe1,0x42,0x65,0x59,0xa3,0xc2,0xc6,0x43,0x57,0x43,0x4,0xd2,0x59,0xc2,0xd1,0x72,0x6,0x43,0xcb,0x9e,0x63,0xc0,0x61,0xd3,0xc1,0xc2,0x30,0xee,0x24,0xc2,0x60,0xb,0xe5,0xbd,0x5a,0x8,0xaa,0xc2,0x9b,0x21,0x8e,0xc2,0x92,0xd7,0x1a,0xc3,0xa7,0xb2,0x24,0x43,0x11,0x46,0xdc,0x42,0x8d,0x9e,0xdd,0x41,0x10,0x90,0x95,0x42,0x83,0x1f,0x85,0xc2,0x1f,0x9b,0x15,0x43,0x1d,0xd0,0x7,0xc2,0xa2,0xfd,0xcf,0x42,0x4d,0x6f,0x81,0x41,0x40,0x51,0x0,0x43,0x4b,0x2e,0x1f,0xc1,0x7f,0xf5,0x4b,0xc2,0x76,0x63,0x1c,0xc2,0x29,0x24,0xe3,0x3f,0x61,0x8e,0x81,0x43,0x4c,0xf,0x13,0x43,0x96,0x5b,0xff,0x40,0x48,0x81,0x3b,0xc2,0x63,0x1d,0x8c,0x42,0x31,0x23,0x1b,0xc3,0xd0,0xe4,0x72,0xc1,0xad,0xd2,0x65,0xc2,0xcc,0x44,0x96,0xc2,0x7c,0x41,0xa8,0x41,0x84,0xf5,0xe3,0xc2,0x9a,0x89,0xb6,0xc2,0xa9,0x10,0x9f,0xc1,0x95,0x62,0xa6,0xc2,0xf4,0x5f,0x3,0x42,0xb5,0xe7,0x45,0x43,0xa3,0x96,0xdb,0xc0,0x82,0x83,0xa5,0x42,0x11,0x7c,0xc8,0x42,0xda,0xa0,0xb0,0x41,0x10,0xe,0x40,0xc2,0xfe,0x92,0x2,0x43,0xdb,0x65,0x5b,0x42,0x72,0x4c,0xa9,0xc1,0x8,0xc9,0xd9,0x42,0x68,0xc2,0xdd,0x42,0x22,0x69,0xd0,0xc1,0x86,0xaf,0x54,0x41,0xfd,0xa2,0x9,0x43,0x1d,0xa4,0x1b,0xc2,0x56,0xff,0x8,0x42,0xf7,0xe6,0x8b,0xc2,0xb0,0x30,0x78,0x42,0xce,0x59,0x84,0xc2,0x0,0x87,0x85,0xc2,0x5e,0xc9,0xbc,0xc2,0x74,0x40,0x59,0x41,0x5f,0x71,0xca,0xc2,0x64,0x3e,0x97,0x42,0x2d,0xda,0x2,0xc3,0xef,0x84,0xb3,0xc1,0xd6,0x4c,0xb0,0x42,0xa,0xa6,0x98,0x42,0xf0,0x76,0x62,0xc2,0xa5,0x36,0xfb,0xc1,0xf0,0xe1,0x5f,0xc2,0xc0,0xab,0xd3,0x42,0xe7,0xc4,0xea,0xc2,0xe5,0x6f,0xb7,0xc2,0x96,0x29,0xbd,0xc1,0xf4,0xbe,0x33,0x41,0xf0,0x6b,0x43,0x42,0xec,0x1f,0x14,0xc3,0x65,0xdc,0xd0,0x42,0xb7,0x18,0xf0,0xc2,0x5a,0x6a,0x29,0xc3,0x7e,0xb9,0x69,0x42,0x34,0x4f,0xdf,0xc2,0x2f,0xa5,0x37,0x40,0x72,0xee,0xe4,0x42,0x43,0x37,0xe4,0x42,0xdd,0x87,0xc3,0xc2,0xa8,0xf6,0x9a,0xc0,0x12,0xeb,0x33,0x43,0xb1,0x20,0xa5,0xc1,0x75,0x43,0x5b,0x42,0xda,0x19,0x18,0x43,0x7e,0x23,0x58,0x43,0xa4,0xa4,0x20,0xc3,0x8c,0x93,0xd6,0xc1,0xb0,0x17,0x30,0x42,0x7e,0x1,0x89,0xc2,0xbb,0x1b,0xdb,0xc2,0x7a,0xe0,0x83,0x42,0x97,0x84,0x2c,0x42,0xd9,0x7c,0x84,0x42,0x5c,0x44,0x52,0x42,0x9c,0x46,0x81,0xc0,0x65,0xa3,0x1a,0x43,0xe1,0xc3,0x28,0xc3,0xc4,0xef,0x52,0x42,0x10,0xdc,0xb8,0x41,0xa6,0x30,0x2a,0xc2,0x46,0x97,0x15,0x43,0x50,0x51,0x11,0xc3,0x58,0xf7,0xc3,0xc2,0x32,0x5f,0xf9,0x41,0x83,0x57,0x10,0xc2,0xb5,0x16,0x7d,0xc2,0x3e,0x96,0xdf,0x42,0x9c,0x61,0xc7,0xc2,0x26,0xaa,0x49,0x42,0xd1,0x1e,0x76,0xc2,0x14,0xd9,0x56,0xc3,0xdd,0x95,0x14,0x41,0xb6,0xee,0xfe,0x41,0xe7,0x36,0xc4,0xc2,0x43,0x49,0xc8,0x42,0x3d,0xa,0x9,0x43,0x3a,0x67,0xe7,0xc2,0x2d,0x8b,0x1,0xc3,0xd1,0xbc,0xce,0x41,0x7e,0xa3,0x8a,0xc2,0xf2,0xef,0x4,0xc1,0x84,0x26,0x9a,0x42,0x40,0xed,0x81,0x41,0x40,0xb4,0x9d,0xc2,0x79,0x41,0x2f,0x42,0xaf,0xbc,0xc5,0x42,0x9,0x9,0x6c,0xc2,0x57,0xc5,0x81,0x42,0xc5,0xd8,0x51,0xc2,0x40,0x3e,0xe2,0x41,0x4b,0xe,0x1a,0xc2,0x58,0xa7,0xb8,0xc2,0x9b,0xff,0xe9,0x41,0x69,0x93,0x5a,0x42,0xeb,0xbf,0x7c,0xc2,0x76,0xd5,0x81,0xc2,0xe6,0x75,0x50,0x42,0xc5,0xc7,0xf,0xc2,0x14,0x2e,0x2f,0xc1,0xdc,0xbb,0xfb,0x42,0x10,0x39,0x13,0x42,0x8e,0x71,0xaf,0xc1,0x28,0x37,0x87,0x42,0xa8,0xe2,0x9e,0x42,0x59,0x87,0x31,0xc2,0x49,0x65,0x42,0xc2,0xde,0x6e,0x1d,0x40,0x79,0xf0,0x2c,0x43,0x1e,0x1d,0x7,0xc2,0x15,0xc2,0xaa,0xc2,0xb,0x2e,0x84,0x42,0xa6,0x9e,0xf3,0xc2,0xef,0xff,0x85,0x42,0x7f,0x51,0xfa,0xc2,0xf0,0x2b,0x3,0x43,0xa6,0xb2,0x92,0x41,0xc6,0xb3,0xd7,0xc1,0xbf,0x6c,0x64,0x41,0x5f,0x69,0x71,0xc1,0xac,0xf9,0xdb,0xc0,0x47,0xcf,0x8c,0xc2,0x1b,0x23,0xda,0xc0,0x96,0x39,0x8a,0xc2,0xce,0x2,0x25,0xc2,0x3a,0x3f,0x70,0x42,0x10,0x9e,0x17,0x40,0x2c,0x65,0x33,0xc1,0xfb,0x9d,0xa1,0xc1,0x4c,0xab,0x8,0xc2,0xc0,0x69,0x5,0x43,0xee,0xe2,0xf3,0x41,0xa5,0xa4,0x86,0xc0,0xcc,0x7f,0xd3,0xc1,0x1d,0xe4,0x66,0x41,0x9f,0x32,0x5,0xc1,0xcf,0x1a,0xeb,0xc1,0xd0,0x52,0xa7,0x41,0x57,0x81,0x29,0x42,0x24,0x3,0x9f,0xc1,0x13,0x74,0xaf,0x42,0x1f,0x4a,0x1,0x43,0xc3,0x16,0x73,0xc2,0x6a,0x5a,0xc5,0xc2,0x9d,0x98,0xe4,0xbf,0x99,0x43,0xc7,0xc2,0x53,0x5,0x6f,0xc2,0xca,0xc,0x55,0x40,0xe9,0x86,0x9,0x40,0x9e,0xce,0x77,0xc1,0x61,0x8a,0x74,0xc1,0xec,0xe,0x8c,0x41,0x9c,0x8c,0xf8,0x42,0x69,0x56,0x4d,0xc2,0xc5,0xf8,0xed,0x42,0x20,0xcf,0xa0,0x42,0xb2,0x88,0x1c,0x41,0x65,0x5,0x8f,0x41,0x24,0xe1,0xc,0xc2,0xae,0xe4,0xca,0x41,0x9e,0xab,0xc9,0x41,0xc4,0x81,0x95,0x42,0x86,0x67,0x5c,0xc0,0x65,0x66,0xa5,0x42,0x28,0xfd,0xf,0x3f,0xca,0x81,0x7,0xc1,0x9a,0xb7,0xf2,0x41,0x9,0xdd,0xee,0x40,0x9c,0x47,0xac,0xc0,0x32,0xbb,0x6d,0xc1,0x3,0xeb,0xa5,0xc2,0x91,0xa1,0x3b,0x42,0x24,0x47,0x94,0x42,0xf0,0x6c,0x18,0xc1,0x63,0x34,0xda,0xc1,0xcf,0x1d,0xa,0x42,0x9,0xef,0x26,0xc1,0x55,0x1e,0x9,0x42,0xd1,0xb7,0x9b,0xc2,0xd6,0xb4,0x79,0x41,0xb0,0x13,0x53,0x41,0x3f,0xb0,0x1e,0x42,0x6b,0x47,0x8d,0x42,0xc6,0xe9,0x4b,0xc0,0xaa,0xbb,0x81,0x3f,0x99,0xe5,0xc8,0x42,0x52,0x3c,0x1b,0xc1,0x6e,0x32,0x43,0x41,0xb8,0xef,0xbd,0x41,0x0,0x55,0x62,0x42,0x6b,0x7e,0xef,0x41,0xf0,0x9d,0x93,0x42,0x9e,0x14,0x92,0x42,0x16,0xc8,0xb5,0xc1,0x12,0xea,0x64,0xc1,0xc4,0x46,0x3b,0xc2,0xa7,0xcd,0x19,0xc1,0x56,0x11,0xfd,0xc2,0x7f,0x89,0xe,0xc3,0xb0,0x88,0xb9,0x41,0x42,0xcf,0x77,0xc2,0x82,0xe7,0xae,0x42,0xb,0x97,0xa7,0x42,0x1e,0x82,0xcd,0x42,0x9,0x5,0xa2,0x42,0x2a,0x1d,0xec,0xc2,0x1e,0x52,0x2f,0xc3,0xc1,0x53,0x8a,0xc1,0x8a,0x26,0x71,0xc2,0x69,0xd9,0x23,0xc3,0xc9,0x1e,0x88,0xc2,0x57,0x8b,0x48,0xc2,0x5b,0x15,0x6a,0x42,0xa5,0x14,0x9a,0x42,0xb8,0x4b,0xa6,0x40,0x1c,0xba,0x86,0xc2,0xa3,0xc5,0x53,0x42,0xc3,0xed,0x23,0x40,0x96,0x19,0xc5,0x42,0x21,0xd9,0x4d,0x42,0x96,0xe3,0x5c,0x42,0x7d,0x73,0x5,0x42,0x96,0xf5,0xf3,0xc0,0xf3,0xc6,0xa6,0xc2,0x1c,0x65,0x31,0xc2,0x77,0xce,0x9c,0xc2,0x52,0x89,0xd9,0x42,0xa8,0x16,0xcf,0x42,0x8e,0x87,0x5e,0xc2,0xea,0x1c,0x63,0x41,0xdc,0x92,0xfd,0xc1,0xcf,0x4b,0x3f,0x41,0xf7,0xdf,0x9d,0xc2,0xc1,0xf8,0x90,0x40,0x91,0x52,0xc6,0x42,0xf3,0x96,0x8e,0xc3,0x44,0x19,0xc5,0x40,0x87,0x35,0xcf,0x42,0x8c,0x1a,0x8,0xc3,0xe8,0x31,0xe0,0x40,0x61,0xbd,0xda,0x42,0x99,0x2d,0xc7,0xc2,0x87,0xea,0x86,0xc2,0x3a,0x1b,0x31,0x43,0x11,0x51,0x10,0xc3,0x9a,0x20,0xfc,0x41,0x76,0x2f,0x19,0x3f,0x7c,0x5a,0xf0,0xc2,0x21,0xf8,0x8e,0xc2,0xbe,0xa9,0x9b,0xc2,0xbb,0x7a,0xe5,0xc1,0xde,0xee,0xc8,0xc2,0xa6,0x37,0xca,0xc2,0xe,0x52,0xe9,0x42,0xf7,0x9e,0x8,0xc2,0xc8,0x26,0xf3,0x42,0x38,0x2e,0x10,0x41,0x89,0xf5,0x78,0x41,0x51,0x84,0x9,0x42,0x95,0x29,0xdf,0x42,0x78,0xaf,0xc9,0xc2,0xd3,0xbc,0x5,0x43,0x74,0x9d,0x2d,0xc2,0x84,0xe2,0xe9,0xc1,0x62,0xd5,0x3c,0xbf,0x61,0x6c,0x95,0x42,0x49,0x17,0x6c,0x42,0x4b,0x49,0x84,0x42,0xa9,0x27,0x26,0x43,0x16,0xc5,0x21,0xc3,0x30,0x9b,0x5e,0x40,0x76,0x9,0xfd,0xc1,0x26,0xd4,0x74,0x43,0x5b,0x71,0x94,0xc2,0x11,0x33,0xe2,0xc2,0xb4,0x33,0x35,0x42,0xb6,0xb3,0xd5,0xc1,0x46,0x1b,0xa5,0x41,0x68,0xe5,0xe8,0xc1,0xe9,0x40,0x0,0x42,0x9d,0x5a,0x9c,0x42,0xf8,0xf9,0x63,0xc2,0x2a,0xc9,0x3e,0xc1,0xd9,0xd0,0x97,0xc2,0x5e,0x89,0x5,0xc3,0x33,0x38,0xda,0x42,0x3,0x68,0x7e,0x42,0x9a,0xce,0xc2,0xc1,0x93,0x4a,0xea,0x42,0x26,0x2a,0xca,0xc1,0x7f,0x15,0x32,0x41,0xc4,0xcc,0xb5,0x42,0x2c,0x77,0x19,0xc2,0x86,0xf0,0x7f,0xc2,0x26,0xa9,0x46,0x41,0x3c,0xd9,0x12,0xc2,0x7b,0xf4,0xdd,0x42,0xf0,0x87,0x68,0x41,0xc4,0xc7,0x37,0xc2,0xcc,0x8d,0xe9,0xc2,0x7a,0x51,0xbd,0xc1,0xb9,0xee,0x63,0xc1,0xd3,0x7f,0x10,0x43,0x3d,0x27,0x28,0x43,0xe1,0x87,0x62,0xc1,0xd2,0x85,0x7,0xc2,0xa2,0x89,0x82,0xc2,0xe0,0xdc,0x40,0xc0,0x36,0x93,0x34,0x42,0x18,0xb6,0xc0,0x42,0xad,0x9c,0xbc,0xc2,0x56,0x12,0x4e,0xc2,0xf5,0x4a,0x35,0x43,0x6b,0x62,0xbf,0x41,0xe7,0xb8,0xb3,0x42,0xb3,0x93,0x39,0xc3,0xdd,0xb4,0x5d,0x42,0xee,0x6,0x13,0xc2,0x52,0xe2,0x3b,0x42,0xe4,0x91,0xa1,0x42,0xf1,0xe3,0x2f,0xc2,0x8e,0x2f,0xde,0xc2,0xdd,0x28,0x71,0xc2,0x96,0x98,0xf9,0xc2,0xfa,0x65,0x19,0x43,0x79,0x30,0x32,0x43,0x5e,0xe5,0x9e,0x42,0xe7,0xa,0x54,0xc2,0x63,0x49,0x17,0xc3,0x9b,0x16,0xe7,0x41,0x94,0xe6,0x80,0xc2,0xa9,0xe1,0xf9,0xc1,0x36,0x2d,0x4c,0x43,0x71,0xb6,0x2b,0x43,0x46,0x1e,0x82,0xc2,0x7c,0x4f,0x4a,0xc2,0x38,0x15,0x9f,0xc2,0x28,0x64,0x89,0x40,0xc7,0xf0,0x12,0xc2,0x20,0xd2,0xc,0xc3,0x1e,0x72,0x33,0x40,0xc8,0xa4,0x7c,0xc2,0x7c,0x2d,0x19,0xc2,0x2d,0x89,0x4f,0x41,0x96,0xe1,0x43,0xc2,0xae,0x8c,0xd1,0x42,0x4c,0x97,0xbb,0x41,0xba,0x81,0x35,0xc2,0x1e,0xb3,0xe0,0xc2,0x70,0xb0,0x92,0xc0,0x1f,0x99,0x85,0x42,0x92,0x38,0xfc,0xc2,0x4b,0x7,0x63,0xc2,0x62,0x32,0xb8,0xc2,0x48,0xb2,0x6e,0xc3,0x9,0xc6,0x37,0x43,0x20,0x8d,0x2e,0x43,0x1f,0xb8,0x3e,0xc2,0x55,0x9f,0x43,0xc1,0x99,0x5c,0xee,0xc2,0xb7,0x36,0x88,0x42,0xd6,0xb2,0xb4,0x41,0x52,0xf0,0x4e,0x41,0x19,0xe4,0x4d,0x41,0xc1,0xda,0x3e,0x42,0xda,0x37,0x23,0x41,0x42,0x25,0xbe,0xc2,0x2d,0xfb,0x9a,0xc2,0xe1,0x81,0x17,0xc2,0xc3,0xf5,0xad,0x41,0x18,0x9d,0x5,0xbf,0x8f,0x96,0xf9,0x42,0x2,0x2f,0x8c,0xc0,0xb9,0xe7,0xa1,0xc2,0x1f,0x5a,0x3b,0x42,0x3a,0x63,0x64,0xc2,0x1c,0x2d,0x18,0x43,0x16,0xf2,0xa8,0xc2,0x90,0xd3,0x8c,0xc1,0x24,0x7,0x1f,0xc3,0x90,0x63,0x9b,0xc1,0x81,0x4d,0x4d,0xc2,0xa2,0x28,0xfe,0xc1,0x9a,0xf3,0x53,0x41,0x7d,0x18,0x1c,0x43,0x13,0x25,0x30,0xc3,0x21,0x9f,0x93,0x42,0x7f,0xe8,0x1,0xc3,0xa0,0x6e,0xc0,0xbf,0x10,0x62,0x91,0xc1,0x5,0xc3,0x2d,0xc1,0xb3,0xb0,0x40,0xc2,0x76,0xae,0x2e,0xc1,0x8c,0xef,0x27,0x42,0xd2,0xe2,0xc,0xc2,0x53,0xe0,0x83,0xc2,0xb7,0xa6,0x3f,0xc3,0xf,0x9b,0x23,0xc3,0x98,0x39,0xe,0x43,0x28,0x4a,0xbc,0xc2,0x20,0xfa,0xd3,0x42,0x9e,0x57,0x28,0xc0,0xd9,0x1f,0x4f,0x42,0xfe,0x18,0x6f,0xc3,0x34,0xe1,0xc4,0xc2,0xbd,0x37,0xdf,0x42,0xc8,0xe7,0x38,0xc3,0xa9,0xe,0x96,0xc2,0x72,0x48,0xcc,0xc1,0xab,0xc1,0x4b,0xc2,0xde,0x10,0xc8,0xc1,0xc4,0x4,0x45,0x42,0xee,0x59,0xab,0xc2,0x17,0xf1,0x38,0xc2,0x7d,0xb1,0x10,0x43,0xf9,0x79,0x8a,0xc1,0x80,0x9a,0x9,0xc1,0xbe,0xdb,0x2e,0x43,0x46,0x24,0xd6,0xc2,0xd9,0x9c,0xa,0xc2,0xd5,0x4d,0xc9,0x42,0xb8,0x1,0x95,0x42,0x52,0xd7,0x9a,0x42,0xd4,0x43,0x13,0xc2,0x9a,0xf5,0x9b,0x42,0xa4,0x4a,0x99,0xc1,0x4d,0x89,0x2a,0x43,0xe8,0x91,0x8e,0x42,0x9c,0xd4,0x5,0x42,0x9e,0x68,0xd9,0xc2,0x34,0xdc,0xd0,0xc0,0xd6,0xdb,0x9a,0x40,0xab,0xba,0x91,0xc2,0xa7,0x3c,0x7b,0x41,0x32,0x4a,0x1a,0xc2,0x21,0x5a,0xb9,0xc2,0xe2,0xb0,0x89,0xc2,0x68,0xf,0x2c,0xc2,0x89,0x72,0x17,0xc2,0x8d,0x2b,0x80,0xc2,0xbd,0x2,0xf,0xc2,0x8e,0x34,0xf2,0x41,0xd4,0xe9,0x8d,0x42,0xfd,0xef,0x28,0xc2,0xfb,0x3f,0x3f,0xc2,0x41,0xb4,0xe2,0xc2,0xcf,0xb,0x55,0x42,0x84,0xfd,0x8f,0xc1,0x60,0xa2,0xfa,0x42,0x5f,0x2e,0xf,0x42,0x77,0x2b,0x80,0xc2,0x2f,0xbe,0x7b,0xc2,0xb2,0xf9,0x8d,0xc2,0xe4,0x20,0x93,0xc2,0x90,0x34,0x22,0xc2,0xaa,0x14,0x4a,0xc2,0x14,0x1a,0xa9,0x42,0x59,0x34,0xd,0x43,0x3,0xc3,0x7f,0xc1,0x68,0x2d,0x84,0x42,0x57,0x8d,0xa6,0xc2,0x6,0xd,0x4c,0xc2,0xfc,0xd6,0xd2,0x41,0x6,0xe5,0x19,0xc1,0x95,0xe7,0x10,0xc3,0x70,0xe2,0x47,0xc2,0xd5,0x7a,0xff,0x41,0x9d,0x6b,0xc2,0xc2,0x57,0x25,0x69,0x41,0xea,0x56,0x9a,0x42,0x7d,0xcb,0xa0,0x41,0x7a,0xf1,0xce,0xc2,0xcb,0x81,0x90,0xc2,0xa0,0x46,0x46,0xc2,0x24,0xfe,0xc7,0x42,0x22,0xf8,0x84,0x42,0x5,0x2b,0xeb,0x41,0xf0,0xce,0x87,0xbe,0x91,0x6b,0x73,0xc2,0xca,0xa2,0x61,0xc1,0x3b,0xbd,0xe,0x43,0xd0,0x48,0xe7,0x42,0xd0,0x9a,0x85,0x42,0x2d,0x7e,0x73,0xc2,0xe8,0xff,0xa4,0xc2,0xf0,0xfb,0x47,0xc1,0xb4,0x2e,0x72,0x42,0xe,0x45,0x1,0x42,0x18,0xd0,0x2d,0x41,0x69,0xe7,0x1f,0xc2,0xa,0x60,0x4e,0xc2,0x62,0x7b,0x16,0xc3,0xa8,0x8c,0xb,0x42,0x6e,0x7a,0x21,0x43,0xa0,0x6f,0x9b,0x42,0x84,0x27,0x42,0xc2,0xf,0xba,0x53,0xc2,0x6a,0x48,0x9c,0x41,0x48,0xdf,0xf7,0xc1,0x96,0x45,0x5f,0x42,0x39,0x3a,0xa,0xc2,0x2,0xa5,0xc3,0x41,0xfd,0xab,0x24,0xc2,0xde,0x96,0xd,0xc3,0x91,0x9a,0xa8,0xc2,0x51,0xf8,0x6a,0x42,0x88,0x8b,0x5f,0xc1,0xf9,0x94,0xac,0xc0,0xca,0x66,0x8e,0xc0,0x79,0x18,0x95,0x42,0x73,0xca,0xaa,0x42,0xd3,0x2c,0x9a,0xc2,0x9,0xb6,0x1c,0xc2,0xdb,0x1,0xc1,0xc1,0xe3,0xa1,0x86,0xc2,0x34,0x10,0x1,0x42,0x39,0xf2,0xbb,0xc2,0x7b,0x8e,0xcd,0xc2,0xf3,0x35,0x33,0xc3,0xcf,0x7,0x18,0xc2,0xc3,0xd1,0xc,0x43,0x31,0x9f,0x63,0xc2,0x90,0x3,0x11,0xc3,0x3a,0xb4,0x34,0xc2,0x6d,0x87,0xad,0x42,0x2c,0x40,0xf8,0xc1,0xb1,0x6,0xa1,0xc2,0x44,0xd8,0x56,0x42,0xc5,0x58,0x1a,0x43,0xe4,0x8f,0xf3,0xc1,0x54,0xa4,0x8,0x43,0x8e,0x2e,0xb5,0xc1,0x14,0xc5,0xfa,0x42,0x32,0x5a,0x8,0xc3,0x29,0x5f,0x80,0x42,0x11,0xac,0x69,0x42,0x25,0x8,0xfc,0x42,0x6d,0x57,0xd5,0x41,0xa,0xed,0xb1,0xc2,0xd4,0x5c,0xe7,0x41,0x87,0x66,0xc0,0xc1,0x8d,0x89,0x32,0x42,0x8,0x54,0x5b,0xc2,0x9a,0x81,0xb,0xc1,0x1c,0x1e,0x1d,0xc2,0x6e,0x6e,0x13,0x42,0xd8,0xa2,0x53,0xc2,0xb8,0x8,0x31,0x43,0x54,0x41,0xa6,0x42,0xa6,0x74,0x73,0xc2,0x52,0x3c,0x91,0xc2,0x65,0x39,0x21,0x43,0x5d,0x15,0x5a,0xc2,0xa0,0xc5,0x98,0x42,0xc7,0xa7,0x8e,0xc2,0xcd,0x73,0xcb,0xc2,0x7,0x3c,0x2b,0xc3,0xf6,0xcc,0xa3,0xc0,0xdc,0x4e,0x6c,0x42,0x28,0xff,0xeb,0x3e,0xa1,0x88,0xab,0xc2,0xac,0x6c,0x2e,0xc1,0xbf,0x5a,0xbc,0x42,0x2b,0xd2,0xe5,0x42,0x20,0x8e,0xf7,0xc0,0x5,0xa6,0xea,0x42,0x52,0x0,0xce,0xc1,0x37,0x28,0x81,0x42,0x7a,0xbd,0xbe,0x42,0x5d,0xdd,0xb7,0xc2,0x49,0x5d,0x1d,0x43,0x4d,0xb5,0x44,0xc2,0xa0,0x91,0xe7,0x42,0x80,0x9a,0xcb,0xc2,0xa0,0x2d,0xa2,0x40,0x5,0x1b,0xb1,0x41,0xd5,0x49,0x83,0x42,0x3f,0x23,0x77,0xc2,0x79,0x78,0xd8,0x42,0x43,0x22,0xbb,0x42,0x97,0xaa,0xf,0x43,0x18,0xe,0xc2,0x42,0x25,0xf9,0x71,0xc2,0x56,0xdf,0x27,0xc2,0x4f,0x1f,0xa6,0xc2,0xa1,0x94,0xa,0x43,0xb3,0x47,0x80,0xc2,0xc0,0x8f,0x6a,0xc1,0x3a,0x4,0x9a,0xc2,0x4c,0xe7,0xbb,0x42,0xbf,0x52,0x47,0xc0,0x89,0x3d,0x9f,0x41,0xf8,0x22,0x47,0xc1,0x26,0x9,0xde,0xc2,0xe0,0xa,0x17,0x41,0xb3,0x2e,0x9d,0xc1,0xd0,0x3c,0xf3,0x41,0x72,0x4d,0x70,0x42,0xb7,0xb,0xf6,0x42,0xf8,0x60,0x1c,0x42,0xaa,0x1f,0xf7,0x42,0x96,0x81,0x8b,0x42,0xb9,0x3e,0xc,0x40,0xed,0xf6,0x33,0xc2,0x89,0xe1,0x81,0xc2,0x43,0x85,0xca,0xc2,0x3c,0x6f,0xcc,0xc1,0x81,0x12,0xca,0x42,0x2d,0x3a,0x7a,0xc2,0xd7,0xcf,0xd4,0x42,0xff,0xfb,0x8a,0xc2,0xfa,0x19,0xb3,0xc1,0x83,0xa0,0xc9,0x42,0xbe,0xef,0x6f,0x42,0xa1,0x63,0xfc,0xc2,0xd5,0xf5,0x7e,0x42,0x70,0x49,0x11,0x42,0x84,0x6a,0xcf,0x41,0x72,0x49,0x78,0xc2,0x5c,0x83,0x10,0x41,0x7b,0x5f,0xc6,0x42,0xd5,0x6f,0xd4,0x42,0xef,0x3b,0xc,0xc2,0x91,0x4,0x2e,0xc1,0x1f,0xe3,0xc0,0x42,0xa0,0x94,0x7b,0xc2,0x1,0x1f,0xac,0xc2,0xb2,0x19,0xe6,0x42,0x1d,0x30,0xee,0xbf,0x50,0xc6,0xe,0x42,0x9e,0x6a,0xf0,0x41,0x90,0xae,0x58,0xc1,0x45,0x84,0x30,0xc1,0x47,0x49,0x30,0x43,0x80,0x47,0x36,0x41,0x7f,0xc5,0xdc,0xc1,0xba,0xca,0xb,0xc3,0x90,0x57,0x92,0x42,0xe6,0xa5,0x77,0x40,0x6,0x9e,0x8c,0x42,0x3b,0x48,0x48,0x42,0xcc,0xee,0x6d,0xc2,0xac,0x8a,0x8b,0x42,0xfc,0x1f,0xfe,0x42,0x73,0x1f,0xf8,0x41,0x22,0xe2,0xb2,0xc2,0xb,0x9c,0x91,0x42,0x8,0xef,0x49,0xbf,0x11,0x4f,0xe0,0x40,0x8,0x5a,0xd5,0xc1,0x5f,0x2d,0x1e,0x41,0x8c,0x7f,0x4,0xc2,0xb0,0xe,0xac,0x42,0xeb,0x4c,0x81,0xc3,0x51,0x54,0x84,0xc2,0x5a,0xb8,0x23,0x41,0x26,0x99,0xaa,0xc1,0xb5,0xb5,0x86,0xc2,0x59,0x3b,0xe1,0xc2,0xa3,0x45,0xa2,0x42,0x72,0xe9,0x4a,0xc3,0xcc,0x30,0x82,0xc2,0xea,0x92,0xcd,0xc1,0xa4,0xdd,0xa1,0x41,0x10,0x9c,0xb6,0xc1,0xf8,0x60,0x9d,0x42,0x24,0x63,0x26,0xc0,0xa4,0xc3,0x3d,0x41,0x2a,0xec,0x14,0x42,0x9b,0xbf,0x17,0xc1,0x91,0x5b,0x1c,0xc2,0xb0,0xce,0x28,0xc2,0x49,0xa3,0xbb,0xc2,0x73,0xb4,0xb0,0x41,0xb0,0x12,0x6b,0xc2,0xe6,0x7c,0xec,0x42,0x4a,0xac,0x81,0x42,0x4c,0x34,0xf,0xc3,0x89,0xcc,0x8d,0xc2,0x20,0x47,0x96,0x42,0x27,0x2c,0x44,0xc3,0x12,0xc2,0xa2,0x42,0x2f,0x4,0x7,0xc1,0xf0,0xa0,0x52,0x40,0x74,0x45,0x8d,0xc1,0xfc,0x98,0x26,0xc2,0x59,0xea,0xda,0x40,0xd8,0xa1,0x1b,0x43,0xa0,0xf5,0xb8,0xc2,0xbd,0x5d,0x8c,0x42,0x1,0x82,0x82,0x42,0x3d,0x23,0xfa,0x42,0x65,0x33,0xef,0x42,0xe3,0x57,0xc5,0x42,0x21,0xa5,0xca,0xc2,0x18,0x6c,0xf,0x42,0x46,0x9c,0xbf,0xbf,0x31,0x80,0xae,0x42,0x9d,0xa6,0x70,0x42,0x54,0xff,0x3,0xc1,0x9c,0x41,0x8a,0xc2,0x1f,0x24,0x93,0x41,0xb5,0xcf,0xc6,0xc1,0xf9,0x80,0xe4,0x41,0xf4,0x78,0xec,0xc2,0x97,0x3e,0x85,0xc1,0xfd,0x4f,0x20,0xc3,0x5f,0x82,0xd2,0x41,0xc8,0xf,0xaa,0xc1,0xc9,0x32,0x11,0x43,0x9d,0xe7,0x78,0xc2,0x40,0xb8,0x5,0x41,0xc,0x87,0xc8,0x42,0xb3,0x4d,0xe,0x42,0x5a,0xa9,0xa8,0x42,0x79,0x66,0xb9,0x42,0x5c,0xdb,0x14,0x43,0x20,0x83,0x42,0x41,0x3,0x4d,0x57,0x41,0x5b,0x20,0xc6,0xc2,0x30,0x7,0x5f,0xc0,0xd,0xb5,0xb7,0xc2,0xf5,0xbf,0x1e,0xc2,0x53,0x28,0xab,0x42,0xea,0xfc,0x5b,0x42,0xbf,0xc6,0xc6,0xbf,0x83,0x0,0x2e,0x42,0xd2,0x39,0x47,0x42,0xc9,0xfe,0x20,0x42,0x43,0x0,0xb5,0x42,0x22,0x17,0x3f,0xc1,0x1a,0x80,0xe9,0x40,0xbd,0x2f,0x86,0x42,0x69,0x98,0xc2,0x42,0x3d,0x89,0x43,0x43,0xe9,0xe9,0x3,0xc3,0x2c,0xa5,0x97,0xc2,0x80,0xda,0x71,0xc2,0x34,0xf6,0x5f,0xc3,0x58,0x4b,0x90,0x42,0xce,0xaa,0x1e,0x42,0x19,0x58,0x42,0xc0,0x8f,0xc7,0xc1,0xc0,0x60,0x6e,0xde,0x41,0x38,0xb2,0xa6,0xc2,0x28,0x3,0x1d,0xc1,0x45,0x31,0xde,0x41,0x81,0x67,0x69,0xc2,0xa4,0xed,0x9,0xc0,0x75,0xcd,0x13,0xc3,0xcf,0xf3,0x93,0x41,0x7a,0x2,0x53,0x42,0x1,0xde,0xf5,0xc2,0x1f,0xd2,0x7a,0xc2,0xff,0xba,0x83,0xc1,0xda,0x40,0x5c,0xc1,0x52,0x7d,0x44,0x42,0xa8,0x23,0xb9,0x42,0x37,0x6,0x9f,0xc2,0x4f,0x53,0xa2,0x42,0xd2,0x4a,0x2f,0x41,0xf5,0x4b,0x5d,0x41,0xc,0x9c,0x8a,0xc2,0x20,0x29,0xa0,0xc2,0xa9,0xa9,0xc8,0x41,0xd7,0x6d,0xda,0xc2,0xca,0xaa,0xae,0x41,0x7f,0x23,0x17,0x43,0x24,0xf7,0xa6,0xc2,0xa5,0xac,0x95,0xc2,0x80,0x70,0x35,0xc1,0x70,0x3,0xcd,0x41,0xe6,0xd9,0xbb,0xc1,0x5e,0xf3,0xbc,0xc2,0xfa,0x7a,0x80,0x41,0x7d,0x52,0x8f,0x42,0x90,0x7d,0xf8,0xc2,0x78,0x4c,0x44,0x42,0xc1,0xa5,0x5f,0x41,0x26,0xae,0x4a,0x42,0x82,0x53,0x0,0xc2,0x2f,0x38,0x86,0xc2,0x94,0x85,0x59,0x41,0xd7,0xf0,0xe9,0x42,0xbd,0xa,0xa5,0xc2,0xa7,0x7e,0xb8,0xc2,0x20,0xf7,0xeb,0x42,0xe,0x8a,0x69,0x42,0x56,0x3,0x69,0x42,0x3e,0x13,0x14,0xc2,0x26,0xf0,0x6,0xc3,0x1,0x49,0x34,0x42,0x4,0x93,0x1c,0x43,0xc0,0x23,0x92,0x41,0x9,0x60,0xd3,0x42,0xb0,0x97,0xa8,0xbf,0xea,0xd7,0x1c,0x42,0x6f,0x9,0x91,0x41,0x1c,0xad,0xba,0x42,0x6b,0x4d,0xbd,0x42,0x25,0xfc,0x88,0xc1,0xf8,0x52,0xb8,0x41,0xf,0x5,0x70,0x42,0xcd,0x17,0x1,0xc2,0xee,0x8e,0xce,0xc0,0x9a,0xe9,0xee,0x42,0x53,0x39,0x28,0xc1,0x48,0xc5,0xd6,0xc1 }); + Tensor *actual = NN_zeros(4, (size_t[]){ 1, 12, 12, 56 }, DTYPE_F32); + + cycles = read_cycles(); + NN_conv2d(actual, x, w, b, (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 1); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(x); + NN_delete_tensor(w); + NN_delete_tensor(b); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("layer_norm: "); + + // [[-4.1312113 2.6232095 4.37248 1.7541105 4.099492 ] [-3.0611162 4. + Tensor *x = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0xe2,0x32,0x84,0xc0,0xaa,0xe2,0x27,0x40,0x5b,0xeb,0x8b,0x40,0xb1,0x86,0xe0,0x3f,0xa,0x2f,0x83,0x40,0x54,0xe9,0x43,0xc0,0xad,0x81,0x8f,0x40,0xb,0x59,0x6b,0x40,0x40,0x70,0x6,0xc0,0xc0,0xc7,0x88,0x40,0x63,0x24,0x11,0xc0,0xc9,0x41,0x87,0xc0,0x6,0xe2,0x95,0x40,0x5c,0xd6,0xc7,0x3f,0x98,0x94,0x32,0x40,0x49,0xca,0x9b,0x3f,0xbc,0xa8,0x38,0x3f,0x1a,0x2e,0xd5,0x3f,0xf8,0x4,0xee,0x3f,0xce,0x1a,0x55,0xc0,0x7c,0x46,0x51,0x40,0x48,0x16,0xab,0x3e,0xcc,0xf,0xb,0x40,0x27,0x52,0x8b,0xc0,0x12,0x40,0x46,0xc0,0x4e,0x6d,0xf,0xc0,0xc,0xf2,0x82,0xc0,0x24,0xb1,0x79,0x40,0x30,0x6b,0x48,0x3f,0x7d,0x24,0x6a,0xc0 }); + // [[-3.08712 -1.1476618 4.215437 -2.0621502 4.5133142 ] [ 2.7400148 -3. + Tensor *w = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0x60,0x93,0x45,0xc0,0x95,0xe6,0x92,0xbf,0xdc,0xe4,0x86,0x40,0x45,0xfa,0x3,0xc0,0x12,0x6d,0x90,0x40,0x67,0x5c,0x2f,0x40,0xc3,0x19,0x66,0xc0,0x9e,0xdc,0x8f,0xc0,0x2e,0xa2,0xb6,0x3f,0xe6,0xae,0x5a,0x40,0xc,0xd1,0x7e,0xbf,0x37,0x5b,0x8c,0xc0,0xe8,0x23,0xee,0x3f,0x5f,0xad,0xd4,0xbf,0xb0,0x99,0x17,0xc0,0x94,0xaa,0xd9,0x3e,0xe,0x40,0x6f,0x40,0xf4,0xe1,0x8f,0xc0,0x7d,0xfc,0x8f,0x3f,0x40,0x42,0x75,0xbe,0xc5,0x9a,0x5b,0xc0,0xe8,0x1c,0x86,0x40,0x10,0x5b,0x41,0xbf,0x9f,0xc,0x99,0x40,0x74,0xb8,0x63,0xc0,0x88,0xea,0x9b,0x3e,0x65,0x9b,0xa9,0xbf,0x40,0x48,0x86,0x3f,0x12,0x41,0x9a,0xc0,0xd,0x5c,0xbe,0x3f }); + // [[-2.663992 2.8002076 -2.148797 -0.04181087 -3.8693757 ] [-3.2119048 2. + Tensor *b = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0xd8,0x7e,0x2a,0xc0,0x9a,0x36,0x33,0x40,0xe4,0x85,0x9,0xc0,0xe0,0x41,0x2b,0xbd,0xda,0xa3,0x77,0xc0,0xd9,0x8f,0x4d,0xc0,0xb8,0x40,0x18,0x40,0x87,0xcb,0x8e,0x40,0x4b,0x58,0x85,0x40,0x54,0x95,0x83,0xc0,0x85,0x1f,0xd3,0xbf,0x84,0xc4,0x5b,0x40,0xa4,0x4,0xfc,0x3f,0xb0,0xd0,0x32,0x40,0xde,0x3,0x91,0x40,0x42,0xae,0xaf,0xbf,0x2d,0xfb,0xd6,0xbf,0xbc,0xca,0xcd,0x3e,0x25,0x21,0x91,0xc0,0xa7,0x0,0x8a,0xbf,0x90,0x80,0x97,0x40,0x44,0x2e,0xd3,0xbe,0xc,0xc7,0xea,0xbf,0xa7,0xf4,0xf9,0xbf,0x6,0x6d,0x7f,0xbf,0x0,0x43,0xa8,0xbc,0x2a,0xd5,0x8c,0xc0,0x26,0x8e,0x73,0x40,0xbf,0x68,0x9a,0xc0,0x85,0xf,0x1d,0xc0 }); + + + // [[ 1.8757112 2.0029697 3.1432943 -0.89979887 1.4017185 ] [-6.301275 -2. + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0x4e,0x17,0xf0,0x3f,0xa8,0x30,0x0,0x40,0xbc,0x2b,0x49,0x40,0x38,0x59,0x66,0xbf,0x83,0x6b,0xb3,0x3f,0xb,0xa4,0xc9,0xc0,0xc6,0xe2,0x10,0xc0,0x65,0xc,0x38,0xbe,0xbf,0xd8,0x3f,0x40,0x0,0xc9,0x8f,0x3d,0xd5,0xbc,0x47,0xbf,0x7c,0x4a,0x20,0x41,0xfe,0xaf,0x8f,0x40,0x76,0x25,0xd,0x40,0x1d,0x99,0x30,0x40,0x3c,0x68,0xa2,0xbf,0x8b,0x4f,0xae,0xbf,0xe,0xa8,0xab,0xbf,0xa8,0xef,0x80,0xc0,0xad,0x97,0x49,0xbf,0x84,0xda,0xd1,0x3f,0xb5,0x8e,0x13,0xbf,0x43,0xfd,0xf,0xc0,0x6a,0x3c,0x15,0xc1,0xfc,0x90,0x43,0x40,0x18,0x53,0x91,0xbe,0x1e,0x6,0x1e,0xc0,0x72,0xda,0x9e,0x40,0x6b,0x90,0xaa,0xc0,0xb,0x4d,0x8d,0xc0 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F32); + + cycles = read_cycles(); + NN_layer_norm(actual, x, w, b, 1e-05); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(x); + NN_delete_tensor(w); + NN_delete_tensor(b); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + { printf("abs: "); - // [[ 2.959 1.885 4.156 4.39 2.875 1.304 -3.062 -2.637 -4.605 0.75 - Tensor *a = NN_tensor(2, (size_t[]){ 1, 44 }, DTYPE_F16, (uint8_t[]){ 0xeb,0x41,0x8a,0x3f,0x28,0x44,0x64,0x44,0xc0,0x41,0x37,0x3d,0x20,0xc2,0x46,0xc1,0x9b,0xc4,0x4,0x3a,0xb8,0x44,0xb6,0x42,0xf5,0x41,0x34,0x41,0x79,0x44,0xa9,0x42,0x58,0x44,0xb2,0xc1,0xaa,0x39,0x4,0xc0,0xcf,0x44,0xc4,0x3c,0x6c,0xc1,0x1b,0xc4,0xfa,0x41,0xa8,0x3b,0x75,0xc4,0x6a,0x3c,0xc9,0xbc,0xda,0x44,0x87,0xc4,0xad,0xc3,0x10,0xc2,0x4c,0x44,0xe0,0x2a,0xd8,0xb0,0x3e,0x41,0x94,0x37,0xdb,0x3e,0x10,0xc3,0xe2,0xbc,0x22,0xc0,0x2e,0x44,0x30,0xc1 }); + // [[ 0.8887 -1.089 3.473 -2.275 -2.672 0.4395 -4.1 ]] + Tensor *a = NN_tensor(2, (size_t[]){ 1, 7 }, DTYPE_F16, (uint8_t[]){ 0x1c,0x3b,0x5b,0xbc,0xf2,0x42,0x8d,0xc0,0x58,0xc1,0x8,0x37,0x1a,0xc4 }); - // [[2.959 1.885 4.156 4.39 2.875 1.304 3.062 2.637 4.605 0.752 4.72 - Tensor *golden = NN_tensor(2, (size_t[]){ 1, 44 }, DTYPE_F16, (uint8_t[]){ 0xeb,0x41,0x8a,0x3f,0x28,0x44,0x64,0x44,0xc0,0x41,0x37,0x3d,0x20,0x42,0x46,0x41,0x9b,0x44,0x4,0x3a,0xb8,0x44,0xb6,0x42,0xf5,0x41,0x34,0x41,0x79,0x44,0xa9,0x42,0x58,0x44,0xb2,0x41,0xaa,0x39,0x4,0x40,0xcf,0x44,0xc4,0x3c,0x6c,0x41,0x1b,0x44,0xfa,0x41,0xa8,0x3b,0x75,0x44,0x6a,0x3c,0xc9,0x3c,0xda,0x44,0x87,0x44,0xad,0x43,0x10,0x42,0x4c,0x44,0xe0,0x2a,0xd8,0x30,0x3e,0x41,0x94,0x37,0xdb,0x3e,0x10,0x43,0xe2,0x3c,0x22,0x40,0x2e,0x44,0x30,0x41 }); - Tensor *actual = NN_zeros(2, (size_t[]){ 1, 44 }, DTYPE_F16); + // [[0.8887 1.089 3.473 2.275 2.672 0.4395 4.1 ]] + Tensor *golden = NN_tensor(2, (size_t[]){ 1, 7 }, DTYPE_F16, (uint8_t[]){ 0x1c,0x3b,0x5b,0x3c,0xf2,0x42,0x8d,0x40,0x58,0x41,0x8,0x37,0x1a,0x44 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 1, 7 }, DTYPE_F16); cycles = read_cycles(); NN_abs(actual, a); @@ -552,14 +916,14 @@ float v = 0.25891675029296335; { printf("add: "); - // [[-2.314 -4.75 0.0781 4.49 3.564 -1.235 4.188 ] [-2.9 3.096 2. - Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0xa1,0xc0,0xc0,0xc4,0x0,0x2d,0x7d,0x44,0x21,0x43,0xf1,0xbc,0x30,0x44,0xcd,0xc1,0x31,0x42,0x8,0x40,0xf6,0xbc,0x67,0xbf,0x5d,0x3f,0xb9,0x44,0xb5,0xbc,0xf4,0xba,0x18,0x40,0x1f,0xc4,0x3,0x3f,0x54,0x44,0x6e,0xc3,0x81,0xbe,0xfe,0x3e,0x23,0xbd,0x4,0xb6,0x84,0x44,0x6d,0xbe,0xcb,0xbf,0x24,0xc2,0x98,0xc1,0x0,0x43,0x58,0x44,0x13,0x3e,0xdc,0x41,0xc,0xc1,0xec,0x3c,0x14,0xc1,0x15,0x44,0x92,0x38,0x60,0xc2,0x97,0x40,0x3a,0x3b }); - // [[-3.297 -2.002 -0.5713 3.506 2.9 4.81 1.152 ] [-4.984 -4. - Tensor *b = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x98,0xc2,0x1,0xc0,0x92,0xb8,0x3,0x43,0xcd,0x41,0xcf,0x44,0x9c,0x3c,0xfc,0xc4,0x32,0xc4,0xa3,0x3f,0xc8,0x43,0x18,0x36,0x9c,0x43,0x4c,0xb4,0xe4,0xc0,0xb0,0xbc,0xb0,0x34,0x99,0xbf,0x7f,0xc4,0xde,0x42,0x59,0xbe,0x5f,0xc4,0x76,0x44,0xc4,0x42,0x8c,0x3d,0xa0,0xc1,0xae,0xba,0x1c,0x43,0xb6,0x41,0xb0,0xb8,0xc6,0x44,0xb7,0x3f,0x5a,0xc1,0x5c,0xc2,0xa0,0x44,0xd6,0xba,0xb6,0xc1,0xb0,0x2c,0x5c,0xc4,0x24,0x38,0x64,0xc1,0xec,0xc3 }); + // [[-4.562 1.929 3.305 2.203 -4.254 1.094 3.145 ] [ 0.3125 2. + Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x90,0xc4,0xb7,0x3f,0x9c,0x42,0x68,0x40,0x41,0xc4,0x60,0x3c,0x4a,0x42,0x0,0x35,0x3c,0x41,0xf,0x41,0x5b,0xc4,0xf0,0xc1,0xe9,0xbf,0xb8,0x3e,0xf4,0x40,0xc1,0xbf,0x29,0x44,0xba,0x42,0xb2,0xbb,0x6c,0x44,0xa4,0x3e,0xe,0xc0,0x58,0xc0,0x63,0x42,0x24,0x38,0xb0,0xb4,0xc8,0x41,0x80,0x23,0x67,0x43,0xac,0x41,0x4c,0x40,0x0,0x25,0xc1,0xbf,0x97,0x40,0xba,0xc0,0xff,0xc4,0x6a,0x44,0x7e,0x3c,0xf8,0xbf,0x79,0x40,0x74,0x3c,0xea,0xba }); + // [[-0.9424 -4.082 4.418 -2.158 -2.074 4.344 -1.309 ] [-4.55 -4.477 0. + Tensor *b = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x8a,0xbb,0x15,0xc4,0x6b,0x44,0x51,0xc0,0x26,0xc0,0x58,0x44,0x3c,0xbd,0x8d,0xc4,0x7a,0xc4,0xf0,0x2d,0xe4,0x3f,0xa6,0xc2,0xe4,0x44,0xe2,0x44,0xc8,0x3d,0x80,0x40,0x4,0xb6,0x62,0x3f,0x4,0xb6,0x60,0xb0,0xc8,0xb1,0x7f,0xc4,0xfe,0x3e,0xce,0x44,0x23,0xc1,0x99,0xc3,0xec,0x44,0x17,0x3f,0xe1,0x41,0xa6,0x3c,0x97,0xbc,0x18,0x36,0x60,0x43,0x6b,0xc4,0x12,0xc1,0x44,0xbf,0x1,0xc4,0x3d,0xc4,0x30,0x33,0xd6,0xbe,0xfc,0x42,0x77,0xc2 }); - // [[-5.61 -6.75 -0.4932 7.992 6.465 3.574 5.34 ] [-7.883 -1.1 3. - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x9c,0xc5,0xc0,0xc6,0xe4,0xb7,0xfe,0x47,0x77,0x46,0x26,0x43,0x57,0x45,0xe2,0xc7,0x66,0xbc,0xda,0x43,0x4d,0x41,0xe1,0xbd,0xa5,0x45,0x74,0x44,0x3e,0xc3,0x15,0xc0,0xae,0x40,0x5,0xc6,0x7c,0xc1,0xc3,0x47,0x4d,0xc5,0xff,0xc5,0x36,0x46,0x32,0x40,0xb,0x3c,0xd0,0x3e,0xe2,0xc0,0x6d,0x3e,0xe0,0xb2,0xc4,0xc2,0x23,0x48,0x46,0x46,0xa1,0xbc,0x0,0xb4,0x34,0x40,0x4,0x36,0x65,0xc5,0x28,0x44,0x94,0xc3,0x57,0xc1,0x68,0xb6,0x1e,0xc2 }); + // [[-5.504 -2.152 7.723 0.04492 -6.33 5.438 1.836 ] [-4.24 -1. + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x81,0xc5,0x4e,0xc0,0xb9,0x47,0xc0,0x29,0x54,0xc6,0x70,0x45,0x58,0x3f,0x3d,0xc4,0x70,0xbf,0x3e,0x41,0xc4,0xc0,0x4b,0xc6,0xd4,0x41,0x90,0x46,0xd8,0x43,0xfc,0x34,0x92,0x43,0x36,0x45,0x5a,0xbd,0x49,0x44,0xeb,0x3d,0x86,0xc6,0xc8,0xb6,0x0,0x48,0x1a,0xc0,0x18,0xc4,0xd0,0x47,0x26,0x3f,0xa4,0x46,0xff,0x43,0x1,0x3c,0x68,0x36,0xff,0x3e,0x3f,0xc0,0xe6,0xc4,0xd0,0xc6,0x90,0x36,0x3b,0xc2,0x12,0xbf,0x38,0x38,0x9b,0x44,0x19,0xc4 }); Tensor *actual = NN_zeros(2, (size_t[]){ 6, 7 }, DTYPE_F16); cycles = read_cycles(); @@ -578,14 +942,14 @@ float v = 0.25891675029296335; { printf("matmul_t: "); - // [[ 1.387 4.03 3.54 2.88 -0.708 -0.9326 -0.879 ] [ 1.30 - Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x8c,0x3d,0x8,0x44,0x14,0x43,0xc3,0x41,0xaa,0xb9,0x76,0xbb,0x8,0xbb,0x37,0x3d,0x7d,0x3d,0x3,0x3f,0x9c,0x43,0x7c,0xba,0x5f,0xbd,0x15,0x40,0x61,0x44,0x0,0xa1,0x30,0xbf,0x5,0x3d,0xd8,0xc0,0xae,0xc0,0x28,0x31,0xb8,0x3a,0xbf,0x40,0x38,0xbc,0xcc,0xc2,0x0,0xc4,0x24,0x38,0x30,0xc0,0x46,0xbd,0x10,0x40,0x1a,0xb8,0xd6,0xc2,0xe,0x40,0x12,0xbf,0x0,0x35,0x3c,0x43,0x9b,0x3d,0x9d,0xc4,0x98,0xc4,0xb5,0xbc,0x1,0xbc,0xee,0x40 }); - // [[ 1.934 -1.655 0.04883 2.441 3.012 -0.8594 0.3418 ] [-4.9 3. - Tensor *b = NN_tensor(2, (size_t[]){ 5, 7 }, DTYPE_F16, (uint8_t[]){ 0xbc,0x3f,0x9f,0xbe,0x40,0x2a,0xe2,0x40,0x6,0x42,0xe0,0xba,0x78,0x35,0xe6,0xc4,0x2b,0x43,0xe8,0x42,0x90,0x3e,0x40,0x3e,0xa,0x39,0xfd,0x43,0x40,0xba,0x74,0xc2,0x40,0xa6,0x73,0xc1,0xb3,0xc2,0x63,0xbe,0xee,0x3f,0xa6,0x43,0x6a,0xb8,0x46,0x41,0x63,0x3e,0x87,0x3d,0xe4,0xc3,0xf2,0xc2,0xbc,0xbb,0xe4,0xc3,0xbf,0x44,0x60,0xc3,0x76,0x44,0x9e,0xc4,0xc2,0x44 }); + // [[-1.172 1.45 -0.249 -2.309 0.415 1.167 4.414 ] [-2.223 -4. + Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0xb0,0xbc,0xcd,0x3d,0xf8,0xb3,0x9e,0xc0,0xa4,0x36,0xab,0x3c,0x6a,0x44,0x72,0xc0,0x50,0xc4,0x91,0x3d,0xcc,0xbe,0xab,0x40,0xa0,0xa9,0x30,0x40,0xd0,0x2f,0xa3,0x43,0x3,0x3f,0xf8,0xc4,0xba,0x40,0xee,0x41,0x5e,0x44,0xc8,0x3d,0xc3,0xbd,0x48,0x44,0x56,0x38,0x50,0x41,0x40,0xb2,0x37,0xc4,0x2a,0xc1,0xd7,0xc1,0x42,0xc3,0x6,0x40,0x40,0xc0,0x44,0xb7,0xe8,0xc1,0x4,0xc4,0xee,0x44,0xe2,0xc4,0x54,0x3a,0x42,0x43,0x6d,0xbe,0x25,0x44 }); + // [[ 3.73 -3.604 3.691 -1.338 -1.387 0.913 1.709 ] [ 0.625 -1.797 2. + Tensor *b = NN_tensor(2, (size_t[]){ 5, 7 }, DTYPE_F16, (uint8_t[]){ 0x76,0x43,0x35,0xc3,0x62,0x43,0x5a,0xbd,0x8c,0xbd,0x4e,0x3b,0xd6,0x3e,0x0,0x39,0x30,0xbf,0xaf,0x41,0x3c,0x41,0x95,0xc2,0x4c,0x40,0x9c,0xc2,0x8,0xc0,0x32,0xc3,0xf0,0xc3,0xb,0xc0,0xb2,0x41,0xf8,0x3f,0x9a,0xba,0x14,0x39,0x9e,0x44,0xbc,0xb7,0x47,0xbc,0x83,0xc4,0x10,0x44,0x95,0x3e,0x13,0xc2,0xb4,0x41,0x68,0x44,0xb2,0xbf,0x8,0x43,0x10,0x40,0x36,0xc4 }); - // [[ 1.583 19.39 -19.9 22.77 -14.11 ] [ 9.03 16.86 -6.9 - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F16, (uint8_t[]){ 0x55,0x3e,0xd9,0x4c,0xfa,0xcc,0xb1,0x4d,0xe,0xcb,0x84,0x48,0x37,0x4c,0xf3,0xc6,0x2,0x4a,0xb3,0xad,0x3b,0x46,0x90,0xcf,0x67,0x45,0xd6,0x4c,0x25,0xcc,0xf7,0xcd,0xc7,0xcc,0xb2,0x48,0x9a,0xc6,0x1b,0xd0,0x8d,0xc6,0xd5,0x48,0x3c,0x37,0x48,0xc4,0x88,0x4d,0x4e,0xc8,0x32,0xcf,0xdb,0x4b,0x56,0xca,0xc4,0xc1 }); + // [[ 0.6055 -23.53 2.664 18.67 -3.719 ] [ 14.96 -8.83 22.73 -27 + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F16, (uint8_t[]){ 0xd8,0x38,0xe2,0xcd,0x54,0x41,0xab,0x4c,0x70,0xc3,0x7b,0x4b,0x6a,0xc8,0xaf,0x4d,0xdc,0xce,0x4f,0x42,0xb5,0x46,0xa9,0xcf,0x74,0xbf,0xaf,0x4f,0xef,0x4d,0x4c,0x4b,0x76,0x4d,0x2a,0xc5,0x6,0xcf,0x80,0x50,0x6e,0xcc,0x2e,0x4b,0x62,0x4d,0x51,0xca,0x13,0xcc,0x68,0xd2,0x88,0xd2,0xed,0x49,0xa6,0x45,0xbe,0xc4 }); Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F16); cycles = read_cycles(); @@ -604,14 +968,14 @@ float v = 0.25891675029296335; { printf("matmul: "); - // [[ 3.848 2.848 3.395 1.465 -3.852 1.196 0.4443 ] [-4.785 3. - Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0xb2,0x43,0xb2,0x41,0xca,0x42,0xdc,0x3d,0xb4,0xc3,0xc9,0x3c,0x1c,0x37,0xc9,0xc4,0xa6,0x43,0xfc,0x44,0xda,0x41,0xbe,0x44,0xc0,0x41,0x5,0xc1,0x8,0x40,0xee,0x41,0x76,0xc4,0xd,0x43,0x4a,0x42,0xba,0xc0,0xe2,0x42,0xc3,0xc4,0x2c,0xb6,0xa6,0xc2,0x8e,0x41,0x8,0x43,0x68,0x32,0xa1,0x40,0x58,0x43,0x94,0x3b,0x54,0xb6,0x56,0xc3,0x40,0x2e,0xc2,0xbe,0x40,0x3e,0x4f,0x42,0xb2,0xc3,0x12,0xbf,0x9d,0xc4,0xa4,0xc4,0x54,0x3a,0xa4,0x42 }); - // [[-1.689 -0.04883 3.227 3.916 -3.18 ] [ 0.7812 -2.92 1.87 1. - Tensor *b = NN_tensor(2, (size_t[]){ 7, 5 }, DTYPE_F16, (uint8_t[]){ 0xc2,0xbe,0x40,0xaa,0x74,0x42,0xd5,0x43,0x5c,0xc2,0x40,0x3a,0xd7,0xc1,0x7b,0x3f,0xdc,0x3d,0x8,0xc0,0xe6,0x43,0x23,0xbd,0xfa,0xb9,0x82,0x44,0x74,0x43,0x8,0xc3,0x7b,0x3f,0x59,0x42,0x54,0x3e,0x55,0x3d,0xf1,0xbc,0xfc,0x41,0xeb,0x41,0x66,0xc1,0x38,0xc3,0x1,0xc0,0x34,0x42,0x2c,0x3a,0xee,0x3b,0x9b,0xc1,0xa8,0x40,0x2c,0x3e,0x5d,0xbf,0x81,0xbe,0x9e,0xc3 }); + // [[ 3.799 -0.9375 2.906 -3.535 -2.842 -4.227 -2.646 ] [ 0.3467 2. + Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x99,0x43,0x80,0xbb,0xd0,0x41,0x12,0xc3,0xaf,0xc1,0x3a,0xc4,0x4b,0xc1,0x8c,0x35,0x8,0x41,0xf4,0x42,0x92,0xb8,0x80,0x23,0x64,0xb9,0x80,0xb3,0xac,0xc2,0x31,0x42,0xd7,0x44,0xb0,0xb0,0x80,0x2f,0xf4,0x3e,0x76,0x3b,0x65,0xbc,0x12,0xc1,0x34,0x42,0x2c,0xc2,0xd6,0xba,0x4b,0x41,0xf0,0x31,0x76,0x43,0x98,0x42,0x74,0xc0,0x88,0x42,0x68,0x42,0x41,0xbd,0xc0,0xc1,0x97,0xc0,0xbf,0x40,0x8e,0x42,0x18,0x40,0xf6,0x40,0x83,0x40,0xa5,0x41 }); + // [[ 3.447 1.572 1.816 2.164 -4.492 ] [-1.641 1.665 -2.959 -3.242 4. + Tensor *b = NN_tensor(2, (size_t[]){ 7, 5 }, DTYPE_F16, (uint8_t[]){ 0xe5,0x42,0x4a,0x3e,0x44,0x3f,0x54,0x40,0x7e,0xc4,0x90,0xbe,0xa9,0x3e,0xeb,0xc1,0x7c,0xc2,0x30,0x44,0x72,0xba,0xb7,0x3f,0x70,0x42,0x18,0xb6,0x4c,0xbc,0x46,0x44,0x6a,0xc2,0x24,0x3c,0x44,0x3f,0xd0,0x43,0xaf,0x3d,0x4c,0x43,0x52,0x44,0x60,0x30,0x4e,0x40,0xc6,0xc1,0x4f,0xc2,0xea,0x3a,0x2e,0xbc,0xb8,0xb2,0xf4,0xb6,0x7c,0xbe,0xc6,0x41,0x44,0x41,0x56,0xbc }); - // [[ 7.38 -17.25 8.56 47.72 5.484 ] [ 3.014 7.37 18.14 8 - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F16, (uint8_t[]){ 0x61,0x47,0x50,0xcc,0x48,0x48,0xf7,0x51,0x7c,0x45,0x7,0x42,0x5f,0x47,0x89,0x4c,0xc,0x48,0x2f,0x4b,0x8f,0xcd,0x7a,0x49,0xee,0x4e,0xae,0xcc,0x45,0xd1,0x41,0xcb,0x62,0x4e,0xa,0x3e,0x5b,0xd1,0x6b,0xcb,0x62,0x4a,0xeb,0xc9,0x79,0xbe,0x68,0x43,0x61,0xcd,0x64,0x4a,0x58,0xbe,0x65,0xcf,0x1c,0xb9,0x90,0xca }); + // [[ 6.496 28.61 -8.2 0.7925 -40.28 ] [ -6.105 15.83 2.59 -9 + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F16, (uint8_t[]){ 0x7f,0x46,0x27,0x4f,0x1a,0xc8,0x57,0x3a,0x9,0xd1,0x1b,0xc6,0xea,0x4b,0x2e,0x41,0xd7,0xc8,0xe0,0x42,0x97,0xce,0x4b,0x42,0xe8,0x44,0xad,0xcc,0x43,0x4d,0x10,0xce,0x58,0xbf,0xb7,0x49,0xad,0xc2,0xea,0xcd,0x19,0x50,0x45,0x4c,0xb9,0xc0,0x62,0xbe,0x9f,0x4d,0xf5,0xc8,0x15,0xc1,0x93,0x4d,0xc7,0xc4,0xa2,0x4e }); Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F16); cycles = read_cycles(); From d5f2fb2112e31af5c65044c8dd802a68963c8098 Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Wed, 10 Jul 2024 16:03:27 -0700 Subject: [PATCH 11/21] FIX: fix layer norm --- nn/op/nn_layer_norm.c | 43 +++++++++++++++++++++++++++++-------------- nn/op/nn_layer_norm.h | 7 +++++++ nn/op/nn_mm.h | 6 +++--- 3 files changed, 39 insertions(+), 17 deletions(-) diff --git a/nn/op/nn_layer_norm.c b/nn/op/nn_layer_norm.c index f690922..7c5f934 100644 --- a/nn/op/nn_layer_norm.c +++ b/nn/op/nn_layer_norm.c @@ -3,27 +3,42 @@ void NN_layer_norm( Tensor *out, Tensor *in, + size_t normalized_dims, Tensor *weight, Tensor *bias, const float eps) { assert(out->dtype == in->dtype && in->dtype == DTYPE_F32); assert(out->ndim == in->ndim); - size_t N = in->shape[1]; - for (size_t i = 0; i < in->shape[0]; i++) { + // currently only support 1D normalization + assert(normalized_dims == 1); + + size_t n = in->shape[1]; + for (size_t i = 0; i < in->shape[0]; i += 1) { + float *out_ptr = (float *)out->data + i * n; + float *in_ptr = (float *)in->data + i * n; + float mean = 0; - for (size_t j = 0; j < N; j++) { - mean += ((float *)in->data)[i * N + j]; - } - mean /= N; + NN__sum_f32(n, &mean, in_ptr, 1); + mean /= n; float variance = 0; - for (size_t j = 0; j < N; j++) { - variance += powf(((float *)in->data)[i * N + j] - mean, 2); - } - variance /= N; - - for (size_t j = 0; j < N; j++) { - ((float *)out->data)[i * N + j] = ((float *)weight->data)[j] * (((float *)in->data)[i * N + j] - mean) / sqrtf(variance + eps) + ((float *)bias)[j]; - } + // use y as temporary buffer + // y = x - E[x] + NN__add1_f32(n, out_ptr, 1, in_ptr, 1, -mean); + // y = y * y + NN__sqr_f32(n, out_ptr, 1, out_ptr, 1); + + NN__sum_f32(n, &variance, out_ptr, 1); + variance /= n; + + // y = x - E[x] + NN__add1_f32(n, out_ptr, 1, in_ptr, 1, -mean); + + // y = y / sqrt(Var[x] + eps) + NN__mul1_f32(n, out_ptr, 1, out_ptr, 1, 1.f / sqrtf(variance + eps)); + + // y = y * weight + bias + NN__mul_f32(n, out_ptr, 1, (float *)weight->data, 1, out_ptr, 1); + NN__add_f32(n, out_ptr, 1, (float *)bias->data, 1, out_ptr, 1); } } diff --git a/nn/op/nn_layer_norm.h b/nn/op/nn_layer_norm.h index 1d77580..b630389 100644 --- a/nn/op/nn_layer_norm.h +++ b/nn/op/nn_layer_norm.h @@ -5,10 +5,17 @@ #include #include "nn_tensor.h" +#include "sum.h" +#include "add.h" +#include "add1.h" +#include "mul.h" +#include "mul1.h" +#include "sqr.h" void NN_layer_norm( Tensor *out, Tensor *in, + size_t normalized_dims, Tensor *weight, Tensor *bias, const float eps); diff --git a/nn/op/nn_mm.h b/nn/op/nn_mm.h index 5a45ae4..ff84cd3 100644 --- a/nn/op/nn_mm.h +++ b/nn/op/nn_mm.h @@ -1,5 +1,5 @@ -#ifndef __NN_MATMUL_H -#define __NN_MATMUL_H +#ifndef __NN_MM_H +#define __NN_MM_H #include @@ -34,4 +34,4 @@ void NN_mm(Tensor *out, Tensor *a, Tensor *b); void NN_mm_t(Tensor *out, Tensor *a, Tensor *b); -#endif // __NN_MATMUL_H +#endif // __NN_MM_H From f50ee59333a3f9a4b7e9137e7421c3e3d036b2c1 Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Wed, 10 Jul 2024 16:03:37 -0700 Subject: [PATCH 12/21] FIX: fix RVV instructions --- nn/CMakeLists.txt | 2 +- nn/impl/cpu/add1.c | 4 +- nn/impl/rvv/abs.c | 24 +++++------ nn/impl/rvv/acc.c | 6 +-- nn/impl/rvv/acc1.c | 2 +- nn/impl/rvv/add.c | 12 +++--- nn/impl/rvv/add1.c | 11 +++-- nn/impl/rvv/div.c | 6 +-- nn/impl/rvv/dot.c | 8 ++-- nn/impl/rvv/fill.c | 2 +- nn/impl/rvv/max.c | 2 +- nn/impl/rvv/maximum.c | 6 +-- nn/impl/rvv/maximum1.c | 4 +- nn/impl/rvv/min.c | 2 +- nn/impl/rvv/minimum.c | 6 +-- nn/impl/rvv/minimum1.c | 4 +- nn/impl/rvv/mul.c | 6 +-- nn/impl/rvv/mul1.c | 4 +- nn/impl/rvv/neg.c | 4 +- nn/impl/rvv/sub.c | 30 ++++++------- tests/CMakeLists.txt | 2 +- tests/src/generate_test.py | 64 +++++++++++++++------------- tests/src/generated.c | 87 +++++++++++++++++++++++++------------- 23 files changed, 165 insertions(+), 133 deletions(-) diff --git a/nn/CMakeLists.txt b/nn/CMakeLists.txt index b136659..fa6d5f6 100644 --- a/nn/CMakeLists.txt +++ b/nn/CMakeLists.txt @@ -105,9 +105,9 @@ add_library(nn op/nn_transpose.c op/nn_unfold.c - ${cpu_impl} ${rvv_impl} ${gemmini_impl} + ${cpu_impl} ) target_include_directories(nn PUBLIC op impl) diff --git a/nn/impl/cpu/add1.c b/nn/impl/cpu/add1.c index e980bd1..331ec24 100644 --- a/nn/impl/cpu/add1.c +++ b/nn/impl/cpu/add1.c @@ -1,8 +1,8 @@ #include "add1.h" -__attribute__((weak)) void NN__add1_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float scalar) { +__attribute__((weak)) void NN__add1_f32(size_t n, float *y, size_t incy, float *x, size_t incx, float scalar) { for (size_t i = 0; i < n; i += 1) { - z[i * incz] = x[i * incx] + scalar; + y[i * incy] = x[i * incx] + scalar; } } diff --git a/nn/impl/rvv/abs.c b/nn/impl/rvv/abs.c index 618339f..4dee14a 100644 --- a/nn/impl/rvv/abs.c +++ b/nn/impl/rvv/abs.c @@ -6,11 +6,11 @@ void NN__abs_i8(size_t n, int8_t *y, size_t incy, int8_t *x, size_t incx) { while (n > 0) { size_t vl = __riscv_vsetvl_e8m1(n); - vint8m1_t vec_x = __riscv_vlse8_v_i8m1(x, incx, vl); + vint8m1_t vec_x = __riscv_vlse8_v_i8m1(x, sizeof(int8_t) * incx, vl); vint8m1_t vec_neg_x = __riscv_vneg_v_i8m1(vec_x, vl); vbool8_t mask = __riscv_vmslt_vx_i8m1_b8(vec_x, 0, vl); vint8m1_t vec_abs_x = __riscv_vmerge_vvm_i8m1(vec_x, vec_neg_x, mask, vl); - __riscv_vsse8_v_i8m1(y, incy, vec_abs_x, vl); + __riscv_vsse8_v_i8m1(y, sizeof(int8_t) * incy, vec_abs_x, vl); x += vl; y += vl; n -= vl; @@ -20,11 +20,11 @@ void NN__abs_i8(size_t n, int8_t *y, size_t incy, int8_t *x, size_t incx) { void NN__abs_i16(size_t n, int16_t *y, size_t incy, int16_t *x, size_t incx) { while (n > 0) { size_t vl = __riscv_vsetvl_e16m1(n); - vint16m1_t vec_x = __riscv_vlse16_v_i16m1(x, incx, vl); + vint16m1_t vec_x = __riscv_vlse16_v_i16m1(x, sizeof(int16_t) * incx, vl); vint16m1_t vec_neg_x = __riscv_vneg_v_i16m1(vec_x, vl); vbool16_t mask = __riscv_vmslt_vx_i16m1_b16(vec_x, 0, vl); vint16m1_t vec_abs_x = __riscv_vmerge_vvm_i16m1(vec_x, vec_neg_x, mask, vl); - __riscv_vsse16_v_i16m1(y, incy, vec_abs_x, vl); + __riscv_vsse16_v_i16m1(y, sizeof(int16_t) * incy, vec_abs_x, vl); x += vl; y += vl; n -= vl; @@ -34,11 +34,11 @@ void NN__abs_i16(size_t n, int16_t *y, size_t incy, int16_t *x, size_t incx) { void NN__abs_i32(size_t n, int32_t *y, size_t incy, int32_t *x, size_t incx) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); - vint32m1_t vec_x = __riscv_vlse32_v_i32m1(x, incx, vl); + vint32m1_t vec_x = __riscv_vlse32_v_i32m1(x, sizeof(int32_t) * incx, vl); vint32m1_t vec_neg_x = __riscv_vneg_v_i32m1(vec_x, vl); vbool32_t mask = __riscv_vmslt_vx_i32m1_b32(vec_x, 0, vl); vint32m1_t vec_abs_x = __riscv_vmerge_vvm_i32m1(vec_x, vec_neg_x, mask, vl); - __riscv_vsse32_v_i32m1(y, incy, vec_abs_x, vl); + __riscv_vsse32_v_i32m1(y, sizeof(int32_t) * incy, vec_abs_x, vl); x += vl; y += vl; n -= vl; @@ -48,9 +48,9 @@ void NN__abs_i32(size_t n, int32_t *y, size_t incy, int32_t *x, size_t incx) { // void NN__abs_f16(size_t n, float16_t *y, size_t incy, float16_t *x, size_t incx) { // while (n > 0) { // size_t vl = __riscv_vsetvl_e16m1(n); -// vfloat16m1_t vec_x = __riscv_vlse16_v_f16m1(x, incx, vl); -// vfloat16m1_t vec_r = __riscv_vfabs_v_f16m1(vec_x, vl); -// __riscv_vse16_v_f16m1(y, incy, vec_r, vl); +// vfloat16m1_t vec_x = __riscv_vlse16_v_f16m1(x, sizeof(float16_t) * incx, vl); +// vfloat16m1_t vec_y = __riscv_vfabs_v_f16m1(vec_x, vl); +// __riscv_vse16_v_f16m1(y, sizeof(float16_t) * incy, vec_y, vl); // x += vl; // y += vl; // n -= vl; @@ -60,9 +60,9 @@ void NN__abs_i32(size_t n, int32_t *y, size_t incy, int32_t *x, size_t incx) { void NN__abs_f32(size_t n, float *y, size_t incy, float *x, size_t incx) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); - vfloat32m1_t vec_r = __riscv_vfabs_v_f32m1(vec_x, vl); - __riscv_vsse32_v_f32m1(y, incy, vec_r, vl); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, sizeof(float) * incx, vl); + vfloat32m1_t vec_y = __riscv_vfabs_v_f32m1(vec_x, vl); + __riscv_vsse32_v_f32m1(y, sizeof(float) * incy, vec_y, vl); x += vl; y += vl; n -= vl; diff --git a/nn/impl/rvv/acc.c b/nn/impl/rvv/acc.c index a79263d..7eadf04 100644 --- a/nn/impl/rvv/acc.c +++ b/nn/impl/rvv/acc.c @@ -7,10 +7,10 @@ void NN__acc_f32(size_t n, float *y, size_t incy, float *x, size_t incx) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); - vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, incy, vl); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, sizeof(float) * incx, vl); + vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, sizeof(float) * incy, vl); vec_y = __riscv_vfadd_vv_f32m1(vec_y, vec_x, vl); - __riscv_vsse32_v_f32m1(y, incy, vec_y, vl); + __riscv_vsse32_v_f32m1(y, sizeof(float) * incy, vec_y, vl); x += vl; y += vl; n -= vl; diff --git a/nn/impl/rvv/acc1.c b/nn/impl/rvv/acc1.c index 4406112..9370d4c 100644 --- a/nn/impl/rvv/acc1.c +++ b/nn/impl/rvv/acc1.c @@ -6,7 +6,7 @@ void NN__acc1_f32(size_t n, float *result, size_t incx, float scalar) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_r = __riscv_vlse32_v_f32m1(result, incx, vl); + vfloat32m1_t vec_r = __riscv_vlse32_v_f32m1(result, sizeof(float) * incx, vl); vfloat32m1_t vec_s = __riscv_vfmv_v_f_f32m1(scalar, vl); vec_r = __riscv_vfadd_vv_f32m1(vec_r, vec_s, vl); __riscv_vse32_v_f32m1(result, vec_r, vl); diff --git a/nn/impl/rvv/add.c b/nn/impl/rvv/add.c index fc502e5..49f8857 100644 --- a/nn/impl/rvv/add.c +++ b/nn/impl/rvv/add.c @@ -7,10 +7,10 @@ void NN__add_i8(size_t n, int8_t *z, size_t incz, int8_t *x, size_t incx, int8_t *y, size_t incy) { while (n > 0) { size_t vl = __riscv_vsetvl_e8m1(n); - vint8m1_t vec_x = __riscv_vlse8_v_i8m1(x, incx, vl); - vint8m1_t vec_y = __riscv_vlse8_v_i8m1(y, incy, vl); + vint8m1_t vec_x = __riscv_vlse8_v_i8m1(x, sizeof(int8_t) * incx, vl); + vint8m1_t vec_y = __riscv_vlse8_v_i8m1(y, sizeof(int8_t) * incy, vl); vint8m1_t vec_z = __riscv_vadd_vv_i8m1(vec_x, vec_y, vl); - __riscv_vsse8_v_i8m1(z, incz, vec_z, vl); + __riscv_vsse8_v_i8m1(z, sizeof(int8_t) * incz, vec_z, vl); x += vl; y += vl; z += vl; @@ -21,10 +21,10 @@ void NN__add_i8(size_t n, int8_t *z, size_t incz, int8_t *x, size_t incx, int8_t void NN__add_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float *y, size_t incy) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); - vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, incy, vl); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, sizeof(float) * incx, vl); + vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, sizeof(float) * incy, vl); vfloat32m1_t vec_z = __riscv_vfadd_vv_f32m1(vec_x, vec_y, vl); - __riscv_vsse32_v_f32m1(z, incz, vec_z, vl); + __riscv_vsse32_v_f32m1(z, sizeof(float) * incz, vec_z, vl); x += vl; y += vl; z += vl; diff --git a/nn/impl/rvv/add1.c b/nn/impl/rvv/add1.c index 2717424..361799a 100644 --- a/nn/impl/rvv/add1.c +++ b/nn/impl/rvv/add1.c @@ -4,18 +4,17 @@ #ifdef RVV -void NN__add1_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float scalar) { +void NN__add1_f32(size_t n, float *y, size_t incy, float *x, size_t incx, float scalar) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, sizeof(float) * incx, vl); vfloat32m1_t vec_s = __riscv_vfmv_v_f_f32m1(scalar, vl); - vfloat32m1_t vec_z = __riscv_vfadd_vv_f32m1(vec_x, vec_s, vl); - __riscv_vsse32_v_f32m1(z, incz, vec_z, vl); + vfloat32m1_t vec_y = __riscv_vfadd_vv_f32m1(vec_x, vec_s, vl); + __riscv_vsse32_v_f32m1(y, sizeof(float) * incy, vec_y, vl); x += vl; - z += vl; + y += vl; n -= vl; } } - #endif diff --git a/nn/impl/rvv/div.c b/nn/impl/rvv/div.c index 7d9ba10..92fb7c8 100644 --- a/nn/impl/rvv/div.c +++ b/nn/impl/rvv/div.c @@ -7,10 +7,10 @@ void NN__div_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float *y, size_t incy) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); - vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, incy, vl); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, sizeof(float) * incx, vl); + vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, sizeof(float) * incy, vl); vfloat32m1_t vec_z = __riscv_vfdiv_vv_f32m1(vec_x, vec_y, vl); - __riscv_vsse32_v_f32m1(z, incz, vec_z, vl); + __riscv_vsse32_v_f32m1(z, sizeof(float) * incz, vec_z, vl); x += vl; y += vl; z += vl; diff --git a/nn/impl/rvv/dot.c b/nn/impl/rvv/dot.c index 540d4ac..c4df072 100644 --- a/nn/impl/rvv/dot.c +++ b/nn/impl/rvv/dot.c @@ -12,8 +12,8 @@ // while (n > 0) { // size_t vl = __riscv_vsetvl_e16m1(n); -// vfloat16m1_t vec_x = __riscv_vlse16_v_f16m1(x, incx, vl); -// vfloat16m1_t vec_y = __riscv_vlse16_v_f16m1(y, incy, vl); +// vfloat16m1_t vec_x = __riscv_vlse16_v_f16m1(x, sizeof(float16_t) * incx, vl); +// vfloat16m1_t vec_y = __riscv_vlse16_v_f16m1(y, sizeof(float16_t) * incy, vl); // vec_r = __riscv_vfmacc_vv_f16m1(vec_r, vec_x, vec_y, vl); // x += vl; @@ -32,8 +32,8 @@ void NN__dot_f32(size_t n, float *result, float *x, size_t incx, float *y, size_ while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); - vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, incy, vl); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, sizeof(float) * incx, vl); + vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, sizeof(float) * incy, vl); vec_r = __riscv_vfmacc_vv_f32m1(vec_r, vec_x, vec_y, vl); x += vl; diff --git a/nn/impl/rvv/fill.c b/nn/impl/rvv/fill.c index 1c23485..24dd763 100644 --- a/nn/impl/rvv/fill.c +++ b/nn/impl/rvv/fill.c @@ -8,7 +8,7 @@ void NN__fill_f32(size_t n, float *x, size_t incx, float scalar) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); vfloat32m1_t vec_x = __riscv_vfmv_v_f_f32m1(scalar, vl); - __riscv_vsse32_v_f32m1(x, incx, vec_x, vl); + __riscv_vsse32_v_f32m1(x, sizeof(float) * incx, vec_x, vl); x += vl; n -= vl; } diff --git a/nn/impl/rvv/max.c b/nn/impl/rvv/max.c index ce24fb5..27dc452 100644 --- a/nn/impl/rvv/max.c +++ b/nn/impl/rvv/max.c @@ -8,7 +8,7 @@ void NN__max_f32(size_t n, float *result, float *x, size_t incx) { vfloat32m1_t vec_max = __riscv_vfmv_s_f_f32m1(-FLT_MAX, 1); while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, sizeof(float) * incx, vl); vec_max = __riscv_vfredmax_vs_f32m1_f32m1(vec_x, vec_max, vl); x += vl; n -= vl; diff --git a/nn/impl/rvv/maximum.c b/nn/impl/rvv/maximum.c index 255dc04..68784b6 100644 --- a/nn/impl/rvv/maximum.c +++ b/nn/impl/rvv/maximum.c @@ -7,10 +7,10 @@ void NN__maximum_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float *y, size_t incy) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); - vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, incy, vl); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, sizeof(float) * incx, vl); + vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, sizeof(float) * incy, vl); vfloat32m1_t vec_z = __riscv_vfmax_vv_f32m1(vec_x, vec_y, vl); - __riscv_vsse32_v_f32m1(z, incz, vec_z, vl); + __riscv_vsse32_v_f32m1(z, sizeof(float) * incz, vec_z, vl); x += vl; y += vl; z += vl; diff --git a/nn/impl/rvv/maximum1.c b/nn/impl/rvv/maximum1.c index 660512b..7a8248f 100644 --- a/nn/impl/rvv/maximum1.c +++ b/nn/impl/rvv/maximum1.c @@ -7,10 +7,10 @@ void NN__maximum1_f32(size_t n, float *y, size_t incy, float *x, size_t incx, float scalar) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, sizeof(float) * incx, vl); vfloat32m1_t vec_s = __riscv_vfmv_v_f_f32m1(scalar, vl); vfloat32m1_t vec_y = __riscv_vfmax_vv_f32m1(vec_x, vec_s, vl); - __riscv_vsse32_v_f32m1(y, incy, vec_y, vl); + __riscv_vsse32_v_f32m1(y, sizeof(float) * incy, vec_y, vl); x += vl; y += vl; n -= vl; diff --git a/nn/impl/rvv/min.c b/nn/impl/rvv/min.c index a887bad..f10486e 100644 --- a/nn/impl/rvv/min.c +++ b/nn/impl/rvv/min.c @@ -8,7 +8,7 @@ void NN__min_f32(size_t n, float *result, float *x, size_t incx) { vfloat32m1_t vec_min = __riscv_vfmv_s_f_f32m1(FLT_MAX, 1); while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, sizeof(float) * incx, vl); vec_min = __riscv_vfredmin_vs_f32m1_f32m1(vec_x, vec_min, vl); x += vl; n -= vl; diff --git a/nn/impl/rvv/minimum.c b/nn/impl/rvv/minimum.c index 498467d..0b4f1a5 100644 --- a/nn/impl/rvv/minimum.c +++ b/nn/impl/rvv/minimum.c @@ -7,10 +7,10 @@ void NN__minimum_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float *y, size_t incy) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); - vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, incy, vl); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, sizeof(float) * incx, vl); + vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, sizeof(float) * incy, vl); vfloat32m1_t vec_z = __riscv_vfmin_vv_f32m1(vec_x, vec_y, vl); - __riscv_vsse32_v_f32m1(z, incz, vec_z, vl); + __riscv_vsse32_v_f32m1(z, sizeof(float) * incz, vec_z, vl); x += vl; y += vl; z += vl; diff --git a/nn/impl/rvv/minimum1.c b/nn/impl/rvv/minimum1.c index fe67e27..7a0a2f3 100644 --- a/nn/impl/rvv/minimum1.c +++ b/nn/impl/rvv/minimum1.c @@ -7,10 +7,10 @@ void NN__minimum1_f32(size_t n, float *y, size_t incy, float *x, size_t incx, float scalar) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, sizeof(float) * incx, vl); vfloat32m1_t vec_s = __riscv_vfmv_v_f_f32m1(scalar, vl); vfloat32m1_t vec_y = __riscv_vfmin_vv_f32m1(vec_x, vec_s, vl); - __riscv_vsse32_v_f32m1(y, incy, vec_y, vl); + __riscv_vsse32_v_f32m1(y, sizeof(float) * incy, vec_y, vl); x += vl; y += vl; n -= vl; diff --git a/nn/impl/rvv/mul.c b/nn/impl/rvv/mul.c index 05b7bc5..d2435a5 100644 --- a/nn/impl/rvv/mul.c +++ b/nn/impl/rvv/mul.c @@ -7,10 +7,10 @@ void NN__mul_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float *y, size_t incy) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); - vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, incy, vl); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, sizeof(float) * incx, vl); + vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, sizeof(float) * incy, vl); vfloat32m1_t vec_z = __riscv_vfmul_vv_f32m1(vec_x, vec_y, vl); - __riscv_vsse32_v_f32m1(z, incz, vec_z, vl); + __riscv_vsse32_v_f32m1(z, sizeof(float) * incz, vec_z, vl); x += vl; y += vl; z += vl; diff --git a/nn/impl/rvv/mul1.c b/nn/impl/rvv/mul1.c index b4efb55..f982074 100644 --- a/nn/impl/rvv/mul1.c +++ b/nn/impl/rvv/mul1.c @@ -7,10 +7,10 @@ void NN__mul1_f32(size_t n, float *y, size_t incy, float *x, size_t incx, float scalar) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, sizeof(float) * incx, vl); vfloat32m1_t vec_s = __riscv_vfmv_v_f_f32m1(scalar, vl); vfloat32m1_t vec_y = __riscv_vfmul_vv_f32m1(vec_x, vec_s, vl); - __riscv_vsse32_v_f32m1(y, incy, vec_y, vl); + __riscv_vsse32_v_f32m1(y, sizeof(float) * incy, vec_y, vl); x += vl; y += vl; n -= vl; diff --git a/nn/impl/rvv/neg.c b/nn/impl/rvv/neg.c index 13d7b9e..00735f6 100644 --- a/nn/impl/rvv/neg.c +++ b/nn/impl/rvv/neg.c @@ -7,9 +7,9 @@ void NN__neg_f32(size_t n, float *y, size_t incy, float *x, size_t incx) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, sizeof(float) * incx, vl); vfloat32m1_t vec_y = __riscv_vfneg_v_f32m1(vec_x, vl); - __riscv_vsse32_v_f32m1(y, incy, vec_y, vl); + __riscv_vsse32_v_f32m1(y, sizeof(float) * incy, vec_y, vl); x += vl; y += vl; n -= vl; diff --git a/nn/impl/rvv/sub.c b/nn/impl/rvv/sub.c index 59b8dc5..af5e3d2 100644 --- a/nn/impl/rvv/sub.c +++ b/nn/impl/rvv/sub.c @@ -7,10 +7,10 @@ void NN__sub_u8(size_t n, uint8_t *z, size_t incz, uint8_t *x, size_t incx, uint8_t *y, size_t incy) { while (n > 0) { size_t vl = __riscv_vsetvl_e8m1(n); - vuint8m1_t vec_x = __riscv_vlse8_v_u8m1(x, incx, vl); - vuint8m1_t vec_y = __riscv_vlse8_v_u8m1(y, incy, vl); + vuint8m1_t vec_x = __riscv_vlse8_v_u8m1(x, sizeof(uint8_t) * incx, vl); + vuint8m1_t vec_y = __riscv_vlse8_v_u8m1(y, sizeof(uint8_t) * incy, vl); vuint8m1_t vec_z = __riscv_vsub_vv_u8m1(vec_x, vec_y, vl); - __riscv_vsse8_v_u8m1(z, incz, vec_z, vl); + __riscv_vsse8_v_u8m1(z, sizeof(uint8_t) * incz, vec_z, vl); x += vl; y += vl; z += vl; @@ -21,10 +21,10 @@ void NN__sub_u8(size_t n, uint8_t *z, size_t incz, uint8_t *x, size_t incx, uint void NN__sub_i8(size_t n, int8_t *z, size_t incz, int8_t *x, size_t incx, int8_t *y, size_t incy) { while (n > 0) { size_t vl = __riscv_vsetvl_e8m1(n); - vint8m1_t vec_x = __riscv_vlse8_v_i8m1(x, incx, vl); - vint8m1_t vec_y = __riscv_vlse8_v_i8m1(y, incy, vl); + vint8m1_t vec_x = __riscv_vlse8_v_i8m1(x, sizeof(int8_t) * incx, vl); + vint8m1_t vec_y = __riscv_vlse8_v_i8m1(y, sizeof(int8_t) * incy, vl); vint8m1_t vec_z = __riscv_vsub_vv_i8m1(vec_x, vec_y, vl); - __riscv_vsse8_v_i8m1(z, incz, vec_z, vl); + __riscv_vsse8_v_i8m1(z, sizeof(int8_t) * incz, vec_z, vl); x += vl; y += vl; z += vl; @@ -35,10 +35,10 @@ void NN__sub_i8(size_t n, int8_t *z, size_t incz, int8_t *x, size_t incx, int8_t void NN__sub_i16(size_t n, int16_t *z, size_t incz, int16_t *x, size_t incx, int16_t *y, size_t incy) { while (n > 0) { size_t vl = __riscv_vsetvl_e16m1(n); - vint16m1_t vec_x = __riscv_vlse16_v_i16m1(x, incx, vl); - vint16m1_t vec_y = __riscv_vlse16_v_i16m1(y, incy, vl); + vint16m1_t vec_x = __riscv_vlse16_v_i16m1(x, sizeof(int16_t) * incx, vl); + vint16m1_t vec_y = __riscv_vlse16_v_i16m1(y, sizeof(int16_t) * incy, vl); vint16m1_t vec_z = __riscv_vsub_vv_i16m1(vec_x, vec_y, vl); - __riscv_vsse16_v_i16m1(z, incz, vec_z, vl); + __riscv_vsse16_v_i16m1(z, sizeof(int16_t) * incz, vec_z, vl); x += vl; y += vl; z += vl; @@ -49,10 +49,10 @@ void NN__sub_i16(size_t n, int16_t *z, size_t incz, int16_t *x, size_t incx, int void NN__sub_i32(size_t n, int32_t *z, size_t incz, int32_t *x, size_t incx, int32_t *y, size_t incy) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); - vint32m1_t vec_x = __riscv_vlse32_v_i32m1(x, incx, vl); - vint32m1_t vec_y = __riscv_vlse32_v_i32m1(y, incy, vl); + vint32m1_t vec_x = __riscv_vlse32_v_i32m1(x, sizeof(int32_t) * incx, vl); + vint32m1_t vec_y = __riscv_vlse32_v_i32m1(y, sizeof(int32_t) * incy, vl); vint32m1_t vec_z = __riscv_vsub_vv_i32m1(vec_x, vec_y, vl); - __riscv_vsse32_v_i32m1(z, incz, vec_z, vl); + __riscv_vsse32_v_i32m1(z, sizeof(int32_t) * incz, vec_z, vl); x += vl; y += vl; z += vl; @@ -63,10 +63,10 @@ void NN__sub_i32(size_t n, int32_t *z, size_t incz, int32_t *x, size_t incx, int void NN__sub_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float *y, size_t incy) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); - vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, incx, vl); - vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, incy, vl); + vfloat32m1_t vec_x = __riscv_vlse32_v_f32m1(x, sizeof(float) * incx, vl); + vfloat32m1_t vec_y = __riscv_vlse32_v_f32m1(y, sizeof(float) * incy, vl); vfloat32m1_t vec_z = __riscv_vfsub_vv_f32m1(vec_x, vec_y, vl); - __riscv_vsse32_v_f32m1(z, incz, vec_z, vl); + __riscv_vsse32_v_f32m1(z, sizeof(float) * incz, vec_z, vl); x += vl; y += vl; z += vl; diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 542dab6..20d1c72 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -32,7 +32,7 @@ elseif (RISCV) target_link_libraries(test PUBLIC target-riscv) endif() -add_compile_options(-O3 -Wall -Wextra) +add_compile_options(-O1 -Wall -Wextra) # add -mfp16-format=ieee diff --git a/tests/src/generate_test.py b/tests/src/generate_test.py index 20a16e3..e455a12 100644 --- a/tests/src/generate_test.py +++ b/tests/src/generate_test.py @@ -36,13 +36,14 @@ def rand16(shape): ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((6, 7))) ]), ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((1, 7))) ]), ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((6, 1))) ]), - ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((7, ))) ]), - ("add_inplace", lambda a, b: a + b, [("actual", torch.zeros((7, 7))), ("b", rand((7, 7))) ]), + ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((7, ))) ]), + ("add_inplace", lambda a, b: a + b, [("actual", torch.zeros((7, 7))), ("b", rand((7, 7))) ]), ("add1", lambda a, b: a + b, [("a", rand((7, 7))), ("v", random.random()) ]), - ("clip", lambda a, v_min, v_max: torch.clip(a, v_min, v_max), [("a", rand((7, 7))), ("v_min", random.random() - 1), ("v_max", random.random())]), + ("clip", lambda a, v_min, v_max: torch.clip(a, v_min, v_max), + [("a", rand((7, 7))), ("v_min", random.random() - 1), ("v_max", random.random()) ]), ("div", lambda a, b: a / b, [("a", rand((7, 7))), ("b", rand((7, 7))) ]), ("fill", lambda a, v: a.fill_(v), [("actual", torch.zeros((7, 7))), ("v", random.random()) ]), - ("matmul_t", lambda a, b: a @ b.T, [("a", rand((6, 7))), ("b", rand((5, 7))) ]), + ("matmul_t", lambda a, b: a @ b.T, [("a", rand((6, 7))), ("b", rand((5, 7))) ]), ("matmul", lambda a, b: a @ b, [("a", rand((6, 7))), ("b", rand((7, 5))) ]), ("max", lambda a: torch.max(a), [("a", rand((7, 7))) ]), ("maximum", lambda a, b: torch.maximum(a, b), [("a", rand((7, 7))), ("b", rand((7, 7))) ]), @@ -55,43 +56,42 @@ def rand16(shape): ("sum", lambda a: torch.sum(a), [("a", rand((7, 7))), ]), ("linear", lambda x, w, b: torch.nn.functional.linear(x, w, b), - [("x", rand((6, 7))), ("w", rand((5, 7))), ("b", rand((1, 5))) ]), + [("x", rand((6, 7))), ("w", rand((5, 7))), ("b", rand((1, 5))) ]), ("linear", lambda x, w, b: torch.nn.functional.linear(x, w, b), - [("x", rand((6, 7))), ("w", rand((5, 7))), ("b", rand((5, ))) ]), + [("x", rand((6, 7))), ("w", rand((5, 7))), ("b", rand((5, ))) ]), ("relu", lambda x: torch.nn.functional.relu(x), [("x", rand((7, 7))) ]), ("softmax", lambda a: torch.nn.functional.softmax(a, dim=0), - [("x", rand((7, 7))+1) ], - ", 0" ), + [("x", rand((7, 7))+1), ("0", None) ]), ("softmax", lambda a: torch.nn.functional.softmax(a, dim=1), - [("x", rand((7, 7))+1) ], - ", 1" ), + [("x", rand((7, 7))+1), ("1", None) ]), ("softmax", lambda a: torch.nn.functional.softmax(a, dim=-1), - [("x", rand((7, 7))+1) ], - ", -1" ), + [("x", rand((7, 7))+1), ("-1", None) ]), ("relu6", lambda x: torch.nn.functional.relu6(x), [("x", rand((7, 7))) ]), ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=0, dilation=1, groups=1).permute((0, 2, 3, 1)), - [("x", rand((1, 16, 16, 3))), ("w", rand((3, 3, 3, 6))), ("b", rand((6, )))], - ", (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1" ), + [("x", rand((1, 16, 16, 3))), ("w", rand((3, 3, 3, 6))), ("b", rand((6, ))), + ("(size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1", None) ]), ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=1).permute((0, 2, 3, 1)), - [("x", rand((1, 16, 16, 3))), ("w", rand((3, 3, 3, 71))), ("b", rand((71, )))], - ", (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 1" ), - ("nchw_to_nhwc", lambda x: x.permute((0, 2, 3, 1)), [("x", rand((1, 2, 3, 3))) ]), - ("nhwc_to_nchw", lambda x: x.permute((0, 3, 1, 2)), [("x", rand((1, 3, 3, 2))) ]), + [("x", rand((1, 16, 16, 3))), ("w", rand((3, 3, 3, 71))), ("b", rand((71, ))), + ("(size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 1", None) ]), + ("nchw_to_nhwc", lambda x: x.permute((0, 2, 3, 1)), [("x", rand((1, 2, 3, 3))) ]), + ("nhwc_to_nchw", lambda x: x.permute((0, 3, 1, 2)), [("x", rand((1, 3, 3, 2))) ]), ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=16).permute((0, 2, 3, 1)), - [("x", rand((1, 12, 12, 16))), ("w", rand((3, 3, 1, 16))), ("b", rand((16, )))], - ", (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 16" ), + [("x", rand((1, 12, 12, 16))), ("w", rand((3, 3, 1, 16))), ("b", rand((16, ))), + ("(size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 16", None) ]), ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=1).permute((0, 2, 3, 1)), - [("x", rand((1, 12, 12, 16))), ("w", rand((3, 3, 16, 56))), ("b", rand((56, )))], - ", (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 1" ), - ("layer_norm", lambda x, w, b: torch.nn.functional.layer_norm(x, x.shape, w, b, eps=1e-05), - [("x", rand((6, 5))), ("w", rand((6, 5))), ("b", rand((6, 5))) ], - ", 1e-05" ), + [("x", rand((1, 12, 12, 16))), ("w", rand((3, 3, 16, 56))), ("b", rand((56, ))), + ("(size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 1", None) ]), + + ("layer_norm", lambda x, w, b: torch.nn.functional.layer_norm(x, (x.shape[1], ), w, b, eps=1e-05), + [("x", rand((6, 5))), ("1", None), ("w", rand((5))), ("b", torch.zeros((5))), ("1e-05", None) ]), + ("layer_norm", lambda x, w, b: torch.nn.functional.layer_norm(x, (x.shape[1], ), w, b, eps=1e-05), + [("x", rand((6, 5))), ("1", None), ("w", rand((5))), ("b", rand((5))), ("1e-05", None) ]), ("abs", lambda a: torch.abs(a), [("a", rand16((1, 7))), ]), ("add", lambda a, b: a + b, [("a", rand16((6, 7))), ("b", rand16((6, 7))) ]), - ("matmul_t", lambda a, b: a @ b.T, [("a", rand16((6, 7))), ("b", rand16((5, 7))) ]), + ("matmul_t", lambda a, b: a @ b.T, [("a", rand16((6, 7))), ("b", rand16((5, 7))) ]), ("matmul", lambda a, b: a @ b, [("a", rand16((6, 7))), ("b", rand16((7, 5))) ]), ] @@ -144,14 +144,18 @@ def format_tensor(name: str, tensor: torch.Tensor): -def generate_test_pattern(op, function, inputs, additional_params=""): - result = function(*[value for name, value in inputs]) +def generate_test_pattern(op, function, inputs): + actual_inputs = [value for name, value in inputs if value is not None] + result = function(*actual_inputs) tensor_constructors = [] tensor_destructors = [] for name, value in inputs: + if type(value) == str: + pass + if type(value) == torch.Tensor and name != "actual": dim = len(value.shape) shape = ", ".join([str(s) for s in value.shape]) @@ -184,8 +188,8 @@ def generate_test_pattern(op, function, inputs, additional_params=""): inputs = ", ".join([name for name, value in inputs if name != "actual"]) inputs = ", " + inputs if inputs else inputs - func_str = env.from_string(""" NN_{{ op }}(actual{{ inputs }}{{ additional_params }});\n""").render( - op=op, inputs=inputs, additional_params=additional_params + func_str = env.from_string(""" NN_{{ op }}(actual{{ inputs }});\n""").render( + op=op, inputs=inputs ) test_template = env.from_string(""" diff --git a/tests/src/generated.c b/tests/src/generated.c index e1c8eae..4423c09 100644 --- a/tests/src/generated.c +++ b/tests/src/generated.c @@ -866,18 +866,47 @@ float v = 0.25891675029296335; // [[-4.1312113 2.6232095 4.37248 1.7541105 4.099492 ] [-3.0611162 4. Tensor *x = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0xe2,0x32,0x84,0xc0,0xaa,0xe2,0x27,0x40,0x5b,0xeb,0x8b,0x40,0xb1,0x86,0xe0,0x3f,0xa,0x2f,0x83,0x40,0x54,0xe9,0x43,0xc0,0xad,0x81,0x8f,0x40,0xb,0x59,0x6b,0x40,0x40,0x70,0x6,0xc0,0xc0,0xc7,0x88,0x40,0x63,0x24,0x11,0xc0,0xc9,0x41,0x87,0xc0,0x6,0xe2,0x95,0x40,0x5c,0xd6,0xc7,0x3f,0x98,0x94,0x32,0x40,0x49,0xca,0x9b,0x3f,0xbc,0xa8,0x38,0x3f,0x1a,0x2e,0xd5,0x3f,0xf8,0x4,0xee,0x3f,0xce,0x1a,0x55,0xc0,0x7c,0x46,0x51,0x40,0x48,0x16,0xab,0x3e,0xcc,0xf,0xb,0x40,0x27,0x52,0x8b,0xc0,0x12,0x40,0x46,0xc0,0x4e,0x6d,0xf,0xc0,0xc,0xf2,0x82,0xc0,0x24,0xb1,0x79,0x40,0x30,0x6b,0x48,0x3f,0x7d,0x24,0x6a,0xc0 }); - // [[-3.08712 -1.1476618 4.215437 -2.0621502 4.5133142 ] [ 2.7400148 -3. - Tensor *w = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0x60,0x93,0x45,0xc0,0x95,0xe6,0x92,0xbf,0xdc,0xe4,0x86,0x40,0x45,0xfa,0x3,0xc0,0x12,0x6d,0x90,0x40,0x67,0x5c,0x2f,0x40,0xc3,0x19,0x66,0xc0,0x9e,0xdc,0x8f,0xc0,0x2e,0xa2,0xb6,0x3f,0xe6,0xae,0x5a,0x40,0xc,0xd1,0x7e,0xbf,0x37,0x5b,0x8c,0xc0,0xe8,0x23,0xee,0x3f,0x5f,0xad,0xd4,0xbf,0xb0,0x99,0x17,0xc0,0x94,0xaa,0xd9,0x3e,0xe,0x40,0x6f,0x40,0xf4,0xe1,0x8f,0xc0,0x7d,0xfc,0x8f,0x3f,0x40,0x42,0x75,0xbe,0xc5,0x9a,0x5b,0xc0,0xe8,0x1c,0x86,0x40,0x10,0x5b,0x41,0xbf,0x9f,0xc,0x99,0x40,0x74,0xb8,0x63,0xc0,0x88,0xea,0x9b,0x3e,0x65,0x9b,0xa9,0xbf,0x40,0x48,0x86,0x3f,0x12,0x41,0x9a,0xc0,0xd,0x5c,0xbe,0x3f }); - // [[-2.663992 2.8002076 -2.148797 -0.04181087 -3.8693757 ] [-3.2119048 2. - Tensor *b = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0xd8,0x7e,0x2a,0xc0,0x9a,0x36,0x33,0x40,0xe4,0x85,0x9,0xc0,0xe0,0x41,0x2b,0xbd,0xda,0xa3,0x77,0xc0,0xd9,0x8f,0x4d,0xc0,0xb8,0x40,0x18,0x40,0x87,0xcb,0x8e,0x40,0x4b,0x58,0x85,0x40,0x54,0x95,0x83,0xc0,0x85,0x1f,0xd3,0xbf,0x84,0xc4,0x5b,0x40,0xa4,0x4,0xfc,0x3f,0xb0,0xd0,0x32,0x40,0xde,0x3,0x91,0x40,0x42,0xae,0xaf,0xbf,0x2d,0xfb,0xd6,0xbf,0xbc,0xca,0xcd,0x3e,0x25,0x21,0x91,0xc0,0xa7,0x0,0x8a,0xbf,0x90,0x80,0x97,0x40,0x44,0x2e,0xd3,0xbe,0xc,0xc7,0xea,0xbf,0xa7,0xf4,0xf9,0xbf,0x6,0x6d,0x7f,0xbf,0x0,0x43,0xa8,0xbc,0x2a,0xd5,0x8c,0xc0,0x26,0x8e,0x73,0x40,0xbf,0x68,0x9a,0xc0,0x85,0xf,0x1d,0xc0 }); + // [-3.08712 -1.1476618 4.215437 -2.0621502 4.5133142] + Tensor *w = NN_tensor(1, (size_t[]){ 5 }, DTYPE_F32, (uint8_t[]){ 0x60,0x93,0x45,0xc0,0x95,0xe6,0x92,0xbf,0xdc,0xe4,0x86,0x40,0x45,0xfa,0x3,0xc0,0x12,0x6d,0x90,0x40 }); + // [0. 0. 0. 0. 0.] + Tensor *b = NN_tensor(1, (size_t[]){ 5 }, DTYPE_F32, (uint8_t[]){ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 }); - // [[ 1.8757112 2.0029697 3.1432943 -0.89979887 1.4017185 ] [-6.301275 -2. - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0x4e,0x17,0xf0,0x3f,0xa8,0x30,0x0,0x40,0xbc,0x2b,0x49,0x40,0x38,0x59,0x66,0xbf,0x83,0x6b,0xb3,0x3f,0xb,0xa4,0xc9,0xc0,0xc6,0xe2,0x10,0xc0,0x65,0xc,0x38,0xbe,0xbf,0xd8,0x3f,0x40,0x0,0xc9,0x8f,0x3d,0xd5,0xbc,0x47,0xbf,0x7c,0x4a,0x20,0x41,0xfe,0xaf,0x8f,0x40,0x76,0x25,0xd,0x40,0x1d,0x99,0x30,0x40,0x3c,0x68,0xa2,0xbf,0x8b,0x4f,0xae,0xbf,0xe,0xa8,0xab,0xbf,0xa8,0xef,0x80,0xc0,0xad,0x97,0x49,0xbf,0x84,0xda,0xd1,0x3f,0xb5,0x8e,0x13,0xbf,0x43,0xfd,0xf,0xc0,0x6a,0x3c,0x15,0xc1,0xfc,0x90,0x43,0x40,0x18,0x53,0x91,0xbe,0x1e,0x6,0x1e,0xc0,0x72,0xda,0x9e,0x40,0x6b,0x90,0xaa,0xc0,0xb,0x4d,0x8d,0xc0 }); + // [[ 5.8688583e+00 -3.2666373e-01 3.5860448e+00 -7.0029483e-03 3.4407492e+00] + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0xb0,0xcd,0xbb,0x40,0x78,0x40,0xa7,0xbe,0xc2,0x81,0x65,0x40,0xfd,0x78,0xe5,0xbb,0x3c,0x35,0x5c,0x40,0xe7,0x62,0x86,0x40,0x88,0x10,0x86,0xbf,0xed,0x9b,0x34,0x40,0xbe,0x59,0xd,0x40,0xb7,0x52,0x75,0x40,0xa8,0x14,0x27,0x40,0xf0,0xe3,0xd3,0x3f,0x42,0x97,0xab,0x40,0x73,0x5a,0x29,0xbf,0xad,0xd0,0x48,0x40,0x2b,0xc3,0xa2,0xbf,0x0,0x6c,0x34,0xbe,0xe5,0x29,0x2e,0x40,0xab,0x17,0xc5,0xbf,0x84,0x5e,0xd,0xc1,0xb7,0x6c,0x71,0xc0,0x6f,0x43,0x85,0xbe,0x90,0x55,0x65,0x40,0x81,0xca,0x33,0x40,0x23,0x41,0x87,0xc0,0xb0,0xc4,0x9a,0x3f,0x42,0xd2,0x93,0x3f,0x2e,0x49,0xde,0x40,0x6e,0xa4,0xa1,0xbf,0x36,0x14,0x79,0xc0 }); Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F32); cycles = read_cycles(); - NN_layer_norm(actual, x, w, b, 1e-05); + NN_layer_norm(actual, x, 1, w, b, 1e-05); + cycles = read_cycles() - cycles; + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + + NN_delete_tensor(x); + NN_delete_tensor(w); + NN_delete_tensor(b); + + NN_delete_tensor(golden); + NN_free_tensor_data(actual); + NN_delete_tensor(actual); + } + + { + printf("layer_norm: "); + + // [[ 2.7400148 -3.5953224 -4.495681 1.4268243 3.416925 ] [-0.9953773 -4. + Tensor *x = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0x67,0x5c,0x2f,0x40,0xc3,0x19,0x66,0xc0,0x9e,0xdc,0x8f,0xc0,0x2e,0xa2,0xb6,0x3f,0xe6,0xae,0x5a,0x40,0xc,0xd1,0x7e,0xbf,0x37,0x5b,0x8c,0xc0,0xe8,0x23,0xee,0x3f,0x5f,0xad,0xd4,0xbf,0xb0,0x99,0x17,0xc0,0x94,0xaa,0xd9,0x3e,0xe,0x40,0x6f,0x40,0xf4,0xe1,0x8f,0xc0,0x7d,0xfc,0x8f,0x3f,0x40,0x42,0x75,0xbe,0xc5,0x9a,0x5b,0xc0,0xe8,0x1c,0x86,0x40,0x10,0x5b,0x41,0xbf,0x9f,0xc,0x99,0x40,0x74,0xb8,0x63,0xc0,0x88,0xea,0x9b,0x3e,0x65,0x9b,0xa9,0xbf,0x40,0x48,0x86,0x3f,0x12,0x41,0x9a,0xc0,0xd,0x5c,0xbe,0x3f,0xd8,0x7e,0x2a,0xc0,0x9a,0x36,0x33,0x40,0xe4,0x85,0x9,0xc0,0xe0,0x41,0x2b,0xbd,0xda,0xa3,0x77,0xc0 }); + // [-3.2119048 2.37895 4.4623446 4.167028 -4.1119785] + Tensor *w = NN_tensor(1, (size_t[]){ 5 }, DTYPE_F32, (uint8_t[]){ 0xd9,0x8f,0x4d,0xc0,0xb8,0x40,0x18,0x40,0x87,0xcb,0x8e,0x40,0x4b,0x58,0x85,0x40,0x54,0x95,0x83,0xc0 }); + // [-1.6493994 3.4338694 1.9688916 2.7939873 4.531722 ] + Tensor *b = NN_tensor(1, (size_t[]){ 5 }, DTYPE_F32, (uint8_t[]){ 0x85,0x1f,0xd3,0xbf,0x84,0xc4,0x5b,0x40,0xa4,0x4,0xfc,0x3f,0xb0,0xd0,0x32,0x40,0xde,0x3,0x91,0x40 }); + + + // [[-4.4186983 0.91179496 -3.9810324 4.7263665 0.14178845] [-2.463022 0. + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0xfa,0x65,0x8d,0xc0,0x65,0x6b,0x69,0x3f,0x3c,0xc9,0x7e,0xc0,0x65,0x3e,0x97,0x40,0xfe,0x30,0x11,0x3e,0x27,0xa2,0x1d,0xc0,0xd1,0x38,0x8b,0x3d,0x22,0xe7,0x15,0x41,0xa0,0xf7,0x1e,0x40,0x1c,0x97,0xc8,0x40,0xec,0xc9,0x1,0xc0,0x5a,0x55,0xd5,0x40,0xe6,0x68,0xb7,0xc0,0x71,0x13,0x8c,0x40,0x39,0x44,0xa2,0x40,0x4c,0xb4,0xcf,0x3f,0x33,0x17,0xc1,0x40,0xb3,0x32,0x3b,0x3f,0xc,0x82,0x0,0x41,0xec,0xd7,0xd,0x41,0x10,0x3d,0x40,0xc0,0x7f,0x9b,0x2f,0x40,0x2f,0xa6,0xa9,0x40,0x86,0xd4,0x98,0xc0,0xfd,0x88,0x2c,0x3f,0x76,0x90,0xc0,0x3e,0x1f,0x36,0xef,0x40,0xbc,0x29,0xa,0x3e,0x6c,0x61,0x9a,0x40,0x53,0xce,0x13,0x41 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F32); + + cycles = read_cycles(); + NN_layer_norm(actual, x, 1, w, b, 1e-05); cycles = read_cycles() - cycles; printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); @@ -893,12 +922,12 @@ float v = 0.25891675029296335; { printf("abs: "); - // [[ 0.8887 -1.089 3.473 -2.275 -2.672 0.4395 -4.1 ]] - Tensor *a = NN_tensor(2, (size_t[]){ 1, 7 }, DTYPE_F16, (uint8_t[]){ 0x1c,0x3b,0x5b,0xbc,0xf2,0x42,0x8d,0xc0,0x58,0xc1,0x8,0x37,0x1a,0xc4 }); + // [[ 1.436 -3.793 -2.328 1.855 2.836 -0.4395 -3.89 ]] + Tensor *a = NN_tensor(2, (size_t[]){ 1, 7 }, DTYPE_F16, (uint8_t[]){ 0xbe,0x3d,0x96,0xc3,0xa8,0xc0,0x6c,0x3f,0xac,0x41,0x8,0xb7,0xc8,0xc3 }); - // [[0.8887 1.089 3.473 2.275 2.672 0.4395 4.1 ]] - Tensor *golden = NN_tensor(2, (size_t[]){ 1, 7 }, DTYPE_F16, (uint8_t[]){ 0x1c,0x3b,0x5b,0x3c,0xf2,0x42,0x8d,0x40,0x58,0x41,0x8,0x37,0x1a,0x44 }); + // [[1.436 3.793 2.328 1.855 2.836 0.4395 3.89 ]] + Tensor *golden = NN_tensor(2, (size_t[]){ 1, 7 }, DTYPE_F16, (uint8_t[]){ 0xbe,0x3d,0x96,0x43,0xa8,0x40,0x6c,0x3f,0xac,0x41,0x8,0x37,0xc8,0x43 }); Tensor *actual = NN_zeros(2, (size_t[]){ 1, 7 }, DTYPE_F16); cycles = read_cycles(); @@ -916,14 +945,14 @@ float v = 0.25891675029296335; { printf("add: "); - // [[-4.562 1.929 3.305 2.203 -4.254 1.094 3.145 ] [ 0.3125 2. - Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x90,0xc4,0xb7,0x3f,0x9c,0x42,0x68,0x40,0x41,0xc4,0x60,0x3c,0x4a,0x42,0x0,0x35,0x3c,0x41,0xf,0x41,0x5b,0xc4,0xf0,0xc1,0xe9,0xbf,0xb8,0x3e,0xf4,0x40,0xc1,0xbf,0x29,0x44,0xba,0x42,0xb2,0xbb,0x6c,0x44,0xa4,0x3e,0xe,0xc0,0x58,0xc0,0x63,0x42,0x24,0x38,0xb0,0xb4,0xc8,0x41,0x80,0x23,0x67,0x43,0xac,0x41,0x4c,0x40,0x0,0x25,0xc1,0xbf,0x97,0x40,0xba,0xc0,0xff,0xc4,0x6a,0x44,0x7e,0x3c,0xf8,0xbf,0x79,0x40,0x74,0x3c,0xea,0xba }); - // [[-0.9424 -4.082 4.418 -2.158 -2.074 4.344 -1.309 ] [-4.55 -4.477 0. - Tensor *b = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x8a,0xbb,0x15,0xc4,0x6b,0x44,0x51,0xc0,0x26,0xc0,0x58,0x44,0x3c,0xbd,0x8d,0xc4,0x7a,0xc4,0xf0,0x2d,0xe4,0x3f,0xa6,0xc2,0xe4,0x44,0xe2,0x44,0xc8,0x3d,0x80,0x40,0x4,0xb6,0x62,0x3f,0x4,0xb6,0x60,0xb0,0xc8,0xb1,0x7f,0xc4,0xfe,0x3e,0xce,0x44,0x23,0xc1,0x99,0xc3,0xec,0x44,0x17,0x3f,0xe1,0x41,0xa6,0x3c,0x97,0xbc,0x18,0x36,0x60,0x43,0x6b,0xc4,0x12,0xc1,0x44,0xbf,0x1,0xc4,0x3d,0xc4,0x30,0x33,0xd6,0xbe,0xfc,0x42,0x77,0xc2 }); + // [[-0.7617 -2.164 1.372 -3.262 1.836 0.07324 -3.746 ] [ 1.24 0. + Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x18,0xba,0x54,0xc0,0x7d,0x3d,0x86,0xc2,0x58,0x3f,0xb0,0x2c,0x7e,0xc3,0xf6,0x3c,0x1c,0x3b,0x5b,0xbc,0xf2,0x42,0x8d,0xc0,0x58,0xc1,0x8,0x37,0x1a,0xc4,0x90,0xc4,0xb7,0x3f,0x9c,0x42,0x68,0x40,0x41,0xc4,0x60,0x3c,0x4a,0x42,0x0,0x35,0x3c,0x41,0xf,0x41,0x5b,0xc4,0xf0,0xc1,0xe9,0xbf,0xb8,0x3e,0xf4,0x40,0xc1,0xbf,0x29,0x44,0xba,0x42,0xb2,0xbb,0x6c,0x44,0xa4,0x3e,0xe,0xc0,0x58,0xc0,0x63,0x42,0x24,0x38,0xb0,0xb4,0xc8,0x41 }); + // [[ 0.01465 3.701 2.836 2.148 0.01953 -1.938 2.295 ] [-2.363 -4. + Tensor *b = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x80,0x23,0x67,0x43,0xac,0x41,0x4c,0x40,0x0,0x25,0xc1,0xbf,0x97,0x40,0xba,0xc0,0xff,0xc4,0x6a,0x44,0x7e,0x3c,0xf8,0xbf,0x79,0x40,0x74,0x3c,0xea,0xba,0x8a,0xbb,0x15,0xc4,0x6b,0x44,0x51,0xc0,0x26,0xc0,0x58,0x44,0x3c,0xbd,0x8d,0xc4,0x7a,0xc4,0xf0,0x2d,0xe4,0x3f,0xa6,0xc2,0xe4,0x44,0xe2,0x44,0xc8,0x3d,0x80,0x40,0x4,0xb6,0x62,0x3f,0x4,0xb6,0x60,0xb0,0xc8,0xb1,0x7f,0xc4,0xfe,0x3e,0xce,0x44,0x23,0xc1,0x99,0xc3,0xec,0x44 }); - // [[-5.504 -2.152 7.723 0.04492 -6.33 5.438 1.836 ] [-4.24 -1. - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x81,0xc5,0x4e,0xc0,0xb9,0x47,0xc0,0x29,0x54,0xc6,0x70,0x45,0x58,0x3f,0x3d,0xc4,0x70,0xbf,0x3e,0x41,0xc4,0xc0,0x4b,0xc6,0xd4,0x41,0x90,0x46,0xd8,0x43,0xfc,0x34,0x92,0x43,0x36,0x45,0x5a,0xbd,0x49,0x44,0xeb,0x3d,0x86,0xc6,0xc8,0xb6,0x0,0x48,0x1a,0xc0,0x18,0xc4,0xd0,0x47,0x26,0x3f,0xa4,0x46,0xff,0x43,0x1,0x3c,0x68,0x36,0xff,0x3e,0x3f,0xc0,0xe6,0xc4,0xd0,0xc6,0x90,0x36,0x3b,0xc2,0x12,0xbf,0x38,0x38,0x9b,0x44,0x19,0xc4 }); + // [[-0.747 1.537 4.207 -1.113 1.855 -1.865 -1.451 ] [-1.123 -4. + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0xfa,0xb9,0x26,0x3e,0x35,0x44,0x74,0xbc,0x6c,0x3f,0x76,0xbf,0xce,0xbd,0x7e,0xbc,0x1c,0xc4,0xa6,0x42,0x98,0x44,0x44,0xc4,0xf8,0xb6,0x36,0x3e,0xf7,0xc4,0x81,0xc5,0x4e,0xc0,0xb9,0x47,0xc0,0x29,0x54,0xc6,0x70,0x45,0x58,0x3f,0x3d,0xc4,0x70,0xbf,0x3e,0x41,0xc4,0xc0,0x4b,0xc6,0xd4,0x41,0x90,0x46,0xd8,0x43,0xfc,0x34,0x92,0x43,0x36,0x45,0x5a,0xbd,0x49,0x44,0xeb,0x3d,0x86,0xc6,0xc8,0xb6,0x0,0x48,0x1a,0xc0,0x18,0xc4,0xd0,0x47 }); Tensor *actual = NN_zeros(2, (size_t[]){ 6, 7 }, DTYPE_F16); cycles = read_cycles(); @@ -942,14 +971,14 @@ float v = 0.25891675029296335; { printf("matmul_t: "); - // [[-1.172 1.45 -0.249 -2.309 0.415 1.167 4.414 ] [-2.223 -4. - Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0xb0,0xbc,0xcd,0x3d,0xf8,0xb3,0x9e,0xc0,0xa4,0x36,0xab,0x3c,0x6a,0x44,0x72,0xc0,0x50,0xc4,0x91,0x3d,0xcc,0xbe,0xab,0x40,0xa0,0xa9,0x30,0x40,0xd0,0x2f,0xa3,0x43,0x3,0x3f,0xf8,0xc4,0xba,0x40,0xee,0x41,0x5e,0x44,0xc8,0x3d,0xc3,0xbd,0x48,0x44,0x56,0x38,0x50,0x41,0x40,0xb2,0x37,0xc4,0x2a,0xc1,0xd7,0xc1,0x42,0xc3,0x6,0x40,0x40,0xc0,0x44,0xb7,0xe8,0xc1,0x4,0xc4,0xee,0x44,0xe2,0xc4,0x54,0x3a,0x42,0x43,0x6d,0xbe,0x25,0x44 }); - // [[ 3.73 -3.604 3.691 -1.338 -1.387 0.913 1.709 ] [ 0.625 -1.797 2. - Tensor *b = NN_tensor(2, (size_t[]){ 5, 7 }, DTYPE_F16, (uint8_t[]){ 0x76,0x43,0x35,0xc3,0x62,0x43,0x5a,0xbd,0x8c,0xbd,0x4e,0x3b,0xd6,0x3e,0x0,0x39,0x30,0xbf,0xaf,0x41,0x3c,0x41,0x95,0xc2,0x4c,0x40,0x9c,0xc2,0x8,0xc0,0x32,0xc3,0xf0,0xc3,0xb,0xc0,0xb2,0x41,0xf8,0x3f,0x9a,0xba,0x14,0x39,0x9e,0x44,0xbc,0xb7,0x47,0xbc,0x83,0xc4,0x10,0x44,0x95,0x3e,0x13,0xc2,0xb4,0x41,0x68,0x44,0xb2,0xbf,0x8,0x43,0x10,0x40,0x36,0xc4 }); + // [[ 1.772 2.94 1.162 -1.147 0.3809 3.688 -4.418 ] [-2.535 -1. + Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x17,0x3f,0xe1,0x41,0xa6,0x3c,0x97,0xbc,0x18,0x36,0x60,0x43,0x6b,0xc4,0x12,0xc1,0x44,0xbf,0x1,0xc4,0x3d,0xc4,0x30,0x33,0xd6,0xbe,0xfc,0x42,0x77,0xc2,0xb0,0xbc,0xcd,0x3d,0xf8,0xb3,0x9e,0xc0,0xa4,0x36,0xab,0x3c,0x6a,0x44,0x72,0xc0,0x50,0xc4,0x91,0x3d,0xcc,0xbe,0xab,0x40,0xa0,0xa9,0x30,0x40,0xd0,0x2f,0xa3,0x43,0x3,0x3f,0xf8,0xc4,0xba,0x40,0xee,0x41,0x5e,0x44,0xc8,0x3d,0xc3,0xbd,0x48,0x44,0x56,0x38,0x50,0x41,0x40,0xb2 }); + // [[-4.215 -2.582 -2.92 -3.629 2.012 -2.125 -0.454] [-2.953 -4.016 4.93 -4.88 + Tensor *b = NN_tensor(2, (size_t[]){ 5, 7 }, DTYPE_F16, (uint8_t[]){ 0x37,0xc4,0x2a,0xc1,0xd7,0xc1,0x42,0xc3,0x6,0x40,0x40,0xc0,0x44,0xb7,0xe8,0xc1,0x4,0xc4,0xee,0x44,0xe2,0xc4,0x54,0x3a,0x42,0x43,0x6d,0xbe,0x25,0x44,0x76,0x43,0x35,0xc3,0x62,0x43,0x5a,0xbd,0x8c,0xbd,0x4e,0x3b,0xd6,0x3e,0x0,0x39,0x30,0xbf,0xaf,0x41,0x3c,0x41,0x95,0xc2,0x4c,0x40,0x9c,0xc2,0x8,0xc0,0x32,0xc3,0xf0,0xc3,0xb,0xc0,0xb2,0x41,0xf8,0x3f }); - // [[ 0.6055 -23.53 2.664 18.67 -3.719 ] [ 14.96 -8.83 22.73 -27 - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F16, (uint8_t[]){ 0xd8,0x38,0xe2,0xcd,0x54,0x41,0xab,0x4c,0x70,0xc3,0x7b,0x4b,0x6a,0xc8,0xaf,0x4d,0xdc,0xce,0x4f,0x42,0xb5,0x46,0xa9,0xcf,0x74,0xbf,0xaf,0x4f,0xef,0x4d,0x4c,0x4b,0x76,0x4d,0x2a,0xc5,0x6,0xcf,0x80,0x50,0x6e,0xcc,0x2e,0x4b,0x62,0x4d,0x51,0xca,0x13,0xcc,0x68,0xd2,0x88,0xd2,0xed,0x49,0xa6,0x45,0xbe,0xc4 }); + // [[-19.36 15.07 0.2311 -21.11 -10.48 ] [ 44.94 4.1 -13.24 3 + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F16, (uint8_t[]){ 0xd7,0xcc,0x89,0x4b,0x65,0x33,0x47,0xcd,0x3d,0xc9,0x9e,0x51,0x1a,0x44,0x9f,0xca,0xcb,0x42,0x9d,0x51,0x43,0x47,0x1b,0x4d,0x15,0xcd,0x3c,0xcb,0x3f,0x4c,0xd7,0xca,0x3e,0xce,0x6b,0x4f,0xa3,0x45,0xf0,0x48,0x60,0xd1,0xf3,0x42,0xec,0x47,0x52,0xca,0x2e,0xc5,0xbe,0xd0,0x8a,0xd0,0xfd,0x50,0xb0,0x4b,0xc5,0xcd }); Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F16); cycles = read_cycles(); @@ -968,14 +997,14 @@ float v = 0.25891675029296335; { printf("matmul: "); - // [[ 3.799 -0.9375 2.906 -3.535 -2.842 -4.227 -2.646 ] [ 0.3467 2. - Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x99,0x43,0x80,0xbb,0xd0,0x41,0x12,0xc3,0xaf,0xc1,0x3a,0xc4,0x4b,0xc1,0x8c,0x35,0x8,0x41,0xf4,0x42,0x92,0xb8,0x80,0x23,0x64,0xb9,0x80,0xb3,0xac,0xc2,0x31,0x42,0xd7,0x44,0xb0,0xb0,0x80,0x2f,0xf4,0x3e,0x76,0x3b,0x65,0xbc,0x12,0xc1,0x34,0x42,0x2c,0xc2,0xd6,0xba,0x4b,0x41,0xf0,0x31,0x76,0x43,0x98,0x42,0x74,0xc0,0x88,0x42,0x68,0x42,0x41,0xbd,0xc0,0xc1,0x97,0xc0,0xbf,0x40,0x8e,0x42,0x18,0x40,0xf6,0x40,0x83,0x40,0xa5,0x41 }); - // [[ 3.447 1.572 1.816 2.164 -4.492 ] [-1.641 1.665 -2.959 -3.242 4. - Tensor *b = NN_tensor(2, (size_t[]){ 7, 5 }, DTYPE_F16, (uint8_t[]){ 0xe5,0x42,0x4a,0x3e,0x44,0x3f,0x54,0x40,0x7e,0xc4,0x90,0xbe,0xa9,0x3e,0xeb,0xc1,0x7c,0xc2,0x30,0x44,0x72,0xba,0xb7,0x3f,0x70,0x42,0x18,0xb6,0x4c,0xbc,0x46,0x44,0x6a,0xc2,0x24,0x3c,0x44,0x3f,0xd0,0x43,0xaf,0x3d,0x4c,0x43,0x52,0x44,0x60,0x30,0x4e,0x40,0xc6,0xc1,0x4f,0xc2,0xea,0x3a,0x2e,0xbc,0xb8,0xb2,0xf4,0xb6,0x7c,0xbe,0xc6,0x41,0x44,0x41,0x56,0xbc }); + // [[-0.825 0.635 4.617 -0.4834 -1.069 -4.51 4.062 ] [ 1.6455 -3. + Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x9a,0xba,0x14,0x39,0x9e,0x44,0xbc,0xb7,0x47,0xbc,0x83,0xc4,0x10,0x44,0x95,0x3e,0x13,0xc2,0xb4,0x41,0x68,0x44,0xb2,0xbf,0x8,0x43,0x10,0x40,0x36,0xc4,0x99,0x43,0x80,0xbb,0xd0,0x41,0x12,0xc3,0xaf,0xc1,0x3a,0xc4,0x4b,0xc1,0x8c,0x35,0x8,0x41,0xf4,0x42,0x92,0xb8,0x80,0x23,0x64,0xb9,0x80,0xb3,0xac,0xc2,0x31,0x42,0xd7,0x44,0xb0,0xb0,0x80,0x2f,0xf4,0x3e,0x76,0x3b,0x65,0xbc,0x12,0xc1,0x34,0x42,0x2c,0xc2,0xd6,0xba,0x4b,0x41 }); + // [[ 0.1855 3.73 3.297 -2.227 3.266 ] [ 3.203 -1.313 -2.875 -2.295 2. + Tensor *b = NN_tensor(2, (size_t[]){ 7, 5 }, DTYPE_F16, (uint8_t[]){ 0xf0,0x31,0x76,0x43,0x98,0x42,0x74,0xc0,0x88,0x42,0x68,0x42,0x41,0xbd,0xc0,0xc1,0x97,0xc0,0xbf,0x40,0x8e,0x42,0x18,0x40,0xf6,0x40,0x83,0x40,0xa5,0x41,0xe5,0x42,0x4a,0x3e,0x44,0x3f,0x54,0x40,0x7e,0xc4,0x90,0xbe,0xa9,0x3e,0xeb,0xc1,0x7c,0xc2,0x30,0x44,0x72,0xba,0xb7,0x3f,0x70,0x42,0x18,0xb6,0x4c,0xbc,0x46,0x44,0x6a,0xc2,0x24,0x3c,0x44,0x3f,0xd0,0x43 }); - // [[ 6.496 28.61 -8.2 0.7925 -40.28 ] [ -6.105 15.83 2.59 -9 - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F16, (uint8_t[]){ 0x7f,0x46,0x27,0x4f,0x1a,0xc8,0x57,0x3a,0x9,0xd1,0x1b,0xc6,0xea,0x4b,0x2e,0x41,0xd7,0xc8,0xe0,0x42,0x97,0xce,0x4b,0x42,0xe8,0x44,0xad,0xcc,0x43,0x4d,0x10,0xce,0x58,0xbf,0xb7,0x49,0xad,0xc2,0xea,0xcd,0x19,0x50,0x45,0x4c,0xb9,0xc0,0x62,0xbe,0x9f,0x4d,0xf5,0xc8,0x15,0xc1,0x93,0x4d,0xc7,0xc4,0xa2,0x4e }); + // [[ 38.1 -18.73 -1.123 22.31 30.25 ] [ 24.11 19.95 48.34 27.86 -17 + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F16, (uint8_t[]){ 0xc3,0x50,0xaf,0xcc,0x7e,0xbc,0x94,0x4d,0x90,0x4f,0x7,0x4e,0xfd,0x4c,0xb,0x52,0xf7,0x4e,0x5f,0xcc,0x2e,0x48,0xee,0xcb,0x3a,0xce,0xd9,0x48,0x16,0xd2,0xb9,0x4c,0x1a,0x3e,0xbf,0x43,0xbb,0x4c,0x58,0xcd,0xeb,0x4d,0xee,0x49,0xf9,0x4e,0x4e,0x4f,0xd1,0xcb,0x6,0x4c,0x55,0xc9,0x59,0x4b,0x25,0x4c,0x94,0xcd }); Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F16); cycles = read_cycles(); From 2fe5df4657f743768c92e939e864667508029002 Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Wed, 10 Jul 2024 16:18:00 -0700 Subject: [PATCH 13/21] REFACTOR: change directory name --- nn/CMakeLists.txt | 155 +++++++++++---------- nn/{op => functional}/nn_abs.c | 0 nn/{op => functional}/nn_abs.h | 0 nn/{op => functional}/nn_add.c | 0 nn/{op => functional}/nn_add.h | 0 nn/{op => functional}/nn_attention.c | 0 nn/{op => functional}/nn_batch_norm2d.c | 0 nn/{op => functional}/nn_batch_norm2d.h | 0 nn/{op => functional}/nn_cast.c | 0 nn/{op => functional}/nn_clip.c | 0 nn/{op => functional}/nn_clip.h | 0 nn/{op => functional}/nn_conv2d.c | 0 nn/{op => functional}/nn_conv2d.h | 0 nn/{op => functional}/nn_copy.c | 0 nn/{op => functional}/nn_copy.h | 0 nn/{op => functional}/nn_div.c | 0 nn/{op => functional}/nn_div.h | 0 nn/{op => functional}/nn_elu.c | 0 nn/{op => functional}/nn_elu.h | 0 nn/{op => functional}/nn_fill.c | 0 nn/{op => functional}/nn_fill.h | 0 nn/{op => functional}/nn_float16.h | 0 nn/{op => functional}/nn_interpolate.c | 0 nn/{op => functional}/nn_interpolate.h | 0 nn/{op => functional}/nn_layer_norm.c | 0 nn/{op => functional}/nn_layer_norm.h | 0 nn/{op => functional}/nn_linear.c | 2 +- nn/{op => functional}/nn_linear.h | 2 +- nn/{op => functional}/nn_math.h | 152 -------------------- nn/{op => functional}/nn_matmul.c | 0 nn/{op => functional}/nn_matmul.h | 0 nn/{op => functional}/nn_max.c | 0 nn/{op => functional}/nn_max.h | 0 nn/{op => functional}/nn_max_pool2d.c | 0 nn/{op => functional}/nn_max_pool2d.h | 0 nn/{op => functional}/nn_maximum.c | 0 nn/{op => functional}/nn_maximum.h | 0 nn/{op => functional}/nn_min.c | 0 nn/{op => functional}/nn_min.h | 0 nn/{op => functional}/nn_minimum.c | 0 nn/{op => functional}/nn_minimum.h | 0 nn/{op => functional}/nn_mm.c | 0 nn/{op => functional}/nn_mm.h | 0 nn/{op => functional}/nn_mul.c | 0 nn/{op => functional}/nn_mul.h | 0 nn/{op => functional}/nn_neg.c | 0 nn/{op => functional}/nn_neg.h | 0 nn/{op => functional}/nn_norm.c | 0 nn/{op => functional}/nn_norm.h | 0 nn/{op => functional}/nn_print.c | 0 nn/{op => functional}/nn_print.h | 0 nn/{op => functional}/nn_relu.c | 0 nn/{op => functional}/nn_relu.h | 0 nn/{op => functional}/nn_relu6.c | 0 nn/{op => functional}/nn_relu6.h | 0 nn/{op => functional}/nn_softmax.c | 0 nn/{op => functional}/nn_softmax.h | 0 nn/{op => functional}/nn_sub.c | 0 nn/{op => functional}/nn_sub.h | 0 nn/{op => functional}/nn_sum.c | 0 nn/{op => functional}/nn_sum.h | 0 nn/{op => functional}/nn_tensor_creation.c | 0 nn/{op => functional}/nn_tensor_creation.h | 0 nn/{op => functional}/nn_transpose.c | 0 nn/{op => functional}/nn_transpose.h | 0 nn/{op => functional}/nn_unfold.c | 0 nn/{op => functional}/nn_unfold.h | 0 nn/{op => }/nn.h | 0 nn/{op => }/nn_tensor.h | 0 nn/{op => }/rv.h | 0 70 files changed, 81 insertions(+), 230 deletions(-) rename nn/{op => functional}/nn_abs.c (100%) rename nn/{op => functional}/nn_abs.h (100%) rename nn/{op => functional}/nn_add.c (100%) rename nn/{op => functional}/nn_add.h (100%) rename nn/{op => functional}/nn_attention.c (100%) rename nn/{op => functional}/nn_batch_norm2d.c (100%) rename nn/{op => functional}/nn_batch_norm2d.h (100%) rename nn/{op => functional}/nn_cast.c (100%) rename nn/{op => functional}/nn_clip.c (100%) rename nn/{op => functional}/nn_clip.h (100%) rename nn/{op => functional}/nn_conv2d.c (100%) rename nn/{op => functional}/nn_conv2d.h (100%) rename nn/{op => functional}/nn_copy.c (100%) rename nn/{op => functional}/nn_copy.h (100%) rename nn/{op => functional}/nn_div.c (100%) rename nn/{op => functional}/nn_div.h (100%) rename nn/{op => functional}/nn_elu.c (100%) rename nn/{op => functional}/nn_elu.h (100%) rename nn/{op => functional}/nn_fill.c (100%) rename nn/{op => functional}/nn_fill.h (100%) rename nn/{op => functional}/nn_float16.h (100%) rename nn/{op => functional}/nn_interpolate.c (100%) rename nn/{op => functional}/nn_interpolate.h (100%) rename nn/{op => functional}/nn_layer_norm.c (100%) rename nn/{op => functional}/nn_layer_norm.h (100%) rename nn/{op => functional}/nn_linear.c (84%) rename nn/{op => functional}/nn_linear.h (95%) rename nn/{op => functional}/nn_math.h (80%) rename nn/{op => functional}/nn_matmul.c (100%) rename nn/{op => functional}/nn_matmul.h (100%) rename nn/{op => functional}/nn_max.c (100%) rename nn/{op => functional}/nn_max.h (100%) rename nn/{op => functional}/nn_max_pool2d.c (100%) rename nn/{op => functional}/nn_max_pool2d.h (100%) rename nn/{op => functional}/nn_maximum.c (100%) rename nn/{op => functional}/nn_maximum.h (100%) rename nn/{op => functional}/nn_min.c (100%) rename nn/{op => functional}/nn_min.h (100%) rename nn/{op => functional}/nn_minimum.c (100%) rename nn/{op => functional}/nn_minimum.h (100%) rename nn/{op => functional}/nn_mm.c (100%) rename nn/{op => functional}/nn_mm.h (100%) rename nn/{op => functional}/nn_mul.c (100%) rename nn/{op => functional}/nn_mul.h (100%) rename nn/{op => functional}/nn_neg.c (100%) rename nn/{op => functional}/nn_neg.h (100%) rename nn/{op => functional}/nn_norm.c (100%) rename nn/{op => functional}/nn_norm.h (100%) rename nn/{op => functional}/nn_print.c (100%) rename nn/{op => functional}/nn_print.h (100%) rename nn/{op => functional}/nn_relu.c (100%) rename nn/{op => functional}/nn_relu.h (100%) rename nn/{op => functional}/nn_relu6.c (100%) rename nn/{op => functional}/nn_relu6.h (100%) rename nn/{op => functional}/nn_softmax.c (100%) rename nn/{op => functional}/nn_softmax.h (100%) rename nn/{op => functional}/nn_sub.c (100%) rename nn/{op => functional}/nn_sub.h (100%) rename nn/{op => functional}/nn_sum.c (100%) rename nn/{op => functional}/nn_sum.h (100%) rename nn/{op => functional}/nn_tensor_creation.c (100%) rename nn/{op => functional}/nn_tensor_creation.h (100%) rename nn/{op => functional}/nn_transpose.c (100%) rename nn/{op => functional}/nn_transpose.h (100%) rename nn/{op => functional}/nn_unfold.c (100%) rename nn/{op => functional}/nn_unfold.h (100%) rename nn/{op => }/nn.h (100%) rename nn/{op => }/nn_tensor.h (100%) rename nn/{op => }/rv.h (100%) diff --git a/nn/CMakeLists.txt b/nn/CMakeLists.txt index fa6d5f6..c0d0c1a 100644 --- a/nn/CMakeLists.txt +++ b/nn/CMakeLists.txt @@ -3,32 +3,32 @@ option(AVX "Use AVX implementation" OFF) option(RVV "Use RISCV vector extension implementation" OFF) set(cpu_impl - impl/cpu/abs.c - impl/cpu/acc.c - impl/cpu/acc1.c - impl/cpu/add.c - impl/cpu/add1.c - impl/cpu/div.c - impl/cpu/dot.c - impl/cpu/fill.c - impl/cpu/max.c - impl/cpu/maximum.c - impl/cpu/maximum1.c - impl/cpu/min.c - impl/cpu/minimum.c - impl/cpu/minimum1.c - impl/cpu/mul.c - impl/cpu/mul1.c - impl/cpu/neg.c - impl/cpu/norm.c - impl/cpu/rmsnorm.c - impl/cpu/sgn.c - impl/cpu/softmax.c - impl/cpu/sqr.c - impl/cpu/sqrt.c - impl/cpu/sub.c - impl/cpu/sum.c - impl/cpu/transpose.c + ./impl/cpu/abs.c + ./impl/cpu/acc.c + ./impl/cpu/acc1.c + ./impl/cpu/add.c + ./impl/cpu/add1.c + ./impl/cpu/div.c + ./impl/cpu/dot.c + ./impl/cpu/fill.c + ./impl/cpu/max.c + ./impl/cpu/maximum.c + ./impl/cpu/maximum1.c + ./impl/cpu/min.c + ./impl/cpu/minimum.c + ./impl/cpu/minimum1.c + ./impl/cpu/mul.c + ./impl/cpu/mul1.c + ./impl/cpu/neg.c + ./impl/cpu/norm.c + ./impl/cpu/rmsnorm.c + ./impl/cpu/sgn.c + ./impl/cpu/softmax.c + ./impl/cpu/sqr.c + ./impl/cpu/sqrt.c + ./impl/cpu/sub.c + ./impl/cpu/sum.c + ./impl/cpu/transpose.c ) @@ -42,24 +42,24 @@ if (RVV) add_compile_definitions(RVV) set(rvv_impl - impl/rvv/abs.c - impl/rvv/acc.c - impl/rvv/acc1.c - impl/rvv/add.c - impl/rvv/add1.c - impl/rvv/div.c - impl/rvv/max.c - impl/rvv/maximum.c - impl/rvv/maximum1.c - impl/rvv/min.c - impl/rvv/minimum.c - impl/rvv/minimum1.c - impl/rvv/mul.c - impl/rvv/mul1.c - impl/rvv/neg.c - impl/rvv/sub.c - impl/rvv/transpose.c - ) + ./impl/rvv/abs.c + ./impl/rvv/acc.c + ./impl/rvv/acc1.c + ./impl/rvv/add.c + ./impl/rvv/add1.c + ./impl/rvv/div.c + ./impl/rvv/max.c + ./impl/rvv/maximum.c + ./impl/rvv/maximum1.c + ./impl/rvv/min.c + ./impl/rvv/minimum.c + ./impl/rvv/minimum1.c + ./impl/rvv/mul.c + ./impl/rvv/mul1.c + ./impl/rvv/neg.c + ./impl/rvv/sub.c + ./impl/rvv/transpose.c + ) endif () if (GEMMINI) @@ -73,44 +73,47 @@ endif () add_library(nn - op/nn_tensor_creation.c - op/nn_print.c - op/nn_abs.c - op/nn_add.c - op/nn_batch_norm2d.c - op/nn_conv2d.c - op/nn_clip.c - op/nn_copy.c - op/nn_div.c - op/nn_elu.c - op/nn_fill.c - op/nn_interpolate.c - op/nn_layer_norm.c - op/nn_linear.c - op/nn_matmul.c - op/nn_mm.c - op/nn_norm.c - op/nn_max.c - op/nn_maximum.c - op/nn_max_pool2d.c - op/nn_min.c - op/nn_minimum.c - op/nn_mul.c - op/nn_neg.c - op/nn_relu.c - op/nn_relu6.c - op/nn_softmax.c - op/nn_sub.c - op/nn_sum.c - op/nn_transpose.c - op/nn_unfold.c + ./functional/nn_tensor_creation.c + ./functional/nn_print.c + ./functional/nn_abs.c + ./functional/nn_add.c + ./functional/nn_batch_norm2d.c + ./functional/nn_conv2d.c + ./functional/nn_clip.c + ./functional/nn_copy.c + ./functional/nn_div.c + ./functional/nn_elu.c + ./functional/nn_fill.c + ./functional/nn_interpolate.c + ./functional/nn_layer_norm.c + ./functional/nn_linear.c + ./functional/nn_matmul.c + ./functional/nn_mm.c + ./functional/nn_norm.c + ./functional/nn_max.c + ./functional/nn_maximum.c + ./functional/nn_max_pool2d.c + ./functional/nn_min.c + ./functional/nn_minimum.c + ./functional/nn_mul.c + ./functional/nn_neg.c + ./functional/nn_relu.c + ./functional/nn_relu6.c + ./functional/nn_softmax.c + ./functional/nn_sub.c + ./functional/nn_sum.c + ./functional/nn_transpose.c + ./functional/nn_unfold.c ${rvv_impl} ${gemmini_impl} ${cpu_impl} ) -target_include_directories(nn PUBLIC op impl) +target_include_directories(nn PUBLIC + ./ + ./functional + ./impl) if (X86) message("NN: Building for x86") diff --git a/nn/op/nn_abs.c b/nn/functional/nn_abs.c similarity index 100% rename from nn/op/nn_abs.c rename to nn/functional/nn_abs.c diff --git a/nn/op/nn_abs.h b/nn/functional/nn_abs.h similarity index 100% rename from nn/op/nn_abs.h rename to nn/functional/nn_abs.h diff --git a/nn/op/nn_add.c b/nn/functional/nn_add.c similarity index 100% rename from nn/op/nn_add.c rename to nn/functional/nn_add.c diff --git a/nn/op/nn_add.h b/nn/functional/nn_add.h similarity index 100% rename from nn/op/nn_add.h rename to nn/functional/nn_add.h diff --git a/nn/op/nn_attention.c b/nn/functional/nn_attention.c similarity index 100% rename from nn/op/nn_attention.c rename to nn/functional/nn_attention.c diff --git a/nn/op/nn_batch_norm2d.c b/nn/functional/nn_batch_norm2d.c similarity index 100% rename from nn/op/nn_batch_norm2d.c rename to nn/functional/nn_batch_norm2d.c diff --git a/nn/op/nn_batch_norm2d.h b/nn/functional/nn_batch_norm2d.h similarity index 100% rename from nn/op/nn_batch_norm2d.h rename to nn/functional/nn_batch_norm2d.h diff --git a/nn/op/nn_cast.c b/nn/functional/nn_cast.c similarity index 100% rename from nn/op/nn_cast.c rename to nn/functional/nn_cast.c diff --git a/nn/op/nn_clip.c b/nn/functional/nn_clip.c similarity index 100% rename from nn/op/nn_clip.c rename to nn/functional/nn_clip.c diff --git a/nn/op/nn_clip.h b/nn/functional/nn_clip.h similarity index 100% rename from nn/op/nn_clip.h rename to nn/functional/nn_clip.h diff --git a/nn/op/nn_conv2d.c b/nn/functional/nn_conv2d.c similarity index 100% rename from nn/op/nn_conv2d.c rename to nn/functional/nn_conv2d.c diff --git a/nn/op/nn_conv2d.h b/nn/functional/nn_conv2d.h similarity index 100% rename from nn/op/nn_conv2d.h rename to nn/functional/nn_conv2d.h diff --git a/nn/op/nn_copy.c b/nn/functional/nn_copy.c similarity index 100% rename from nn/op/nn_copy.c rename to nn/functional/nn_copy.c diff --git a/nn/op/nn_copy.h b/nn/functional/nn_copy.h similarity index 100% rename from nn/op/nn_copy.h rename to nn/functional/nn_copy.h diff --git a/nn/op/nn_div.c b/nn/functional/nn_div.c similarity index 100% rename from nn/op/nn_div.c rename to nn/functional/nn_div.c diff --git a/nn/op/nn_div.h b/nn/functional/nn_div.h similarity index 100% rename from nn/op/nn_div.h rename to nn/functional/nn_div.h diff --git a/nn/op/nn_elu.c b/nn/functional/nn_elu.c similarity index 100% rename from nn/op/nn_elu.c rename to nn/functional/nn_elu.c diff --git a/nn/op/nn_elu.h b/nn/functional/nn_elu.h similarity index 100% rename from nn/op/nn_elu.h rename to nn/functional/nn_elu.h diff --git a/nn/op/nn_fill.c b/nn/functional/nn_fill.c similarity index 100% rename from nn/op/nn_fill.c rename to nn/functional/nn_fill.c diff --git a/nn/op/nn_fill.h b/nn/functional/nn_fill.h similarity index 100% rename from nn/op/nn_fill.h rename to nn/functional/nn_fill.h diff --git a/nn/op/nn_float16.h b/nn/functional/nn_float16.h similarity index 100% rename from nn/op/nn_float16.h rename to nn/functional/nn_float16.h diff --git a/nn/op/nn_interpolate.c b/nn/functional/nn_interpolate.c similarity index 100% rename from nn/op/nn_interpolate.c rename to nn/functional/nn_interpolate.c diff --git a/nn/op/nn_interpolate.h b/nn/functional/nn_interpolate.h similarity index 100% rename from nn/op/nn_interpolate.h rename to nn/functional/nn_interpolate.h diff --git a/nn/op/nn_layer_norm.c b/nn/functional/nn_layer_norm.c similarity index 100% rename from nn/op/nn_layer_norm.c rename to nn/functional/nn_layer_norm.c diff --git a/nn/op/nn_layer_norm.h b/nn/functional/nn_layer_norm.h similarity index 100% rename from nn/op/nn_layer_norm.h rename to nn/functional/nn_layer_norm.h diff --git a/nn/op/nn_linear.c b/nn/functional/nn_linear.c similarity index 84% rename from nn/op/nn_linear.c rename to nn/functional/nn_linear.c index 6d7b8d9..08f8122 100644 --- a/nn/op/nn_linear.c +++ b/nn/functional/nn_linear.c @@ -3,7 +3,7 @@ void NN_linear(Tensor *y, Tensor *x, Tensor *w, Tensor *b) { - NN_matmul_t(y, x, w); + NN_mm_t(y, x, w); if (b != NULL) { NN_add(y, y, b); diff --git a/nn/op/nn_linear.h b/nn/functional/nn_linear.h similarity index 95% rename from nn/op/nn_linear.h rename to nn/functional/nn_linear.h index b14c6ba..1c98f8d 100644 --- a/nn/op/nn_linear.h +++ b/nn/functional/nn_linear.h @@ -4,7 +4,7 @@ #include #include "nn_tensor.h" -#include "nn_matmul.h" +#include "nn_mm.h" #include "nn_add.h" diff --git a/nn/op/nn_math.h b/nn/functional/nn_math.h similarity index 80% rename from nn/op/nn_math.h rename to nn/functional/nn_math.h index f8f01f6..b11ab5e 100644 --- a/nn/op/nn_math.h +++ b/nn/functional/nn_math.h @@ -14,158 +14,6 @@ - - - -// static void NN__dot_bf16(int n, float *s, bfloat16_t *x, bfloat16_t *y) { -// int i = 0; -// float sumf = 0; - -// #if defined(__AVX512BF16__) -// __m512 c1 = _mm512_setzero_ps(); -// __m512 c2 = _mm512_setzero_ps(); -// for (; i + 64 <= n; i += 64) { -// c1 = _mm512_dpbf16_ps(c1, m512bh(_mm512_loadu_si512((x + i))), -// m512bh(_mm512_loadu_si512((y + i)))); -// c2 = _mm512_dpbf16_ps(c2, m512bh(_mm512_loadu_si512((x + i + 32))), -// m512bh(_mm512_loadu_si512((y + i + 32)))); -// } -// sumf += (float)_mm512_reduce_add_ps(c1); -// sumf += (float)_mm512_reduce_add_ps(c2); - -// #elif defined(__AVX512F__) -// #define LOAD(p) _mm512_castsi512_ps(_mm512_slli_epi32(_mm512_cvtepu16_epi32(_mm256_loadu_si256((const __m256i *)(p))), 16)) -// __m512 c1 = _mm512_setzero_ps(); -// __m512 c2 = _mm512_setzero_ps(); -// for (; i + 32 <= n; i += 32) { -// c1 = _mm512_add_ps(_mm512_mul_ps(LOAD(x + i), LOAD(y + i)), c1); -// c2 = _mm512_add_ps(_mm512_mul_ps(LOAD(x + i + 16), LOAD(y + i + 16)), c2); -// } -// sumf += (float)_mm512_reduce_add_ps(c1); -// sumf += (float)_mm512_reduce_add_ps(c2); - -// #undef LOAD -// #elif defined(__AVX2__) -// #define LOAD(p) _mm256_castsi256_ps(_mm256_slli_epi32(_mm256_cvtepu16_epi32(_mm_loadu_si128((const __m128i *)(p))), 16)) -// __m256 c1 = _mm256_setzero_ps(); -// __m256 c2 = _mm256_setzero_ps(); -// __m256 c3 = _mm256_setzero_ps(); -// __m256 c4 = _mm256_setzero_ps(); -// for (; i + 32 <= n; i += 32) { -// c1 = _mm256_add_ps(_mm256_mul_ps(LOAD(x + i), LOAD(y + i)), c1); -// c2 = _mm256_add_ps(_mm256_mul_ps(LOAD(x + i + 8), LOAD(y + i + 8)), c2); -// c3 = _mm256_add_ps(_mm256_mul_ps(LOAD(x + i + 16), LOAD(y + i + 16)), c3); -// c4 = _mm256_add_ps(_mm256_mul_ps(LOAD(x + i + 24), LOAD(y + i + 24)), c4); -// } -// __m128 g; -// c1 = _mm256_add_ps(_mm256_add_ps(c1, c3), -// _mm256_add_ps(c2, c4)); -// g = _mm_add_ps(_mm256_extractf128_ps(c1, 1), -// _mm256_castps256_ps128(c1)); -// g = _mm_add_ps(g, _mm_movehl_ps(g, g)); -// g = _mm_add_ss(g, _mm_movehdup_ps(g)); -// sumf += (float)_mm_cvtss_F32(g); - -// #undef LOAD -// #endif - -// for (; i < n; i += 1) { -// sumf += (float)(GGML_BF16_TO_FP32(x[i]) * -// GGML_BF16_TO_FP32(y[i])); -// } -// *s = sumf; -// } - -// static void NN__dot_f16(int n, float *s, float16_t *x, float16_t *y) { -// float sumf = 0.0; - -// #if defined(GGML_SIMD) -// const int np = (n & ~(GGML_F16_STEP - 1)); - -// GGML_F16_VEC sum[GGML_F16_ARR] = { GGML_F16_VEC_ZERO }; - -// GGML_F16_VEC ax[GGML_F16_ARR]; -// GGML_F16_VEC ay[GGML_F16_ARR]; - -// for (int i = 0; i < np; i += GGML_F16_STEP) { -// for (int j = 0; j < GGML_F16_ARR; j++) { -// ax[j] = GGML_F16_VEC_LOAD(x + i + j*GGML_F16_EPR, j); -// ay[j] = GGML_F16_VEC_LOAD(y + i + j*GGML_F16_EPR, j); - -// sum[j] = GGML_F16_VEC_FMA(sum[j], ax[j], ay[j]); -// } -// } - -// // reduce sum0..sum3 to sum0 -// GGML_F16_VEC_REDUCE(sumf, sum); - -// // leftovers -// for (int i = np; i < n; i += 1) { -// sumf += (float)(GGML_FP16_TO_FP32(x[i])*GGML_FP16_TO_FP32(y[i])); -// } -// #else -// for (int i = 0; i < n; i += 1) { -// sumf += (float)(GGML_FP16_TO_FP32(x[i])*GGML_FP16_TO_FP32(y[i])); -// } -// #endif -// *s = sumf; -// } - -// // compute GGML_VEC_DOT_UNROLL dot products at once -// // xs - x row stride in bytes -// inline static void NN__dot_f16_unroll(const int n, const int xs, float *restrict s, void * restrict xv, float16_t * restrict y) { -// float sumf[GGML_VEC_DOT_UNROLL] = { 0.0 }; - -// float16_t * restrict x[GGML_VEC_DOT_UNROLL]; - -// for (int i = 0; i < GGML_VEC_DOT_UNROLL; i += 1) { -// x[i] = (float16_t *) ((char *) xv + i*xs); -// } - -// #if defined(GGML_SIMD) -// const int np = (n & ~(GGML_F16_STEP - 1)); - -// GGML_F16_VEC sum[GGML_VEC_DOT_UNROLL][GGML_F16_ARR] = { { GGML_F16_VEC_ZERO } }; - -// GGML_F16_VEC ax[GGML_F16_ARR]; -// GGML_F16_VEC ay[GGML_F16_ARR]; - -// for (int i = 0; i < np; i += GGML_F16_STEP) { -// for (int j = 0; j < GGML_F16_ARR; j++) { -// ay[j] = GGML_F16_VEC_LOAD(y + i + j*GGML_F16_EPR, j); - -// for (int k = 0; k < GGML_VEC_DOT_UNROLL; ++k) { -// ax[j] = GGML_F16_VEC_LOAD(x[k] + i + j*GGML_F16_EPR, j); - -// sum[k][j] = GGML_F16_VEC_FMA(sum[k][j], ax[j], ay[j]); -// } -// } -// } - -// // reduce sum0..sum3 to sum0 -// for (int k = 0; k < GGML_VEC_DOT_UNROLL; ++k) { -// GGML_F16_VEC_REDUCE(sumf[k], sum[k]); -// } - -// // leftovers -// for (int i = np; i < n; i += 1) { -// for (int j = 0; j < GGML_VEC_DOT_UNROLL; ++j) { -// sumf[j] += (float)(GGML_FP16_TO_FP32(x[j][i])*GGML_FP16_TO_FP32(y[i])); -// } -// } -// #else -// for (int i = 0; i < n; i += 1) { -// for (int j = 0; j < GGML_VEC_DOT_UNROLL; ++j) { -// sumf[j] += (float)(GGML_FP16_TO_FP32(x[j][i])*GGML_FP16_TO_FP32(y[i])); -// } -// } -// #endif - -// for (int i = 0; i < GGML_VEC_DOT_UNROLL; i += 1) { -// s[i] = sumf[i]; -// } -// } - // inline static void NN__mad_F32(const int n, float *y, const float *x, const float v) { // #if defined(GGML_SIMD) // const int np = (n & ~(GGML_F32_STEP - 1)); diff --git a/nn/op/nn_matmul.c b/nn/functional/nn_matmul.c similarity index 100% rename from nn/op/nn_matmul.c rename to nn/functional/nn_matmul.c diff --git a/nn/op/nn_matmul.h b/nn/functional/nn_matmul.h similarity index 100% rename from nn/op/nn_matmul.h rename to nn/functional/nn_matmul.h diff --git a/nn/op/nn_max.c b/nn/functional/nn_max.c similarity index 100% rename from nn/op/nn_max.c rename to nn/functional/nn_max.c diff --git a/nn/op/nn_max.h b/nn/functional/nn_max.h similarity index 100% rename from nn/op/nn_max.h rename to nn/functional/nn_max.h diff --git a/nn/op/nn_max_pool2d.c b/nn/functional/nn_max_pool2d.c similarity index 100% rename from nn/op/nn_max_pool2d.c rename to nn/functional/nn_max_pool2d.c diff --git a/nn/op/nn_max_pool2d.h b/nn/functional/nn_max_pool2d.h similarity index 100% rename from nn/op/nn_max_pool2d.h rename to nn/functional/nn_max_pool2d.h diff --git a/nn/op/nn_maximum.c b/nn/functional/nn_maximum.c similarity index 100% rename from nn/op/nn_maximum.c rename to nn/functional/nn_maximum.c diff --git a/nn/op/nn_maximum.h b/nn/functional/nn_maximum.h similarity index 100% rename from nn/op/nn_maximum.h rename to nn/functional/nn_maximum.h diff --git a/nn/op/nn_min.c b/nn/functional/nn_min.c similarity index 100% rename from nn/op/nn_min.c rename to nn/functional/nn_min.c diff --git a/nn/op/nn_min.h b/nn/functional/nn_min.h similarity index 100% rename from nn/op/nn_min.h rename to nn/functional/nn_min.h diff --git a/nn/op/nn_minimum.c b/nn/functional/nn_minimum.c similarity index 100% rename from nn/op/nn_minimum.c rename to nn/functional/nn_minimum.c diff --git a/nn/op/nn_minimum.h b/nn/functional/nn_minimum.h similarity index 100% rename from nn/op/nn_minimum.h rename to nn/functional/nn_minimum.h diff --git a/nn/op/nn_mm.c b/nn/functional/nn_mm.c similarity index 100% rename from nn/op/nn_mm.c rename to nn/functional/nn_mm.c diff --git a/nn/op/nn_mm.h b/nn/functional/nn_mm.h similarity index 100% rename from nn/op/nn_mm.h rename to nn/functional/nn_mm.h diff --git a/nn/op/nn_mul.c b/nn/functional/nn_mul.c similarity index 100% rename from nn/op/nn_mul.c rename to nn/functional/nn_mul.c diff --git a/nn/op/nn_mul.h b/nn/functional/nn_mul.h similarity index 100% rename from nn/op/nn_mul.h rename to nn/functional/nn_mul.h diff --git a/nn/op/nn_neg.c b/nn/functional/nn_neg.c similarity index 100% rename from nn/op/nn_neg.c rename to nn/functional/nn_neg.c diff --git a/nn/op/nn_neg.h b/nn/functional/nn_neg.h similarity index 100% rename from nn/op/nn_neg.h rename to nn/functional/nn_neg.h diff --git a/nn/op/nn_norm.c b/nn/functional/nn_norm.c similarity index 100% rename from nn/op/nn_norm.c rename to nn/functional/nn_norm.c diff --git a/nn/op/nn_norm.h b/nn/functional/nn_norm.h similarity index 100% rename from nn/op/nn_norm.h rename to nn/functional/nn_norm.h diff --git a/nn/op/nn_print.c b/nn/functional/nn_print.c similarity index 100% rename from nn/op/nn_print.c rename to nn/functional/nn_print.c diff --git a/nn/op/nn_print.h b/nn/functional/nn_print.h similarity index 100% rename from nn/op/nn_print.h rename to nn/functional/nn_print.h diff --git a/nn/op/nn_relu.c b/nn/functional/nn_relu.c similarity index 100% rename from nn/op/nn_relu.c rename to nn/functional/nn_relu.c diff --git a/nn/op/nn_relu.h b/nn/functional/nn_relu.h similarity index 100% rename from nn/op/nn_relu.h rename to nn/functional/nn_relu.h diff --git a/nn/op/nn_relu6.c b/nn/functional/nn_relu6.c similarity index 100% rename from nn/op/nn_relu6.c rename to nn/functional/nn_relu6.c diff --git a/nn/op/nn_relu6.h b/nn/functional/nn_relu6.h similarity index 100% rename from nn/op/nn_relu6.h rename to nn/functional/nn_relu6.h diff --git a/nn/op/nn_softmax.c b/nn/functional/nn_softmax.c similarity index 100% rename from nn/op/nn_softmax.c rename to nn/functional/nn_softmax.c diff --git a/nn/op/nn_softmax.h b/nn/functional/nn_softmax.h similarity index 100% rename from nn/op/nn_softmax.h rename to nn/functional/nn_softmax.h diff --git a/nn/op/nn_sub.c b/nn/functional/nn_sub.c similarity index 100% rename from nn/op/nn_sub.c rename to nn/functional/nn_sub.c diff --git a/nn/op/nn_sub.h b/nn/functional/nn_sub.h similarity index 100% rename from nn/op/nn_sub.h rename to nn/functional/nn_sub.h diff --git a/nn/op/nn_sum.c b/nn/functional/nn_sum.c similarity index 100% rename from nn/op/nn_sum.c rename to nn/functional/nn_sum.c diff --git a/nn/op/nn_sum.h b/nn/functional/nn_sum.h similarity index 100% rename from nn/op/nn_sum.h rename to nn/functional/nn_sum.h diff --git a/nn/op/nn_tensor_creation.c b/nn/functional/nn_tensor_creation.c similarity index 100% rename from nn/op/nn_tensor_creation.c rename to nn/functional/nn_tensor_creation.c diff --git a/nn/op/nn_tensor_creation.h b/nn/functional/nn_tensor_creation.h similarity index 100% rename from nn/op/nn_tensor_creation.h rename to nn/functional/nn_tensor_creation.h diff --git a/nn/op/nn_transpose.c b/nn/functional/nn_transpose.c similarity index 100% rename from nn/op/nn_transpose.c rename to nn/functional/nn_transpose.c diff --git a/nn/op/nn_transpose.h b/nn/functional/nn_transpose.h similarity index 100% rename from nn/op/nn_transpose.h rename to nn/functional/nn_transpose.h diff --git a/nn/op/nn_unfold.c b/nn/functional/nn_unfold.c similarity index 100% rename from nn/op/nn_unfold.c rename to nn/functional/nn_unfold.c diff --git a/nn/op/nn_unfold.h b/nn/functional/nn_unfold.h similarity index 100% rename from nn/op/nn_unfold.h rename to nn/functional/nn_unfold.h diff --git a/nn/op/nn.h b/nn/nn.h similarity index 100% rename from nn/op/nn.h rename to nn/nn.h diff --git a/nn/op/nn_tensor.h b/nn/nn_tensor.h similarity index 100% rename from nn/op/nn_tensor.h rename to nn/nn_tensor.h diff --git a/nn/op/rv.h b/nn/rv.h similarity index 100% rename from nn/op/rv.h rename to nn/rv.h From 537f082981b45befcc3a4f7207107b7608df3d0c Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Wed, 10 Jul 2024 17:21:37 -0700 Subject: [PATCH 14/21] FIX: fix example --- example/fast-depth/main.c | 24 +++++++++++++++--------- example/fast-depth/termimg.h | 16 ++++++++-------- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/example/fast-depth/main.c b/example/fast-depth/main.c index 925003f..6e2d719 100644 --- a/example/fast-depth/main.c +++ b/example/fast-depth/main.c @@ -13,6 +13,7 @@ #include "nn.h" #include "model.h" +#include "termimg.h" // load the weight data block from the model.bin file INCLUDE_FILE(".rodata", "../input.bin", model_input); @@ -21,16 +22,21 @@ extern size_t model_input_start[]; extern size_t model_input_end[]; -// static void enable_vector_operations() { -// unsigned long mstatus; -// asm volatile("csrr %0, mstatus" : "=r"(mstatus)); -// mstatus |= 0x00000600 | 0x00006000 | 0x00018000; -// asm volatile("csrw mstatus, %0"::"r"(mstatus)); -// } - int main() { + #ifdef RVV + printf("Using RVV\n"); + + // enable vector instructions + unsigned long mstatus; + asm volatile("csrr %0, mstatus" : "=r"(mstatus)); + mstatus |= 0x00000600 | 0x00006000 | 0x00018000; + asm volatile("csrw mstatus, %0"::"r"(mstatus)); + #endif + + #ifdef GEMMINI + printf("Using Gemmini\n"); + #endif - // enable_vector_operations(); Model *model = malloc(sizeof(Model)); @@ -56,7 +62,7 @@ int main() { printf("output:\n"); - showASCIIImage(img); + show_ASCII_image(img); // showASCIIImage(&model->decode_conv6_2); return 0; diff --git a/example/fast-depth/termimg.h b/example/fast-depth/termimg.h index 1dd1aa4..637eec1 100644 --- a/example/fast-depth/termimg.h +++ b/example/fast-depth/termimg.h @@ -8,13 +8,13 @@ #include "nn_tensor.h" -const size_t n_mapping = 92; +const static size_t NUM_MAPPING = 92; -const uint8_t ascii_map[] = {0X20, 0X60, 0X2E, 0X2D, 0X27, 0X3A, 0X5F, 0X2C, 0X5E, 0X3D, 0X3B, 0X3E, 0X3C, 0X2B, 0X21, 0X72, 0X63, 0X2A, 0X2F, 0X7A, 0X3F, 0X73, 0X4C, 0X54, 0X76, 0X29, 0X4A, 0X37, 0X28, 0X7C, 0X46, 0X69, 0X7B, 0X43, 0X7D, 0X66, 0X49, 0X33, 0X31, 0X74, 0X6C, 0X75, 0X5B, 0X6E, 0X65, 0X6F, 0X5A, 0X35, 0X59, 0X78, 0X6A, 0X79, 0X61, 0X5D, 0X32, 0X45, 0X53, 0X77, 0X71, 0X6B, 0X50, 0X36, 0X68, 0X39, 0X64, 0X34, 0X56, 0X70, 0X4F, 0X47, 0X62, 0X55, 0X41, 0X4B, 0X58, 0X48, 0X6D, 0X38, 0X52, 0X44, 0X23, 0X24, 0X42, 0X67, 0X30, 0X4D, 0X4E, 0X57, 0X51, 0X25, 0X26, 0X40}; +const static uint8_t ASCII_MAP[] = {0X20, 0X60, 0X2E, 0X2D, 0X27, 0X3A, 0X5F, 0X2C, 0X5E, 0X3D, 0X3B, 0X3E, 0X3C, 0X2B, 0X21, 0X72, 0X63, 0X2A, 0X2F, 0X7A, 0X3F, 0X73, 0X4C, 0X54, 0X76, 0X29, 0X4A, 0X37, 0X28, 0X7C, 0X46, 0X69, 0X7B, 0X43, 0X7D, 0X66, 0X49, 0X33, 0X31, 0X74, 0X6C, 0X75, 0X5B, 0X6E, 0X65, 0X6F, 0X5A, 0X35, 0X59, 0X78, 0X6A, 0X79, 0X61, 0X5D, 0X32, 0X45, 0X53, 0X77, 0X71, 0X6B, 0X50, 0X36, 0X68, 0X39, 0X64, 0X34, 0X56, 0X70, 0X4F, 0X47, 0X62, 0X55, 0X41, 0X4B, 0X58, 0X48, 0X6D, 0X38, 0X52, 0X44, 0X23, 0X24, 0X42, 0X67, 0X30, 0X4D, 0X4E, 0X57, 0X51, 0X25, 0X26, 0X40}; -const float brightness_map[] = {0, 0.0751, 0.0829, 0.0848, 0.1227, 0.1403, 0.1559, 0.185, 0.2183, 0.2417, 0.2571, 0.2852, 0.2902, 0.2919, 0.3099, 0.3192, 0.3232, 0.3294, 0.3384, 0.3609, 0.3619, 0.3667, 0.3737, 0.3747, 0.3838, 0.3921, 0.396, 0.3984, 0.3993, 0.4075, 0.4091, 0.4101, 0.42, 0.423, 0.4247, 0.4274, 0.4293, 0.4328, 0.4382, 0.4385, 0.442, 0.4473, 0.4477, 0.4503, 0.4562, 0.458, 0.461, 0.4638, 0.4667, 0.4686, 0.4693, 0.4703, 0.4833, 0.4881, 0.4944, 0.4953, 0.4992, 0.5509, 0.5567, 0.5569, 0.5591, 0.5602, 0.5602, 0.565, 0.5776, 0.5777, 0.5818, 0.587, 0.5972, 0.5999, 0.6043, 0.6049, 0.6093, 0.6099, 0.6465, 0.6561, 0.6595, 0.6631, 0.6714, 0.6759, 0.6809, 0.6816, 0.6925, 0.7039, 0.7086, 0.7235, 0.7302, 0.7332, 0.7602, 0.7834, 0.8037, 0.9999}; +const static float BRIGHTNESS_MAP[] = {0, 0.0751, 0.0829, 0.0848, 0.1227, 0.1403, 0.1559, 0.185, 0.2183, 0.2417, 0.2571, 0.2852, 0.2902, 0.2919, 0.3099, 0.3192, 0.3232, 0.3294, 0.3384, 0.3609, 0.3619, 0.3667, 0.3737, 0.3747, 0.3838, 0.3921, 0.396, 0.3984, 0.3993, 0.4075, 0.4091, 0.4101, 0.42, 0.423, 0.4247, 0.4274, 0.4293, 0.4328, 0.4382, 0.4385, 0.442, 0.4473, 0.4477, 0.4503, 0.4562, 0.458, 0.461, 0.4638, 0.4667, 0.4686, 0.4693, 0.4703, 0.4833, 0.4881, 0.4944, 0.4953, 0.4992, 0.5509, 0.5567, 0.5569, 0.5591, 0.5602, 0.5602, 0.565, 0.5776, 0.5777, 0.5818, 0.587, 0.5972, 0.5999, 0.6043, 0.6049, 0.6093, 0.6099, 0.6465, 0.6561, 0.6595, 0.6631, 0.6714, 0.6759, 0.6809, 0.6816, 0.6925, 0.7039, 0.7086, 0.7235, 0.7302, 0.7332, 0.7602, 0.7834, 0.8037, 0.9999}; -void showASCIIImage(Tensor *tensor) { +void show_ASCII_image(Tensor *tensor) { assert(tensor->ndim == 4); assert(tensor->shape[0] == 1); assert(tensor->shape[3] == 1); @@ -39,17 +39,17 @@ void showASCIIImage(Tensor *tensor) { // normalize the pixel value to the range [0, 1] pixel_value = (pixel_value - min) / (max - min); - // find the closest brightness value in the brightness_map + // find the closest brightness value in the BRIGHTNESS_MAP size_t brightness_index = 0; - for (size_t i = 0; i < n_mapping; i += 1) { - if (pixel_value < brightness_map[i]) { + for (size_t i = 0; i < NUM_MAPPING; i += 1) { + if (pixel_value < BRIGHTNESS_MAP[i]) { break; } brightness_index = i; } // find the corresponding ASCII character - uint8_t ascii = ascii_map[brightness_index]; + uint8_t ascii = ASCII_MAP[brightness_index]; printf("%c", ascii); } printf("\n"); From acb0d21bf24b2f811b9fe1ef4325a703e53b4366 Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Wed, 10 Jul 2024 17:22:57 -0700 Subject: [PATCH 15/21] ADD: improve readme --- example/fast-depth/README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/example/fast-depth/README.md b/example/fast-depth/README.md index facee2d..dcb6692 100644 --- a/example/fast-depth/README.md +++ b/example/fast-depth/README.md @@ -41,7 +41,7 @@ Building for spike: ```bash cd ./example/fast-depth/build/ -cmake .. -D RISCV=ON +cmake .. -D RISCV=ON -D RVV=ON cmake --build . spike --isa=rv64gcv_zicntr --varch=vlen:512,elen:32 ./fast-depth ``` @@ -49,6 +49,9 @@ spike --isa=rv64gcv_zicntr --varch=vlen:512,elen:32 ./fast-depth Running with Gemmini ```bash +cd ./example/fast-depth/build/ +cmake .. -D RISCV=ON -D GEMMINI=ON +cmake --build . spike --extension=gemmini ./fast-depth ``` From cbb712d9bc13c26309cfec71c993181522974e5f Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Wed, 10 Jul 2024 18:01:23 -0700 Subject: [PATCH 16/21] REFACTOR: merge astype and copy --- nn/functional/nn_cast.c | 103 ---------------- nn/functional/nn_copy.c | 235 ++++++++++++++++++++++++++++++++++++- nn/functional/nn_copy.h | 2 + nn/functional/nn_float16.h | 154 ------------------------ 4 files changed, 235 insertions(+), 259 deletions(-) delete mode 100644 nn/functional/nn_cast.c delete mode 100644 nn/functional/nn_float16.h diff --git a/nn/functional/nn_cast.c b/nn/functional/nn_cast.c deleted file mode 100644 index eed5c9e..0000000 --- a/nn/functional/nn_cast.c +++ /dev/null @@ -1,103 +0,0 @@ - -#include "nn_tensor.h" - - -void NN_as_type(Tensor *out, Tensor *in) { - if (out->dtype == in->dtype) { - NN_copy(out, in); - return; - } - - switch (in->dtype) { - case DTYPE_U8: - switch (out->dtype) { - case DTYPE_U16: - for (size_t i = 0; i < in->size; i += 1) { - ((uint16_t *)out->data)[i] = (uint16_t)((uint8_t *)in->data)[i]; - } - return; - case DTYPE_U32: - for (size_t i = 0; i < in->size; i += 1) { - ((uint32_t *)out->data)[i] = (uint32_t)((uint8_t *)in->data)[i]; - } - return; - case DTYPE_I32: - for (size_t i = 0; i < in->size; i += 1) { - ((int32_t *)out->data)[i] = (int32_t)((uint8_t *)in->data)[i]; - } - return; - } - break; - - case DTYPE_I8: - switch (out->dtype) { - case DTYPE_I16: - for (size_t i = 0; i < in->size; i += 1) { - ((int16_t *)out->data)[i] = (int16_t)((int8_t *)in->data)[i]; - } - return; - case DTYPE_I32: - for (size_t i = 0; i < in->size; i += 1) { - ((int32_t *)out->data)[i] = (int32_t)((int8_t *)in->data)[i]; - } - return; - case DTYPE_F32: - for (size_t i = 0; i < in->size; i += 1) { - ((float *)out->data)[i] = (float)((int8_t *)in->data)[i]; - } - return; - } - break; - - case DTYPE_I16: - switch (out->dtype) { - case DTYPE_I32: - for (size_t i = 0; i < in->size; i += 1) { - ((int32_t *)out->data)[i] = (int32_t)((int16_t *)in->data)[i]; - } - return; - } - break; - - case DTYPE_I32: - switch (out->dtype) { - case DTYPE_I8: - for (size_t i = 0; i < in->size; i += 1) { - ((int8_t *)out->data)[i] = (int8_t)((int32_t *)in->data)[i]; - } - return; - case DTYPE_F32: - for (size_t i = 0; i < in->size; i += 1) { - ((float *)out->data)[i] = (float)((int32_t *)in->data)[i]; - } - return; - } - break; - - case DTYPE_F16: - switch (out->dtype) { - case DTYPE_F32: - for (size_t i = 0; i < in->size; i += 1) { - ((float *)out->data)[i] = NN_half_to_float(((float16_t *)in->data)[i]); - } - return; - } - break; - - case DTYPE_F32: - switch (out->dtype) { - case DTYPE_I32: - for (size_t i = 0; i < in->size; i += 1) { - ((int32_t *)out->data)[i] = (int32_t)((float *)in->data)[i]; - } - return; - case DTYPE_F16: - for (size_t i = 0; i < in->size; i += 1) { - ((float16_t *)out->data)[i] = NN_float_to_half(((float *)in->data)[i]); - } - return; - } - break; - } - printf("[ERROR] Cannot convert data type from %s to %s\n", NN_get_datatype_name(in->dtype), NN_get_datatype_name(out->dtype)); -} diff --git a/nn/functional/nn_copy.c b/nn/functional/nn_copy.c index 59a8651..13873e5 100644 --- a/nn/functional/nn_copy.c +++ b/nn/functional/nn_copy.c @@ -3,8 +3,239 @@ void NN_copy(Tensor *dst, Tensor *src) { assert(dst->ndim == src->ndim); - assert(dst->dtype == src->dtype); assert(dst->size == src->size); - memcpy(dst->data, src->data, dst->size * NN_sizeof(dst->dtype)); + if (dst->dtype == src->dtype) { + memcpy(dst->data, src->data, dst->size * NN_sizeof(dst->dtype)); + return; + } + + switch (src->dtype) { + case DTYPE_U8: + switch (dst->dtype) { + case DTYPE_U16: + for (size_t i = 0; i < src->size; i += 1) { + ((uint16_t *)dst->data)[i] = (uint16_t)((uint8_t *)src->data)[i]; + } + return; + case DTYPE_I16: + for (size_t i = 0; i < src->size; i += 1) { + ((int16_t *)dst->data)[i] = (int16_t)((uint8_t *)src->data)[i]; + } + return; + case DTYPE_U32: + for (size_t i = 0; i < src->size; i += 1) { + ((uint32_t *)dst->data)[i] = (uint32_t)((uint8_t *)src->data)[i]; + } + return; + case DTYPE_I32: + for (size_t i = 0; i < src->size; i += 1) { + ((int32_t *)dst->data)[i] = (int32_t)((uint8_t *)src->data)[i]; + } + return; + case DTYPE_F16: + for (size_t i = 0; i < src->size; i += 1) { + ((float16_t *)dst->data)[i] = NN_float_to_half((float)((uint8_t *)src->data)[i]); + } + return; + case DTYPE_F32: + for (size_t i = 0; i < src->size; i += 1) { + ((float *)dst->data)[i] = (float)((uint8_t *)src->data)[i]; + } + return; + default: + break; + } + break; + + case DTYPE_I8: + switch (dst->dtype) { + case DTYPE_I16: + for (size_t i = 0; i < src->size; i += 1) { + ((int16_t *)dst->data)[i] = (int16_t)((int8_t *)src->data)[i]; + } + return; + case DTYPE_I32: + for (size_t i = 0; i < src->size; i += 1) { + ((int32_t *)dst->data)[i] = (int32_t)((int8_t *)src->data)[i]; + } + return; + case DTYPE_F32: + for (size_t i = 0; i < src->size; i += 1) { + ((float *)dst->data)[i] = (float)((int8_t *)src->data)[i]; + } + return; + default: + break; + } + break; + + case DTYPE_U16: + switch (dst->dtype) { + case DTYPE_U8: + for (size_t i = 0; i < src->size; i += 1) { + ((uint8_t *)dst->data)[i] = (uint8_t)((uint16_t *)src->data)[i]; + } + return; + case DTYPE_I16: + for (size_t i = 0; i < src->size; i += 1) { + ((int16_t *)dst->data)[i] = (int16_t)((uint16_t *)src->data)[i]; + } + return; + case DTYPE_U32: + for (size_t i = 0; i < src->size; i += 1) { + ((uint32_t *)dst->data)[i] = (uint32_t)((uint16_t *)src->data)[i]; + } + return; + case DTYPE_I32: + for (size_t i = 0; i < src->size; i += 1) { + ((int32_t *)dst->data)[i] = (int32_t)((uint16_t *)src->data)[i]; + } + return; + case DTYPE_F32: + for (size_t i = 0; i < src->size; i += 1) { + ((float *)dst->data)[i] = (float)((uint16_t *)src->data)[i]; + } + return; + default: + break; + } + break; + + case DTYPE_I16: + switch (dst->dtype) { + case DTYPE_U8: + for (size_t i = 0; i < src->size; i += 1) { + ((uint8_t *)dst->data)[i] = (uint8_t)((int16_t *)src->data)[i]; + } + return; + case DTYPE_I8: + for (size_t i = 0; i < src->size; i += 1) { + ((int8_t *)dst->data)[i] = (int8_t)((int16_t *)src->data)[i]; + } + return; + case DTYPE_U16: + for (size_t i = 0; i < src->size; i += 1) { + ((uint16_t *)dst->data)[i] = (uint16_t)((int16_t *)src->data)[i]; + } + return; + case DTYPE_U32: + for (size_t i = 0; i < src->size; i += 1) { + ((uint32_t *)dst->data)[i] = (uint32_t)((int16_t *)src->data)[i]; + } + return; + case DTYPE_I32: + for (size_t i = 0; i < src->size; i += 1) { + ((int32_t *)dst->data)[i] = (int32_t)((int16_t *)src->data)[i]; + } + return; + default: + break; + } + break; + + case DTYPE_U32: + switch (dst->dtype) { + case DTYPE_U8: + for (size_t i = 0; i < src->size; i += 1) { + ((uint8_t *)dst->data)[i] = (uint8_t)((uint32_t *)src->data)[i]; + } + return; + case DTYPE_I8: + for (size_t i = 0; i < src->size; i += 1) { + ((int8_t *)dst->data)[i] = (int8_t)((uint32_t *)src->data)[i]; + } + return; + case DTYPE_U16: + for (size_t i = 0; i < src->size; i += 1) { + ((uint16_t *)dst->data)[i] = (uint16_t)((uint32_t *)src->data)[i]; + } + return; + case DTYPE_I16: + for (size_t i = 0; i < src->size; i += 1) { + ((int16_t *)dst->data)[i] = (int16_t)((uint32_t *)src->data)[i]; + } + return; + case DTYPE_I32: + for (size_t i = 0; i < src->size; i += 1) { + ((int32_t *)dst->data)[i] = (int32_t)((uint32_t *)src->data)[i]; + } + return; + case DTYPE_F32: + for (size_t i = 0; i < src->size; i += 1) { + ((float *)dst->data)[i] = (float)((uint32_t *)src->data)[i]; + } + return; + default: + break; + } + break; + + case DTYPE_I32: + switch (dst->dtype) { + case DTYPE_U8: + for (size_t i = 0; i < src->size; i += 1) { + ((uint8_t *)dst->data)[i] = (uint8_t)((int32_t *)src->data)[i]; + } + return; + case DTYPE_I8: + for (size_t i = 0; i < src->size; i += 1) { + ((int8_t *)dst->data)[i] = (int8_t)((int32_t *)src->data)[i]; + } + return; + case DTYPE_U16: + for (size_t i = 0; i < src->size; i += 1) { + ((uint16_t *)dst->data)[i] = (uint16_t)((int32_t *)src->data)[i]; + } + return; + case DTYPE_I16: + for (size_t i = 0; i < src->size; i += 1) { + ((int16_t *)dst->data)[i] = (int16_t)((int32_t *)src->data)[i]; + } + return; + case DTYPE_U32: + for (size_t i = 0; i < src->size; i += 1) { + ((uint32_t *)dst->data)[i] = (uint32_t)((int32_t *)src->data)[i]; + } + return; + case DTYPE_F32: + for (size_t i = 0; i < src->size; i += 1) { + ((float *)dst->data)[i] = (float)((int32_t *)src->data)[i]; + } + return; + default: + break; + } + break; + + case DTYPE_F16: + switch (dst->dtype) { + case DTYPE_F32: + for (size_t i = 0; i < src->size; i += 1) { + ((float *)dst->data)[i] = NN_half_to_float(((float16_t *)src->data)[i]); + } + return; + default: + break; + } + break; + + case DTYPE_F32: + switch (dst->dtype) { + case DTYPE_I32: + for (size_t i = 0; i < src->size; i += 1) { + ((int32_t *)dst->data)[i] = (int32_t)((float *)src->data)[i]; + } + return; + case DTYPE_F16: + for (size_t i = 0; i < src->size; i += 1) { + ((float16_t *)dst->data)[i] = NN_float_to_half(((float *)src->data)[i]); + } + return; + default: + break; + } + break; + } + printf("[ERROR] Cannot copy tensor from type %s to %s\n", NN_get_datatype_name(src->dtype), NN_get_datatype_name(dst->dtype)); } diff --git a/nn/functional/nn_copy.h b/nn/functional/nn_copy.h index 07d6997..2bcab46 100644 --- a/nn/functional/nn_copy.h +++ b/nn/functional/nn_copy.h @@ -10,6 +10,8 @@ /** * Copies values from one tensor to another * + * If the data types of the two tensors are different, the values are casted to the destination data type + * * @param dst: destination tensor * @param src: source tensor */ diff --git a/nn/functional/nn_float16.h b/nn/functional/nn_float16.h deleted file mode 100644 index 31beaa1..0000000 --- a/nn/functional/nn_float16.h +++ /dev/null @@ -1,154 +0,0 @@ -#ifndef __NN_FLOAT16 -#define __NN_FLOAT16 - -#include -#include -#include - -#ifdef X86 - #include -#endif - - -#ifdef _Float16 - typedef _Float16 float16_t; -#else - typedef union { - uint32_t i; - float f; - } float_uint32_union_t; - - typedef uint16_t float16_t; -#endif - -/** - * Converts a half-precision floating-point number to a single-precision floating-point number. - * - * @param h The half-precision floating-point number to convert. - * @return The single-precision floating-point number. - */ -static inline float NN_half_to_float(float16_t h) { - #ifdef _Float16 - return (float)h; - #else - // from https://github.com/AcademySoftwareFoundation/Imath/blob/main/src/Imath/half.h - // Note: This only supports the "round to even" rounding mode, which - // was the only mode supported by the original OpenEXR library - - float_uint32_union_t v; - // this code would be clearer, although it does appear to be faster - // (1.06 vs 1.08 ns/call) to avoid the constants and just do 4 - // shifts. - // - uint32_t hexpmant = ((uint32_t) (h) << 17) >> 4; - v.i = ((uint32_t) (h >> 15)) << 31; - - // the likely really does help if most of your numbers are "normal" half numbers - if ((hexpmant >= 0x00800000)) { - v.i |= hexpmant; - // either we are a normal number, in which case add in the bias difference - // otherwise make sure all exponent bits are set - if ((hexpmant < 0x0f800000)) { - v.i += 0x38000000; - } - else { - v.i |= 0x7f800000; - } - } - else if (hexpmant != 0) { - // exponent is 0 because we're denormal, don't have to extract - // the mantissa, can just use as is - // - // other compilers may provide count-leading-zeros primitives, - // but we need the community to inform us of the variants - uint32_t lc; - lc = 0; - while (0 == ((hexpmant << lc) & 0x80000000)) { - lc += 1; - } - lc -= 8; - // so nominally we want to remove that extra bit we shifted - // up, but we are going to add that bit back in, then subtract - // from it with the 0x38800000 - (lc << 23).... - // - // by combining, this allows us to skip the & operation (and - // remove a constant) - // - // hexpmant &= ~0x00800000; - v.i |= 0x38800000; - // lc is now x, where the desired exponent is then - // -14 - lc - // + 127 -> new exponent - v.i |= (hexpmant << lc); - v.i -= (lc << 23); - } - return v.f; - #endif -} - - -/** - * Converts a single-precision floating-point number to a half-precision floating-point number. - * - * @param f The single-precision floating-point number to convert. - * @return The half-precision floating-point number. - */ -static inline float16_t NN_float_to_half(float f) { - #ifdef _Float16 - return (_Float16)f; - #else - // from https://github.com/AcademySoftwareFoundation/Imath/blob/main/src/Imath/half.h - // Note: This only supports the "round to even" rounding mode, which - // was the only mode supported by the original OpenEXR library - - float_uint32_union_t v; - float16_t ret; - uint32_t e, m, ui, r, shift; - - v.f = f; - - ui = (v.i & ~0x80000000); - ret = ((v.i >> 16) & 0x8000); - - // exponent large enough to result in a normal number, round and return - if (ui >= 0x38800000) { - // inf or nan - if (ui >= 0x7f800000) { - ret |= 0x7c00; - if (ui == 0x7f800000) { - return ret; - } - m = (ui & 0x7fffff) >> 13; - // make sure we have at least one bit after shift to preserve nan-ness - return ret | (uint16_t) m | (uint16_t) (m == 0); - } - - // too large, round to infinity - if (ui > 0x477fefff) { - return ret | 0x7c00; - } - - ui -= 0x38000000; - ui = ((ui + 0x00000fff + ((ui >> 13) & 1)) >> 13); - return ret | (uint16_t) ui; - } - - // zero or flush to 0 - if (ui < 0x33000001) { - return ret; - } - - // produce a denormalized half - e = (ui >> 23); - shift = 0x7e - e; - m = 0x800000 | (ui & 0x7fffff); - r = m << (32 - shift); - ret |= (m >> shift); - if (r > 0x80000000 || (r == 0x80000000 && (ret & 0x1) != 0)) { - ret += 1; - } - return ret; - #endif -} - -#endif // __NN_FLOAT16 \ No newline at end of file From f7d17f55551dcf44880bf8b47e480d293d76b899 Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Wed, 10 Jul 2024 18:01:48 -0700 Subject: [PATCH 17/21] ADD: improve example --- example/fast-depth/CMakeLists.txt | 2 +- example/stereo-block-matching/CMakeLists.txt | 2 +- example/stereo-block-matching/main.c | 71 ++------- example/stereo-block-matching/termimg.h | 89 ----------- example/{fast-depth => utility}/termimg.h | 70 ++++++--- nn/nn_float16.h | 154 +++++++++++++++++++ 6 files changed, 223 insertions(+), 165 deletions(-) delete mode 100644 example/stereo-block-matching/termimg.h rename example/{fast-depth => utility}/termimg.h (57%) create mode 100644 nn/nn_float16.h diff --git a/example/fast-depth/CMakeLists.txt b/example/fast-depth/CMakeLists.txt index c3960ee..6648c9d 100644 --- a/example/fast-depth/CMakeLists.txt +++ b/example/fast-depth/CMakeLists.txt @@ -4,7 +4,7 @@ project(fast-depth LANGUAGES C) add_executable(fast-depth main.c) -target_include_directories(fast-depth PUBLIC inc) +target_include_directories(fast-depth PUBLIC inc ../utility) target_compile_features(fast-depth INTERFACE c_std_11) diff --git a/example/stereo-block-matching/CMakeLists.txt b/example/stereo-block-matching/CMakeLists.txt index 507352d..5ec929a 100644 --- a/example/stereo-block-matching/CMakeLists.txt +++ b/example/stereo-block-matching/CMakeLists.txt @@ -4,7 +4,7 @@ project(stereoBM LANGUAGES C) add_executable(stereoBM main.c) -target_include_directories(stereoBM PUBLIC inc) +target_include_directories(stereoBM PUBLIC inc ../utility) target_compile_features(stereoBM INTERFACE c_std_11) diff --git a/example/stereo-block-matching/main.c b/example/stereo-block-matching/main.c index 9b67045..0ac656d 100644 --- a/example/stereo-block-matching/main.c +++ b/example/stereo-block-matching/main.c @@ -60,13 +60,8 @@ Tensor* compute_dispartiy(Tensor *left, Tensor *right, int min_disparity, int ma int sad_iop = 0; - signed char *disparity = (signed char *)calloc(s_w*s_h, sizeof(signed char)); - if (!disparity) { - printf("Error: Memory allocation failed\n"); - return NULL; - } - - + Tensor *disparity_img = NN_zeros(4, (const size_t[]){1, s_h, s_w, 1}, DTYPE_U8); + Tensor *left_block = NN_tensor(2, (const size_t[]){1, 2*half_block_size}, DTYPE_U8, (uint8_t *)left->data); Tensor *right_block = NN_tensor(2, (const size_t[]){1, 2*half_block_size}, DTYPE_U8, (uint8_t *)right->data); Tensor *left_block_signed = NN_tensor(2, (const size_t[]){1, 2*half_block_size}, DTYPE_U32, NULL); @@ -75,26 +70,20 @@ Tensor* compute_dispartiy(Tensor *left, Tensor *right, int min_disparity, int ma Tensor *diff_wide = NN_tensor(2, (const size_t[]){1, 2*half_block_size}, DTYPE_I32, NULL); Tensor *out = NN_tensor(1, (const size_t[]){1}, DTYPE_I32, NULL); - // Tensor *left_block = NN_tensor(2, (const size_t[]){1, 1}, DTYPE_U8, (uint8_t *)left->data); - // Tensor *right_block = NN_tensor(2, (const size_t[]){1, 1}, DTYPE_U8, (uint8_t *)right->data); - // Tensor *left_block_signed = NN_tensor(2, (const size_t[]){1, 1}, DTYPE_U32, NULL); - // Tensor *right_block_signed = NN_tensor(2, (const size_t[]){1, 1}, DTYPE_U32, NULL); - // Tensor *diff = NN_tensor(2, (const size_t[]){1, 1}, DTYPE_I32, NULL); - // Tensor *out = NN_tensor(1, (const size_t[]){1}, DTYPE_I32, NULL); - // compute disparity // outer loop iterating over blocks for (int i = half_block_size; i < height-half_block_size; i += 1) { printf("i: %d / %d\n", i, height-half_block_size); for (int j = half_block_size - min_disparity; j < width-half_block_size - max_disparity; j += 1) { - // printf("j: %d / %d\n", j, width-half_block_size - max_disparity); // middle loop per block min_SAD = INT32_MAX; - for (int offset = min_disparity; offsetdata)[row * width + col] - ((uint8_t *)right->data)[row * width + col + offset])); @@ -103,52 +92,32 @@ Tensor* compute_dispartiy(Tensor *left, Tensor *right, int min_disparity, int ma // } // } - // tensor version - size_t row = i - half_block_size; size_t col = j - half_block_size; for (size_t row = i - half_block_size; row < half_block_size + i; row += 1) { - // for (size_t col = j - half_block_size; col < half_block_size + j; col += 1) { left_block->data = ((uint8_t *)left->data) + row*width + col; right_block->data = ((uint8_t *)right->data) + row*width + col + offset; NN_sub(diff, left_block, right_block); - // // NN_printf(diff); - diff->dtype = DTYPE_I8; - - NN_as_type(diff_wide, diff); + NN_copy(diff_wide, diff); diff->dtype = DTYPE_U8; NN_abs_inplace(diff_wide); - // NN_printf(diff); - NN_sum(out, diff_wide); SAD += ((int32_t *)out->data)[0]; - - // } } - // printf("SAD: %d\n", SAD); - // return NULL; - - // reduction step if (SAD < min_SAD) { - // for debugging - // if (i == half_block_size) { - // printf("Updated min_SAD: %x, SAD: %x, j: %d, offset: %d\n", min_SAD, SAD, j, offset); - // } min_SAD = SAD; - disparity[(i-half_block_size)*(s_w)+j-half_block_size] = offset; + ((uint8_t *)disparity_img->data)[(i-half_block_size)*(s_w)+j-half_block_size] = offset; } } - // if (j > half_block_size - min_disparity + 2) - // return NULL; } } @@ -165,9 +134,7 @@ Tensor* compute_dispartiy(Tensor *left, Tensor *right, int min_disparity, int ma printf("SAD IOPs: %d\n", sad_iop); - - Tensor *disparity_image = NN_tensor(4, (const size_t[]){1, s_h, s_w, 1}, DTYPE_U8, disparity); - return disparity_image; + return disparity_img; } int main() { @@ -178,27 +145,21 @@ int main() { Tensor *right_image = NN_tensor(4, (const size_t[]){1, IMG_HEIGHT, IMG_WIDTH, 1}, DTYPE_U8, right_data); size_t cycles = READ_CSR("cycle"); - - Tensor *disparity_image = compute_dispartiy(left_image, right_image, 0, 32, 4); - + Tensor *disparity_img = compute_dispartiy(left_image, right_image, 0, 32, 4); cycles = READ_CSR("cycle") - cycles; + printf("Cycles: %lu\n", cycles); // Save the disparity image - - // write only the data - printf("printing result\n"); - NN_print_shape(disparity_image); + printf("Result:\n"); + NN_print_shape(disparity_img); printf("\n"); - Tensor *img_small = NN_zeros(4, (const size_t[]){1, disparity_image->shape[1] / 4, disparity_image->shape[2] / 2, 1}, DTYPE_U8); - - - - NN_interpolate(img_small, disparity_image, (float []){0.25, 0.5}); + Tensor *disparity_img_small = NN_zeros(4, (const size_t[]){1, disparity_img->shape[1] / 4, disparity_img->shape[2] / 2, 1}, DTYPE_U8); + NN_interpolate(disparity_img_small, disparity_img, (float []){0.25, 0.5}); - // showASCIIImage(img_small); + show_ASCII_image(disparity_img_small, 0, 32); return 0; } diff --git a/example/stereo-block-matching/termimg.h b/example/stereo-block-matching/termimg.h deleted file mode 100644 index 930d9aa..0000000 --- a/example/stereo-block-matching/termimg.h +++ /dev/null @@ -1,89 +0,0 @@ -#pragma once - -#include -#include -#include -#include - -#include "nn_tensor.h" - - -const size_t n_mapping = 92; - -const uint8_t ascii_map[] = {0X20, 0X60, 0X2E, 0X2D, 0X27, 0X3A, 0X5F, 0X2C, 0X5E, 0X3D, 0X3B, 0X3E, 0X3C, 0X2B, 0X21, 0X72, 0X63, 0X2A, 0X2F, 0X7A, 0X3F, 0X73, 0X4C, 0X54, 0X76, 0X29, 0X4A, 0X37, 0X28, 0X7C, 0X46, 0X69, 0X7B, 0X43, 0X7D, 0X66, 0X49, 0X33, 0X31, 0X74, 0X6C, 0X75, 0X5B, 0X6E, 0X65, 0X6F, 0X5A, 0X35, 0X59, 0X78, 0X6A, 0X79, 0X61, 0X5D, 0X32, 0X45, 0X53, 0X77, 0X71, 0X6B, 0X50, 0X36, 0X68, 0X39, 0X64, 0X34, 0X56, 0X70, 0X4F, 0X47, 0X62, 0X55, 0X41, 0X4B, 0X58, 0X48, 0X6D, 0X38, 0X52, 0X44, 0X23, 0X24, 0X42, 0X67, 0X30, 0X4D, 0X4E, 0X57, 0X51, 0X25, 0X26, 0X40}; - -const float brightness_map[] = {0, 0.0751, 0.0829, 0.0848, 0.1227, 0.1403, 0.1559, 0.185, 0.2183, 0.2417, 0.2571, 0.2852, 0.2902, 0.2919, 0.3099, 0.3192, 0.3232, 0.3294, 0.3384, 0.3609, 0.3619, 0.3667, 0.3737, 0.3747, 0.3838, 0.3921, 0.396, 0.3984, 0.3993, 0.4075, 0.4091, 0.4101, 0.42, 0.423, 0.4247, 0.4274, 0.4293, 0.4328, 0.4382, 0.4385, 0.442, 0.4473, 0.4477, 0.4503, 0.4562, 0.458, 0.461, 0.4638, 0.4667, 0.4686, 0.4693, 0.4703, 0.4833, 0.4881, 0.4944, 0.4953, 0.4992, 0.5509, 0.5567, 0.5569, 0.5591, 0.5602, 0.5602, 0.565, 0.5776, 0.5777, 0.5818, 0.587, 0.5972, 0.5999, 0.6043, 0.6049, 0.6093, 0.6099, 0.6465, 0.6561, 0.6595, 0.6631, 0.6714, 0.6759, 0.6809, 0.6816, 0.6925, 0.7039, 0.7086, 0.7235, 0.7302, 0.7332, 0.7602, 0.7834, 0.8037, 0.9999}; - -void showASCIIImage(Tensor *tensor) { - size_t width; - size_t height; - - if (tensor->ndim == 4) { - height = tensor->shape[1]; - width = tensor->shape[2]; - } else if (tensor->ndim == 3) { - height = tensor->shape[1]; - width = tensor->shape[2]; - } else if (tensor->ndim == 2) { - height = tensor->shape[0]; - width = tensor->shape[1]; - } else { - printf("[ERROR] Invalid tensor shape\n"); - } - - float min; - float max; - - if (tensor->dtype == DTYPE_F32) { - min = 1000; - max = -1000; - for (size_t h = 0; h < height; h += 1) { - for (size_t w = 0; w < width; w += 1) { - float pixel_value = ((float *)tensor->data)[h * width + w]; - - if (pixel_value < min) { - min = pixel_value; - } - if (pixel_value > max) { - max = pixel_value; - } - } - } - } - else if (tensor->dtype == DTYPE_U8) { - min = 0x00; - // max = 0xFF; - max = 32; - } else { - printf("[ERROR] Unsupported data type\n"); - } - - for (size_t h = 0; h < height; h += 1) { - for (size_t w = 0; w < width; w += 1) { - float pixel_value; - if (tensor->dtype == DTYPE_F32) { - pixel_value = ((float *)tensor->data)[h * width + w]; - } - else if (tensor->dtype == DTYPE_U8) { - pixel_value = (float)((uint8_t *)tensor->data)[h * width + w]; - } - - // normalize the pixel value to the range [0, 1] - pixel_value = (pixel_value - min) / (max - min); - - // find the closest brightness value in the brightness_map - size_t brightness_index = 0; - for (size_t i = 0; i < n_mapping; i += 1) { - if (pixel_value < brightness_map[i]) { - break; - } - brightness_index = i; - } - - // find the corresponding ASCII character - uint8_t ascii = ascii_map[brightness_index]; - printf("%c", ascii); - } - printf("\n"); - } -} diff --git a/example/fast-depth/termimg.h b/example/utility/termimg.h similarity index 57% rename from example/fast-depth/termimg.h rename to example/utility/termimg.h index 637eec1..046e02b 100644 --- a/example/fast-depth/termimg.h +++ b/example/utility/termimg.h @@ -14,32 +14,65 @@ const static uint8_t ASCII_MAP[] = {0X20, 0X60, 0X2E, 0X2D, 0X27, 0X3A, 0X5F, 0X const static float BRIGHTNESS_MAP[] = {0, 0.0751, 0.0829, 0.0848, 0.1227, 0.1403, 0.1559, 0.185, 0.2183, 0.2417, 0.2571, 0.2852, 0.2902, 0.2919, 0.3099, 0.3192, 0.3232, 0.3294, 0.3384, 0.3609, 0.3619, 0.3667, 0.3737, 0.3747, 0.3838, 0.3921, 0.396, 0.3984, 0.3993, 0.4075, 0.4091, 0.4101, 0.42, 0.423, 0.4247, 0.4274, 0.4293, 0.4328, 0.4382, 0.4385, 0.442, 0.4473, 0.4477, 0.4503, 0.4562, 0.458, 0.461, 0.4638, 0.4667, 0.4686, 0.4693, 0.4703, 0.4833, 0.4881, 0.4944, 0.4953, 0.4992, 0.5509, 0.5567, 0.5569, 0.5591, 0.5602, 0.5602, 0.565, 0.5776, 0.5777, 0.5818, 0.587, 0.5972, 0.5999, 0.6043, 0.6049, 0.6093, 0.6099, 0.6465, 0.6561, 0.6595, 0.6631, 0.6714, 0.6759, 0.6809, 0.6816, 0.6925, 0.7039, 0.7086, 0.7235, 0.7302, 0.7332, 0.7602, 0.7834, 0.8037, 0.9999}; -void show_ASCII_image(Tensor *tensor) { +/** + * Display the image in ASCII format + * + * @param tensor: input tensor + */ +void show_ASCII_image(Tensor *tensor, float min, float max) { assert(tensor->ndim == 4); assert(tensor->shape[0] == 1); assert(tensor->shape[3] == 1); - float min = 1000; - float max = -1000; - for (size_t h = 0; h < tensor->shape[1]; h += 1) { - for (size_t w = 0; w < tensor->shape[2]; w += 1) { - float pixel_value = ((float *)tensor->data)[h * tensor->shape[2] + w]; - if (pixel_value < min) { - min = pixel_value; - } - if (pixel_value > max) { - max = pixel_value; + + size_t width; + size_t height; + + if (tensor->ndim == 4) { + height = tensor->shape[1]; + width = tensor->shape[2]; + } else if (tensor->ndim == 3) { + height = tensor->shape[1]; + width = tensor->shape[2]; + } else if (tensor->ndim == 2) { + height = tensor->shape[0]; + width = tensor->shape[1]; + } else { + printf("[ERROR] Invalid tensor shape\n"); + } + + // find the min and max pixel value + if (max == 0 && min == 0) { + min = 1000; + max = -1000; + + for (size_t h = 0; h < height; h += 1) { + for (size_t w = 0; w < width; w += 1) { + float pixel_value = ((float *)tensor->data)[h * width + w]; + + if (pixel_value < min) { + min = pixel_value; + } + if (pixel_value > max) { + max = pixel_value; + } } } } - for (size_t h = 0; h < tensor->shape[1]; h += 1) { - for (size_t w = 0; w < tensor->shape[2]; w += 1) { - float pixel_value = ((float *)tensor->data)[h * tensor->shape[2] + w]; - + for (size_t h = 0; h < height; h += 1) { + for (size_t w = 0; w < width; w += 1) { + float pixel_value; + if (tensor->dtype == DTYPE_F32) { + pixel_value = ((float *)tensor->data)[h * width + w]; + } + else if (tensor->dtype == DTYPE_U8) { + pixel_value = (float)((uint8_t *)tensor->data)[h * width + w]; + } + // normalize the pixel value to the range [0, 1] pixel_value = (pixel_value - min) / (max - min); - // find the closest brightness value in the BRIGHTNESS_MAP + // find the closest brightness value in the brightness_map size_t brightness_index = 0; for (size_t i = 0; i < NUM_MAPPING; i += 1) { if (pixel_value < BRIGHTNESS_MAP[i]) { @@ -48,9 +81,8 @@ void show_ASCII_image(Tensor *tensor) { brightness_index = i; } - // find the corresponding ASCII character - uint8_t ascii = ASCII_MAP[brightness_index]; - printf("%c", ascii); + // print the corresponding ASCII character + printf("%c", ASCII_MAP[brightness_index]); } printf("\n"); } diff --git a/nn/nn_float16.h b/nn/nn_float16.h new file mode 100644 index 0000000..31beaa1 --- /dev/null +++ b/nn/nn_float16.h @@ -0,0 +1,154 @@ +#ifndef __NN_FLOAT16 +#define __NN_FLOAT16 + +#include +#include +#include + +#ifdef X86 + #include +#endif + + +#ifdef _Float16 + typedef _Float16 float16_t; +#else + typedef union { + uint32_t i; + float f; + } float_uint32_union_t; + + typedef uint16_t float16_t; +#endif + +/** + * Converts a half-precision floating-point number to a single-precision floating-point number. + * + * @param h The half-precision floating-point number to convert. + * @return The single-precision floating-point number. + */ +static inline float NN_half_to_float(float16_t h) { + #ifdef _Float16 + return (float)h; + #else + // from https://github.com/AcademySoftwareFoundation/Imath/blob/main/src/Imath/half.h + // Note: This only supports the "round to even" rounding mode, which + // was the only mode supported by the original OpenEXR library + + float_uint32_union_t v; + // this code would be clearer, although it does appear to be faster + // (1.06 vs 1.08 ns/call) to avoid the constants and just do 4 + // shifts. + // + uint32_t hexpmant = ((uint32_t) (h) << 17) >> 4; + v.i = ((uint32_t) (h >> 15)) << 31; + + // the likely really does help if most of your numbers are "normal" half numbers + if ((hexpmant >= 0x00800000)) { + v.i |= hexpmant; + // either we are a normal number, in which case add in the bias difference + // otherwise make sure all exponent bits are set + if ((hexpmant < 0x0f800000)) { + v.i += 0x38000000; + } + else { + v.i |= 0x7f800000; + } + } + else if (hexpmant != 0) { + // exponent is 0 because we're denormal, don't have to extract + // the mantissa, can just use as is + // + // other compilers may provide count-leading-zeros primitives, + // but we need the community to inform us of the variants + uint32_t lc; + lc = 0; + while (0 == ((hexpmant << lc) & 0x80000000)) { + lc += 1; + } + lc -= 8; + // so nominally we want to remove that extra bit we shifted + // up, but we are going to add that bit back in, then subtract + // from it with the 0x38800000 - (lc << 23).... + // + // by combining, this allows us to skip the & operation (and + // remove a constant) + // + // hexpmant &= ~0x00800000; + v.i |= 0x38800000; + // lc is now x, where the desired exponent is then + // -14 - lc + // + 127 -> new exponent + v.i |= (hexpmant << lc); + v.i -= (lc << 23); + } + return v.f; + #endif +} + + +/** + * Converts a single-precision floating-point number to a half-precision floating-point number. + * + * @param f The single-precision floating-point number to convert. + * @return The half-precision floating-point number. + */ +static inline float16_t NN_float_to_half(float f) { + #ifdef _Float16 + return (_Float16)f; + #else + // from https://github.com/AcademySoftwareFoundation/Imath/blob/main/src/Imath/half.h + // Note: This only supports the "round to even" rounding mode, which + // was the only mode supported by the original OpenEXR library + + float_uint32_union_t v; + float16_t ret; + uint32_t e, m, ui, r, shift; + + v.f = f; + + ui = (v.i & ~0x80000000); + ret = ((v.i >> 16) & 0x8000); + + // exponent large enough to result in a normal number, round and return + if (ui >= 0x38800000) { + // inf or nan + if (ui >= 0x7f800000) { + ret |= 0x7c00; + if (ui == 0x7f800000) { + return ret; + } + m = (ui & 0x7fffff) >> 13; + // make sure we have at least one bit after shift to preserve nan-ness + return ret | (uint16_t) m | (uint16_t) (m == 0); + } + + // too large, round to infinity + if (ui > 0x477fefff) { + return ret | 0x7c00; + } + + ui -= 0x38000000; + ui = ((ui + 0x00000fff + ((ui >> 13) & 1)) >> 13); + return ret | (uint16_t) ui; + } + + // zero or flush to 0 + if (ui < 0x33000001) { + return ret; + } + + // produce a denormalized half + e = (ui >> 23); + shift = 0x7e - e; + m = 0x800000 | (ui & 0x7fffff); + r = m << (32 - shift); + ret |= (m >> shift); + if (r > 0x80000000 || (r == 0x80000000 && (ret & 0x1) != 0)) { + ret += 1; + } + return ret; + #endif +} + +#endif // __NN_FLOAT16 \ No newline at end of file From 19c722bba9443c160380ba3219edbcf9f0968b54 Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Wed, 10 Jul 2024 18:04:28 -0700 Subject: [PATCH 18/21] ADD: improve example --- example/fast-depth/main.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/example/fast-depth/main.c b/example/fast-depth/main.c index 6e2d719..7baf4a9 100644 --- a/example/fast-depth/main.c +++ b/example/fast-depth/main.c @@ -59,11 +59,8 @@ int main() { NN_interpolate(img, &model->decode_conv6_2, (float []){0.125, 0.25}); - - printf("output:\n"); - show_ASCII_image(img); - // showASCIIImage(&model->decode_conv6_2); + show_ASCII_image(img, 0, 0); return 0; } From a818a036f4ef8066bf97cf08ba659dd6199b68e3 Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Thu, 11 Jul 2024 02:09:54 -0700 Subject: [PATCH 19/21] ADD: add partial RVV FP16 support --- nn/CMakeLists.txt | 1 + nn/functional/nn_add.c | 7 +- nn/functional/nn_relu.c | 3 + nn/impl/maximum1.h | 8 + nn/impl/rvv/add.c | 26 + nn/impl/rvv/dot.c | 53 +- nn/impl/rvv/maximum1.c | 24 + nn/impl/rvv/minimum1.c | 24 + tests/src/generate_test.py | 124 ++--- tests/src/generated.c | 958 ++----------------------------------- 10 files changed, 246 insertions(+), 982 deletions(-) diff --git a/nn/CMakeLists.txt b/nn/CMakeLists.txt index c0d0c1a..65d334f 100644 --- a/nn/CMakeLists.txt +++ b/nn/CMakeLists.txt @@ -48,6 +48,7 @@ if (RVV) ./impl/rvv/add.c ./impl/rvv/add1.c ./impl/rvv/div.c + ./impl/rvv/dot.c ./impl/rvv/max.c ./impl/rvv/maximum.c ./impl/rvv/maximum1.c diff --git a/nn/functional/nn_add.c b/nn/functional/nn_add.c index eb87aa1..e78be1c 100644 --- a/nn/functional/nn_add.c +++ b/nn/functional/nn_add.c @@ -23,9 +23,10 @@ void NN_add(Tensor *out, Tensor *a, Tensor *b) { size_t b_i = i < b->shape[0] ? i : 0; size_t b_j = j < b->shape[1] ? j : 0; - ((float *)out->data)[i * out->shape[1] + j] - = ((float *)a->data)[a_i * a->shape[1] + a_j] - + ((float *)b->data)[b_i * b->shape[1] + b_j]; + ((float16_t *)out->data)[i * out->shape[1] + j] = NN_float_to_half( + NN_half_to_float(((float16_t *)a->data)[a_i * a->shape[1] + a_j]) + + NN_half_to_float(((float16_t *)b->data)[b_i * b->shape[1] + b_j]) + ); } } return; diff --git a/nn/functional/nn_relu.c b/nn/functional/nn_relu.c index 20909c2..a7c016d 100644 --- a/nn/functional/nn_relu.c +++ b/nn/functional/nn_relu.c @@ -8,6 +8,9 @@ void NN_relu(Tensor *y, Tensor *x) { assert(y->size == x->size); switch (y->dtype) { + case DTYPE_F16: + NN__maximum1_f16(y->size, (float *)y->data, 1, (float *)x->data, 1, 0.0f); + return; case DTYPE_F32: NN__maximum1_f32(y->size, (float *)y->data, 1, (float *)x->data, 1, 0.0f); return; diff --git a/nn/impl/maximum1.h b/nn/impl/maximum1.h index 84cddec..50a8a48 100644 --- a/nn/impl/maximum1.h +++ b/nn/impl/maximum1.h @@ -4,6 +4,14 @@ #include #include +#include "nn_float16.h" + + +void NN__maximum1_f16(size_t n, + float16_t *y, size_t incy, + float16_t *x, size_t incx, + float16_t scalar + ); void NN__maximum1_f32(size_t n, float *y, size_t incy, diff --git a/nn/impl/rvv/add.c b/nn/impl/rvv/add.c index 49f8857..e642bcc 100644 --- a/nn/impl/rvv/add.c +++ b/nn/impl/rvv/add.c @@ -18,6 +18,32 @@ void NN__add_i8(size_t n, int8_t *z, size_t incz, int8_t *x, size_t incx, int8_t } } +void NN__add_f16(size_t n, float16_t *z, size_t incz, float16_t *x, size_t incx, float16_t *y, size_t incy) { + while (n > 0) { + size_t vl; + + // size_t vl = __riscv_vsetvl_e16m1(n); + asm volatile("vsetvli %0, %1, e16, m1, ta, ma" : "=r"(vl) : "r"(n)); + + // vfloat16m1_t vec_x = __riscv_vlse16_v_f16m1(x, sizeof(float16_t) * incx, vl); + asm volatile("vlse16.v v24, (%0), %1" : : "r"(x), "r"(sizeof(float16_t) * incx)); + + // vfloat16m1_t vec_y = __riscv_vlse16_v_f16m1(y, sizeof(float16_t) * incy, vl); + asm volatile("vlse16.v v25, (%0), %1" : : "r"(y), "r"(sizeof(float16_t) * incy)); + + // // vfloat16m1_t vec_z = __riscv_vfadd_vv_f16m1(vec_x, vec_y, vl); + asm volatile("vfadd.vv v24, v24, v25"); + + // __riscv_vsse16_v_f16m1(z, sizeof(float16_t) * incz, vec_z, vl); + asm volatile("vsse16.v v24, (%0), %1" : : "r"(z), "r"(sizeof(float16_t) * incz)); + + x += vl; + y += vl; + z += vl; + n -= vl; + } +} + void NN__add_f32(size_t n, float *z, size_t incz, float *x, size_t incx, float *y, size_t incy) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); diff --git a/nn/impl/rvv/dot.c b/nn/impl/rvv/dot.c index c4df072..b39eb19 100644 --- a/nn/impl/rvv/dot.c +++ b/nn/impl/rvv/dot.c @@ -4,25 +4,46 @@ #ifdef RVV -// void NN__dot_f16(size_t n, float16_t *result, float16_t *x, size_t incx, float16_t *y, size_t incy) { -// size_t vlmax = __riscv_vsetvlmax_e16m1(); +void NN__dot_f16(size_t n, float16_t *result, float16_t *x, size_t incx, float16_t *y, size_t incy) { + size_t vlmax; + // size_t vlmax = __riscv_vsetvlmax_e16m1(); + asm volatile("vsetvli %0, zero, e16, m1, ta, ma" : "=r"(vlmax) : "r"(n)); -// vfloat16m1_t vec_zero = __riscv_vfmv_v_f_f16m1(0, vlmax); -// vfloat16m1_t vec_r = __riscv_vfmv_v_f_f16m1(0, vlmax); + // vfloat16m1_t vec_zero = __riscv_vfmv_v_f_f16m1(0, vlmax); + asm volatile("vmv.v.i v27, 0"); -// while (n > 0) { -// size_t vl = __riscv_vsetvl_e16m1(n); -// vfloat16m1_t vec_x = __riscv_vlse16_v_f16m1(x, sizeof(float16_t) * incx, vl); -// vfloat16m1_t vec_y = __riscv_vlse16_v_f16m1(y, sizeof(float16_t) * incy, vl); -// vec_r = __riscv_vfmacc_vv_f16m1(vec_r, vec_x, vec_y, vl); + // vfloat16m1_t vec_r = __riscv_vfmv_v_f_f16m1(0, vlmax); + asm volatile("vmv1r.v v24, v27"); + + while (n > 0) { + size_t vl; + // size_t vl = __riscv_vsetvl_e16m1(n); + asm volatile("vsetvli %0, %1, e16, m1, ta, ma" : "=r"(vl) : "r"(n)); + + // vfloat16m1_t vec_x = __riscv_vlse16_v_f16m1(x, sizeof(float16_t) * incx, vl); + asm volatile("vlse16.v v26, (%0), %1" : : "r"(x), "r"(sizeof(float16_t) * incx)); + + // vfloat16m1_t vec_y = __riscv_vlse16_v_f16m1(y, sizeof(float16_t) * incy, vl); + asm volatile("vlse16.v v25, (%0), %1" : : "r"(y), "r"(sizeof(float16_t) * incy)); + + // vec_r = __riscv_vfmacc_vv_f16m1(vec_r, vec_x, vec_y, vl); + asm volatile("vfmacc.vv v24, v26, v25"); -// x += vl; -// y += vl; -// n -= vl; -// } -// vec_r = __riscv_vfredusum_vs_f16m1_f16m1(vec_r, vec_zero, vlmax); -// *result = __riscv_vfmv_f_s_f16m1_f16(vec_r); -// } + x += vl; + y += vl; + n -= vl; + } + + // vec_r = __riscv_vfredusum_vs_f16m1_f16m1(vec_r, vec_zero, vlmax); + asm volatile("vsetvli %0, zero, e16, m1, ta, ma" : "=r"(vlmax) : "r"(n)); + asm volatile("vfredusum.vs v24, v24, v27"); + + // *result = __riscv_vfmv_f_s_f16m1_f16(vec_r); + float16_t r; + asm volatile("vmv.x.s %0, v24" : "=r"(r)); + *result = r; + +} void NN__dot_f32(size_t n, float *result, float *x, size_t incx, float *y, size_t incy) { size_t vlmax = __riscv_vsetvlmax_e32m1(); diff --git a/nn/impl/rvv/maximum1.c b/nn/impl/rvv/maximum1.c index 7a8248f..ab908b7 100644 --- a/nn/impl/rvv/maximum1.c +++ b/nn/impl/rvv/maximum1.c @@ -4,6 +4,30 @@ #ifdef RVV +void NN__maximum1_f16(size_t n, float16_t *y, size_t incy, float16_t *x, size_t incx, float16_t scalar) { + while (n > 0) { + size_t vl; + // size_t vl = __riscv_vsetvl_e16m1(n); + asm volatile("vsetvli %0, %1, e16, m1, ta, ma" : "=r"(vl) : "r"(n)); + + // vfloat16m1_t vec_x = __riscv_vlse16_v_f16m1(x, sizeof(float16_t) * incx, vl); + asm volatile("vlse16.v v26, (%0), %1" : : "r"(x), "r"(sizeof(float16_t) * incx)); + + // vfloat16m1_t vec_s = __riscv_vfmv_v_f_f16m1(scalar, vl); + asm volatile("vmv.v.x v25, %0" : : "r"(scalar)); + + // vfloat16m1_t vec_y = __riscv_vfmax_vv_f16m1(vec_x, vec_s, vl); + asm volatile("vfmax.vv v25, v26, v25"); + + // __riscv_vsse16_v_f16m1(y, sizeof(float16_t) * incy, vec_y, vl); + asm volatile("vsse16.v v25, (%0), %1" : : "r"(y), "r"(sizeof(float16_t) * incy)); + + x += vl; + y += vl; + n -= vl; + } +} + void NN__maximum1_f32(size_t n, float *y, size_t incy, float *x, size_t incx, float scalar) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); diff --git a/nn/impl/rvv/minimum1.c b/nn/impl/rvv/minimum1.c index 7a0a2f3..040cbda 100644 --- a/nn/impl/rvv/minimum1.c +++ b/nn/impl/rvv/minimum1.c @@ -4,6 +4,30 @@ #ifdef RVV +void NN__minimum1_f16(size_t n, float16_t *y, size_t incy, float16_t *x, size_t incx, float16_t scalar) { + while (n > 0) { + size_t vl; + // size_t vl = __riscv_vsetvl_e16m1(n); + asm volatile("vsetvli %0, %1, e16, m1, ta, ma" : "=r"(vl) : "r"(n)); + + // vfloat16m1_t vec_x = __riscv_vlse16_v_f16m1(x, sizeof(float16_t) * incx, vl); + asm volatile("vlse16.v v26, (%0), %1" : : "r"(x), "r"(sizeof(float16_t) * incx)); + + // vfloat16m1_t vec_s = __riscv_vfmv_v_f_f16m1(scalar, vl); + asm volatile("vmv.v.x v25, %0" : : "r"(scalar)); + + // vfloat16m1_t vec_y = __riscv_vfmin_vv_f16m1(vec_x, vec_s, vl); + asm volatile("vfmin.vv v25, v26, v25"); + + // __riscv_vsse16_v_f16m1(y, sizeof(float16_t) * incy, vec_y, vl); + asm volatile("vsse16.v v25, (%0), %1" : : "r"(y), "r"(sizeof(float16_t) * incy)); + + x += vl; + y += vl; + n -= vl; + } +} + void NN__minimum1_f32(size_t n, float *y, size_t incy, float *x, size_t incx, float scalar) { while (n > 0) { size_t vl = __riscv_vsetvl_e32m1(n); diff --git a/tests/src/generate_test.py b/tests/src/generate_test.py index e455a12..554067d 100644 --- a/tests/src/generate_test.py +++ b/tests/src/generate_test.py @@ -28,71 +28,77 @@ def rand(shape): return (torch.rand(shape, dtype=torch.float32, device=device) - 0.5) * 10 def rand16(shape): - return (torch.rand(shape, dtype=torch.float16, device=device) - 0.5) * 10 + return (torch.rand(shape, dtype=torch.float16, device=device) - 0.5) * 2 test_pattern = [ - ("abs", lambda a: torch.abs(a), [("a", rand((7, 7))), ]), - ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((6, 7))) ]), - ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((1, 7))) ]), - ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((6, 1))) ]), - ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((7, ))) ]), - ("add_inplace", lambda a, b: a + b, [("actual", torch.zeros((7, 7))), ("b", rand((7, 7))) ]), - ("add1", lambda a, b: a + b, [("a", rand((7, 7))), ("v", random.random()) ]), - ("clip", lambda a, v_min, v_max: torch.clip(a, v_min, v_max), - [("a", rand((7, 7))), ("v_min", random.random() - 1), ("v_max", random.random()) ]), - ("div", lambda a, b: a / b, [("a", rand((7, 7))), ("b", rand((7, 7))) ]), - ("fill", lambda a, v: a.fill_(v), [("actual", torch.zeros((7, 7))), ("v", random.random()) ]), - ("matmul_t", lambda a, b: a @ b.T, [("a", rand((6, 7))), ("b", rand((5, 7))) ]), - ("matmul", lambda a, b: a @ b, [("a", rand((6, 7))), ("b", rand((7, 5))) ]), - ("max", lambda a: torch.max(a), [("a", rand((7, 7))) ]), - ("maximum", lambda a, b: torch.maximum(a, b), [("a", rand((7, 7))), ("b", rand((7, 7))) ]), - ("min", lambda a: torch.min(a), [("a", rand((7, 7))) ]), - ("minimum", lambda a, b: torch.minimum(a, b), [("a", rand((7, 7))), ("b", rand((7, 7))) ]), - ("mul", lambda a, b: a * b, [("a", rand((7, 7))), ("b", rand((7, 7))) ]), - ("mul1", lambda a, b: a * b, [("a", rand((7, 7))), ("v", random.random()) ]), - ("neg", lambda a: -a, [("a", rand((7, 7))), ]), - ("sub", lambda a, b: a - b, [("a", rand((7, 7))), ("b", rand((7, 7))) ]), - ("sum", lambda a: torch.sum(a), [("a", rand((7, 7))), ]), + # ("abs", lambda a: torch.abs(a), [("a", rand((7, 7))), ]), + # ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((6, 7))) ]), + # ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((1, 7))) ]), + # ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((6, 1))) ]), + # ("add", lambda a, b: a + b, [("a", rand((6, 7))), ("b", rand((7, ))) ]), + # ("add_inplace", lambda a, b: a + b, [("actual", torch.zeros((7, 7))), ("b", rand((7, 7))) ]), + # ("add1", lambda a, b: a + b, [("a", rand((7, 7))), ("v", random.random()) ]), + # ("clip", lambda a, v_min, v_max: torch.clip(a, v_min, v_max), + # [("a", rand((7, 7))), ("v_min", random.random() - 1), ("v_max", random.random()) ]), + # ("div", lambda a, b: a / b, [("a", rand((7, 7))), ("b", rand((7, 7))) ]), + # ("fill", lambda a, v: a.fill_(v), [("actual", torch.zeros((7, 7))), ("v", random.random()) ]), + # ("matmul_t", lambda a, b: a @ b.T, [("a", rand((6, 7))), ("b", rand((5, 7))) ]), + # ("matmul", lambda a, b: a @ b, [("a", rand((6, 7))), ("b", rand((7, 5))) ]), + # ("max", lambda a: torch.max(a), [("a", rand((7, 7))) ]), + # ("maximum", lambda a, b: torch.maximum(a, b), [("a", rand((7, 7))), ("b", rand((7, 7))) ]), + # ("min", lambda a: torch.min(a), [("a", rand((7, 7))) ]), + # ("minimum", lambda a, b: torch.minimum(a, b), [("a", rand((7, 7))), ("b", rand((7, 7))) ]), + # ("mul", lambda a, b: a * b, [("a", rand((7, 7))), ("b", rand((7, 7))) ]), + # ("mul1", lambda a, b: a * b, [("a", rand((7, 7))), ("v", random.random()) ]), + # ("neg", lambda a: -a, [("a", rand((7, 7))), ]), + # ("sub", lambda a, b: a - b, [("a", rand((7, 7))), ("b", rand((7, 7))) ]), + # ("sum", lambda a: torch.sum(a), [("a", rand((7, 7))), ]), - ("linear", lambda x, w, b: torch.nn.functional.linear(x, w, b), - [("x", rand((6, 7))), ("w", rand((5, 7))), ("b", rand((1, 5))) ]), - ("linear", lambda x, w, b: torch.nn.functional.linear(x, w, b), - [("x", rand((6, 7))), ("w", rand((5, 7))), ("b", rand((5, ))) ]), - ("relu", lambda x: torch.nn.functional.relu(x), - [("x", rand((7, 7))) ]), - ("softmax", lambda a: torch.nn.functional.softmax(a, dim=0), - [("x", rand((7, 7))+1), ("0", None) ]), - ("softmax", lambda a: torch.nn.functional.softmax(a, dim=1), - [("x", rand((7, 7))+1), ("1", None) ]), - ("softmax", lambda a: torch.nn.functional.softmax(a, dim=-1), - [("x", rand((7, 7))+1), ("-1", None) ]), - ("relu6", lambda x: torch.nn.functional.relu6(x), - [("x", rand((7, 7))) ]), - ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=0, dilation=1, groups=1).permute((0, 2, 3, 1)), - [("x", rand((1, 16, 16, 3))), ("w", rand((3, 3, 3, 6))), ("b", rand((6, ))), - ("(size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1", None) ]), - ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=1).permute((0, 2, 3, 1)), - [("x", rand((1, 16, 16, 3))), ("w", rand((3, 3, 3, 71))), ("b", rand((71, ))), - ("(size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 1", None) ]), - ("nchw_to_nhwc", lambda x: x.permute((0, 2, 3, 1)), [("x", rand((1, 2, 3, 3))) ]), - ("nhwc_to_nchw", lambda x: x.permute((0, 3, 1, 2)), [("x", rand((1, 3, 3, 2))) ]), - ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=16).permute((0, 2, 3, 1)), - [("x", rand((1, 12, 12, 16))), ("w", rand((3, 3, 1, 16))), ("b", rand((16, ))), - ("(size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 16", None) ]), - ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=1).permute((0, 2, 3, 1)), - [("x", rand((1, 12, 12, 16))), ("w", rand((3, 3, 16, 56))), ("b", rand((56, ))), - ("(size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 1", None) ]), + # ("linear", lambda x, w, b: torch.nn.functional.linear(x, w, b), + # [("x", rand((6, 7))), ("w", rand((5, 7))), ("b", rand((1, 5))) ]), + # ("linear", lambda x, w, b: torch.nn.functional.linear(x, w, b), + # [("x", rand((6, 7))), ("w", rand((5, 7))), ("b", rand((5, ))) ]), + # ("relu", lambda x: torch.nn.functional.relu(x), + # [("x", rand((7, 7))) ]), + # ("softmax", lambda a: torch.nn.functional.softmax(a, dim=0), + # [("x", rand((7, 7))+1), ("0", None) ]), + # ("softmax", lambda a: torch.nn.functional.softmax(a, dim=1), + # [("x", rand((7, 7))+1), ("1", None) ]), + # ("softmax", lambda a: torch.nn.functional.softmax(a, dim=-1), + # [("x", rand((7, 7))+1), ("-1", None) ]), + # ("relu6", lambda x: torch.nn.functional.relu6(x), + # [("x", rand((7, 7))) ]), + # ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=0, dilation=1, groups=1).permute((0, 2, 3, 1)), + # [("x", rand((1, 16, 16, 3))), ("w", rand((3, 3, 3, 6))), ("b", rand((6, ))), + # ("(size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1", None) ]), + # ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=1).permute((0, 2, 3, 1)), + # [("x", rand((1, 16, 16, 3))), ("w", rand((3, 3, 3, 71))), ("b", rand((71, ))), + # ("(size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 1", None) ]), + # ("nchw_to_nhwc", lambda x: x.permute((0, 2, 3, 1)), [("x", rand((1, 2, 3, 3))) ]), + # ("nhwc_to_nchw", lambda x: x.permute((0, 3, 1, 2)), [("x", rand((1, 3, 3, 2))) ]), + # ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=16).permute((0, 2, 3, 1)), + # [("x", rand((1, 12, 12, 16))), ("w", rand((3, 3, 1, 16))), ("b", rand((16, ))), + # ("(size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 16", None) ]), + # ("conv2d", lambda x, w, b: torch.nn.functional.conv2d(x.permute((0, 3, 1, 2)), w.permute((3, 2, 0, 1)), b, stride=1, padding=1, dilation=1, groups=1).permute((0, 2, 3, 1)), + # [("x", rand((1, 12, 12, 16))), ("w", rand((3, 3, 16, 56))), ("b", rand((56, ))), + # ("(size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 1", None) ]), - ("layer_norm", lambda x, w, b: torch.nn.functional.layer_norm(x, (x.shape[1], ), w, b, eps=1e-05), - [("x", rand((6, 5))), ("1", None), ("w", rand((5))), ("b", torch.zeros((5))), ("1e-05", None) ]), - ("layer_norm", lambda x, w, b: torch.nn.functional.layer_norm(x, (x.shape[1], ), w, b, eps=1e-05), - [("x", rand((6, 5))), ("1", None), ("w", rand((5))), ("b", rand((5))), ("1e-05", None) ]), + # ("layer_norm", lambda x, w, b: torch.nn.functional.layer_norm(x, (x.shape[1], ), w, b, eps=1e-05), + # [("x", rand((6, 5))), ("1", None), ("w", rand((5))), ("b", torch.zeros((5))), ("1e-05", None) ]), + # ("layer_norm", lambda x, w, b: torch.nn.functional.layer_norm(x, (x.shape[1], ), w, b, eps=1e-05), + # [("x", rand((6, 5))), ("1", None), ("w", rand((5))), ("b", rand((5))), ("1e-05", None) ]), ("abs", lambda a: torch.abs(a), [("a", rand16((1, 7))), ]), ("add", lambda a, b: a + b, [("a", rand16((6, 7))), ("b", rand16((6, 7))) ]), ("matmul_t", lambda a, b: a @ b.T, [("a", rand16((6, 7))), ("b", rand16((5, 7))) ]), ("matmul", lambda a, b: a @ b, [("a", rand16((6, 7))), ("b", rand16((7, 5))) ]), + + ("linear", lambda x, w, b: torch.nn.functional.linear(x, w, b), + [("x", rand16((6, 7))), ("w", rand16((5, 7))), ("b", rand16((1, 5))) ]), + ("relu", lambda x: torch.nn.functional.relu(x), + [("x", rand16((7, 7))) ]), + ] @@ -191,6 +197,10 @@ def generate_test_pattern(op, function, inputs): func_str = env.from_string(""" NN_{{ op }}(actual{{ inputs }});\n""").render( op=op, inputs=inputs ) + + precision = "1e-4" + if result.dtype == torch.float16: + precision = "1e-2" test_template = env.from_string(""" { @@ -202,7 +212,7 @@ def generate_test_pattern(op, function, inputs): cycles = read_cycles(); {{ func_str }} cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + printf("%s (%lu cycles)\\n", compare_tensor(golden, actual, {{ precision }}) ? "PASS" : "FAIL", cycles); {% for tensor_str in tensor_destructors %}{{ tensor_str }}{% endfor %} NN_delete_tensor(golden); @@ -211,7 +221,7 @@ def generate_test_pattern(op, function, inputs): } """) - return test_template.render(op=op, tensor_constructors=tensor_constructors, tensor_destructors=tensor_destructors, result_tensors=result_tensors, func_str=func_str) + return test_template.render(op=op, tensor_constructors=tensor_constructors, tensor_destructors=tensor_destructors, result_tensors=result_tensors, func_str=func_str, precision=precision) template = env.from_string(c_code) diff --git a/tests/src/generated.c b/tests/src/generated.c index 4423c09..4433723 100644 --- a/tests/src/generated.c +++ b/tests/src/generated.c @@ -16,98 +16,20 @@ int main() { { printf("abs: "); - // [[-0.0374341 2.682218 -4.115226 -3.6796951 -1.9257718 1.3407868 -0.09 - Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x80,0x54,0x19,0xbd,0x76,0xa9,0x2b,0x40,0xee,0xaf,0x83,0xc0,0x20,0x80,0x6b,0xc0,0xb1,0x7f,0xf6,0xbf,0xe7,0x9e,0xab,0x3f,0x10,0xe3,0xca,0xbd,0x82,0xb9,0x7d,0x40,0x4c,0x2f,0xe3,0xbe,0x1f,0x5a,0xa9,0x3f,0x97,0x6a,0xc1,0xbf,0x8c,0x9a,0x7b,0xbf,0x13,0xdb,0x98,0xc0,0x26,0xee,0x53,0xc0,0x51,0xe9,0x3,0xc0,0xc0,0xa9,0x3d,0x3e,0xb8,0x3,0xfd,0x3f,0xde,0x1,0x40,0x40,0xef,0xf0,0x58,0xc0,0x1e,0x59,0xb,0xc0,0x7e,0x75,0xe8,0x3f,0xb1,0xdc,0x84,0x40,0x4d,0xb6,0x83,0xbf,0xb3,0x75,0x6f,0x40,0x90,0x50,0x4e,0xbf,0x2a,0x71,0x7,0x3f,0x4e,0xe0,0x90,0x40,0x61,0x6d,0x94,0xc0,0xc0,0x73,0x49,0xc0,0x98,0x6,0xa2,0xbf,0xd3,0x78,0xf9,0xbf,0x79,0x3d,0x8a,0x40,0xe0,0x6a,0x4f,0xc0,0x78,0x4e,0x13,0xc0,0xa0,0x90,0x5f,0xc0,0x8a,0xd9,0x95,0xc0,0x5,0xcc,0x3a,0xc0,0x23,0x89,0x89,0x40,0x36,0xca,0xe,0x40,0x60,0x18,0x1b,0x40,0x68,0xa2,0x86,0x3e,0x8,0xf,0x24,0xc0,0x70,0x8e,0x58,0x3f,0x23,0x64,0x95,0xc0,0xa0,0x38,0x67,0xc0,0x38,0xf8,0x24,0xc0,0x70,0xe6,0x49,0x40,0x70,0x9f,0x3b,0x40,0x1d,0xeb,0xd,0xc0 }); + // [[-0.332 -0.454 0.6143 0.1875 -0.1846 -0.255 0.6904]] + Tensor *a = NN_tensor(2, (size_t[]){ 1, 7 }, DTYPE_F16, (uint8_t[]){ 0x50,0xb5,0x44,0xb7,0xea,0x38,0x0,0x32,0xe8,0xb1,0x14,0xb4,0x86,0x39 }); - // [[0.0374341 2.682218 4.115226 3.6796951 1.9257718 1.3407868 0.0990659 ] - Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x80,0x54,0x19,0x3d,0x76,0xa9,0x2b,0x40,0xee,0xaf,0x83,0x40,0x20,0x80,0x6b,0x40,0xb1,0x7f,0xf6,0x3f,0xe7,0x9e,0xab,0x3f,0x10,0xe3,0xca,0x3d,0x82,0xb9,0x7d,0x40,0x4c,0x2f,0xe3,0x3e,0x1f,0x5a,0xa9,0x3f,0x97,0x6a,0xc1,0x3f,0x8c,0x9a,0x7b,0x3f,0x13,0xdb,0x98,0x40,0x26,0xee,0x53,0x40,0x51,0xe9,0x3,0x40,0xc0,0xa9,0x3d,0x3e,0xb8,0x3,0xfd,0x3f,0xde,0x1,0x40,0x40,0xef,0xf0,0x58,0x40,0x1e,0x59,0xb,0x40,0x7e,0x75,0xe8,0x3f,0xb1,0xdc,0x84,0x40,0x4d,0xb6,0x83,0x3f,0xb3,0x75,0x6f,0x40,0x90,0x50,0x4e,0x3f,0x2a,0x71,0x7,0x3f,0x4e,0xe0,0x90,0x40,0x61,0x6d,0x94,0x40,0xc0,0x73,0x49,0x40,0x98,0x6,0xa2,0x3f,0xd3,0x78,0xf9,0x3f,0x79,0x3d,0x8a,0x40,0xe0,0x6a,0x4f,0x40,0x78,0x4e,0x13,0x40,0xa0,0x90,0x5f,0x40,0x8a,0xd9,0x95,0x40,0x5,0xcc,0x3a,0x40,0x23,0x89,0x89,0x40,0x36,0xca,0xe,0x40,0x60,0x18,0x1b,0x40,0x68,0xa2,0x86,0x3e,0x8,0xf,0x24,0x40,0x70,0x8e,0x58,0x3f,0x23,0x64,0x95,0x40,0xa0,0x38,0x67,0x40,0x38,0xf8,0x24,0x40,0x70,0xe6,0x49,0x40,0x70,0x9f,0x3b,0x40,0x1d,0xeb,0xd,0x40 }); - Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); + // [[0.332 0.454 0.6143 0.1875 0.1846 0.255 0.6904]] + Tensor *golden = NN_tensor(2, (size_t[]){ 1, 7 }, DTYPE_F16, (uint8_t[]){ 0x50,0x35,0x44,0x37,0xea,0x38,0x0,0x32,0xe8,0x31,0x14,0x34,0x86,0x39 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 1, 7 }, DTYPE_F16); cycles = read_cycles(); NN_abs(actual, a); cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(a); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("add: "); - - // [[-0.18041193 3.1978035 4.9706655 1.9844109 0.6754643 3.3524318 -2.94 - Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0xe8,0xbd,0x38,0xbe,0xd0,0xa8,0x4c,0x40,0xb1,0xf,0x9f,0x40,0x2d,0x1,0xfe,0x3f,0x3a,0xeb,0x2c,0x3f,0x3e,0x8e,0x56,0x40,0xb0,0x6a,0x3c,0xc0,0x36,0x85,0x6e,0x3f,0x7,0x19,0x78,0xc0,0x9e,0xc9,0x5d,0xc0,0x86,0x4e,0x25,0xc0,0x98,0xca,0x10,0x40,0xfb,0xb0,0x0,0x40,0x84,0x8d,0x3d,0xc0,0x3a,0x59,0xc1,0x3f,0xca,0xab,0x2f,0x40,0xe8,0x8e,0x21,0xbf,0x50,0x7d,0x43,0x3e,0x80,0x4a,0x94,0x3f,0x40,0x85,0x46,0x40,0x8d,0xa1,0x99,0x40,0x7c,0x99,0x76,0xc0,0x67,0x8a,0xea,0xbf,0xbe,0x86,0xfb,0x3f,0x62,0x91,0x84,0x40,0xb1,0x3b,0x8b,0x40,0x55,0x2d,0x8d,0x40,0x16,0xbd,0x7e,0x3f,0x1b,0x22,0x8b,0xc0,0x34,0x80,0xeb,0x3e,0x97,0x31,0x48,0xc0,0xd8,0x1c,0x95,0xc0,0xa7,0x28,0x8e,0x40,0xac,0x50,0x73,0x40,0xbf,0x9a,0x9f,0xc0,0x8a,0x94,0x6f,0x3f,0xfa,0xa0,0x57,0xbf,0x66,0xa3,0x52,0xbf,0x72,0x7b,0x12,0xc0,0xaf,0x1d,0xf6,0x3f,0x81,0x89,0x3d,0xc0,0x53,0x9e,0xea,0x3f }); - // [[ 2.5285406 3.5793579 1.8695557 -4.948676 -3.2434845 2.496575 1.046 - Tensor *b = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0x9c,0xd3,0x21,0x40,0x33,0x14,0x65,0x40,0x9a,0x4d,0xef,0x3f,0x8e,0x5b,0x9e,0xc0,0x40,0x95,0x4f,0xc0,0xe3,0xc7,0x1f,0x40,0xef,0xf3,0x85,0x3f,0x7c,0xa0,0x79,0xc0,0x22,0x43,0x38,0xc0,0x17,0x85,0x96,0x40,0x29,0x9f,0x57,0x40,0x2e,0x87,0xb,0xc0,0x9,0x14,0xa1,0xbf,0x6b,0x6a,0x98,0xc0,0x20,0xe,0xb8,0xbd,0x96,0xfa,0x70,0xc0,0x8a,0xd5,0x76,0xc0,0x14,0xe,0x8d,0xbe,0x88,0x2f,0x40,0x3f,0xb8,0xc,0x3,0xc0,0x7e,0xe1,0x3d,0x40,0x86,0xbb,0x42,0xc0,0xe1,0x2d,0x91,0x40,0xc4,0x4b,0x5b,0x40,0xde,0xec,0x86,0xc0,0x35,0x49,0x9f,0xbf,0x20,0x7,0x67,0x3e,0xde,0xc0,0x3a,0x3f,0xa2,0xca,0x97,0x3f,0x73,0x27,0xfb,0x3f,0x2c,0x58,0x99,0x3e,0x20,0x23,0x1c,0xc0,0xa4,0x6b,0x17,0x40,0xd6,0x7a,0x99,0xc0,0x88,0xaa,0x3d,0xc0,0xb,0x36,0xa0,0xbf,0x54,0xe0,0x1b,0xc0,0xb3,0xe4,0xdf,0xbf,0xb4,0x23,0x83,0xc0,0x40,0x23,0x88,0xbf,0xdb,0xcd,0x88,0x3f,0x14,0x78,0x50,0xc0 }); - - - // [[ 2.3481288 6.7771616 6.8402214 -2.9642653 -2.5680203 5.8490067 -1.89 - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0xbe,0x47,0x16,0x40,0x82,0xde,0xd8,0x40,0x18,0xe3,0xda,0x40,0x86,0xb6,0x3d,0xc0,0x72,0x5a,0x24,0xc0,0x10,0x2b,0xbb,0x40,0x71,0xe1,0xf2,0xbf,0x2e,0xff,0x3d,0xc0,0x14,0x2e,0xd8,0xc0,0x20,0x81,0x9e,0x3f,0x8c,0x42,0x49,0x3f,0x40,0x6d,0xa8,0x3d,0xda,0x9b,0x40,0x3f,0x2d,0x31,0xf7,0xc0,0x58,0xd8,0xb5,0x3f,0x98,0x9d,0x82,0xbf,0xa2,0x9c,0x8f,0xc0,0xb0,0x3d,0xad,0xbd,0x44,0x62,0xf4,0x3f,0x10,0xf1,0x86,0x3f,0x4c,0x92,0xf8,0x40,0x81,0xaa,0xdc,0xc0,0x8e,0x16,0x2d,0x40,0x92,0x87,0xac,0x40,0x0,0xdf,0x96,0xbd,0xc8,0xd2,0x46,0x40,0x8e,0x65,0x94,0x40,0xfa,0xbe,0xdc,0x3f,0xe5,0x5e,0x4a,0xc0,0xc0,0x3,0x1b,0x40,0x92,0x6,0x35,0xc0,0x68,0x2e,0xe3,0xc0,0x79,0xde,0xd9,0x40,0x0,0x94,0x7e,0xbf,0x3,0x70,0xfe,0xc0,0x18,0xaf,0xa1,0xbe,0x92,0xc8,0x51,0xc0,0x33,0x9b,0x24,0xc0,0x6d,0x61,0xcc,0xc0,0xde,0xf4,0x5b,0x3f,0x27,0x45,0xf2,0xbf,0xd5,0x51,0xb6,0xbf }); - Tensor *actual = NN_zeros(2, (size_t[]){ 6, 7 }, DTYPE_F32); - - cycles = read_cycles(); - NN_add(actual, a, b); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(a); - NN_delete_tensor(b); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("add: "); - - // [[-0.2565968 3.5792542 -0.51400125 0.13896108 -0.4313445 1.0119069 3.17 - Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0xa8,0x60,0x83,0xbe,0x80,0x12,0x65,0x40,0x96,0x95,0x3,0xbf,0xd0,0x4b,0xe,0x3e,0x30,0xd9,0xdc,0xbe,0x2a,0x86,0x81,0x3f,0xf8,0x77,0x4b,0x40,0x34,0x8f,0x97,0x40,0xc8,0x37,0x4b,0x40,0xfa,0xe7,0x97,0x40,0xb8,0x24,0xb9,0xbe,0x40,0xbb,0x8f,0xc0,0x68,0xb4,0x17,0xc0,0xc2,0xe3,0x59,0x40,0xe0,0xc2,0x4,0xbd,0xa,0xe,0x1f,0xc0,0x42,0x38,0x75,0xc0,0x80,0xbc,0x95,0xc0,0x94,0xa,0x87,0xc0,0xc6,0xd0,0x81,0xbf,0x6c,0x7d,0x2f,0x40,0x51,0x1,0x2d,0x40,0x21,0x4f,0x9a,0xc0,0x3a,0x9c,0x47,0x40,0x2c,0x67,0x7a,0xc0,0x76,0x4d,0x87,0xbf,0x52,0xc0,0x1,0xc0,0x2c,0x8c,0x76,0xbf,0x94,0x51,0x7b,0xbf,0x74,0x93,0x8f,0xc0,0x6a,0x26,0x8a,0xc0,0x32,0x4b,0x48,0xbf,0xf0,0x6c,0x84,0x3d,0x33,0x5e,0x11,0xc0,0x66,0x16,0xf1,0x3f,0x64,0x2,0x90,0xc0,0x70,0xc4,0xac,0xbe,0x5,0xb5,0x8c,0x40,0x83,0x86,0x2,0xc0,0x2,0x7b,0x90,0x40,0x46,0xc7,0xe7,0x3f,0xcd,0x64,0x90,0xc0 }); - // [[ 3.1634867 -0.57697237 -2.2320342 3.9982665 -4.040476 0.53652465 -1.0 - Tensor *b = NN_tensor(2, (size_t[]){ 1, 7 }, DTYPE_F32, (uint8_t[]){ 0x91,0x76,0x4a,0x40,0x76,0xb4,0x13,0xbf,0xa6,0xd9,0xe,0xc0,0x99,0xe3,0x7f,0x40,0x94,0x4b,0x81,0xc0,0xae,0x59,0x9,0x3f,0xf8,0xfe,0x85,0xbf }); - - - // [[ 2.90689 3.0022817 -2.7460356 4.1372275 -4.4718204 1.5484315 2.13 - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0x7c,0xa,0x3a,0x40,0x62,0x25,0x40,0x40,0xc,0xbf,0x2f,0xc0,0x2b,0x64,0x84,0x40,0x27,0x19,0x8f,0xc0,0x1,0x33,0xc6,0x3f,0x7c,0x78,0x8,0x40,0x7c,0xca,0xfc,0x40,0xaa,0x4a,0x26,0x40,0x4e,0xf6,0x20,0x40,0x2,0xbf,0x68,0x40,0x6a,0x83,0x8,0xc1,0xf9,0xbb,0xea,0xbf,0x46,0xe4,0x16,0x40,0x86,0x63,0x48,0x40,0x28,0xfb,0x43,0xc0,0xf4,0x8,0xc2,0xc0,0x9c,0x55,0x2e,0xbf,0x14,0x2b,0x4,0xc1,0xbc,0x8f,0xf4,0xbe,0xe0,0xfb,0xd8,0x3f,0xf1,0xbb,0xbb,0x40,0xb0,0xc5,0xac,0xc0,0x50,0xa,0x63,0x3f,0xa0,0x8d,0xaf,0x3d,0xf2,0x1e,0xa3,0xc0,0xcd,0xd3,0xbe,0xbf,0x87,0xa2,0x0,0xc0,0x2c,0xa2,0xb,0x40,0x3,0xa,0xa2,0xc0,0x3d,0x93,0xd1,0xc0,0xcc,0xd0,0x4d,0x40,0xc0,0x73,0x7e,0xc0,0x8f,0xf,0xde,0xbf,0xdc,0x2e,0x56,0x3f,0x6e,0x1c,0xab,0xbf,0xae,0x16,0x6a,0xbf,0x64,0x90,0xa,0x40,0x2c,0xba,0xfa,0x3f,0xe0,0xf6,0xf2,0x3e,0xe,0x3a,0x16,0x40,0x8b,0xe4,0xb1,0xc0 }); - Tensor *actual = NN_zeros(2, (size_t[]){ 6, 7 }, DTYPE_F32); - - cycles = read_cycles(); - NN_add(actual, a, b); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(a); - NN_delete_tensor(b); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("add: "); - - // [[ 3.5705633 1.3957226 2.4025269 1.7657948 -1.2023735 -1.0515273 -4.12 - Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0x1c,0x84,0x64,0x40,0xa,0xa7,0xb2,0x3f,0x0,0xc3,0x19,0x40,0x90,0x5,0xe2,0x3f,0x60,0xe7,0x99,0xbf,0x72,0x98,0x86,0xbf,0x60,0xda,0x83,0xc0,0xdf,0x63,0x2d,0x40,0xb0,0x12,0x7e,0x40,0xb3,0xf3,0x5a,0x40,0x97,0xb8,0x61,0xc0,0xf8,0x59,0x64,0x3e,0x34,0x94,0x61,0xc0,0xaa,0x27,0x30,0xc0,0x3c,0x77,0x3a,0xc0,0x81,0xb7,0xda,0x3f,0x35,0xb1,0x3e,0xc0,0x80,0x68,0xdf,0xbd,0x88,0x63,0x57,0x3e,0x85,0x47,0x4e,0x40,0xf8,0xe4,0x71,0xc0,0x15,0xaf,0x5b,0xc0,0xcb,0xcf,0x39,0xc0,0x8c,0xfa,0x5f,0x40,0xbf,0xe,0xe6,0xbf,0x4c,0xf5,0x86,0x40,0xc8,0x6d,0xe7,0x3f,0xd0,0x14,0x22,0x3f,0x20,0x74,0x18,0xbd,0x4a,0x8,0x7d,0xbf,0xd0,0x98,0x20,0x3f,0xfe,0x23,0x92,0xbf,0xc0,0xe6,0xf,0xbd,0xb0,0x51,0x23,0x3f,0x3e,0x4e,0x7a,0xc0,0xd8,0xb8,0x27,0xc0,0xe7,0x32,0x81,0x40,0xf4,0xd8,0x81,0xc0,0xe8,0xd2,0xb7,0xbe,0x38,0x47,0x9e,0x40,0x14,0x31,0xe7,0x3f,0x78,0xf6,0x10,0x3e }); - // [[-4.33305 ] [ 2.4768896] [-3.5614038] [-1.4193213] [-1.6775817] [-0.74043 - Tensor *b = NN_tensor(2, (size_t[]){ 6, 1 }, DTYPE_F32, (uint8_t[]){ 0x58,0xa8,0x8a,0xc0,0x5c,0x85,0x1e,0x40,0xa,0xee,0x63,0xc0,0x52,0xac,0xb5,0xbf,0xff,0xba,0xd6,0xbf,0x46,0x8d,0x3d,0xbf }); - - - // [[-0.76248646 -2.9373271 -1.9305229 -2.567255 -5.5354233 -5.384577 -8.453 - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0x50,0x32,0x43,0xbf,0x2b,0xfd,0x3b,0xc0,0x60,0x1b,0xf7,0xbf,0xe8,0x4d,0x24,0xc0,0x30,0x22,0xb1,0xc0,0x74,0x4e,0xac,0xc0,0x5c,0x41,0x7,0xc1,0x9e,0xf4,0xa5,0x40,0x6,0x4c,0xce,0x40,0x88,0xbc,0xbc,0x40,0x76,0x66,0x86,0xbf,0xfc,0xca,0x2c,0x40,0xb0,0x1d,0x86,0xbf,0x70,0x12,0x8d,0xbe,0xa3,0x32,0xcf,0xc0,0x93,0x24,0xed,0xbf,0xa0,0x4f,0xd1,0xc0,0x4e,0xe9,0x6a,0xc0,0xd2,0x77,0x56,0xc0,0x28,0x34,0xad,0xbe,0x81,0xe9,0xea,0xc0,0x9f,0x42,0x9b,0xc0,0xfa,0x52,0x8a,0xc0,0x63,0x24,0x5,0x40,0x88,0xdd,0x4d,0xc0,0x6f,0x14,0x33,0x40,0xd8,0x5,0xc7,0x3e,0xd4,0x43,0x49,0xbf,0xa0,0x7e,0xdb,0xbf,0x92,0x9f,0x2a,0xc0,0x97,0x6e,0x86,0xbf,0x7e,0x6f,0x34,0xc0,0x35,0x3a,0xdb,0xbf,0x27,0x12,0x85,0xbf,0xdf,0xd5,0xb2,0xc0,0x2a,0x1c,0x57,0xc0,0x7c,0x2,0x53,0x40,0x9d,0x8a,0x99,0xc0,0x5d,0xbb,0x8c,0xbf,0x8f,0x95,0x86,0x40,0x71,0x6a,0x88,0x3f,0xa8,0x4f,0x19,0xbf }); - Tensor *actual = NN_zeros(2, (size_t[]){ 6, 7 }, DTYPE_F32); - - cycles = read_cycles(); - NN_add(actual, a, b); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-2) ? "PASS" : "FAIL", cycles); NN_delete_tensor(a); - NN_delete_tensor(b); NN_delete_tensor(golden); NN_free_tensor_data(actual); @@ -117,115 +39,20 @@ int main() { { printf("add: "); - // [[ 0.05469143 4.1240377 0.62419415 4.478464 3.0585623 -3.1610699 2.24 - Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0x20,0x4,0x60,0x3d,0x1e,0xf8,0x83,0x40,0x30,0xcb,0x1f,0x3f,0x94,0x4f,0x8f,0x40,0x7c,0xbf,0x43,0x40,0xf8,0x4e,0x4a,0xc0,0x74,0x85,0xf,0x40,0xed,0x34,0x62,0xc0,0xc2,0x9f,0x7,0xc0,0x10,0x3d,0xbc,0x3f,0xac,0x52,0xd3,0x3f,0xae,0x12,0x70,0x40,0xb2,0x6,0xce,0xbf,0x80,0x24,0x3,0x3c,0x58,0xbe,0x24,0x40,0x18,0xbc,0x9a,0xc0,0x92,0x5a,0x67,0x40,0xbe,0x4e,0x84,0xc0,0x0,0x22,0x8d,0x3d,0x18,0x9f,0x59,0xbf,0xc,0x89,0x28,0xc0,0xce,0x2d,0x29,0x3f,0x97,0x4e,0x84,0x40,0xa2,0x15,0xbb,0xbf,0x6c,0xfb,0x3d,0xc0,0x65,0xb2,0xec,0xbf,0x70,0x95,0x9e,0xc0,0x32,0x72,0x10,0x40,0x34,0xaf,0x19,0xc0,0x84,0x8c,0x55,0xc0,0x3a,0x5a,0x38,0xc0,0x66,0xfc,0x37,0x40,0xad,0x76,0x29,0x40,0x64,0x9b,0x75,0x40,0x8e,0x24,0xe8,0x3f,0xf5,0xbb,0xd5,0xbf,0xc9,0xd8,0xb2,0xbf,0x3e,0x13,0xbd,0x3f,0x8b,0x86,0x83,0x40,0xd1,0x2,0xae,0x3f,0x12,0x68,0x17,0xc0,0xbe,0x6c,0x16,0xc0 }); - // [-4.727345 1.08024 -2.8059125 -4.457879 4.3843822 -3.247056 -0.5688077] - Tensor *b = NN_tensor(1, (size_t[]){ 7 }, DTYPE_F32, (uint8_t[]){ 0x69,0x46,0x97,0xc0,0x4e,0x45,0x8a,0x3f,0x12,0x94,0x33,0xc0,0xf2,0xa6,0x8e,0xc0,0xdc,0x4c,0x8c,0x40,0xc4,0xcf,0x4f,0xc0,0x62,0x9d,0x11,0xbf }); + // [[ 0.3506 0.00879 0.706 -0.7295 0.7363 0.785 -0.415 ] [ 0.06836 0. + Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x9c,0x35,0x80,0x20,0xa6,0x39,0xd6,0xb9,0xe4,0x39,0x48,0x3a,0xa4,0xb6,0x60,0x2c,0x60,0x37,0xa0,0xb6,0x30,0x36,0x8c,0xb9,0xfc,0xb4,0x98,0x37,0x64,0xb7,0x52,0xbb,0xa4,0xba,0xb0,0x38,0x78,0xb1,0x4a,0x39,0x9c,0xb7,0x98,0xb1,0x70,0xbb,0xb8,0xb3,0x28,0x3b,0x1a,0xbb,0x0,0xaa,0x34,0xb4,0x8a,0x39,0xfc,0x3b,0x9e,0x3a,0xbc,0x36,0x80,0xb8,0x70,0xb1,0x3a,0xbb,0xb0,0x3b,0x88,0x31,0x34,0xb4,0x18,0xb3,0xb4,0xb5,0x98,0x30,0x20,0xaf }); + // [[-0.587 0.2812 0.9385 0.2588 -0.3193 -0.376 -0.4688 ] [-0.4697 -0. + Tensor *b = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0xb2,0xb8,0x80,0x34,0x82,0x3b,0x24,0x34,0x1c,0xb5,0x4,0xb6,0x80,0xb7,0x84,0xb7,0xd8,0xb4,0x18,0xba,0xd2,0xba,0x74,0xb5,0x4,0xb8,0x2c,0x37,0x70,0xb0,0xb8,0x31,0xc8,0xbb,0xf0,0xb2,0x0,0xbb,0x0,0xbb,0x48,0x3b,0xa0,0x2a,0xa,0x3b,0x4c,0x38,0xa0,0x37,0x30,0xb4,0xde,0xb9,0x62,0xb9,0xf8,0xb8,0xd2,0x38,0x40,0x29,0xe8,0x36,0x84,0xb7,0x40,0xb0,0xfe,0xb9,0x4,0x35,0xce,0x3b,0x52,0x3b,0x8e,0xbb,0xba,0xb9,0xcc,0x3a,0x70,0x2f }); - // [[-4.6726537 5.204278 -2.1817183 0.02058506 7.4429445 -6.408126 1.673 - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0x61,0x86,0x95,0xc0,0x72,0x89,0xa6,0x40,0x46,0xa1,0xb,0xc0,0x0,0xa2,0xa8,0x3c,0x9a,0x2c,0xee,0x40,0x5e,0xf,0xcd,0xc0,0x37,0x3c,0xd6,0x3f,0x70,0x30,0x4,0xc1,0x36,0xfa,0x84,0xbf,0x14,0xeb,0xaa,0xbf,0x8e,0xa4,0x33,0xc0,0x1a,0x2b,0x2,0x41,0x8e,0x69,0x9b,0xc0,0xd0,0x90,0xf,0xbf,0x7a,0xce,0x9,0xc0,0x89,0x55,0x70,0xc0,0x0,0x1a,0x4f,0x3f,0xd8,0x7a,0x9,0xc1,0x64,0x81,0x8e,0x40,0xc5,0x1b,0x83,0xc0,0x64,0xf0,0x4c,0xc0,0xaf,0x20,0x82,0xc0,0xea,0xdf,0xa6,0x40,0x72,0x8f,0x88,0xc0,0xa8,0xa4,0xed,0xc0,0x86,0x40,0x22,0x40,0xa9,0x3e,0x3,0xc1,0xb3,0x15,0xd8,0x3f,0x3,0x1e,0xe4,0xc0,0xdd,0x69,0x10,0xc0,0x26,0xf7,0xb5,0xc0,0xfc,0xa2,0xca,0xbf,0x32,0x8,0xe1,0x40,0x80,0x2e,0x17,0x3f,0xdd,0x55,0x9f,0x3f,0x66,0xb5,0xcc,0xc0,0xec,0x4d,0xa2,0xbe,0xe6,0x14,0xaa,0xbf,0x70,0x6,0xb2,0xbe,0x90,0xcd,0xb7,0x40,0xeb,0x9b,0xb3,0xc0,0x16,0xd4,0x3a,0xc0 }); - Tensor *actual = NN_zeros(2, (size_t[]){ 6, 7 }, DTYPE_F32); + // [[-0.2363 0.29 1.645 -0.4707 0.417 0.4092 -0.884 ] [-0.40 + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x90,0xb3,0xa4,0x34,0x94,0x3e,0x88,0xb7,0xac,0x36,0x8c,0x36,0x12,0xbb,0x6c,0xb6,0x10,0x31,0xb4,0xbc,0x74,0xb7,0x23,0xbc,0x82,0xba,0x62,0x3b,0xce,0xb8,0xe4,0xb9,0x36,0xbf,0xe8,0x35,0x2f,0xbc,0xd8,0xb2,0xf4,0x36,0xe0,0xaf,0x60,0xaa,0xbc,0x34,0x7c,0x3d,0x99,0xbc,0x3e,0xba,0x7c,0xbb,0x90,0x2c,0x67,0x3e,0xf2,0x3a,0xd2,0x3a,0x21,0xbc,0xd8,0xb4,0x9c,0xbe,0x19,0x3d,0x98,0x3c,0x38,0x39,0xaa,0xbc,0x4a,0xbc,0xf2,0x3b,0x0,0x1d }); + Tensor *actual = NN_zeros(2, (size_t[]){ 6, 7 }, DTYPE_F16); cycles = read_cycles(); NN_add(actual, a, b); cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(a); - NN_delete_tensor(b); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("add_inplace: "); - - // [[ 1.4324677 0.15929163 -3.3644085 -4.041609 3.9854121 0.8141935 4.14 - Tensor *b = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x1a,0x5b,0xb7,0x3f,0x58,0x1d,0x23,0x3e,0x78,0x52,0x57,0xc0,0xdc,0x54,0x81,0xc0,0xfe,0x10,0x7f,0x40,0xfc,0x6e,0x50,0x3f,0x6c,0xbd,0x84,0x40,0xd2,0x8d,0xd6,0xbf,0xf6,0x83,0xbc,0x3f,0x4f,0x5a,0x92,0xbf,0x38,0xb1,0x63,0xbe,0xe6,0xe4,0x42,0xc0,0xd7,0x72,0xd8,0x3f,0xa0,0x58,0xca,0x3f,0x90,0x3c,0xd3,0xbd,0xf8,0xef,0x8f,0xbf,0xee,0x41,0x45,0xc0,0x59,0x4b,0x5d,0x40,0x39,0x37,0x6e,0xc0,0xcc,0x17,0x3,0x40,0xc7,0x33,0xd7,0xbf,0xc8,0x63,0x1a,0xc0,0x18,0xf2,0x65,0x3f,0xea,0x39,0x26,0xc0,0x88,0x75,0x93,0x3f,0x14,0x5e,0x7b,0x3f,0xbc,0x98,0x6d,0xc0,0x3e,0x1e,0x55,0x3f,0x1e,0x4c,0x8,0x40,0xf3,0x54,0xfd,0x3f,0xee,0x1f,0x21,0xbf,0x80,0x2a,0x83,0xc0,0x34,0x51,0x45,0xbf,0xe4,0x46,0xde,0x3f,0x77,0x85,0xe9,0xbf,0x91,0xee,0xf2,0x3f,0xa8,0x1b,0x55,0x40,0xa8,0x16,0x27,0xc0,0x60,0xf8,0x49,0x3d,0xd6,0x51,0x4,0x40,0xb4,0xa5,0xc8,0x3e,0x34,0xd7,0xd5,0x3e,0xe6,0xd3,0x1f,0x3f,0x38,0x91,0x7b,0xc0,0x98,0x2f,0xc9,0x3e,0x21,0x97,0x5d,0x40,0x9e,0x2d,0x90,0x40,0x8e,0x14,0x3c,0x40,0x1e,0x86,0x2b,0x3f }); - - - // [[ 1.4324677 0.15929163 -3.3644085 -4.041609 3.9854121 0.8141935 4.14 - Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x1a,0x5b,0xb7,0x3f,0x58,0x1d,0x23,0x3e,0x78,0x52,0x57,0xc0,0xdc,0x54,0x81,0xc0,0xfe,0x10,0x7f,0x40,0xfc,0x6e,0x50,0x3f,0x6c,0xbd,0x84,0x40,0xd2,0x8d,0xd6,0xbf,0xf6,0x83,0xbc,0x3f,0x4f,0x5a,0x92,0xbf,0x38,0xb1,0x63,0xbe,0xe6,0xe4,0x42,0xc0,0xd7,0x72,0xd8,0x3f,0xa0,0x58,0xca,0x3f,0x90,0x3c,0xd3,0xbd,0xf8,0xef,0x8f,0xbf,0xee,0x41,0x45,0xc0,0x59,0x4b,0x5d,0x40,0x39,0x37,0x6e,0xc0,0xcc,0x17,0x3,0x40,0xc7,0x33,0xd7,0xbf,0xc8,0x63,0x1a,0xc0,0x18,0xf2,0x65,0x3f,0xea,0x39,0x26,0xc0,0x88,0x75,0x93,0x3f,0x14,0x5e,0x7b,0x3f,0xbc,0x98,0x6d,0xc0,0x3e,0x1e,0x55,0x3f,0x1e,0x4c,0x8,0x40,0xf3,0x54,0xfd,0x3f,0xee,0x1f,0x21,0xbf,0x80,0x2a,0x83,0xc0,0x34,0x51,0x45,0xbf,0xe4,0x46,0xde,0x3f,0x77,0x85,0xe9,0xbf,0x91,0xee,0xf2,0x3f,0xa8,0x1b,0x55,0x40,0xa8,0x16,0x27,0xc0,0x60,0xf8,0x49,0x3d,0xd6,0x51,0x4,0x40,0xb4,0xa5,0xc8,0x3e,0x34,0xd7,0xd5,0x3e,0xe6,0xd3,0x1f,0x3f,0x38,0x91,0x7b,0xc0,0x98,0x2f,0xc9,0x3e,0x21,0x97,0x5d,0x40,0x9e,0x2d,0x90,0x40,0x8e,0x14,0x3c,0x40,0x1e,0x86,0x2b,0x3f }); - Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); - - cycles = read_cycles(); - NN_add_inplace(actual, b); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(b); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("add1: "); - - // [[ 2.335071 -2.4323983 -4.143442 -4.2996054 4.9880486 3.1739469 -3.45 - Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xce,0x71,0x15,0x40,0x6a,0xac,0x1b,0xc0,0x14,0x97,0x84,0xc0,0x5e,0x96,0x89,0xc0,0x18,0x9e,0x9f,0x40,0xf2,0x21,0x4b,0x40,0xde,0x31,0x5d,0xc0,0x31,0x65,0xfa,0x3f,0x54,0xa7,0x71,0x40,0x39,0xf0,0x9f,0x40,0x37,0xe7,0x8b,0x40,0xd5,0xeb,0x77,0x40,0xd6,0xb9,0x92,0xbf,0x48,0x9a,0xe0,0xbf,0x29,0x5e,0x83,0x40,0x4c,0x52,0x33,0x40,0xbc,0x91,0x40,0xc0,0xbf,0xd7,0x8f,0x40,0x5a,0x9c,0x1a,0x40,0x80,0x71,0x2e,0x40,0x84,0x91,0x48,0xc0,0xaa,0x9d,0xb7,0x3f,0x27,0x5c,0xe0,0xbf,0xbb,0x8,0x7a,0x40,0xee,0x52,0x66,0xbf,0xf6,0x28,0xf9,0x3f,0x20,0x5b,0x63,0x3f,0x5b,0x26,0x8,0x40,0x58,0x7d,0xd9,0xbf,0xd8,0x5,0x1c,0x40,0xbe,0x82,0x5f,0xc0,0x15,0x8c,0x90,0x3f,0x68,0x82,0x58,0xc0,0x94,0xd8,0x9d,0xc0,0x2a,0x7d,0x80,0xc0,0x64,0xa1,0x7c,0x40,0xa4,0x21,0x2d,0x40,0x51,0x1d,0x96,0x40,0xed,0x2d,0x80,0x40,0x24,0xe3,0x8e,0xc0,0xc2,0x60,0x5a,0xc0,0x62,0xd3,0x4e,0xbf,0x7e,0xd1,0x4f,0xc0,0xf6,0x34,0x5e,0x40,0x28,0xec,0x71,0xc0,0xe3,0x20,0x1c,0xc0,0x1a,0x93,0x9a,0xc0,0xb8,0xad,0x35,0xc0,0xad,0x98,0x83,0x40 });float v = 0.8444218515250481; - - - // [[ 3.179493 -1.5879765 -3.2990203 -3.4551835 5.8324704 4.0183687 -2.61 - Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xd0,0x7c,0x4b,0x40,0xd0,0x42,0xcb,0xbf,0x26,0x23,0x53,0xc0,0xba,0x21,0x5d,0xc0,0x99,0xa3,0xba,0x40,0x7a,0x96,0x80,0x40,0xdc,0x26,0x27,0xc0,0x9a,0x3d,0x33,0x40,0x2b,0xd9,0x93,0x40,0xba,0xf5,0xba,0x40,0xb8,0xec,0xa6,0x40,0x6c,0xfb,0x96,0x40,0x48,0x8f,0x9a,0xbe,0x88,0x8,0x69,0xbf,0xaa,0x63,0x9e,0x40,0x4e,0x5d,0x69,0x40,0xba,0x86,0xa,0xc0,0x40,0xdd,0xaa,0x40,0x5c,0xa7,0x50,0x40,0x82,0x7c,0x64,0x40,0x82,0x86,0x12,0xc0,0xd7,0xd9,0x11,0x40,0x46,0x8c,0x68,0xbf,0xde,0x9,0x98,0x40,0x60,0x6e,0x62,0xbd,0x7d,0x9f,0x32,0x40,0x94,0xc3,0xdd,0x3f,0x5d,0x31,0x3e,0x40,0xa8,0xce,0x5a,0xbf,0xda,0x10,0x52,0x40,0xbc,0x77,0x29,0xc0,0x19,0xa2,0xfc,0x3f,0x66,0x77,0x22,0xc0,0x13,0xd3,0x82,0xc0,0x52,0xef,0x4a,0xc0,0x33,0x56,0x99,0x40,0xa6,0x2c,0x63,0x40,0xd2,0x22,0xb1,0x40,0x6e,0x33,0x9b,0x40,0x46,0xbb,0x67,0xc0,0xc0,0x55,0x24,0xc0,0x60,0x8a,0x15,0x3d,0x7c,0xc6,0x19,0xc0,0xfc,0x1f,0x8a,0x40,0x26,0xe1,0x3b,0xc0,0xc2,0x2b,0xcc,0xbf,0x32,0x1b,0x7f,0xc0,0x6c,0x45,0xff,0xbf,0x2e,0x9e,0x9e,0x40 }); - Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); - - cycles = read_cycles(); - NN_add1(actual, a, v); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(a); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("clip: "); - - // [[ 4.0938 3.5791886 3.8606362 4.4459324 -1.2803149 2.2000103 4.45 - Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x69,0x0,0x83,0x40,0x6d,0x11,0x65,0x40,0xaa,0x14,0x77,0x40,0x14,0x45,0x8e,0x40,0x5c,0xe1,0xa3,0xbf,0xf8,0xcc,0xc,0x40,0x82,0x8c,0x8e,0x40,0x59,0xb9,0xd3,0x3f,0xbe,0xf2,0x9f,0x40,0xde,0xf8,0x25,0x40,0x6e,0xed,0x46,0x40,0xb7,0xfe,0xdf,0xbf,0x78,0x8b,0x19,0x40,0x94,0x14,0x13,0x3f,0xd5,0xd7,0x98,0xbf,0x1c,0x63,0x34,0xc0,0xac,0x8e,0x33,0xc0,0xde,0x3b,0x76,0xc0,0x62,0xd3,0x56,0x40,0x7c,0x7f,0x63,0x40,0x24,0xae,0x11,0xbf,0xf5,0x2d,0x39,0xc0,0x6a,0x54,0x77,0x40,0xef,0xa2,0x4c,0x40,0x8c,0x4b,0xbe,0x3e,0x53,0x15,0x17,0xc0,0x33,0xc,0x93,0x40,0x6c,0xdc,0x2,0x40,0x30,0xed,0x72,0xc0,0x1d,0x22,0x99,0x40,0xe6,0xff,0x72,0x40,0x2f,0x46,0xe9,0xbf,0xb3,0xe3,0x33,0x40,0xc,0xd2,0x35,0xc0,0x26,0x98,0x48,0xbf,0x2f,0xdb,0x87,0x40,0xd0,0x8d,0x53,0x3e,0x50,0x4f,0x62,0xc0,0xb9,0xe8,0xd5,0xbf,0x93,0xb9,0xad,0xbf,0xe8,0xf2,0x76,0xbf,0x5c,0xfe,0xf4,0x3e,0x5,0xf9,0x93,0x40,0x34,0x10,0x89,0x3e,0xaf,0x94,0x45,0xc0,0x0,0x36,0x83,0x3e,0x97,0x6f,0x19,0x40,0x9e,0xbb,0x1e,0x40,0xec,0x3a,0x92,0xc0 });float v_min = -0.24204559705969753;float v_max = 0.420571580830845; - - - // [[ 0.4205716 0.4205716 0.4205716 0.4205716 -0.2420456 0.4205716 0.42 - Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0xcd,0xda,0x77,0xbe,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0xcd,0xda,0x77,0xbe,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0xcd,0xda,0x77,0xbe,0xcd,0xda,0x77,0xbe,0xcd,0xda,0x77,0xbe,0xcd,0xda,0x77,0xbe,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0xcd,0xda,0x77,0xbe,0xcd,0xda,0x77,0xbe,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0x8c,0x4b,0xbe,0x3e,0xcd,0xda,0x77,0xbe,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0xcd,0xda,0x77,0xbe,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0xcd,0xda,0x77,0xbe,0x29,0x55,0xd7,0x3e,0xcd,0xda,0x77,0xbe,0xcd,0xda,0x77,0xbe,0x29,0x55,0xd7,0x3e,0xd0,0x8d,0x53,0x3e,0xcd,0xda,0x77,0xbe,0xcd,0xda,0x77,0xbe,0xcd,0xda,0x77,0xbe,0xcd,0xda,0x77,0xbe,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0x34,0x10,0x89,0x3e,0xcd,0xda,0x77,0xbe,0x0,0x36,0x83,0x3e,0x29,0x55,0xd7,0x3e,0x29,0x55,0xd7,0x3e,0xcd,0xda,0x77,0xbe }); - Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); - - cycles = read_cycles(); - NN_clip(actual, a, v_min, v_max); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(a); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("div: "); - - // [[-0.8947122 -3.7157226 -2.1334279 1.801467 -3.550651 1.8586344 4.24 - Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xdc,0xb,0x65,0xbf,0x66,0xce,0x6d,0xc0,0x15,0x8a,0x8,0xc0,0x78,0x96,0xe6,0x3f,0xde,0x3d,0x63,0xc0,0xbb,0xe7,0xed,0x3f,0xf4,0xcd,0x87,0x40,0xfc,0xe7,0xa7,0x3e,0xac,0x46,0x55,0xc0,0x68,0x4d,0xe5,0xbf,0xc7,0xc0,0x8b,0x3f,0x18,0xf1,0x73,0xc0,0xb4,0xfa,0x1e,0x40,0x56,0x42,0x91,0xc0,0x93,0xce,0x99,0xc0,0x38,0x77,0x9b,0xc0,0x21,0xd5,0x81,0xbf,0xb4,0x2d,0x57,0x40,0xc7,0x6f,0x97,0xc0,0x6d,0xfd,0x84,0x40,0xe0,0x1,0x0,0xc0,0x22,0x72,0xbb,0x3f,0xa8,0x7c,0x69,0x3e,0x6a,0x46,0x90,0xc0,0x51,0xb1,0x84,0x40,0x4a,0x4d,0x2c,0x40,0x10,0xa,0x9f,0x40,0xfc,0xaa,0x21,0x40,0xda,0x38,0x53,0xc0,0x8d,0x88,0x85,0x40,0xf4,0x95,0x89,0x3e,0xd0,0xbf,0x17,0x40,0xec,0x4a,0x80,0xc0,0xba,0x14,0xb8,0xbf,0xb4,0x19,0x9d,0xc0,0x74,0x46,0xf9,0xbf,0x64,0x11,0x8a,0x3f,0x73,0x40,0x7b,0xc0,0x54,0x2,0xcc,0x3f,0x37,0xc7,0x2b,0x40,0xde,0x50,0x32,0x3f,0x4f,0x1b,0x56,0xc0,0x30,0x1a,0x78,0xc0,0x5d,0x73,0xc5,0xbf,0x74,0x77,0xc,0x40,0xcc,0xd2,0x9d,0x40,0x60,0x2,0x38,0x40,0xce,0x23,0x10,0xbf,0x0,0x65,0xe0,0x3f }); - // [[-4.9053144 -4.2705064 2.3330398 -2.832076 2.4054785 -3.5296607 -2.47 - Tensor *b = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x56,0xf8,0x9c,0xc0,0xfd,0xa7,0x88,0xc0,0x86,0x50,0x15,0x40,0xbc,0x40,0x35,0xc0,0x5c,0xf3,0x19,0x40,0xf6,0xe5,0x61,0xc0,0xde,0x7f,0x1e,0xc0,0x4d,0xca,0x83,0xc0,0x30,0xfd,0x26,0x40,0xfc,0x6c,0x2,0xbf,0xb9,0x45,0x76,0x40,0x2,0xa,0x46,0x40,0xd3,0x11,0x31,0x40,0xa8,0xa3,0x24,0x3e,0xb9,0xdf,0xc5,0xbf,0x1,0x28,0x8b,0xbf,0xde,0x1c,0x2a,0x3f,0x86,0xa0,0x1e,0x40,0x53,0x30,0x60,0xc0,0xd2,0x48,0x86,0x40,0xac,0x2c,0xb,0xbf,0x40,0x12,0x86,0xc0,0x75,0x23,0x2d,0xc0,0x22,0x92,0x8d,0x40,0x8,0x53,0x92,0x40,0x6a,0x34,0x94,0xc0,0xa,0xb2,0x61,0x40,0xf6,0x5e,0x20,0x40,0xf6,0x69,0x3d,0x40,0xd6,0x71,0x87,0x40,0xd0,0x76,0x2c,0xc0,0xb3,0x18,0xca,0x3f,0x62,0xf4,0x2,0x40,0xa2,0x1d,0xbd,0xbf,0x92,0x2d,0xd6,0x3f,0xf7,0x22,0xb8,0xbf,0xf8,0xd7,0x45,0x40,0x2a,0x92,0xb1,0xbf,0xd9,0x96,0xee,0xbf,0x90,0x1e,0xa1,0x3f,0x2,0x1,0xe3,0x3f,0xca,0x57,0x1c,0xc0,0xbc,0x4c,0xe2,0x3e,0x91,0x73,0x39,0x40,0x2c,0xb6,0xfe,0xbe,0x12,0xc6,0xc2,0x3f,0x13,0x5c,0x9a,0xbf,0xdc,0x51,0xe0,0x3f,0x60,0xce,0x67,0xc0 }); - - - // [[ 0.1823965 0.8700895 -0.9144413 -0.6360941 -1.4760685 -0.5265759 - Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x26,0xc6,0x3a,0x3e,0x2f,0xbe,0x5e,0x3f,0xd3,0x18,0x6a,0xbf,0x10,0xd7,0x22,0xbf,0xd0,0xef,0xbc,0xbf,0xae,0xcd,0x6,0xbf,0x22,0x58,0xdb,0xbf,0xc8,0x13,0xa3,0xbd,0xd6,0x7a,0xa3,0xbf,0xa6,0x9,0x61,0x40,0xf2,0x45,0x91,0x3e,0x29,0xab,0x9d,0xbf,0x84,0xd8,0x65,0x3f,0x92,0xdd,0xe1,0xc1,0xfb,0xfc,0x46,0x40,0x7c,0x0,0x8f,0x40,0x7,0x62,0xc3,0xbf,0xfd,0xa1,0xad,0x3f,0xba,0xec,0xac,0x3f,0x3b,0x88,0x7d,0x3f,0x7b,0x75,0x6b,0x40,0x21,0xf5,0xb2,0xbe,0x7a,0x9d,0xac,0xbd,0xeb,0x71,0x82,0xbf,0x9c,0x26,0x68,0x3f,0xdf,0xcf,0x14,0xbf,0xd0,0x64,0xb4,0x3f,0x1,0x9,0x81,0x3f,0xbe,0xbc,0x8e,0xbf,0x37,0x63,0x7c,0x3f,0x4c,0x3a,0xcc,0xbd,0x5e,0x39,0xc0,0x3f,0xd4,0xcb,0xfa,0xbf,0x40,0x2f,0x79,0x3f,0xe9,0xc6,0x3b,0xc0,0xbc,0x47,0xad,0x3f,0x36,0xa7,0xb2,0x3e,0xaa,0x1c,0x35,0x40,0x7b,0xe5,0x5a,0xbf,0xc2,0x77,0x8,0x40,0xc5,0x17,0xc9,0x3e,0xbc,0x4a,0xaf,0x3f,0xfd,0x54,0xc,0xc1,0x2e,0x48,0x8,0xbf,0x58,0x2d,0x8d,0xc0,0x3f,0x6f,0x4f,0x40,0x1f,0x96,0x18,0xc0,0x17,0x7f,0xa4,0xbe,0x98,0xd0,0xf7,0xbe }); - Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); - - cycles = read_cycles(); - NN_div(actual, a, b); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-2) ? "PASS" : "FAIL", cycles); NN_delete_tensor(a); NN_delete_tensor(b); @@ -235,43 +62,23 @@ int main() { NN_delete_tensor(actual); } - { - printf("fill: "); -float v = 0.25891675029296335; - - - // [[0.25891674 0.25891674 0.25891674 0.25891674 0.25891674 0.25891674 0.25891674 - Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e,0xbc,0x90,0x84,0x3e }); - Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); - - cycles = read_cycles(); - NN_fill(actual, v); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - { printf("matmul_t: "); - // [[-2.940144 -2.5379527 4.5950546 -1.3454205 -0.01365185 -2.4224777 4.99 - Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0x52,0x2b,0x3c,0xc0,0xd1,0x6d,0x22,0xc0,0xb0,0xa,0x93,0x40,0xbd,0x36,0xac,0xbf,0x0,0xac,0x5f,0xbc,0xe0,0x9,0x1b,0xc0,0xf6,0xb9,0x9f,0x40,0x69,0x44,0x9c,0x40,0xf8,0x56,0x71,0xc0,0xa,0xb5,0x81,0xc0,0xc9,0x8e,0x72,0xc0,0x0,0x8a,0xc5,0xbc,0x75,0x23,0xa3,0xbf,0x62,0x74,0x51,0xc0,0xd8,0x8c,0xe5,0xbf,0xde,0xd4,0x71,0x3f,0x71,0x32,0x27,0xc0,0x15,0xd0,0x8d,0x3f,0x1d,0xc3,0x92,0xbf,0x6e,0xf,0x1b,0xc0,0x7a,0xda,0x2f,0x3f,0xb2,0x8f,0x83,0x40,0x6a,0x58,0x58,0xc0,0x80,0xbe,0x6d,0x3e,0xe8,0x2,0xec,0xbf,0x4e,0x2,0x9d,0x40,0x58,0xcd,0x97,0xc0,0xc3,0x62,0x99,0xc0,0x5e,0xa9,0x9d,0x40,0xf6,0x75,0x4a,0xc0,0xe8,0x67,0x75,0x3f,0x90,0xf1,0xdc,0xbe,0xb,0xd2,0x86,0xbf,0x4d,0xf1,0x8e,0xbf,0x4b,0x57,0x4b,0x40,0x70,0xb8,0x74,0x3e,0x41,0xc7,0x9b,0xc0,0x4e,0xea,0x3c,0xc0,0x1b,0x2d,0xda,0xbf,0x7c,0x7,0x21,0x40,0x32,0x15,0x4f,0xc0,0xfd,0xdd,0x96,0x40 }); - // [[-1.1136466 -0.89780986 3.91779 2.5130386 4.2406015 2.892222 -1.516 - Tensor *b = NN_tensor(2, (size_t[]){ 5, 7 }, DTYPE_F32, (uint8_t[]){ 0xf9,0x8b,0x8e,0xbf,0xde,0xd6,0x65,0xbf,0x12,0xbd,0x7a,0x40,0xa0,0xd5,0x20,0x40,0x2,0xb3,0x87,0x40,0x2a,0x1a,0x39,0x40,0x81,0x25,0xc2,0xbf,0xa9,0x4f,0x54,0xc0,0xc8,0x78,0xbe,0xbe,0x9,0x6c,0x84,0x40,0xf3,0xcb,0xd6,0xbf,0x13,0x61,0x94,0xc0,0x56,0x2d,0x3,0x40,0x64,0xc1,0x9b,0x40,0x80,0x32,0xb6,0xbf,0xd8,0x7b,0x84,0xc0,0x2a,0x21,0x91,0xc0,0x34,0x62,0xa0,0x3f,0xac,0xd7,0xc1,0xbe,0x8e,0x98,0x21,0xc0,0x49,0x5d,0x81,0x3f,0xb0,0xb,0xf3,0x3f,0x88,0x80,0x7e,0x40,0x3b,0x71,0x78,0x40,0x5c,0x98,0x3f,0xbf,0x2f,0x15,0x8d,0xc0,0x67,0x94,0x90,0xc0,0xed,0x63,0x95,0x40,0x2a,0x75,0xd,0x40,0x88,0x7d,0xb,0x40,0x74,0x6f,0x8a,0xc0,0x9b,0x29,0x94,0x40,0x2c,0x93,0x97,0x40,0x28,0x75,0x90,0x40,0x3e,0xf9,0x86,0xc0 }); + // [[-0.2393 -0.58 0.0801 -0.911 0.875 -0.6113 -0.4033 ] [ 0.552 -0. + Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0xa8,0xb3,0xa4,0xb8,0x20,0x2d,0x4a,0xbb,0x0,0x3b,0xe4,0xb8,0x74,0xb6,0x6a,0x38,0x40,0xaf,0x1c,0xb6,0x54,0x3b,0x58,0xbb,0x6a,0xba,0x78,0xb9,0xd0,0xb3,0x80,0xab,0xe0,0x29,0x4,0xb6,0xe8,0x3b,0x18,0x30,0x80,0xaa,0xe0,0xb0,0xa0,0x31,0xd0,0x3b,0x9c,0x3a,0x78,0x30,0x28,0x39,0x18,0x33,0x60,0xac,0x48,0xb3,0xc4,0xb4,0x30,0xaf,0x16,0xb9,0xaa,0x3a,0x40,0xb7,0xc4,0x34,0x8a,0x38,0xae,0xba,0x46,0x39,0x0,0x37,0xf0,0x2d,0x28,0x32 }); + // [[ 0.592 -0.75 0.8604 0.674 0.2852 0.908 -0.2031 ] [ 0.841 -0. + Tensor *b = NN_tensor(2, (size_t[]){ 5, 7 }, DTYPE_F16, (uint8_t[]){ 0xbc,0x38,0x0,0xba,0xe2,0x3a,0x64,0x39,0x90,0x34,0x44,0x3b,0x80,0xb2,0xba,0x3a,0xfa,0xb8,0xc4,0x38,0x54,0x38,0x60,0xaa,0x20,0xb9,0xce,0x3b,0xb0,0xae,0x6e,0xba,0x2,0xb9,0x0,0x38,0x14,0x3b,0x1c,0xb9,0x54,0xb7,0x60,0xac,0xfc,0x35,0xd2,0xbb,0x76,0x39,0xfc,0xba,0xe,0xb9,0x3c,0xbb,0x7c,0x38,0xd0,0xad,0x88,0xb4,0xa,0xbb,0x86,0x3b,0xb8,0xb6,0x5c,0x3b }); - // [[ 5.539131 51.363888 3.3331451 37.47694 -70.19221 ] [-26.281723 -43 - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0x90,0x40,0xb1,0x40,0x9f,0x74,0x4d,0x42,0x40,0x52,0x55,0x40,0x63,0xe8,0x15,0x42,0x69,0x62,0x8c,0xc2,0xf8,0x40,0xd2,0xc1,0xfe,0x8f,0x2e,0xc2,0x51,0xb8,0xb1,0x41,0xd8,0x47,0xe0,0xc1,0x62,0xf9,0x27,0x41,0x9c,0xb4,0x99,0xc1,0x77,0x32,0x58,0xc0,0xed,0xfd,0x98,0x41,0xdc,0x6d,0x9,0x41,0x7b,0xa7,0x97,0xc0,0x63,0x6d,0x11,0x41,0x2,0x43,0x80,0xc2,0x1f,0xe4,0x20,0x41,0xb9,0x72,0xcf,0xc1,0x47,0x8b,0x63,0x41,0x7,0xdb,0x47,0xc1,0xf,0xa9,0xf2,0x40,0xb3,0x1,0xf4,0x40,0x9f,0xbb,0xca,0x41,0x51,0xa7,0xcc,0xc1,0x28,0xaa,0x8c,0xc1,0xc8,0x1,0x6c,0xc0,0xf,0x31,0x2c,0x42,0x44,0x4c,0x63,0xc0,0xdd,0x3a,0xde,0xc1 }); - Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F32); + // [[-0.4753 -0.331 1.335 -0.9136 1.406 ] [-0.1509 0.695 0.743 2. + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F16, (uint8_t[]){ 0x9b,0xb7,0x4c,0xb5,0x57,0x3d,0x4f,0xbb,0xa0,0x3d,0xd4,0xb0,0x8f,0x39,0xf2,0x39,0xb0,0x41,0x23,0xbe,0x3,0x2e,0x34,0xb8,0x60,0x39,0xd1,0xbc,0x10,0x3c,0x5,0x3f,0xb4,0x38,0xb5,0xb9,0x2d,0xbc,0x29,0xbc,0x73,0x37,0x65,0xbc,0x89,0xb8,0x95,0x38,0xcc,0xbc,0xa8,0xb5,0x61,0xb0,0xd7,0x38,0xbf,0x3a,0x24,0x35 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F16); cycles = read_cycles(); NN_matmul_t(actual, a, b); cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-2) ? "PASS" : "FAIL", cycles); NN_delete_tensor(a); NN_delete_tensor(b); @@ -284,144 +91,20 @@ float v = 0.25891675029296335; { printf("matmul: "); - // [[-1.886617 -3.438819 4.734828 -2.1483998 -2.2827725 2.6195645 -2.31 - Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0xaa,0x7c,0xf1,0xbf,0x9c,0x15,0x5c,0xc0,0xb6,0x83,0x97,0x40,0x62,0x7f,0x9,0xc0,0xf2,0x18,0x12,0xc0,0xf2,0xa6,0x27,0x40,0x91,0x7,0x14,0xc0,0x6a,0x9b,0x1d,0xc0,0x50,0xed,0xdf,0xbe,0xe4,0x10,0xf6,0xbe,0xea,0x45,0x79,0xc0,0xc,0x63,0x85,0x40,0xb0,0x28,0xd,0xc0,0x7c,0x4,0xe3,0x3f,0x56,0x2a,0x8b,0x40,0x9a,0x61,0x21,0x40,0xe4,0x38,0x35,0x3f,0x1a,0x23,0x88,0x40,0xca,0x10,0x2c,0x3f,0xd4,0xc,0x14,0xc0,0x24,0x5c,0x97,0x40,0xbc,0x79,0x97,0x3f,0xe3,0x1b,0x9c,0xc0,0xde,0x33,0xb6,0xbf,0x3e,0xf9,0x59,0xc0,0xcd,0x47,0x8c,0x40,0x0,0x63,0x53,0xbf,0xf,0xd8,0x91,0xc0,0x20,0xee,0xa0,0xbe,0xd1,0xf6,0x48,0x40,0xb4,0x45,0xa6,0x3f,0xef,0x5e,0xca,0x3f,0x64,0xc1,0xed,0x3e,0x9e,0x9a,0xee,0x3f,0xf1,0xef,0x9b,0xbf,0x96,0x97,0xfe,0xbf,0xa9,0x8d,0x95,0xc0,0x5c,0x11,0x71,0xc0,0x56,0xb0,0xa,0x40,0xee,0x79,0x3d,0xc0,0x18,0xa3,0x37,0x3f,0x54,0x48,0xcc,0x3f }); - // [[ 0.3540194 -3.2417488 4.781642 -2.9074974 4.112503 ] [-3.9775414 -1. - Tensor *b = NN_tensor(2, (size_t[]){ 7, 5 }, DTYPE_F32, (uint8_t[]){ 0x8,0x42,0xb5,0x3e,0xd0,0x78,0x4f,0xc0,0x36,0x3,0x99,0x40,0x70,0x14,0x3a,0xc0,0xa0,0x99,0x83,0x40,0xa,0x90,0x7e,0xc0,0x77,0xf3,0x99,0xbf,0xec,0x11,0x2e,0x40,0xee,0xbe,0x2,0xc0,0x29,0x68,0x86,0x40,0xc8,0x35,0x5c,0xc0,0xa,0x5d,0x86,0xc0,0x4c,0x4b,0x10,0xc0,0x9c,0xe9,0x4e,0x3f,0x29,0x52,0x93,0x40,0xae,0xc4,0x18,0xc0,0xcf,0xe1,0xe4,0x3f,0xd7,0x73,0xa0,0xbf,0xb9,0xca,0x8a,0xbf,0xe,0x4c,0x6b,0x40,0xd8,0xfe,0x77,0xc0,0xfc,0xf3,0x7,0x3f,0x29,0x77,0x96,0x40,0x3a,0xe3,0x2f,0xbf,0xd0,0x75,0x78,0x40,0xa5,0x17,0xc5,0xbf,0x40,0xcb,0x80,0x40,0xda,0xc5,0x9a,0xc0,0x72,0x7a,0x38,0xbf,0xd2,0xd3,0x60,0xbf,0x16,0x6a,0xcf,0x3f,0xed,0x16,0xfb,0x3f,0x90,0xb3,0x75,0x40,0xba,0xb3,0x3e,0xbf,0xb8,0x8,0x4b,0xbe }); + // [[-0.2783 0.1445 -0.796 -0.4512 0.4014 -0.2363 0.04004] [ 0.05664 -0. + Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x74,0xb4,0xa0,0x30,0x5e,0xba,0x38,0xb7,0x6c,0x36,0x90,0xb3,0x20,0x29,0x40,0x2b,0xfc,0xb4,0x80,0x28,0xb0,0xb3,0x54,0xbb,0x60,0x29,0xc0,0xb0,0xea,0xbb,0xf0,0xb3,0x9a,0xb9,0x0,0x2d,0xc0,0xbb,0xb0,0x31,0x0,0x30,0xd0,0xb2,0xda,0xb9,0x70,0x31,0x54,0x38,0xcc,0x35,0xc0,0x31,0x88,0xb8,0x30,0xb8,0x9a,0x38,0xc4,0xb9,0x60,0x34,0xc,0xb6,0xf0,0xb3,0x6,0x38,0x44,0xbb,0x10,0x33,0xd6,0x3a,0x34,0x34,0xe0,0x3a,0xb0,0xb9,0x20,0x35 }); + // [[ 0.01855 -0.4072 0.8203 0.4004 -0.5605 ] [ 0.2422 -0.824 -0.68 + Tensor *b = NN_tensor(2, (size_t[]){ 7, 5 }, DTYPE_F16, (uint8_t[]){ 0xc0,0x24,0x84,0xb6,0x90,0x3a,0x68,0x36,0x7c,0xb8,0xc0,0x33,0x98,0xba,0x7a,0xb9,0x0,0xa5,0x7a,0x3a,0x1c,0x3a,0xc0,0x3a,0x10,0x34,0x86,0x3b,0x4c,0xb4,0xea,0xba,0x0,0x9c,0xa8,0xb6,0x34,0x37,0x38,0xb0,0xda,0x38,0xa8,0xb1,0x20,0xb5,0x20,0x38,0xc0,0x30,0x30,0xae,0xd6,0xba,0xe0,0x2e,0xce,0xbb,0x40,0x37,0x40,0xac,0xf2,0x3a,0x50,0xb0,0x50,0x2f,0xf4,0x36 }); - // [[ 2.91091251e+00 -8.67680168e+00 -5.86394844e+01 2.00706692e+01 -1.90071621e - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0x64,0x4c,0x3a,0x40,0x2e,0xd4,0xa,0xc1,0xd5,0x8e,0x6a,0xc2,0xbb,0x90,0xa0,0x41,0xab,0xe,0x98,0xc1,0x87,0xe3,0xf7,0x3f,0xd1,0x9d,0xc1,0x3e,0xa5,0x9e,0xf0,0x41,0xb7,0xae,0x14,0x41,0x10,0xaa,0x2b,0xc1,0xea,0x56,0x47,0xc1,0xab,0xbc,0x42,0xc1,0xb9,0xed,0x54,0x42,0x54,0x3d,0xc1,0xc1,0x16,0x51,0x4c,0x42,0xbe,0xff,0x1b,0x41,0xde,0x48,0x0,0xc1,0x86,0x4c,0xdf,0x40,0xbc,0xbc,0x20,0x41,0x8a,0x68,0x80,0xc1,0x3,0xe8,0xdb,0xc1,0x23,0x35,0xd1,0xbc,0xf7,0x1e,0x16,0xc1,0x4a,0x72,0xdd,0xc0,0x9e,0xc5,0xc0,0x41,0x59,0x81,0x1a,0x42,0x16,0xd2,0x10,0x42,0x94,0xac,0xdd,0xc1,0x6f,0x3c,0x24,0x41,0x74,0x7e,0x46,0xc2 }); - Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F32); + // [[ 0.07556 -0.51 -0.501 -0.6235 0.516 ] [-0.3896 0.2615 0.6865 -0. + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F16, (uint8_t[]){ 0xd6,0x2c,0x14,0xb8,0x2,0xb8,0xfd,0xb8,0x21,0x38,0x3c,0xb6,0x2f,0x34,0x7e,0x39,0x9d,0xb8,0x17,0xb7,0x2d,0xbd,0x9c,0x30,0x51,0xb8,0xb1,0xbe,0x2e,0x38,0x77,0xb4,0xc7,0x2f,0xeb,0x2f,0x78,0x34,0x9b,0xb9,0x2a,0xbb,0xf3,0xb0,0x5f,0xbc,0x5e,0xb9,0xbc,0x3b,0x1f,0x3c,0x91,0x3e,0xbc,0xbc,0xe9,0x3e,0xe4,0x35 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F16); cycles = read_cycles(); NN_matmul(actual, a, b); cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(a); - NN_delete_tensor(b); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("max: "); - - // [[ 3.424056 -1.3528657 4.383168 -3.3290606 -0.54104924 -0.2685547 2.23 - Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xbc,0x23,0x5b,0x40,0xb4,0x2a,0xad,0xbf,0xea,0x42,0x8c,0x40,0x54,0xf,0x55,0xc0,0x34,0x82,0xa,0xbf,0x0,0x80,0x89,0xbe,0x84,0xc9,0xe,0x40,0xc0,0xc6,0x5a,0x40,0x84,0xe2,0x4a,0xbf,0x91,0x8e,0x84,0xc0,0xb9,0x8e,0x1e,0x40,0xbf,0x71,0xbf,0x3f,0x35,0x8b,0x0,0x40,0xcc,0x65,0x45,0xc0,0x5a,0xf3,0x4d,0x40,0x78,0x8b,0x97,0x40,0x7c,0x22,0xde,0x3e,0xa0,0x72,0x95,0xc0,0x3,0xa3,0x60,0x40,0xb0,0x43,0x6d,0xc0,0x3f,0x1e,0x93,0x3f,0xbc,0x1,0x3a,0x3f,0x8e,0xc5,0x15,0xc0,0x5c,0xd8,0xde,0x3f,0xf6,0x1b,0x8f,0xc0,0x1d,0xc4,0x91,0x3f,0x43,0xdd,0x4a,0xc0,0x3e,0x69,0xa,0xbf,0x1a,0xa5,0x24,0x3f,0xa5,0x4f,0x88,0x40,0xb2,0xad,0x18,0xc0,0xe8,0x0,0x4d,0x40,0x72,0x9a,0x22,0xbf,0x16,0xfa,0x17,0xc0,0xf4,0x53,0x8b,0xc0,0x8e,0xcd,0x92,0xc0,0xf9,0x41,0x9c,0x40,0x9f,0x9d,0x9f,0xbf,0xe8,0xbc,0x7f,0x3e,0xb,0x83,0xad,0x3f,0xaa,0x83,0x59,0x40,0x4d,0x8e,0x88,0x40,0x43,0xc3,0x81,0x40,0x25,0x15,0x6d,0xc0,0xd8,0x13,0x4d,0xbf,0x26,0x5b,0x3d,0xc0,0x23,0xd5,0x36,0xc0,0x1,0xd0,0x97,0x3f,0x6,0x2f,0x96,0x40 }); - - - // 4.8830533 - Tensor *golden = NN_tensor(0, (size_t[]){ }, DTYPE_F32, (uint8_t[]){ 0xf9,0x41,0x9c,0x40 }); - Tensor *actual = NN_zeros(0, (size_t[]){ }, DTYPE_F32); - - cycles = read_cycles(); - NN_max(actual, a); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(a); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("maximum: "); - - // [[-4.0055199e+00 3.0260224e+00 -2.5923336e+00 -9.7387135e-01 3.9688544e+00 - - Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x38,0x2d,0x80,0xc0,0x5a,0xaa,0x41,0x40,0xcb,0xe8,0x25,0xc0,0xa2,0x4f,0x79,0xbf,0xb6,0x1,0x7e,0x40,0xbe,0xbf,0x90,0xbf,0x4c,0x1a,0xe9,0x3e,0xbf,0xb0,0x5f,0xc0,0xd4,0x32,0x88,0x40,0x24,0x77,0x25,0xbf,0x82,0xb,0x6a,0xc0,0xb,0x66,0xbb,0x3f,0x8b,0x86,0x63,0xc0,0x1f,0xec,0x7d,0xc0,0xfc,0xf3,0x9b,0x3e,0xbf,0xb5,0x7d,0x40,0x1a,0x1c,0xb5,0xbf,0x8,0x9d,0x16,0x40,0xcc,0x7d,0x89,0x40,0x56,0x3e,0x54,0x40,0xa,0xdc,0x27,0xc0,0x3c,0x50,0xc,0xbf,0xf8,0x65,0xc9,0xbf,0xe0,0xa8,0x80,0xc0,0x0,0x64,0x7,0x3b,0x7c,0xc7,0x70,0x40,0x70,0xcd,0x86,0x40,0x8c,0xd9,0xee,0x3e,0xd6,0x5b,0x91,0x3f,0xf1,0x88,0xa,0xc0,0xb0,0x8c,0x71,0x40,0x9c,0x27,0x5,0xc0,0xf5,0x49,0x5e,0xc0,0x96,0x1c,0x45,0x3f,0xa6,0xcd,0x3f,0x40,0x30,0x41,0x90,0xc0,0x82,0xa2,0x90,0x40,0x57,0x3a,0xe6,0x3f,0x33,0x32,0x60,0xc0,0x5d,0xdc,0x89,0xbf,0x13,0xd0,0x8a,0x40,0xde,0x83,0x75,0xc0,0xb3,0xe,0xbb,0xbf,0x4a,0xe8,0xd1,0x3f,0x72,0x2c,0x8c,0xc0,0x66,0x6c,0x2f,0x40,0x43,0x93,0x26,0x40,0x3c,0x77,0x46,0x40,0xdc,0x3,0x4c,0xc0 }); - // [[ 4.9800053e+00 -2.9638076e+00 4.9917026e+00 -4.7984524e+00 -4.4548502e+00 - Tensor *b = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x34,0x5c,0x9f,0x40,0x6,0xaf,0x3d,0xc0,0x7,0xbc,0x9f,0x40,0xec,0x8c,0x99,0xc0,0x22,0x8e,0x8e,0xc0,0xf6,0x8a,0x44,0x40,0xcc,0xc6,0x5,0x3f,0x44,0xaf,0x93,0x3e,0xe3,0x33,0x31,0xc0,0x6e,0x3b,0x6,0xc0,0xc4,0x20,0xbb,0xbf,0x68,0xdd,0x9b,0xc0,0x34,0xa,0x85,0x3e,0x20,0x61,0x62,0x3f,0x0,0xb6,0x8a,0xbb,0xe8,0xac,0xce,0x3f,0xf0,0xd0,0x97,0x40,0x71,0x2a,0xaa,0x3f,0x4e,0x49,0xea,0xbf,0xe8,0xb1,0x3,0xc0,0xdf,0xbc,0x4c,0xc0,0x7c,0xd4,0x5d,0xc0,0xd0,0x24,0x4e,0xbf,0x50,0x63,0x62,0xbf,0x22,0x5b,0xe,0x40,0xa0,0xc7,0x8,0xc0,0xec,0x1a,0x7f,0x40,0xa4,0x89,0x60,0xc0,0x0,0xd5,0x68,0x3c,0xc3,0xd3,0x8f,0x40,0x4,0x1a,0x9f,0x40,0x2a,0x5d,0x39,0xc0,0x4c,0x1,0x64,0x3f,0x72,0x32,0x17,0x3f,0x54,0x8,0x16,0xc0,0xe1,0x1d,0xdd,0xbf,0xb8,0x58,0xad,0x3f,0x51,0x84,0x5e,0xc0,0xc8,0x31,0x53,0x3f,0xcf,0x78,0xa,0x40,0x74,0x34,0xfc,0xbf,0x10,0xe7,0x84,0x40,0x88,0x79,0xa8,0xbe,0x25,0x30,0x11,0x40,0xf3,0x72,0x9e,0x40,0xb4,0xa0,0xc3,0xbf,0xff,0xe3,0x2d,0x40,0x7,0xf,0xb7,0xbf,0x32,0xf9,0x3a,0xbf }); - - - // [[ 4.9800053 3.0260224 4.9917026 -0.97387135 3.9688544 3.0709815 0.52 - Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x34,0x5c,0x9f,0x40,0x5a,0xaa,0x41,0x40,0x7,0xbc,0x9f,0x40,0xa2,0x4f,0x79,0xbf,0xb6,0x1,0x7e,0x40,0xf6,0x8a,0x44,0x40,0xcc,0xc6,0x5,0x3f,0x44,0xaf,0x93,0x3e,0xd4,0x32,0x88,0x40,0x24,0x77,0x25,0xbf,0xc4,0x20,0xbb,0xbf,0xb,0x66,0xbb,0x3f,0x34,0xa,0x85,0x3e,0x20,0x61,0x62,0x3f,0xfc,0xf3,0x9b,0x3e,0xbf,0xb5,0x7d,0x40,0xf0,0xd0,0x97,0x40,0x8,0x9d,0x16,0x40,0xcc,0x7d,0x89,0x40,0x56,0x3e,0x54,0x40,0xa,0xdc,0x27,0xc0,0x3c,0x50,0xc,0xbf,0xd0,0x24,0x4e,0xbf,0x50,0x63,0x62,0xbf,0x22,0x5b,0xe,0x40,0x7c,0xc7,0x70,0x40,0x70,0xcd,0x86,0x40,0x8c,0xd9,0xee,0x3e,0xd6,0x5b,0x91,0x3f,0xc3,0xd3,0x8f,0x40,0x4,0x1a,0x9f,0x40,0x9c,0x27,0x5,0xc0,0x4c,0x1,0x64,0x3f,0x96,0x1c,0x45,0x3f,0xa6,0xcd,0x3f,0x40,0xe1,0x1d,0xdd,0xbf,0x82,0xa2,0x90,0x40,0x57,0x3a,0xe6,0x3f,0xc8,0x31,0x53,0x3f,0xcf,0x78,0xa,0x40,0x13,0xd0,0x8a,0x40,0x10,0xe7,0x84,0x40,0x88,0x79,0xa8,0xbe,0x25,0x30,0x11,0x40,0xf3,0x72,0x9e,0x40,0x66,0x6c,0x2f,0x40,0xff,0xe3,0x2d,0x40,0x3c,0x77,0x46,0x40,0x32,0xf9,0x3a,0xbf }); - Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); - - cycles = read_cycles(); - NN_maximum(actual, a, b); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(a); - NN_delete_tensor(b); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("min: "); - - // [[-0.8473557 -0.03106296 -1.888842 1.1719346 0.18840194 3.1694489 -1.01 - Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x4e,0xec,0x58,0xbf,0xc0,0x77,0xfe,0xbc,0x93,0xc5,0xf1,0xbf,0xf4,0x1,0x96,0x3f,0x70,0xec,0x40,0x3e,0x40,0xd8,0x4a,0x40,0x17,0x8a,0x81,0xbf,0xce,0x5b,0x0,0x3f,0xe5,0x12,0xee,0xbf,0x1b,0xfe,0x85,0xc0,0x58,0x7e,0x1,0x40,0x42,0xc9,0x23,0x3f,0xa0,0x27,0x0,0xc0,0x1e,0x63,0xd8,0xbf,0xa8,0x5f,0xa7,0x3f,0x14,0x72,0x67,0xbf,0xbe,0x1c,0x51,0x40,0xa4,0x1,0x91,0x3e,0x61,0xc0,0xf1,0x3f,0x3c,0x6c,0xb,0x40,0xd2,0x8,0x9d,0xbf,0xe8,0x73,0xa,0x40,0x7e,0x23,0x6c,0x40,0x30,0x9d,0x6b,0x3e,0xa6,0x7c,0x7a,0x3f,0xc8,0x9,0x3a,0x3e,0xbe,0x8e,0x5d,0x40,0x3e,0x1a,0x7,0xc0,0x34,0x1a,0x2a,0xc0,0xef,0x70,0xb,0x40,0x11,0x40,0x8b,0xc0,0x20,0x2c,0xa4,0x3d,0x47,0x2a,0x13,0xc0,0xf4,0x35,0x53,0x40,0x5c,0xf7,0x94,0xc0,0xc3,0x6,0x42,0x40,0xe,0x4c,0x9e,0x40,0x68,0x7f,0x81,0x3f,0x74,0x90,0xaa,0xbe,0xf8,0x7e,0x9d,0x40,0xb4,0xc0,0x8,0xc0,0x54,0x24,0xcd,0xbe,0x2c,0x21,0xc,0xc0,0x5c,0xb1,0x30,0xbf,0xcf,0x18,0x8b,0x3f,0x64,0xf5,0x2a,0x3f,0x8c,0xc2,0x71,0xbf,0x79,0xf9,0x9f,0xc0,0x1c,0x15,0x83,0x3e }); - - - // -4.999203 - Tensor *golden = NN_tensor(0, (size_t[]){ }, DTYPE_F32, (uint8_t[]){ 0x79,0xf9,0x9f,0xc0 }); - Tensor *actual = NN_zeros(0, (size_t[]){ }, DTYPE_F32); - - cycles = read_cycles(); - NN_min(actual, a); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(a); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("minimum: "); - - // [[-0.1481098 0.7521838 3.8312511 4.8600473 -2.9664123 -0.31177223 -2.0 - Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x18,0xaa,0x17,0xbe,0x1e,0x8f,0x40,0x3f,0x38,0x33,0x75,0x40,0x82,0x85,0x9b,0x40,0xb3,0xd9,0x3d,0xc0,0x9c,0xa0,0x9f,0xbe,0x2f,0x37,0x0,0xc0,0x9b,0x76,0x93,0xc0,0xd6,0xd9,0x68,0xc0,0x76,0x2b,0x96,0x40,0x5e,0x94,0x3a,0x40,0x6b,0xe3,0x2b,0x40,0x7c,0xd6,0x31,0x40,0xb8,0x3b,0x7e,0xc0,0xb2,0x6c,0x6,0x3f,0x12,0xea,0x94,0x40,0x66,0x96,0x32,0xc0,0xc8,0x55,0x8e,0x40,0x75,0x37,0xa8,0x3f,0x4a,0x22,0x61,0x40,0x84,0x15,0x9,0xc0,0x92,0x86,0x13,0x40,0x8a,0xd6,0x8d,0xc0,0x6c,0x8c,0xa2,0xbe,0x6,0x79,0xd5,0x3f,0xb5,0xee,0xbf,0x3f,0xa9,0xe3,0x85,0x40,0xa2,0x39,0x9d,0x40,0xa6,0x8f,0x91,0x40,0x73,0xd8,0x56,0x40,0xd8,0xfa,0x60,0x40,0x78,0x28,0x25,0xbf,0xc2,0x55,0x78,0xc0,0xdb,0x95,0xed,0xbf,0xd6,0xb2,0xf,0xbf,0x78,0xec,0x2c,0xc0,0x1e,0x93,0x23,0x40,0x4e,0xa8,0xe0,0x3f,0xcc,0x87,0x4e,0x3f,0x4e,0x99,0x9a,0x3f,0x68,0x8d,0x8c,0x40,0xaa,0x1b,0xe9,0x3f,0x70,0x4f,0x8c,0xc0,0x26,0x48,0x68,0xc0,0x36,0xa,0xd,0x40,0xfa,0x6f,0x2e,0x3f,0xb3,0xf,0x1c,0x40,0x92,0xcb,0x9f,0xc0,0xba,0xa8,0x93,0xc0 }); - // [[ 3.066132 3.1982284 -4.523555 1.8979263 -3.904221 3.7865388 1.56 - Tensor *b = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x82,0x3b,0x44,0x40,0xc6,0xaf,0x4c,0x40,0xf6,0xc0,0x90,0xc0,0x40,0xef,0xf2,0x3f,0xc2,0xde,0x79,0xc0,0xa7,0x56,0x72,0x40,0x6d,0xd3,0xc8,0x3f,0xb6,0x34,0x9e,0x40,0x3b,0xc2,0x9d,0xc0,0x37,0x7,0x9a,0xc0,0x48,0x5a,0x58,0x40,0x3c,0xd,0x8e,0x40,0xbe,0xe,0x44,0x40,0xdc,0xbe,0x54,0x40,0x6f,0xc3,0x86,0xc0,0xd0,0x9e,0x67,0x40,0x44,0x10,0x97,0xc0,0x21,0xfa,0x8e,0x3f,0x73,0x9c,0x51,0xc0,0x81,0x34,0xfe,0xbf,0xea,0xa5,0x62,0x3f,0x9d,0xa2,0xfb,0xbf,0x7c,0x86,0x4a,0xbf,0xe3,0xa6,0x97,0xc0,0x16,0xdc,0x96,0xc0,0x91,0xe9,0xf7,0x3f,0xf8,0x72,0x7,0xc0,0x47,0xaf,0x42,0xc0,0x5c,0x88,0xfc,0xbf,0x9c,0xcf,0x82,0xc0,0xde,0xce,0x7f,0xc0,0xaa,0x7a,0x3f,0x40,0x32,0xa3,0x22,0x40,0x20,0x80,0x2a,0x3f,0x97,0xcd,0x2e,0xc0,0xba,0xed,0xd4,0x3f,0x60,0x4,0x66,0x3e,0xff,0xb1,0x64,0xc0,0xb3,0xb8,0x89,0x3f,0xe1,0xaf,0x91,0x40,0x84,0x60,0x9d,0xc0,0x4e,0x1a,0x9f,0xc0,0xfc,0xff,0x23,0x3f,0x96,0xf7,0x70,0x40,0x7b,0xb7,0x42,0xc0,0x44,0xe3,0x8c,0x3f,0x8e,0xf4,0x60,0x40,0x8d,0x52,0xc5,0x3f,0xbd,0x80,0x8a,0x3f }); - - - // [[-0.1481098 0.7521838 -4.523555 1.8979263 -3.904221 -0.31177223 -2.0 - Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x18,0xaa,0x17,0xbe,0x1e,0x8f,0x40,0x3f,0xf6,0xc0,0x90,0xc0,0x40,0xef,0xf2,0x3f,0xc2,0xde,0x79,0xc0,0x9c,0xa0,0x9f,0xbe,0x2f,0x37,0x0,0xc0,0x9b,0x76,0x93,0xc0,0x3b,0xc2,0x9d,0xc0,0x37,0x7,0x9a,0xc0,0x5e,0x94,0x3a,0x40,0x6b,0xe3,0x2b,0x40,0x7c,0xd6,0x31,0x40,0xb8,0x3b,0x7e,0xc0,0x6f,0xc3,0x86,0xc0,0xd0,0x9e,0x67,0x40,0x44,0x10,0x97,0xc0,0x21,0xfa,0x8e,0x3f,0x73,0x9c,0x51,0xc0,0x81,0x34,0xfe,0xbf,0x84,0x15,0x9,0xc0,0x9d,0xa2,0xfb,0xbf,0x8a,0xd6,0x8d,0xc0,0xe3,0xa6,0x97,0xc0,0x16,0xdc,0x96,0xc0,0xb5,0xee,0xbf,0x3f,0xf8,0x72,0x7,0xc0,0x47,0xaf,0x42,0xc0,0x5c,0x88,0xfc,0xbf,0x9c,0xcf,0x82,0xc0,0xde,0xce,0x7f,0xc0,0x78,0x28,0x25,0xbf,0xc2,0x55,0x78,0xc0,0xdb,0x95,0xed,0xbf,0x97,0xcd,0x2e,0xc0,0x78,0xec,0x2c,0xc0,0x60,0x4,0x66,0x3e,0xff,0xb1,0x64,0xc0,0xcc,0x87,0x4e,0x3f,0x4e,0x99,0x9a,0x3f,0x84,0x60,0x9d,0xc0,0x4e,0x1a,0x9f,0xc0,0x70,0x4f,0x8c,0xc0,0x26,0x48,0x68,0xc0,0x7b,0xb7,0x42,0xc0,0xfa,0x6f,0x2e,0x3f,0xb3,0xf,0x1c,0x40,0x92,0xcb,0x9f,0xc0,0xba,0xa8,0x93,0xc0 }); - Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); - - cycles = read_cycles(); - NN_minimum(actual, a, b); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(a); - NN_delete_tensor(b); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("mul: "); - - // [[ 4.98863 3.2573633 -2.8121352 0.43218255 2.5543618 4.4095473 -4.97 - Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xdb,0xa2,0x9f,0x40,0xa4,0x78,0x50,0x40,0x6,0xfa,0x33,0xc0,0x8,0x47,0xdd,0x3e,0xaa,0x7a,0x23,0x40,0x3,0x1b,0x8d,0x40,0x74,0x30,0x9f,0xc0,0x1e,0x48,0x2d,0x40,0xf8,0xcf,0xb9,0xbf,0xe7,0xac,0x9c,0xc0,0x39,0x10,0x8e,0x3f,0x5e,0x36,0x2e,0xc0,0x40,0x64,0x35,0x3f,0x4f,0xc2,0x4f,0xc0,0x2e,0xcf,0x70,0xc0,0xf8,0x37,0xd9,0xbe,0x11,0xfe,0xd6,0xbf,0x1e,0x28,0x3b,0x40,0xe8,0xb7,0xdc,0x3e,0x5c,0xc7,0x79,0x40,0x34,0xe0,0x6f,0x3f,0x9c,0xcc,0xcd,0xbf,0x2b,0xbf,0x58,0x40,0x30,0xe4,0x8b,0x3e,0xd0,0x3e,0x70,0x3f,0xa6,0xd6,0xcd,0xbf,0x40,0xff,0x92,0x3c,0x10,0x1c,0x76,0xbf,0xf4,0xa4,0xd9,0xbe,0xb7,0x8f,0x79,0xc0,0x40,0xe6,0xfb,0xbc,0x9d,0xce,0x84,0xc0,0x8,0xaf,0x89,0xbf,0x6d,0x74,0x39,0x40,0x18,0x83,0x5e,0xc0,0x52,0xb2,0x57,0xc0,0xe1,0x45,0x9c,0xbf,0x1f,0x72,0xaf,0xbf,0x1c,0xb0,0x58,0x3f,0x0,0x80,0x54,0x3f,0x59,0x45,0x22,0x40,0x18,0x71,0x5c,0xc0,0x88,0xa9,0xb4,0xbe,0x24,0xf9,0x32,0x40,0x3c,0x65,0x8a,0x40,0x8c,0xbd,0xba,0xbe,0x91,0x28,0x39,0xc0,0xdf,0xf9,0xb7,0x3f,0x95,0x3b,0x36,0x40 }); - // [[-3.1237495 -2.901467 2.2099912 -0.35032988 -4.722493 -2.8829253 2.02 - Tensor *b = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x83,0xeb,0x47,0xc0,0xa3,0xb1,0x39,0xc0,0x7f,0x70,0xd,0x40,0x70,0x5e,0xb3,0xbe,0xaa,0x1e,0x97,0xc0,0xd9,0x81,0x38,0xc0,0x40,0xc5,0x1,0x40,0x8c,0x12,0xd9,0xbf,0x90,0xdf,0x5c,0x40,0x6,0xf9,0x7c,0x40,0x94,0x33,0x3a,0x3f,0x6c,0x6e,0xca,0xbe,0x44,0x27,0xcb,0xbf,0xd4,0x72,0x81,0xbe,0x9c,0xfc,0x68,0x3f,0xae,0x6e,0x74,0xc0,0xd,0xf5,0x98,0xbf,0x91,0x16,0x85,0xc0,0xcc,0x66,0x44,0x40,0xa1,0xc9,0x4b,0xc0,0xc1,0x2a,0x92,0x40,0xce,0xfa,0xa4,0xbf,0xf1,0x51,0x37,0xc0,0xb8,0xbe,0x19,0x40,0x3c,0xd2,0x3e,0x3f,0xff,0x95,0x5d,0x40,0x1f,0x97,0x5,0x40,0x62,0x22,0x9a,0xc0,0x9d,0x65,0x4a,0x40,0xae,0xa,0x71,0xbf,0x45,0x6e,0xd,0xc0,0x9d,0x37,0x4b,0x40,0xbd,0x62,0x69,0x40,0x0,0xa1,0x8c,0xc0,0xd8,0x7b,0xe7,0xbe,0x9f,0x64,0x83,0x40,0x11,0xdd,0xf7,0x3f,0x8b,0xcb,0x86,0x40,0xc1,0x53,0xdb,0xbf,0x8c,0x86,0x30,0xc0,0xe6,0x95,0x89,0x40,0x22,0x62,0x5,0x40,0xe2,0x98,0x99,0x40,0xb4,0xa9,0x5,0xc0,0x1e,0x76,0x4d,0xc0,0x52,0x8,0x16,0xbf,0x1d,0xa7,0x96,0xc0,0x36,0xdd,0xfa,0x3f,0x3e,0x7,0x6c,0x40 }); - - - // [[-15.58323 -9.451133 -6.214794 -0.15140645 -12.062956 -12.712396 - Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xe9,0x54,0x79,0xc1,0xd7,0x37,0x17,0xc1,0x98,0xdf,0xc6,0xc0,0x4b,0xa,0x1b,0xbe,0xde,0x1,0x41,0xc1,0xf9,0x65,0x4b,0xc1,0x25,0x64,0x21,0xc1,0xaf,0xee,0x92,0xc0,0xfe,0x50,0xa0,0xc0,0x9b,0xd2,0x9a,0xc1,0xd2,0xa8,0x4e,0x3f,0xb,0xc2,0x89,0x3f,0x51,0xf2,0x8f,0xbf,0x35,0x1c,0x52,0x3f,0x60,0x29,0x5b,0xc0,0x42,0x67,0xcf,0x3f,0xa6,0x74,0x0,0x40,0xae,0x98,0x42,0xc1,0x6f,0x55,0xa9,0x3f,0xd1,0xd5,0x46,0xc1,0xed,0xf5,0x88,0x40,0xb3,0xa0,0x4,0x40,0x8,0x36,0x1b,0xc1,0x31,0x7,0x28,0x3f,0xea,0x13,0x33,0x3f,0xe8,0x2a,0xb2,0xc0,0xc5,0x6a,0x19,0x3d,0xf0,0x2d,0x94,0x40,0x8c,0x12,0xac,0xbf,0xb5,0xfa,0x6a,0x40,0x52,0x2a,0x8b,0x3d,0x61,0xd9,0x52,0xc1,0xd2,0xa,0x7b,0xc0,0x9c,0xc0,0x4b,0xc1,0xef,0x33,0xc9,0x3f,0xf,0x6a,0x5d,0xc1,0x5f,0x4e,0x17,0xc0,0x76,0xc2,0xb8,0xc0,0x8c,0xa5,0xb9,0xbf,0xaf,0x87,0x12,0xc0,0x42,0x6c,0x2e,0x41,0x84,0xb6,0xe5,0xc0,0x6d,0xca,0xd8,0xbf,0x28,0xe4,0xba,0xc0,0xd8,0x25,0x5e,0xc1,0x44,0xe2,0x5a,0x3e,0x47,0xed,0x59,0x41,0xfd,0x48,0x34,0x40,0x15,0x4,0x28,0x41 }); - Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); - - cycles = read_cycles(); - NN_mul(actual, a, b); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-2) ? "PASS" : "FAIL", cycles); NN_delete_tensor(a); NN_delete_tensor(b); @@ -432,70 +115,27 @@ float v = 0.25891675029296335; } { - printf("mul1: "); - - // [[ 1.2002844 -0.4940343 2.4790316 -3.1737566 4.8912153 -4.9717183 -4.78 - Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xeb,0xa2,0x99,0x3f,0x10,0xf2,0xfc,0xbe,0x74,0xa8,0x1e,0x40,0xd4,0x1e,0x4b,0xc0,0xd6,0x84,0x9c,0x40,0x51,0x18,0x9f,0xc0,0x70,0x45,0x99,0xc0,0xaa,0x3b,0x97,0xbf,0xf3,0xb1,0x82,0x40,0x38,0x29,0x0,0x3f,0xd,0xca,0xf5,0x3f,0xec,0x8f,0x6a,0xc0,0x1e,0x66,0xe9,0x3f,0x18,0x8,0xf,0xbf,0x78,0x43,0x0,0x40,0x64,0xff,0x61,0x40,0x1,0x19,0xb,0x40,0xa8,0xc3,0xd9,0xbe,0x9c,0xb1,0x9d,0xbe,0x9a,0xb2,0x48,0xc0,0x45,0x7d,0xe7,0xbf,0xbc,0xf2,0x4f,0x40,0xa4,0x51,0x0,0xc0,0x94,0xbb,0x46,0x40,0xcb,0xc7,0xfd,0xbf,0x25,0xe,0x95,0xbf,0x0,0xee,0xd9,0x3d,0x94,0xd3,0x92,0xc0,0x0,0x7e,0x4c,0xbd,0xc0,0x4,0x1,0xbf,0x28,0xfb,0xe5,0xbe,0x9c,0xe0,0x7f,0xbf,0xde,0x47,0x7c,0x40,0xe8,0x27,0x6c,0x40,0xe0,0xe1,0x58,0xc0,0x8,0xa6,0x14,0x40,0x9f,0x0,0x7b,0xc0,0x1f,0x36,0x88,0xc0,0xee,0xa2,0xc3,0x3f,0xf0,0x7d,0x96,0x3d,0x34,0x48,0x15,0xc0,0x13,0x52,0x9a,0xc0,0x61,0xc4,0xf7,0xbf,0x7b,0xc2,0xd5,0x3f,0xa3,0x18,0x94,0xc0,0x3a,0x6f,0x9b,0xc0,0x98,0x65,0x22,0x3f,0x82,0x87,0x66,0xc0,0x40,0x2c,0x8c,0xc0 });float v = 0.5112747213686085; - - - // [[ 0.613675 -0.25258723 1.2674661 -1.6226615 2.5007546 -2.5419137 -2.44 - Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xce,0x19,0x1d,0x3f,0x1d,0x53,0x81,0xbe,0x54,0x3c,0xa2,0x3f,0x5f,0xb3,0xcf,0xbf,0x5d,0xc,0x20,0x40,0xb7,0xae,0x22,0xc0,0x38,0xba,0x1c,0xc0,0xae,0xa4,0x1a,0xbf,0x68,0xa4,0x5,0x40,0xc,0xd,0x83,0x3e,0xe8,0x54,0x7b,0x3f,0xf7,0xd9,0xef,0xbf,0x72,0xa9,0x6e,0x3f,0xc4,0x41,0x92,0xbe,0xe3,0x27,0x83,0x3f,0xff,0x17,0xe7,0x3f,0xf7,0x3b,0x8e,0x3f,0xbb,0xac,0x5e,0xbe,0xeb,0x3f,0x21,0xbe,0x28,0x39,0xcd,0xbf,0x93,0xb5,0x6c,0xbf,0x25,0xa3,0xd4,0x3f,0x61,0x36,0x83,0xbf,0xcb,0x36,0xcb,0x3f,0x63,0xc0,0x81,0xbf,0x96,0x6a,0x18,0xbf,0x8,0xd8,0x5e,0x3d,0x28,0x23,0x16,0xc0,0x76,0x1a,0xd1,0xbc,0x87,0xed,0x83,0xbe,0xc1,0x2a,0x6b,0xbe,0xd9,0xd2,0x2,0xbf,0x19,0xfc,0x0,0x40,0x26,0x7b,0xf1,0x3f,0xdc,0xc5,0xdd,0xbf,0x20,0x0,0x98,0x3f,0xc9,0x54,0x0,0xc0,0x6c,0x48,0xb,0xc0,0x45,0xc,0x48,0x3f,0xad,0xe2,0x19,0x3d,0xf5,0xa5,0x98,0xbf,0xea,0xcc,0x1d,0xc0,0xa6,0x5a,0x7d,0xbf,0x70,0x94,0x5a,0x3f,0x8b,0x6f,0x17,0xc0,0x7f,0xf0,0x1e,0xc0,0xe,0xf,0xa6,0x3e,0x46,0xba,0xeb,0xbf,0x6b,0x55,0xf,0xc0 }); - Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); - - cycles = read_cycles(); - NN_mul1(actual, a, v); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(a); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("neg: "); - - // [[-1.9264311 -0.80500424 -4.543526 -3.3386385 0.32783926 -4.7148585 -0.70 - Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x4b,0x95,0xf6,0xbf,0xc2,0x14,0x4e,0xbf,0x91,0x64,0x91,0xc0,0x41,0xac,0x55,0xc0,0x8c,0xda,0xa7,0x3e,0x1f,0xe0,0x96,0xc0,0xe0,0xe8,0x33,0xbf,0xf8,0x9f,0x4e,0xc0,0x0,0xd6,0x5d,0xc0,0x33,0x8a,0xfb,0x3f,0xfa,0x4c,0x76,0xc0,0xc7,0x81,0x72,0xc0,0x76,0x7d,0x36,0x40,0x1e,0x51,0x6f,0x3f,0xcc,0xb6,0x91,0x40,0xb1,0x11,0xab,0xbf,0x98,0x90,0x1a,0xc0,0x40,0xeb,0xec,0xbe,0x40,0x3b,0xcf,0x3c,0xd2,0xb,0x74,0x40,0x6f,0x5f,0x9f,0xc0,0x1c,0x46,0xb6,0xbe,0x7e,0x8d,0xd,0x40,0xf4,0x37,0x30,0xc0,0xe5,0x9a,0x22,0xc0,0x4c,0xa5,0x1a,0x40,0x44,0x4f,0x99,0xc0,0xd5,0xa6,0x97,0x3f,0x5c,0xbd,0x77,0xc0,0x4e,0xf,0x1f,0x40,0x75,0xce,0x88,0xc0,0xce,0xbc,0x44,0x40,0x12,0x76,0x97,0xc0,0x9d,0x7d,0x86,0xc0,0xe0,0xe7,0x96,0x3d,0x3,0x28,0x7c,0x40,0xf7,0x5,0x89,0xc0,0x36,0xbd,0xe,0xc0,0x74,0x86,0x8c,0x40,0x18,0xa7,0x56,0xbf,0x32,0x92,0x4,0x40,0x72,0xeb,0x99,0xc0,0x8d,0x44,0xc9,0xbf,0x9c,0x81,0x22,0xc0,0xca,0xe3,0x86,0x40,0x12,0xd0,0x4,0x40,0x8,0x7f,0x69,0xc0,0xdc,0x5e,0x4e,0x3f,0xc0,0x62,0x6b,0xbd }); - - - // [[ 1.9264311 0.80500424 4.543526 3.3386385 -0.32783926 4.7148585 0.70 - Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x4b,0x95,0xf6,0x3f,0xc2,0x14,0x4e,0x3f,0x91,0x64,0x91,0x40,0x41,0xac,0x55,0x40,0x8c,0xda,0xa7,0xbe,0x1f,0xe0,0x96,0x40,0xe0,0xe8,0x33,0x3f,0xf8,0x9f,0x4e,0x40,0x0,0xd6,0x5d,0x40,0x33,0x8a,0xfb,0xbf,0xfa,0x4c,0x76,0x40,0xc7,0x81,0x72,0x40,0x76,0x7d,0x36,0xc0,0x1e,0x51,0x6f,0xbf,0xcc,0xb6,0x91,0xc0,0xb1,0x11,0xab,0x3f,0x98,0x90,0x1a,0x40,0x40,0xeb,0xec,0x3e,0x40,0x3b,0xcf,0xbc,0xd2,0xb,0x74,0xc0,0x6f,0x5f,0x9f,0x40,0x1c,0x46,0xb6,0x3e,0x7e,0x8d,0xd,0xc0,0xf4,0x37,0x30,0x40,0xe5,0x9a,0x22,0x40,0x4c,0xa5,0x1a,0xc0,0x44,0x4f,0x99,0x40,0xd5,0xa6,0x97,0xbf,0x5c,0xbd,0x77,0x40,0x4e,0xf,0x1f,0xc0,0x75,0xce,0x88,0x40,0xce,0xbc,0x44,0xc0,0x12,0x76,0x97,0x40,0x9d,0x7d,0x86,0x40,0xe0,0xe7,0x96,0xbd,0x3,0x28,0x7c,0xc0,0xf7,0x5,0x89,0x40,0x36,0xbd,0xe,0x40,0x74,0x86,0x8c,0xc0,0x18,0xa7,0x56,0x3f,0x32,0x92,0x4,0xc0,0x72,0xeb,0x99,0x40,0x8d,0x44,0xc9,0x3f,0x9c,0x81,0x22,0x40,0xca,0xe3,0x86,0xc0,0x12,0xd0,0x4,0xc0,0x8,0x7f,0x69,0x40,0xdc,0x5e,0x4e,0xbf,0xc0,0x62,0x6b,0x3d }); - Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); - - cycles = read_cycles(); - NN_neg(actual, a); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(a); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("sub: "); + printf("linear: "); - // [[-2.0543492 -2.8553832 -1.659193 3.9411325 -3.5842614 -3.5617166 -1.54 - Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x75,0x7a,0x3,0xc0,0x99,0xbe,0x36,0xc0,0x70,0x60,0xd4,0xbf,0x84,0x3b,0x7c,0x40,0x8a,0x64,0x65,0xc0,0x2a,0xf3,0x63,0xc0,0xc6,0x73,0xc5,0xbf,0x70,0x23,0xb2,0x3d,0x33,0x37,0xae,0x3f,0x30,0xa4,0x19,0x3e,0x7d,0x10,0x9a,0xbf,0x35,0x8,0x42,0xc0,0x7c,0xac,0x65,0xbf,0x2b,0xd1,0x0,0xc0,0xc4,0x44,0x81,0x40,0xdb,0xbe,0x9b,0xc0,0x68,0x1d,0x4c,0xc0,0xa7,0x2c,0x82,0xc0,0xbe,0xed,0x69,0xbf,0x14,0x5e,0x79,0x40,0xc,0x3f,0x8c,0x40,0xf2,0x49,0x8b,0xc0,0x60,0xd5,0x5d,0xbe,0x44,0xd4,0x3b,0x40,0x20,0xe,0xd,0x40,0x7e,0xe,0x83,0x40,0x8,0x5,0xe,0xbe,0x74,0x1,0x57,0xc0,0x94,0xb0,0x53,0x40,0x20,0x77,0xdb,0xbf,0xa,0xb1,0x25,0x40,0x27,0xb8,0x9d,0xbf,0xb6,0x7,0x8,0x40,0x7d,0xe8,0x8f,0x40,0xe1,0xc6,0x94,0x40,0x44,0x9c,0x91,0xc0,0x78,0xac,0x53,0xc0,0x34,0x4f,0x4,0xc0,0x78,0x10,0x4c,0xc0,0x20,0x85,0x99,0x40,0xa0,0x18,0xe2,0xbe,0xdc,0x44,0x54,0xc0,0x89,0x65,0xe,0xc0,0xb5,0xc1,0x30,0xc0,0x7e,0x8e,0x2,0x40,0x68,0x8f,0x8b,0xc0,0x3b,0x2f,0x95,0xc0,0xc7,0xb8,0x9d,0xc0,0x89,0xc4,0x9,0x40 }); - // [[ 2.472273 -3.1053953 1.2398928 3.6909235 0.7265067 -1.0579079 0.3694117 - Tensor *b = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xb9,0x39,0x1e,0x40,0xcc,0xbe,0x46,0xc0,0xcf,0xb4,0x9e,0x3f,0x17,0x38,0x6c,0x40,0x58,0xfc,0x39,0x3f,0x87,0x69,0x87,0xbf,0x88,0x23,0xbd,0x3e,0x5e,0x40,0x9,0xbf,0xa6,0x1e,0x21,0x40,0x9c,0x48,0x59,0xc0,0xd6,0x45,0x22,0x40,0xa,0x5c,0x34,0x40,0x40,0xe1,0x41,0xc0,0x72,0xa6,0x82,0x40,0x4a,0x26,0x9d,0x40,0x6e,0x4e,0xfc,0xbf,0xaa,0x42,0xb3,0xbf,0x48,0x79,0x1f,0x40,0xce,0xb1,0x7a,0xc0,0xd6,0x17,0xfd,0x3f,0xa6,0x50,0x95,0x3f,0x9c,0xb4,0x49,0x40,0x22,0xfa,0x8a,0xc0,0xf2,0xec,0x84,0xc0,0xa8,0xb8,0xf,0x40,0xef,0x88,0xe6,0x3f,0x2f,0xec,0x94,0xc0,0x78,0x73,0x32,0xc0,0x85,0x65,0x92,0xc0,0x5e,0x41,0x65,0xc0,0x46,0x62,0x10,0xc0,0xfa,0x67,0x84,0x40,0x0,0xc9,0x7e,0xbf,0xda,0xca,0x37,0x40,0xee,0xf2,0x97,0x40,0x96,0xd5,0x11,0x40,0xd1,0x3b,0x8f,0xc0,0x1,0x8,0x21,0x40,0x3d,0x1e,0xf4,0x3f,0x5e,0x5,0x78,0x40,0x58,0xd4,0x9d,0xc0,0x1c,0xce,0x44,0x40,0x75,0xf7,0x82,0x40,0xbd,0xdb,0x94,0xc0,0xf2,0xeb,0x5,0x3f,0x73,0x96,0x88,0x40,0x16,0xbd,0x68,0xc0,0x10,0xff,0xd1,0x3f,0x98,0x66,0xd,0x40 }); + // [[ 0.581 -0.3428 0.8516 -0.09375 0.2227 0.495 -0.255 ] [-0.882 0. + Tensor *x = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0xa6,0x38,0x7c,0xb5,0xd0,0x3a,0x0,0xae,0x20,0x33,0xec,0x37,0x14,0xb4,0xe,0xbb,0x18,0x35,0x56,0xb8,0xc2,0xb9,0xcc,0xb7,0x8e,0x3a,0x70,0x39,0xc0,0x30,0xc4,0xb6,0xae,0xbb,0xdc,0xb9,0x50,0x38,0xd8,0x36,0x62,0xba,0xa8,0xb3,0xb4,0xba,0x22,0xbb,0x74,0x35,0xf2,0x3b,0x8,0x30,0x84,0xb4,0xec,0x3a,0xa0,0xb2,0x50,0xba,0xf4,0x35,0xd0,0xbb,0x7a,0xbb,0xc0,0xa9,0x40,0xa4,0x6,0x3a,0x2c,0xba,0x98,0x39,0xcc,0x3b,0xba,0xb9,0xac,0x39 }); + // [[-0.001953 -0.3154 0.6924 -0.29 -0.458 -0.9688 0.01074 ] [ 0.60 + Tensor *w = NN_tensor(2, (size_t[]){ 5, 7 }, DTYPE_F16, (uint8_t[]){ 0x0,0x98,0xc,0xb5,0x8a,0x39,0xa4,0xb4,0x54,0xb7,0xc0,0xbb,0x80,0x21,0xd0,0x38,0x58,0xba,0x50,0x30,0x6c,0x39,0xd6,0x3b,0x94,0x36,0xfa,0x38,0x38,0x39,0x44,0xb6,0xa0,0x37,0xf0,0xb3,0x36,0x38,0xa6,0x3b,0xc8,0x32,0xa4,0xb5,0x58,0xb2,0x9a,0xb9,0x70,0x31,0xa0,0x30,0xb0,0xac,0x3a,0x38,0x86,0x38,0x74,0xb7,0xc8,0xb2,0x24,0x36,0x6e,0xbb,0xae,0xb9,0x90,0xae }); + // [[ 0.878 0.795 -0.287 0.924 -0.1445]] + Tensor *b = NN_tensor(2, (size_t[]){ 1, 5 }, DTYPE_F16, (uint8_t[]){ 0x6,0x3b,0x5c,0x3a,0x98,0xb4,0x64,0x3b,0xa0,0xb0 }); - // [[-4.5266223 0.25001216 -2.899086 0.2502091 -4.310768 -2.5038085 -1.91 - Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x17,0xda,0x90,0xc0,0x98,0x1,0x80,0x3e,0xa0,0x8a,0x39,0xc0,0x68,0x1b,0x80,0x3e,0xd0,0xf1,0x89,0xc0,0x66,0x3e,0x20,0xc0,0xa8,0xbc,0xf4,0xbf,0xcc,0x84,0x1f,0x3f,0x19,0x6,0x94,0xbf,0xdf,0xe2,0x62,0x40,0x14,0x4e,0x6f,0xc0,0x20,0x32,0xbb,0xc0,0x21,0x76,0x8,0x40,0x8,0xf,0xc3,0xc0,0x30,0xc,0x5f,0xbf,0x7f,0x56,0x39,0xc0,0x26,0xf8,0xe4,0xbf,0x4b,0xe9,0xd1,0xc0,0x5e,0x36,0x40,0x40,0x52,0xa4,0xf5,0x3f,0xc5,0xd5,0x4d,0x40,0x40,0x24,0xf0,0xc0,0x77,0xb,0x84,0x40,0x14,0xd7,0xe2,0x40,0x0,0xa2,0x2a,0xbd,0x84,0xd8,0x12,0x40,0x7,0x7c,0x90,0x40,0xf0,0x37,0x12,0xbf,0xcf,0x3d,0xfc,0x40,0x9c,0xb,0xef,0x3f,0xa8,0x9,0x9b,0x40,0x4,0xd6,0xab,0xc0,0xf6,0xb9,0x47,0x40,0x40,0xc,0xd0,0x3f,0x40,0x3,0xcb,0xbd,0xf,0x87,0xda,0xc0,0x54,0x96,0x95,0x3f,0x9a,0xab,0x92,0xc0,0xcb,0xf,0xa3,0xc0,0x88,0x13,0x6c,0x3f,0xce,0xb2,0x8f,0x40,0x7c,0x89,0xcc,0xc0,0x3a,0x2a,0xca,0xc0,0x8a,0xeb,0xf1,0x3f,0x3,0x27,0xc2,0x3f,0xee,0x12,0xa,0xc1,0xc0,0x42,0x83,0xbf,0x8b,0x38,0xd2,0xc0,0xc0,0x83,0x68,0xbd }); - Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); + // [[ 1.018 1.73 1.191 0.036 -0.405 ] [ 0.04947 -0.2664 -0.396 1. + Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F16, (uint8_t[]){ 0x12,0x3c,0xec,0x3e,0xc4,0x3c,0x9c,0x28,0x7b,0xb6,0x55,0x2a,0x43,0xb4,0x56,0xb6,0xa1,0x3e,0x9b,0xbc,0x1b,0xaf,0x69,0x3a,0x24,0x33,0x83,0x3c,0x4f,0xb9,0xe9,0xb0,0x8d,0x40,0x43,0xa9,0x5e,0x3f,0x6c,0xb8,0x8f,0x3e,0x1b,0x34,0x1c,0xbe,0xb7,0x3c,0xa7,0x40,0x10,0x31,0xa3,0x3e,0x9f,0xbc,0x4,0x40,0x57,0xb8 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F16); cycles = read_cycles(); - NN_sub(actual, a, b); + NN_linear(actual, x, w, b); cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-2) ? "PASS" : "FAIL", cycles); - NN_delete_tensor(a); + NN_delete_tensor(x); + NN_delete_tensor(w); NN_delete_tensor(b); NN_delete_tensor(golden); @@ -504,516 +144,22 @@ float v = 0.25891675029296335; } { - printf("sum: "); + printf("relu: "); - // [[ 1.3104504 4.9713793 4.093898 4.289774 -0.6232339 4.193563 -4.659 - Tensor *a = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xd7,0xbc,0xa7,0x3f,0x8a,0x15,0x9f,0x40,0x36,0x1,0x83,0x40,0xd4,0x45,0x89,0x40,0x42,0x8c,0x1f,0xbf,0xab,0x31,0x86,0x40,0x24,0x1b,0x95,0xc0,0x70,0xae,0x2c,0xc0,0x49,0xe2,0x88,0xbf,0xc9,0x1d,0xbe,0xbf,0x89,0xca,0x93,0x40,0xd2,0xee,0x16,0x40,0x2a,0x5,0x4e,0x40,0xc1,0xaa,0x59,0x40,0x88,0xa,0x6f,0xc0,0x3a,0x40,0x14,0xbf,0x56,0xe9,0x3a,0x3f,0x8e,0x75,0xa6,0x3f,0xf0,0x8d,0x24,0x40,0xc,0xa9,0xfe,0xbf,0x66,0xfb,0xc0,0xbf,0xed,0xe0,0x85,0x40,0x17,0xc4,0xab,0xbf,0x5,0x49,0x5e,0xc0,0x5,0xf9,0x58,0x40,0x94,0xb0,0x58,0x40,0xce,0xae,0xc8,0xbf,0xce,0xe5,0x7f,0xbf,0x21,0x1f,0x6c,0xc0,0x70,0x9d,0x85,0xc0,0xf4,0xab,0xf0,0x3f,0x9e,0xb3,0x8,0xc0,0x24,0xc0,0x7e,0x40,0x36,0x1d,0x80,0xc0,0x98,0xed,0x30,0xbf,0x90,0x19,0xdd,0x3d,0x8c,0x76,0x24,0x40,0x30,0x7e,0x81,0x40,0x98,0xb4,0x58,0x40,0xdc,0xdc,0xc,0x40,0xc6,0xe0,0x12,0xc0,0xfa,0x86,0x64,0xc0,0x57,0x23,0x8f,0xc0,0xd0,0xf9,0x7d,0x3e,0x4b,0x2e,0x9b,0x40,0x5a,0x20,0x73,0xbf,0x60,0x8b,0x57,0xbe,0xc6,0x8a,0x68,0xc0,0x78,0x7c,0xc4,0x3f }); + // [[ 0.753 0.7803 -0.2412 0.3848 0.5264 -0.581 -0.8057 ] [ 0.413 0. + Tensor *x = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F16, (uint8_t[]){ 0x6,0x3a,0x3e,0x3a,0xb8,0xb3,0x28,0x36,0x36,0x38,0xa6,0xb8,0x72,0xba,0x9c,0x36,0xa0,0x2b,0x56,0xb9,0xf8,0xb0,0x80,0x29,0xf0,0xb2,0x44,0x3b,0x80,0x2d,0xbe,0xbb,0xec,0xb5,0x30,0xba,0x4,0xb4,0xb8,0xbb,0x0,0x3a,0x2c,0x37,0xbc,0xb9,0x76,0xba,0x10,0xb0,0x6a,0x3b,0xf0,0x33,0x0,0x2d,0xf8,0x36,0xf0,0xba,0x86,0xba,0xfe,0xba,0x5e,0xba,0xc0,0x35,0xba,0xb9,0xe0,0x35,0x6c,0x35,0xb0,0xba,0xe8,0x3a,0xe0,0xb2,0xa0,0xba,0x32,0x38,0x7a,0xb9,0xce,0x3a,0x8,0xb8,0xe8,0xb2,0x20,0x2f,0x3c,0x3a,0x40,0x27 }); - // 17.264463 - Tensor *golden = NN_tensor(0, (size_t[]){ }, DTYPE_F32, (uint8_t[]){ 0x9f,0x1d,0x8a,0x41 }); - Tensor *actual = NN_zeros(0, (size_t[]){ }, DTYPE_F32); + // [[0.753 0.7803 0. 0.3848 0.5264 0. 0. ] [0.413 0.05957 0. + Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F16, (uint8_t[]){ 0x6,0x3a,0x3e,0x3a,0x0,0x0,0x28,0x36,0x36,0x38,0x0,0x0,0x0,0x0,0x9c,0x36,0xa0,0x2b,0x0,0x0,0x0,0x0,0x80,0x29,0x0,0x0,0x44,0x3b,0x80,0x2d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3a,0x2c,0x37,0x0,0x0,0x0,0x0,0x0,0x0,0x6a,0x3b,0xf0,0x33,0x0,0x2d,0xf8,0x36,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0x35,0x0,0x0,0xe0,0x35,0x6c,0x35,0x0,0x0,0xe8,0x3a,0x0,0x0,0x0,0x0,0x32,0x38,0x0,0x0,0xce,0x3a,0x0,0x0,0x0,0x0,0x20,0x2f,0x3c,0x3a,0x40,0x27 }); + Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F16); cycles = read_cycles(); - NN_sum(actual, a); + NN_relu(actual, x); cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(a); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("linear: "); - - // [[ 3.1699169 -4.9295797 -3.5206108 3.703539 1.1838228 -0.3117305 0.89 - Tensor *x = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0xeb,0xdf,0x4a,0x40,0x1e,0xbf,0x9d,0xc0,0xb0,0x51,0x61,0xc0,0xc8,0x6,0x6d,0x40,0x81,0x87,0x97,0x3f,0x24,0x9b,0x9f,0xbe,0x82,0xcf,0x64,0x3f,0x18,0x9d,0x42,0xbf,0x36,0xab,0x5f,0xc0,0x40,0x82,0x95,0xc0,0x6f,0x77,0x52,0x40,0x2a,0x3d,0x18,0xbf,0x16,0xb0,0xed,0xbf,0x97,0x31,0xa5,0xbf,0xe,0x89,0x2e,0xc0,0xae,0x8e,0xbd,0xbf,0xa8,0x58,0x89,0xc0,0x4e,0x78,0x6f,0x40,0x6a,0xab,0x2,0x40,0x4,0x62,0x21,0xc0,0xc3,0x70,0xda,0xbf,0x62,0x90,0xf,0x40,0xd7,0xfe,0xec,0xbf,0x93,0xc3,0xa8,0x3f,0xf4,0x37,0xb0,0x3f,0x16,0x70,0x49,0xc0,0x2b,0x52,0xa0,0x3f,0xa8,0xa1,0x9c,0x3e,0xce,0xbd,0x8b,0x40,0x96,0x90,0xe7,0xbf,0x1b,0x86,0xa4,0xbf,0x2a,0xdb,0x89,0x40,0x8,0xa8,0x82,0xc0,0xc0,0xf4,0xb8,0x3e,0xe,0x29,0x9a,0x40,0x4e,0x7a,0xf,0xc0,0x9f,0x63,0x99,0x40,0x79,0xf9,0x8d,0x40,0xb7,0xda,0x94,0x40,0x7c,0x48,0xf4,0xbe,0xc8,0xbd,0x90,0x40,0x22,0x6e,0xb,0xc0 }); - // [[-1.7115259 1.891163 1.056236 2.7563782 4.7515965 -3.1299453 2.65 - Tensor *w = NN_tensor(2, (size_t[]){ 5, 7 }, DTYPE_F32, (uint8_t[]){ 0x48,0x13,0xdb,0xbf,0xa1,0x11,0xf2,0x3f,0xbe,0x32,0x87,0x3f,0x80,0x68,0x30,0x40,0x14,0xd,0x98,0x40,0x6,0x51,0x48,0xc0,0x21,0xd5,0x29,0x40,0xf,0x1f,0xd6,0x3f,0x61,0xd2,0x28,0x40,0x33,0xbc,0x17,0x40,0x9e,0x67,0xef,0xbf,0xf8,0xe9,0x7c,0xc0,0xc2,0xf,0x80,0x40,0xb4,0x79,0x36,0xc0,0xae,0x95,0x4c,0x40,0x47,0x6c,0x98,0xc0,0x6a,0x71,0x5d,0xbf,0xc0,0x10,0x59,0x3d,0x5e,0x78,0x5d,0x3f,0x10,0xee,0xce,0x3e,0x3,0xab,0xc9,0x3f,0x64,0x85,0xe,0xbf,0x23,0xbd,0x9c,0x3f,0x60,0x55,0x9e,0x40,0x81,0xe,0x4f,0xc0,0x8c,0xc4,0x8b,0xbe,0x81,0x4d,0xf4,0xbf,0x84,0x63,0x8c,0x40,0x65,0xf7,0x88,0x40,0x58,0x9e,0xb,0xbe,0x49,0xd8,0xdd,0xbf,0x98,0xb7,0x45,0xc0,0x0,0xf9,0x64,0x40,0x78,0x4a,0xb0,0xbe,0x85,0xb0,0x96,0x40 }); - // [[ 2.8513098 4.376523 3.954618 -3.2492113 1.463511 ]] - Tensor *b = NN_tensor(2, (size_t[]){ 1, 5 }, DTYPE_F32, (uint8_t[]){ 0xdc,0x7b,0x36,0x40,0x7a,0xc,0x8c,0x40,0x76,0x18,0x7d,0x40,0x14,0xf3,0x4f,0xc0,0x54,0x54,0xbb,0x3f }); - - - // [[ 3.5655763 -27.072094 43.116337 -36.25897 18.915453 ] [ 1.234409 - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0x67,0x32,0x64,0x40,0xa6,0x93,0xd8,0xc1,0x21,0x77,0x2c,0x42,0x2f,0x9,0x11,0xc2,0xd9,0x52,0x97,0x41,0x23,0x1,0x9e,0x3f,0x48,0xf2,0xc5,0xc1,0x55,0xb5,0x98,0x41,0x3d,0x45,0x2b,0xc2,0x42,0xf,0x2f,0xc1,0x48,0x82,0xbc,0x41,0x83,0x3d,0xa,0xc2,0x0,0x55,0x88,0x40,0x4,0x79,0x20,0xc2,0xbe,0xdb,0x5f,0xc1,0xd6,0xed,0x8a,0xc1,0x6a,0xfe,0xa2,0x41,0x4d,0x23,0x89,0x41,0x96,0x50,0x9c,0xc0,0x47,0x1d,0xaf,0xc0,0x3c,0xcb,0xa8,0xc0,0x70,0x41,0xb3,0xbe,0x0,0x4d,0x0,0x42,0xf6,0x3e,0xd4,0xc0,0x42,0x31,0x8a,0x41,0xe,0xe5,0x30,0x41,0x5f,0x26,0x25,0x42,0xb3,0x37,0xfd,0xc1,0xea,0x3f,0xe9,0xc0,0x1a,0x7a,0x31,0xc2 }); - Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F32); - - cycles = read_cycles(); - NN_linear(actual, x, w, b); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(x); - NN_delete_tensor(w); - NN_delete_tensor(b); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("linear: "); - - // [[-2.0732946 2.5087662 -0.44954896 0.43284953 -3.458044 -4.468628 1.882 - Tensor *x = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F32, (uint8_t[]){ 0xdc,0xb0,0x4,0xc0,0xa0,0x8f,0x20,0x40,0x48,0x2b,0xe6,0xbe,0x74,0x9e,0xdd,0x3e,0x98,0x50,0x5d,0xc0,0x0,0xff,0x8e,0xc0,0xb7,0x1,0xf1,0x3f,0x6,0xba,0x94,0x3f,0x68,0x5e,0xde,0x3e,0x9e,0x57,0x59,0x40,0xb2,0x9f,0x5,0xc0,0xf,0x30,0xe3,0x3f,0x64,0x3e,0x30,0xc0,0xa3,0x9b,0x84,0x3f,0x6f,0x1c,0x92,0xbf,0xc3,0x1a,0x60,0x40,0xce,0xea,0x8b,0x40,0xbb,0xf6,0x8a,0x40,0xb8,0x51,0x66,0x3e,0xa8,0xb3,0x3c,0x40,0xb5,0xdc,0x9f,0xc0,0xcc,0xb5,0x3b,0xc0,0x6,0xc4,0x64,0x3f,0xc0,0x6e,0xe4,0x3c,0x2c,0x39,0x7b,0xc0,0xbe,0xa2,0xd,0xc0,0x13,0x75,0x15,0xc0,0x9e,0x85,0x9e,0xc0,0x30,0x26,0xf4,0x3e,0x60,0x24,0x5a,0x40,0x54,0xe0,0x1,0x40,0xe4,0xa,0x18,0xc0,0x25,0xec,0x92,0xc0,0x96,0x15,0x81,0xc0,0xa0,0xf1,0xbd,0x3d,0xdc,0x21,0x5c,0x40,0x5a,0x97,0x1,0xc0,0x5c,0x20,0x2e,0xc0,0xc0,0xb4,0x2a,0xc0,0xac,0x9d,0xdd,0xbe,0xdb,0xf1,0x97,0xc0,0xed,0x30,0x8d,0xc0 }); - // [[ 4.921953 -2.3845804 -0.9018183 -1.3377637 -4.392531 -0.8814657 1.53 - Tensor *w = NN_tensor(2, (size_t[]){ 5, 7 }, DTYPE_F32, (uint8_t[]){ 0xa4,0x80,0x9d,0x40,0xf7,0x9c,0x18,0xc0,0x90,0xdd,0x66,0xbf,0xd7,0x3b,0xab,0xbf,0x9d,0x8f,0x8c,0xc0,0xbc,0xa7,0x61,0xbf,0x29,0xea,0xc3,0x3f,0x3d,0xf0,0x1,0xc0,0xa8,0x36,0x5a,0xbe,0xc0,0xee,0xc3,0xbc,0xe1,0x47,0x9f,0xc0,0x9c,0x8c,0x68,0x40,0x5f,0x3e,0x81,0x40,0x82,0x2d,0x5a,0x40,0xc9,0x2c,0xd2,0xbf,0x61,0x38,0x27,0x40,0x58,0xe8,0x95,0xc0,0xd6,0x53,0x9e,0xbf,0x7b,0x2a,0x82,0xbf,0xa,0x4,0xe2,0xbf,0x68,0x66,0x6,0x40,0x7e,0xcf,0x11,0xc0,0x60,0x5b,0x14,0xbf,0x5b,0xcd,0xb8,0xbf,0xd7,0x40,0x96,0xc0,0x48,0x61,0x53,0xbf,0xa0,0x98,0x87,0xc0,0xe4,0x97,0x3a,0x40,0x34,0x7,0x2b,0x40,0x0,0xe3,0x95,0x40,0xee,0xe9,0xd6,0xbf,0x7c,0x2e,0x82,0x3e,0x74,0xbd,0x7a,0x3f,0x8,0xb7,0x9f,0x40,0x7d,0xa8,0x92,0x40 }); - // [-2.5876975 -4.2545133 -4.506441 -2.4077988 4.203933 ] - Tensor *b = NN_tensor(1, (size_t[]){ 5 }, DTYPE_F32, (uint8_t[]){ 0xd6,0x9c,0x25,0xc0,0xf9,0x24,0x88,0xc0,0xc4,0x34,0x90,0xc0,0x60,0x19,0x1a,0xc0,0x9e,0x86,0x86,0x40 }); - - - // [[ 3.062039 -26.91804 22.384441 26.758652 -5.7817802 ] [ -1.957124 - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0x72,0xf8,0x43,0x40,0x25,0x58,0xd7,0xc1,0x56,0x13,0xb3,0x41,0xb8,0x11,0xd6,0x41,0x58,0x4,0xb9,0xc0,0xe,0x83,0xfa,0xbf,0xce,0xaf,0x1d,0x40,0x27,0xf6,0x55,0xc1,0xe5,0x14,0x4d,0x41,0x42,0xb8,0x84,0xc0,0xc9,0x2a,0x16,0xc2,0xe1,0xa9,0xe5,0xc1,0xd6,0xd,0xd,0xc2,0xe8,0x22,0x5f,0xc2,0x5a,0xf3,0x56,0x40,0x78,0xb3,0x1b,0xc1,0x62,0x2,0x55,0xc1,0x6e,0xc4,0x55,0x40,0xb,0x6b,0x9b,0x41,0x61,0x14,0x14,0xc2,0x2e,0xc2,0x86,0x41,0x58,0xa7,0xd6,0xc1,0xca,0x8e,0x10,0x41,0x9f,0x47,0xbf,0x41,0x30,0xbf,0xd8,0xc0,0xf8,0x33,0xc4,0x41,0xbe,0x6,0x5,0xc2,0x0,0x95,0x22,0x3e,0xc,0xec,0x6f,0x41,0x77,0x2c,0x12,0xc2 }); - Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F32); - - cycles = read_cycles(); - NN_linear(actual, x, w, b); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(x); - NN_delete_tensor(w); - NN_delete_tensor(b); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("relu: "); - - // [[ 1.6792482 4.824266 3.7061043 0.07248819 -3.098877 4.882503 4.010 - Tensor *x = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x9b,0xf1,0xd6,0x3f,0x63,0x60,0x9a,0x40,0xd0,0x30,0x6d,0x40,0xb0,0x74,0x94,0x3d,0x0,0x54,0x46,0xc0,0x77,0x3d,0x9c,0x40,0xef,0x58,0x80,0x40,0xb0,0x8a,0xa,0x40,0xe7,0xcd,0x2e,0xc0,0xe2,0x16,0x7c,0x40,0x34,0x0,0xe9,0x3e,0x48,0x98,0x53,0x40,0xaf,0x8e,0x5,0x40,0x34,0xec,0x29,0x40,0x6a,0x65,0x8c,0xc0,0x18,0x6f,0x31,0xc0,0x48,0xed,0x3f,0x40,0xc0,0x55,0x85,0xbf,0x5f,0x32,0x8b,0xc0,0xfe,0x80,0x91,0x40,0x0,0x72,0xdd,0xbd,0xc6,0x11,0x81,0x40,0xc,0x1e,0x7a,0xc0,0x1a,0x59,0xdc,0x3f,0x66,0x11,0xf1,0xbf,0x32,0xa9,0x6,0xc0,0x12,0x7c,0x85,0xbf,0xb5,0xe4,0xec,0xbf,0xe6,0x58,0x2f,0x40,0xe8,0x32,0x73,0xbf,0x32,0xa1,0x72,0x40,0x87,0x9,0x92,0x3f,0x90,0xc7,0x45,0xbf,0xf2,0xd4,0x38,0xc0,0xf8,0x81,0x92,0xc0,0xc8,0xb3,0xba,0xbf,0x41,0x2a,0x94,0xc0,0x7e,0x25,0x6d,0xbf,0xa0,0x5d,0xa7,0x3d,0xe8,0xf9,0xa4,0xbe,0x7d,0x30,0x1d,0xc0,0xb2,0x19,0x5e,0x40,0xb2,0x37,0x34,0x40,0x6d,0xae,0x9d,0xbf,0x24,0xde,0xfc,0xbf,0x4c,0x2e,0x49,0x40,0x32,0x34,0x8b,0x40,0x8e,0x80,0x92,0xc0,0x24,0x47,0x8a,0xbf }); - - - // [[1.6792482 4.824266 3.7061043 0.07248819 0. 4.882503 4.010856 ] - Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x9b,0xf1,0xd6,0x3f,0x63,0x60,0x9a,0x40,0xd0,0x30,0x6d,0x40,0xb0,0x74,0x94,0x3d,0x0,0x0,0x0,0x0,0x77,0x3d,0x9c,0x40,0xef,0x58,0x80,0x40,0xb0,0x8a,0xa,0x40,0x0,0x0,0x0,0x0,0xe2,0x16,0x7c,0x40,0x34,0x0,0xe9,0x3e,0x48,0x98,0x53,0x40,0xaf,0x8e,0x5,0x40,0x34,0xec,0x29,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x48,0xed,0x3f,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfe,0x80,0x91,0x40,0x0,0x0,0x0,0x0,0xc6,0x11,0x81,0x40,0x0,0x0,0x0,0x0,0x1a,0x59,0xdc,0x3f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe6,0x58,0x2f,0x40,0x0,0x0,0x0,0x0,0x32,0xa1,0x72,0x40,0x87,0x9,0x92,0x3f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa0,0x5d,0xa7,0x3d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xb2,0x19,0x5e,0x40,0xb2,0x37,0x34,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4c,0x2e,0x49,0x40,0x32,0x34,0x8b,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 }); - Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); - - cycles = read_cycles(); - NN_relu(actual, x); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(x); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("softmax: "); - - // [[ 0.53598917 -0.8103045 5.2685456 0.26144302 5.2392426 1.024718 0.457 - Tensor *x = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x96,0x36,0x9,0x3f,0x1e,0x70,0x4f,0xbf,0xed,0x97,0xa8,0x40,0xdc,0xdb,0x85,0x3e,0xe0,0xa7,0xa7,0x40,0xf6,0x29,0x83,0x3f,0x44,0x50,0xea,0x3e,0x24,0x50,0xf5,0xbf,0xb4,0x9b,0x29,0xbf,0xd,0x1d,0x27,0x40,0x4a,0x8c,0x4d,0x40,0x18,0x75,0x52,0x3f,0x71,0x74,0xb8,0x40,0x86,0x7b,0x1d,0xc0,0x3a,0xb1,0x3a,0x40,0xad,0x1b,0xb0,0x40,0xe8,0xb8,0x5,0x3e,0x84,0x6,0x9f,0x40,0xcd,0x8c,0x8a,0x3f,0x5f,0xa1,0x2f,0xc0,0x50,0x1d,0xdf,0xbf,0xe5,0x1b,0x37,0x40,0x94,0xf5,0x94,0xbf,0xaa,0xf6,0xc,0x40,0x19,0x7b,0xbd,0x40,0x9f,0xb2,0x2c,0x40,0x80,0x34,0x8,0x3f,0x4f,0xfc,0xf,0x40,0x64,0xbb,0xf0,0xbf,0x88,0xe1,0x4c,0xc0,0x3a,0x8b,0x30,0xc0,0x48,0x83,0x4c,0xc0,0x95,0xab,0x1,0x40,0x48,0xa9,0xfc,0x3f,0xc2,0xfa,0x8f,0xbf,0x18,0x2,0x79,0xc0,0x74,0x58,0x6d,0x40,0x56,0x24,0xeb,0xbf,0x48,0x3a,0x29,0x3e,0x70,0x50,0x4c,0xc0,0xae,0xf,0xe9,0xbf,0xbe,0x7d,0x45,0x40,0x12,0x27,0x6a,0xc0,0x10,0xf4,0xec,0xbf,0xf3,0xf4,0x97,0x40,0x24,0x39,0xc8,0xbf,0xfc,0x56,0x8a,0xbf,0xe4,0xc7,0xce,0xbe,0x74,0xc9,0x48,0x40 }); - - - // [[4.49509695e-02 1.54533505e-03 5.81957698e-01 2.38575833e-03 8.70493293e-01 8 - Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x82,0x1e,0x38,0x3d,0xd7,0x8c,0xca,0x3a,0x2e,0xfb,0x14,0x3f,0x62,0x5a,0x1c,0x3b,0xa6,0xd8,0x5e,0x3f,0x43,0xce,0x9,0x3c,0x90,0xd2,0xe4,0x3c,0x29,0x94,0x7d,0x3b,0x59,0xce,0xea,0x3a,0x83,0x2b,0x27,0x3d,0x12,0xc0,0x3a,0x3d,0xb,0x20,0x2c,0x3c,0xfa,0x46,0x76,0x3f,0x57,0xcb,0xc5,0x3a,0x1f,0xf1,0xf8,0x3e,0x65,0x67,0x5a,0x3f,0x3e,0xdd,0x5f,0x3b,0xd9,0x64,0x87,0x3e,0x6d,0x4e,0x5f,0x3c,0x40,0x86,0x4b,0x39,0xda,0xaf,0x4a,0x3b,0x3,0x63,0xeb,0x3e,0x9b,0x3e,0x8e,0x3a,0x7d,0x32,0xde,0x3c,0x17,0x59,0x2f,0x3f,0x89,0x7b,0x8c,0x3d,0xac,0x65,0xa8,0x3b,0x41,0xae,0x2b,0x3e,0xc7,0x68,0x83,0x3b,0x98,0x55,0x14,0x39,0x1b,0x3f,0x47,0x39,0x61,0xbb,0x9d,0x38,0xfa,0x70,0xf,0x3d,0x1e,0x5,0xb2,0x3c,0x32,0xf,0xbc,0x3b,0xa3,0xda,0xc,0x3a,0x12,0x27,0x11,0x3e,0xc7,0x58,0xfa,0x39,0xea,0x3,0xe,0x3b,0xec,0xdb,0x46,0x39,0x55,0x1d,0x0,0x3a,0x86,0xc,0xc6,0x3e,0xa1,0xa7,0x31,0x3a,0x85,0xe,0xf,0x3a,0xd5,0x29,0xb1,0x3e,0x38,0x84,0xc9,0x39,0x39,0x5d,0xcd,0x3a,0x60,0x19,0x4,0x3b,0xcb,0x83,0xd0,0x3e }); - Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); - - cycles = read_cycles(); - NN_softmax(actual, x, 0); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(x); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("softmax: "); - - // [[-2.279848 1.5013269 3.0420134 0.63703394 1.9040934 -2.8142376 3.26 - Tensor *x = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x8,0xe9,0x11,0xc0,0x7b,0x2b,0xc0,0x3f,0x59,0xb0,0x42,0x40,0xa8,0x14,0x23,0x3f,0x55,0xb9,0xf3,0x3f,0x78,0x1c,0x34,0xc0,0xfc,0xab,0x50,0x40,0xeb,0x97,0x37,0x40,0xcc,0xe4,0xbe,0x3e,0x38,0x99,0x48,0xc0,0xff,0xfd,0x3f,0x40,0x1a,0x68,0x88,0x40,0xb0,0x78,0x0,0x3e,0xfc,0xd3,0x56,0x40,0x65,0x9c,0x36,0x40,0x5e,0xf5,0x7f,0xbf,0x58,0x24,0x27,0x3f,0x29,0x45,0xbf,0x40,0x7f,0x5,0x83,0x3f,0x9e,0xc1,0x3e,0xc0,0xda,0xa6,0x22,0x3f,0x9a,0x32,0x5f,0x40,0x80,0xd2,0x21,0xbf,0x50,0x28,0xcf,0xbf,0xf5,0xcd,0xa3,0x40,0xa4,0x48,0x69,0x40,0xf8,0x25,0x1a,0x3e,0x69,0xb2,0xa0,0x3f,0x58,0x3f,0xf1,0x3e,0x1,0x4b,0xa,0x40,0xcb,0xbe,0x96,0x3f,0xa8,0xa4,0x1,0xc0,0x55,0x93,0xf6,0x3f,0x32,0xbd,0x90,0x3f,0xd5,0x60,0xa9,0x3f,0xe2,0xca,0x67,0xbf,0xc2,0xfd,0x11,0x40,0x4a,0xc4,0x42,0xc0,0xc8,0xa7,0x1f,0x40,0xe8,0x67,0x6d,0x40,0x8c,0x43,0xe6,0x3e,0x78,0x93,0x38,0xc0,0xd4,0x58,0x7b,0x3f,0x94,0xe8,0x80,0x3f,0xa8,0x8b,0x54,0xc0,0x9f,0x55,0x22,0xc0,0x7d,0xfd,0xb3,0x40,0xa8,0xa6,0x97,0x40,0x50,0x58,0x71,0x40 }); - - - // [[1.69752829e-03 7.44664147e-02 3.47593874e-01 3.13763767e-02 1.11398600e-01 9 - Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x99,0x7f,0xde,0x3a,0xd9,0x81,0x98,0x3d,0xd3,0xf7,0xb1,0x3e,0x84,0x84,0x0,0x3d,0xf3,0x24,0xe4,0x3d,0xdc,0x63,0x82,0x3a,0x5,0x6d,0xdd,0x3e,0xe8,0xce,0x0,0x3e,0xda,0xe1,0x29,0x3c,0xd4,0xfb,0xa2,0x39,0xfd,0xde,0x12,0x3e,0xfc,0xcf,0x1,0x3f,0xd4,0xa6,0x4,0x3c,0x23,0xd8,0x51,0x3e,0x17,0xaf,0x29,0x3d,0xbf,0x5e,0x66,0x3a,0x37,0x5a,0x96,0x3b,0xb1,0x1b,0x71,0x3f,0x7,0xd3,0xd9,0x3b,0x48,0x45,0xfe,0x38,0xfb,0xbc,0x93,0x3b,0x27,0x81,0x9,0x3e,0x27,0x4,0xf,0x3b,0xa1,0x5a,0x55,0x3a,0xbe,0xb3,0x2f,0x3f,0xb6,0xf9,0x20,0x3e,0x51,0x68,0x9c,0x3b,0xd8,0x17,0x6c,0x3c,0xa,0xaa,0x6f,0x3d,0x7b,0x4c,0xa2,0x3e,0x7a,0xe3,0xf2,0x3d,0xa4,0xe0,0x9d,0x3b,0xde,0x60,0x80,0x3e,0x2e,0xc1,0xe7,0x3d,0x76,0x79,0xc,0x3e,0x60,0x70,0xcc,0x3b,0x4c,0xa3,0x1a,0x3e,0xf3,0xd9,0x40,0x3a,0x54,0x71,0x3f,0x3e,0xd3,0x47,0x21,0x3f,0xb5,0x2c,0xc6,0x3c,0x91,0x23,0x62,0x3a,0x9,0x95,0xc6,0x3b,0x3b,0xaa,0xcb,0x3b,0xb8,0xf4,0xab,0x38,0xd9,0x69,0x3c,0x39,0x47,0x1a,0x21,0x3f,0x23,0xe6,0x84,0x3e,0x14,0xe8,0xc9,0x3d }); - Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); - - cycles = read_cycles(); - NN_softmax(actual, x, 1); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(x); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("softmax: "); - - // [[ 4.4637933 2.9248147 3.8139436 4.3116083 -0.16803825 0.36438978 4.5 - Tensor *x = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x65,0xd7,0x8e,0x40,0x2a,0x30,0x3b,0x40,0xa7,0x17,0x74,0x40,0xb2,0xf8,0x89,0x40,0x38,0x12,0x2c,0xbe,0x4c,0x91,0xba,0x3e,0x62,0x16,0x92,0x40,0xfe,0x89,0x7f,0x3f,0x3d,0x38,0x10,0xc0,0xac,0x20,0x38,0xc0,0xd7,0xf7,0x72,0x40,0xf7,0x87,0xa4,0x40,0xa,0x42,0x9c,0x40,0x18,0x82,0xea,0x3f,0xe4,0x71,0x8e,0x40,0x7a,0xcd,0x65,0xc0,0x52,0x8c,0x26,0xc0,0xec,0xe9,0x73,0xc0,0xe8,0xe8,0xa0,0x40,0xf6,0x6a,0x74,0x3f,0x8a,0xb2,0xa6,0xbf,0x8a,0x47,0x2c,0x40,0x68,0x25,0x5f,0xbf,0xea,0x3a,0xd,0xc0,0x68,0x6c,0x3b,0x40,0xe8,0x2e,0xf5,0x3f,0x6c,0x28,0x25,0xc0,0x96,0xc5,0x12,0xc0,0xce,0x9,0x56,0x40,0x9,0xa9,0x99,0x40,0xbc,0x19,0xb4,0x3f,0x60,0x76,0xc1,0xbf,0x12,0x85,0x5a,0x40,0x97,0x9e,0xef,0x3f,0x44,0x27,0x58,0xc0,0xd8,0x5f,0xf,0xc0,0x64,0xa,0x6,0x40,0x0,0x1,0x83,0x40,0xb8,0x37,0x1b,0xbf,0x10,0xbb,0x5a,0x40,0x1a,0x2e,0x6,0xc0,0x0,0x1c,0xb9,0x40,0xce,0x1,0x92,0x40,0x6b,0xe0,0xf7,0x3f,0x98,0x5d,0x4e,0x40,0x2,0x69,0x2f,0x40,0x86,0xa9,0xf9,0xbf,0xa8,0xd6,0x74,0x3f,0xd3,0x54,0x15,0x40 }); - - - // [[2.68194616e-01 5.75546138e-02 1.40030906e-01 2.30333418e-01 2.61138636e-03 4 - Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0xce,0x50,0x89,0x3e,0x63,0xbe,0x6b,0x3d,0x43,0x64,0xf,0x3e,0x86,0xdc,0x6b,0x3e,0xcb,0x23,0x2b,0x3b,0x1d,0xbb,0x91,0x3b,0xcd,0xf9,0x97,0x3e,0x64,0x46,0xf9,0x3b,0x13,0x65,0x9a,0x39,0x6d,0x85,0x25,0x39,0x64,0xbc,0xff,0x3d,0xd1,0x71,0xf5,0x3e,0x1a,0x87,0xbd,0x3e,0x7d,0x79,0x8f,0x3c,0x33,0xd7,0xb5,0x3e,0xda,0x90,0xef,0x38,0x9d,0xea,0xa0,0x39,0x9d,0x29,0xc0,0x38,0xc3,0xe7,0x21,0x3f,0x56,0x4e,0x30,0x3c,0x7a,0x9c,0x93,0x3a,0x80,0x84,0xb8,0x3e,0xb3,0x53,0x27,0x3c,0xb9,0x1f,0x30,0x3b,0xc,0xc7,0xe9,0x3e,0x61,0xc8,0x29,0x3e,0x9a,0x5e,0xf2,0x3a,0xe0,0x83,0x21,0x3b,0xc,0xb2,0x17,0x3e,0x91,0xe5,0x22,0x3f,0xf6,0xdc,0xae,0x3c,0xf4,0x20,0x97,0x3a,0xcf,0xb2,0x22,0x3e,0xf2,0x30,0xb,0x3d,0x9a,0x17,0x3b,0x39,0x4c,0x69,0x83,0x39,0x2d,0xa8,0x9c,0x3c,0x88,0x9e,0x10,0x3e,0x3b,0x55,0xa8,0x3a,0x21,0x17,0x93,0x3d,0xa2,0xb6,0x97,0x39,0xaa,0x18,0x44,0x3f,0x3b,0xce,0x1c,0x3f,0x3e,0x87,0x35,0x3d,0x97,0x85,0x24,0x3e,0xf4,0xdb,0xca,0x3d,0xb,0x3d,0x6e,0x3a,0x9b,0x3d,0x88,0x3c,0x8d,0xf7,0x86,0x3d }); - Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); - - cycles = read_cycles(); - NN_softmax(actual, x, -1); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(x); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("relu6: "); - - // [[-1.128571 4.794727 -1.9281822 -4.4653482 -2.3803806 -4.6404243 4.12 - Tensor *x = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x4,0x75,0x90,0xbf,0x67,0x6e,0x99,0x40,0xad,0xce,0xf6,0xbf,0x22,0xe4,0x8e,0xc0,0x28,0x58,0x18,0xc0,0x5b,0x7e,0x94,0xc0,0x3,0xd9,0x83,0x40,0xa6,0xa6,0xf,0xc0,0xb8,0x24,0x61,0xc0,0xcc,0x5d,0xa,0xbf,0x64,0x9e,0x57,0xc0,0xd5,0x28,0x27,0xc0,0xa4,0x23,0x23,0x40,0x2d,0x41,0x70,0xc0,0xd8,0xe8,0x16,0x40,0x38,0x5b,0x69,0x40,0x0,0xc0,0x37,0xbc,0x7a,0x17,0xe,0x40,0x32,0x40,0x33,0xc0,0x96,0x8a,0x79,0x40,0x3e,0x6e,0x9b,0x40,0x65,0x16,0x98,0x3f,0xdc,0xcd,0x91,0x40,0x13,0xe8,0x9e,0xc0,0x88,0x8b,0xc,0xbf,0xbc,0x53,0x7e,0x3f,0xe5,0x11,0x8b,0xc0,0xe0,0xb8,0x1b,0x40,0xcc,0xe9,0xf3,0xbf,0x11,0x7a,0xe7,0xbf,0x81,0xe4,0x7d,0xc0,0x5a,0xd2,0x2,0x40,0x35,0xd7,0x68,0xc0,0xc6,0xcf,0x87,0xbf,0x70,0x27,0xe,0x40,0x1f,0x12,0x71,0x40,0x5c,0xb8,0x90,0x3f,0x51,0xbf,0xee,0xbf,0x5d,0x30,0xb,0xc0,0x48,0x9c,0x33,0x40,0xfe,0x7c,0x6d,0x3f,0x4b,0xb0,0x86,0x40,0xd8,0x3,0xf1,0x3f,0xa5,0xe4,0x80,0x40,0xec,0xed,0x80,0xc0,0xe4,0xa0,0x80,0x40,0x7c,0x6,0x13,0xc0,0x71,0x51,0xab,0xbf,0x40,0x29,0xf5,0x3c }); - - - // [[0. 4.794727 0. 0. 0. 0. 4.1202407] [0. - Tensor *golden = NN_tensor(2, (size_t[]){ 7, 7 }, DTYPE_F32, (uint8_t[]){ 0x0,0x0,0x0,0x0,0x67,0x6e,0x99,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0xd9,0x83,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa4,0x23,0x23,0x40,0x0,0x0,0x0,0x0,0xd8,0xe8,0x16,0x40,0x38,0x5b,0x69,0x40,0x0,0x0,0x0,0x0,0x7a,0x17,0xe,0x40,0x0,0x0,0x0,0x0,0x96,0x8a,0x79,0x40,0x3e,0x6e,0x9b,0x40,0x65,0x16,0x98,0x3f,0xdc,0xcd,0x91,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xbc,0x53,0x7e,0x3f,0x0,0x0,0x0,0x0,0xe0,0xb8,0x1b,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x5a,0xd2,0x2,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x70,0x27,0xe,0x40,0x1f,0x12,0x71,0x40,0x5c,0xb8,0x90,0x3f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x48,0x9c,0x33,0x40,0xfe,0x7c,0x6d,0x3f,0x4b,0xb0,0x86,0x40,0xd8,0x3,0xf1,0x3f,0xa5,0xe4,0x80,0x40,0x0,0x0,0x0,0x0,0xe4,0xa0,0x80,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x29,0xf5,0x3c }); - Tensor *actual = NN_zeros(2, (size_t[]){ 7, 7 }, DTYPE_F32); - - cycles = read_cycles(); - NN_relu6(actual, x); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(x); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("conv2d: "); - - // [[[[-0.93765914 0.9890288 4.4554844 ] [-2.9874258 1.5449357 -4.0185213 - Tensor *x = NN_tensor(4, (size_t[]){ 1, 16, 16, 3 }, DTYPE_F32, (uint8_t[]){ 0x6e,0xa,0x70,0xbf,0xfe,0x30,0x7d,0x3f,0x54,0x93,0x8e,0x40,0xfc,0x31,0x3f,0xc0,0x74,0xc0,0xc5,0x3f,0xba,0x97,0x80,0xc0,0xd2,0xfa,0x48,0x3f,0x51,0xcf,0x83,0x40,0x49,0xc5,0x57,0x40,0x9c,0x4,0x89,0x40,0x48,0x39,0x2d,0x40,0x2c,0xcd,0xd3,0xbe,0x11,0x1a,0xa7,0x3f,0xa8,0xb6,0x5,0xc0,0xc8,0xcf,0x87,0x40,0xbc,0x39,0x20,0x40,0xe3,0x36,0x6a,0xc0,0x54,0x58,0x8a,0x40,0x0,0xf4,0x97,0xbd,0x60,0x98,0x63,0xbe,0x96,0x28,0xaf,0xbf,0x99,0xdb,0xa8,0xbf,0x4,0x21,0x80,0x3e,0x7e,0x38,0x1c,0xc0,0x46,0xd5,0x94,0xc0,0x7b,0xd5,0x24,0xc0,0x6c,0xb7,0x7e,0xbf,0x70,0xa5,0x71,0x40,0xe2,0x68,0x6b,0x40,0x8f,0xba,0x3f,0xc0,0x20,0x98,0x44,0xbe,0xea,0xb6,0xb8,0xbf,0x9e,0x30,0x2b,0xc0,0xae,0x15,0x61,0xbf,0x7f,0x10,0xde,0xbf,0x3a,0xdd,0x32,0x40,0x3f,0xb3,0x1e,0xc0,0x7e,0xee,0x44,0x3f,0xa2,0x94,0x34,0xc0,0x4b,0xbf,0xc7,0xbf,0x60,0xe9,0x7b,0x40,0x7e,0x19,0x1d,0xc0,0x30,0xef,0x99,0xbe,0xcc,0xce,0x98,0x40,0x12,0xd,0xdb,0x3f,0x30,0xe1,0x22,0xc0,0x5,0x21,0x40,0xc0,0x74,0x6e,0xe0,0xbf,0x5e,0x6a,0xc8,0xbf,0xe5,0x52,0xb,0x40,0xb4,0x49,0x8e,0xbf,0x51,0xf1,0x86,0x40,0x0,0x94,0x2f,0xc0,0x61,0x21,0xc8,0xbf,0xeb,0x2,0xe9,0x3f,0xca,0x91,0x7f,0x40,0xd,0xe,0x99,0x40,0xc6,0xdf,0x4c,0x3f,0x48,0xd0,0x57,0x3e,0x11,0x5f,0xf,0xc0,0x56,0xce,0x34,0x40,0xda,0x7c,0x39,0xc0,0xa6,0x38,0xa8,0xbf,0x3c,0xba,0x85,0xc0,0x9e,0xd0,0x99,0xc0,0x56,0xdd,0x32,0x40,0x48,0xeb,0xad,0x3e,0x8d,0x18,0x7f,0x40,0x45,0xa2,0x7e,0x40,0xc8,0xeb,0x27,0x40,0xea,0xf,0x0,0x40,0x51,0x17,0xa6,0xbf,0xac,0xf4,0x29,0x40,0xb0,0xe0,0x19,0x40,0xd0,0x8d,0xdd,0x3f,0x68,0xcc,0x13,0xbe,0x78,0x31,0x3f,0x3f,0xc0,0xbb,0xb5,0x3c,0x70,0x3b,0x68,0xc0,0x98,0x91,0x94,0x3f,0x1b,0x3f,0x6b,0xc0,0xb2,0x43,0x1b,0x40,0xb8,0xa8,0x3e,0xc0,0x6b,0xe,0xd1,0xbf,0xd2,0xc2,0x17,0xc0,0x5f,0x94,0x7c,0x40,0x97,0x59,0x61,0xc0,0x79,0x65,0x23,0x40,0x5c,0x7d,0x20,0x40,0x89,0x43,0x62,0x40,0xc8,0x5a,0xa0,0x3f,0x96,0x72,0x2e,0x40,0xc4,0xf5,0x7c,0x40,0x28,0x21,0x7c,0x3f,0x7f,0x9c,0xd9,0x3f,0x9,0x38,0x7a,0xc0,0xc7,0xaa,0xab,0xbf,0xbc,0x1e,0xe8,0x3e,0x2c,0x15,0x1b,0x3f,0xdd,0x1c,0xe2,0xbf,0x32,0x9d,0x9e,0xc0,0x48,0x70,0xa6,0xbf,0xab,0x4,0xf5,0x3f,0x73,0xc5,0x89,0x40,0x14,0x7c,0x90,0xc0,0x70,0xc7,0x18,0x40,0xe0,0xd1,0x97,0xc0,0x1f,0x2,0x99,0xc0,0xf4,0x65,0x48,0xc0,0xe,0x11,0x29,0xbf,0x83,0xbf,0xb2,0x3f,0x13,0x5d,0x73,0xc0,0x72,0x8a,0x76,0x40,0x4b,0xb0,0x90,0x40,0xe0,0x81,0x9d,0x3e,0xc8,0x3c,0x82,0x40,0x72,0xde,0x10,0xc0,0x3d,0x2e,0xfd,0xbf,0x78,0x2d,0x25,0xbf,0x10,0xdc,0xb,0x3f,0x45,0x3a,0x5f,0xc0,0x35,0x1e,0x80,0xc0,0x44,0xd2,0xfc,0x3f,0x74,0x87,0xb8,0x3f,0xe4,0x85,0x9c,0x40,0xd8,0x77,0x2,0xc0,0x84,0x2,0xe2,0x3f,0xdf,0x21,0x1,0xc0,0xc4,0xf7,0x1d,0x40,0xc0,0xcf,0x8d,0xbe,0xf3,0x37,0x6d,0x40,0x30,0xc8,0x31,0x40,0xf6,0x2c,0x85,0x40,0x52,0x72,0x24,0x40,0x98,0x5b,0x40,0x3e,0x33,0xe2,0x89,0x40,0x52,0xf6,0x3b,0xc0,0xe8,0xe8,0x96,0x40,0x95,0x59,0x9c,0x40,0xc5,0xd7,0x98,0x40,0x8b,0x7a,0x15,0xc0,0xfc,0x8d,0x29,0xc0,0x84,0xf7,0xa1,0x3e,0x6a,0x4b,0xc7,0x3f,0x4a,0x85,0x20,0x40,0x1a,0x25,0x2,0x40,0x2,0x3d,0x88,0x40,0x7f,0x58,0xa0,0xbf,0x90,0xf7,0xd1,0xbf,0x33,0x87,0xd6,0x3f,0xd6,0x58,0xb2,0x3f,0x34,0xaa,0x3a,0xc0,0x74,0x9d,0xf7,0x3e,0xbe,0xf5,0x72,0xc0,0x9b,0xc1,0xbb,0xbf,0xcb,0x2e,0xfb,0xbf,0xda,0x40,0x8c,0x40,0x1d,0x7,0x90,0xc0,0x9e,0xef,0x3c,0xc0,0xaf,0x94,0x9c,0xc0,0x54,0x69,0xa1,0x3f,0xec,0x4c,0x76,0xc0,0xe8,0x10,0xcf,0x3f,0x8a,0x46,0x5e,0xc0,0x63,0xfc,0x4c,0xc0,0xee,0x7a,0x23,0xc0,0x9c,0x16,0x40,0x3f,0x5c,0x5,0x93,0x40,0xbc,0xdf,0x95,0x40,0x44,0x68,0xc1,0xbe,0x31,0xb8,0x9c,0xc0,0xa7,0x70,0xd3,0xbf,0x3b,0xe9,0xf3,0xbf,0x11,0x20,0x88,0xbf,0x63,0x89,0xf4,0x3f,0x2,0x9,0x21,0x40,0x42,0xe1,0xd,0x40,0xe3,0xd3,0xb6,0x3f,0x82,0x8b,0x1,0xc0,0x80,0x41,0x59,0xbd,0x2,0xe7,0x22,0x3f,0xf2,0x73,0x23,0xc0,0x18,0x2,0xe5,0xbe,0xf2,0xc7,0x1f,0xbf,0x88,0x2b,0x97,0xc0,0x6c,0xef,0x58,0x40,0x42,0x69,0x1,0xbf,0x46,0x50,0x8a,0xc0,0xf0,0x2c,0x7d,0x40,0x6,0x2f,0x2c,0xc0,0x90,0x96,0xe2,0x3f,0x8c,0xac,0x9e,0x40,0x90,0x4,0x6d,0x3e,0x5d,0x21,0xb8,0x3f,0x57,0x4a,0xfe,0x3f,0x68,0xda,0x71,0x40,0xd8,0x5d,0xc4,0xbf,0xf0,0x11,0x34,0xc0,0x68,0x56,0xc8,0xbe,0xa0,0x41,0x7a,0x40,0x10,0x1d,0xdc,0x3e,0xf2,0x56,0x5e,0x40,0x0,0x44,0x18,0xbd,0x6a,0x5d,0xc4,0x3f,0xb8,0x8,0x32,0x3e,0xc8,0xfc,0xa,0x3e,0x56,0x42,0x98,0xc0,0xa2,0xe0,0x8b,0xc0,0x28,0xd0,0xd4,0x3e,0xf8,0x60,0x1e,0x40,0xf8,0xf5,0x56,0x40,0x18,0x27,0x5e,0x3e,0xe,0xe3,0x6,0x40,0xfc,0xd5,0x5,0x40,0xd0,0x1e,0x8a,0xc0,0x1d,0xa1,0x8c,0xc0,0x59,0x1c,0x78,0xc0,0xb0,0xd,0xb0,0x3d,0x5e,0x57,0x4a,0xc0,0xf0,0xce,0xcc,0xbf,0x8c,0x81,0x3f,0xbf,0x1a,0xb4,0xf9,0x3f,0xc6,0x63,0x94,0x3f,0x9a,0x6d,0x94,0x40,0x8b,0x51,0x90,0x40,0x6a,0x25,0x4c,0xc0,0xc0,0x9,0x81,0xbc,0x4a,0x5f,0x53,0x3f,0x4,0xae,0x8b,0x40,0x76,0x59,0xc6,0xbf,0x79,0x85,0xfb,0xbf,0xbc,0xb4,0x4a,0xc0,0xaa,0xcb,0x6b,0x40,0x21,0x51,0xb5,0xbf,0x35,0xb2,0xef,0xbf,0x32,0x70,0x58,0x40,0xe7,0x39,0x93,0x40,0x78,0xc3,0x57,0xbe,0xe8,0x91,0x61,0xc0,0x99,0x5d,0x82,0x40,0x10,0xe2,0xda,0xbf,0xc6,0x76,0x13,0xc0,0xb8,0xf7,0x60,0xc0,0x34,0xe6,0x19,0xc0,0xe2,0x9c,0x7a,0xc0,0x64,0xb5,0x38,0xc0,0xd8,0xc0,0x91,0xc0,0x67,0xfe,0x80,0xbf,0x0,0xaa,0x0,0x40,0x8f,0xeb,0x72,0xc0,0x0,0xcf,0xe4,0xbb,0xee,0x1,0xec,0xbf,0x90,0xc8,0x1a,0x40,0x55,0x94,0x8a,0x40,0x3e,0xae,0x29,0xbf,0x50,0xe,0x21,0xc0,0x65,0xe0,0x75,0xc0,0xc9,0x1,0x3c,0xc0,0x65,0xc8,0xb8,0x3f,0xfe,0xd7,0x92,0x3f,0x56,0x54,0x2c,0x40,0xce,0x31,0x3e,0xbf,0x3e,0x6d,0x24,0x40,0x34,0x8c,0x8e,0xc0,0x52,0xb,0xac,0x3f,0xb5,0x53,0x9b,0x40,0xc,0x5a,0x9e,0xc0,0xec,0x1e,0x26,0xc0,0xaa,0xda,0x4c,0x40,0x58,0x20,0x48,0xbf,0xea,0x92,0x2a,0xc0,0x7e,0x38,0x43,0x40,0x18,0x9b,0xab,0x3e,0x8,0x89,0x48,0x3e,0xcf,0x63,0xc2,0xbf,0xc4,0x19,0x71,0x40,0xca,0x80,0x31,0x40,0x22,0x4d,0x65,0x3f,0xbc,0x57,0x43,0x3f,0x46,0x78,0x25,0x40,0xf9,0x5c,0x47,0x40,0xb4,0x43,0x3,0xc0,0x18,0x3d,0xc,0xbf,0xba,0x7c,0xc,0x40,0xae,0x10,0x1b,0xc0,0xa5,0x9b,0x95,0x40,0x23,0x33,0x5b,0xc0,0xbd,0xa9,0x13,0x40,0x29,0xdc,0x65,0xc0,0x89,0x7b,0xcd,0x3f,0x99,0x81,0x5f,0x40,0xae,0x4d,0x1a,0x3f,0xb2,0x4a,0x0,0xbf,0xb,0x7e,0x4b,0x40,0xec,0xc5,0x65,0xc0,0x9d,0xe4,0x57,0xc0,0x10,0x5e,0x88,0xc0,0xc8,0xf9,0x44,0xc0,0xc0,0xe2,0x4,0x3e,0x48,0x1a,0x11,0xc0,0x18,0x95,0x8e,0x3f,0x28,0xc6,0x2c,0x3e,0x42,0x29,0x85,0x40,0x2e,0xc1,0xa,0xc0,0x27,0x15,0xaf,0xbf,0x66,0xa5,0x53,0x40,0xad,0xd3,0xa1,0xbf,0xe3,0x2e,0x99,0x40,0xfc,0x31,0xfe,0xbf,0x0,0x4c,0x60,0xbd,0x4d,0xa2,0x97,0xbf,0x83,0x4b,0x15,0x40,0x2a,0x3a,0xf5,0x3f,0xb8,0x68,0x2a,0xc0,0x80,0xdc,0x52,0x40,0xc,0xab,0xa2,0xbe,0x77,0xd7,0xa1,0xbf,0xc0,0x8e,0xce,0xbd,0xe0,0xb3,0x5e,0x40,0x5a,0xf3,0x9c,0x40,0x81,0xb5,0x1b,0x40,0x48,0xfa,0x5f,0x3f,0xcc,0xd7,0x50,0x40,0x4f,0xd0,0x5,0xc0,0xa4,0x3b,0x27,0xc0,0xab,0xd2,0xb8,0xbf,0x96,0x1c,0x4f,0xc0,0xc,0x97,0x9,0x40,0x80,0x2c,0xf3,0x3e,0x4b,0xf7,0xda,0xbf,0xd6,0xf2,0x1,0xbf,0x80,0x9,0xcb,0xbd,0x5b,0x30,0x89,0x40,0x9d,0xd3,0x8e,0x40,0xf2,0x59,0x76,0xc0,0xd6,0x8e,0xea,0x3f,0x6d,0x22,0xf7,0x3f,0x1c,0xb7,0xf4,0x3f,0x20,0x81,0x2e,0xbf,0x6f,0xe,0xa0,0x3f,0x20,0xc,0xa1,0x3f,0x52,0xba,0x9b,0x40,0x34,0x59,0x99,0xc0,0x4d,0xdd,0xf2,0xbf,0xf0,0x4b,0x57,0xc0,0xf4,0x38,0x1b,0xc0,0x18,0x50,0x7b,0x3f,0xac,0x29,0x43,0x40,0xe,0xfd,0x71,0xc0,0xbd,0x21,0x50,0x40,0xfa,0xa5,0x85,0x40,0xf2,0xba,0x1d,0xc0,0xd0,0x68,0x5f,0x3f,0xe4,0x47,0x24,0xc0,0x58,0x14,0x89,0x3f,0xfb,0x5b,0x14,0xc0,0xab,0x50,0xf9,0xbf,0x9a,0x36,0x56,0xc0,0x8c,0x6c,0x85,0xc0,0x54,0x5d,0x7f,0x40,0xa0,0xa4,0x21,0xbf,0x30,0xa,0xe,0xbe,0x18,0x41,0x1f,0xc0,0x7c,0xa,0x5f,0x40,0xd4,0x28,0x37,0xc0,0x89,0x6d,0x1,0xc0,0xf3,0xcb,0x79,0xc0,0x77,0x8a,0x86,0xc0,0x5,0xc,0x8e,0x40,0x46,0x1a,0x77,0xc0,0xfc,0xb6,0x30,0xbf,0x28,0x41,0xb9,0xbf,0x94,0x6c,0xea,0x3f,0x21,0x2e,0xab,0x3f,0x22,0x4f,0x75,0xc0,0x20,0xb1,0x8f,0x40,0x95,0x61,0x9f,0xc0,0xfc,0x32,0xfd,0x3e,0x54,0xdf,0xd5,0xbe,0x61,0x50,0x94,0xbf,0xc3,0x11,0x5a,0x40,0x36,0x17,0x87,0x40,0xba,0xbc,0x26,0x3f,0x20,0xc,0xe2,0xbf,0x64,0xe7,0x6d,0x40,0xda,0xb,0x49,0x40,0xfc,0xe5,0x65,0x3f,0x1c,0xc,0xaf,0xbf,0xd8,0xdb,0x57,0x3e,0x67,0x9b,0x8e,0x40,0x1e,0xcf,0xa,0x3f,0x4c,0x3e,0x7c,0xbf,0x0,0x77,0x87,0xc0,0x80,0x7b,0x2b,0xc0,0x7a,0x1d,0x67,0x40,0x28,0x4b,0x34,0xbe,0x6c,0x7a,0xaa,0xbe,0xda,0x30,0xf9,0x3f,0x62,0x89,0x52,0xc0,0x54,0xef,0xac,0xbe,0xb9,0x0,0xb4,0xbf,0x42,0x6e,0x27,0x40,0x3a,0x36,0x82,0x40,0x32,0xee,0x48,0x40,0xeb,0x93,0x6e,0x40,0x8,0xfe,0x8e,0xc0,0xf0,0x35,0xe3,0xbf,0x8a,0x92,0x17,0x3f,0x92,0xe5,0x87,0xc0,0x50,0x9d,0xad,0x3f,0x10,0xc1,0x51,0xc0,0xbe,0x1f,0x9,0x40,0x12,0x7f,0x81,0x40,0x32,0xdf,0x88,0xc0,0x1e,0x12,0x86,0x40,0xfc,0x4f,0x15,0x40,0xc8,0x2c,0x53,0xc0,0xff,0x25,0x99,0x40,0xfb,0x92,0x8a,0xc0,0x28,0x6e,0x57,0xc0,0xc0,0x2e,0x1f,0xc0,0x68,0xa2,0x81,0xbe,0x90,0xd9,0x65,0x3f,0x3a,0xd2,0xbb,0xbf,0xd3,0xa7,0x97,0xc0,0x9c,0xc0,0x13,0xbf,0x4,0xca,0x72,0x40,0x43,0x61,0x76,0x40,0x7f,0x30,0x20,0x40,0x82,0xd7,0x39,0x3f,0x14,0x6,0x9f,0x3f,0xe9,0xb0,0x76,0xc0,0xa6,0x94,0x1,0x40,0xdc,0x3c,0x9f,0xc0,0x7d,0x26,0x4,0xc0,0xae,0x30,0xa8,0xbf,0x7e,0xfc,0x6a,0x40,0x48,0x40,0x15,0xbe,0x52,0xc3,0x11,0xc0,0x8e,0xa0,0x5f,0x3f,0x64,0xc3,0x84,0xc0,0xda,0x71,0xa9,0xbf,0xd7,0x3f,0xb1,0x3f,0x70,0x8b,0xa9,0xbe,0xda,0x6c,0x6,0xbf,0x78,0x93,0x43,0x40,0xbb,0x14,0x73,0xc0,0x82,0x93,0x21,0xc0,0x1c,0xe0,0x9a,0x40,0xb0,0xb4,0x7e,0x3f,0x0,0x3f,0x4f,0xbf,0x6e,0xc1,0x25,0x40,0xcc,0x81,0x40,0x40,0xb4,0xe3,0x55,0xbf,0x11,0x4b,0x5,0xc0,0xcc,0x39,0x51,0xbf,0xae,0x63,0xe8,0x3f,0x94,0x68,0x23,0xbf,0x7e,0x3d,0x3a,0x40,0x46,0x7a,0x82,0xc0,0x8c,0x0,0x1d,0xc0,0xde,0xf2,0x73,0x40,0x2,0xec,0x27,0x3f,0xbc,0xe0,0x80,0x3f,0x36,0x7e,0xd2,0x3f,0x47,0x3a,0x97,0xbf,0xe1,0xf0,0xff,0xbf,0x1b,0x9b,0xb7,0x3f,0xad,0x9e,0xa9,0xbf,0xfa,0x30,0x4,0xc0,0x4e,0x1c,0x29,0x3f,0xd8,0xcd,0x9a,0x3f,0x84,0x25,0xe7,0xbe,0x1c,0x6a,0x58,0xc0,0xf0,0x89,0x41,0xbf,0x52,0x5a,0x35,0xc0,0xde,0x6b,0x28,0x40,0x2a,0x8,0x54,0xc0,0xc8,0x25,0x7f,0x40,0x8c,0xe7,0xfe,0x3f,0xbf,0x2,0x89,0xc0,0xe9,0x78,0x6d,0x40,0xd4,0x3a,0x9e,0xc0,0x70,0xd7,0x94,0xbe,0x56,0xcb,0x47,0xc0,0xe0,0xa4,0x89,0xc0,0xc,0xa5,0xfd,0x3e,0xa1,0x27,0x1b,0xc0,0xb5,0x4e,0x67,0x40,0x1e,0x8e,0x7b,0xc0,0xbc,0xcd,0x84,0x40,0x17,0xe,0x41,0x40,0x38,0x23,0x8c,0x40,0x9e,0x69,0xbb,0xbf,0x46,0x25,0x44,0xc0,0xc9,0x98,0x54,0xc0,0x21,0xd,0x85,0x40,0x5,0x29,0x1f,0xc0,0x68,0x9a,0x1d,0xbf,0x76,0x4b,0x45,0xbf,0x52,0x35,0x5c,0x3f,0xee,0x4a,0x83,0xc0,0xa8,0x3,0x81,0x40,0xc3,0xc7,0x6c,0xc0,0x98,0x5e,0x9d,0x40,0x2,0x6c,0xfa,0xbf,0xe8,0xda,0xe,0xc0,0x6e,0xf0,0x2f,0xbf,0x74,0x69,0xbd,0x3f,0x1a,0x2a,0x6d,0xbf,0x10,0xb0,0x9f,0xc0,0x31,0x15,0x61,0x40,0x66,0x7a,0x9e,0x40,0xff,0x72,0x21,0x40,0x6f,0x90,0x9c,0x40,0xa6,0x6e,0xae,0x3f,0xd4,0x99,0xc8,0xbe,0xe6,0xe0,0x7e,0xc0,0x3e,0xd7,0x8b,0xc0,0xac,0x51,0x5c,0xc0,0xfb,0x61,0xa2,0xbf,0x96,0x56,0x3a,0x40,0xe0,0x6,0x4,0xc0,0x58,0xdb,0x46,0xbe,0x90,0x84,0x90,0xbd,0x60,0x2d,0x51,0xc0,0x68,0x99,0xa,0xbe,0x14,0x7d,0x9a,0x40,0xee,0xc2,0x7f,0x40,0xd8,0xb7,0x73,0x40,0xc8,0x7b,0xfc,0xbe,0x40,0x9b,0xb5,0x3d,0x92,0xf0,0x2e,0x40,0x8a,0xe1,0xd4,0xbf,0xd0,0xaf,0x1,0xc0,0xeb,0xe4,0x88,0x40,0x64,0x27,0x92,0x3e,0xee,0x10,0x58,0xc0,0x1c,0xd1,0x86,0x40,0x6c,0x73,0x54,0x3f,0xea,0x37,0x2b,0x40,0x2d,0xf6,0x8a,0xc0,0x20,0x88,0x6d,0x3f,0x68,0xba,0x43,0x40,0xc6,0xa8,0x38,0xbf,0xb4,0xe3,0x35,0xc0,0x78,0x2,0x80,0x40,0xb7,0xd6,0x14,0x40,0x8f,0x46,0xb6,0x3f,0xa8,0x5b,0x97,0x3f,0x60,0x3,0xe2,0x3d,0x66,0x82,0x37,0x40,0xb3,0xe8,0x8b,0xbf,0xc7,0x5d,0x3c,0xc0,0xfe,0x61,0xf4,0x3f,0xcc,0xbf,0xaa,0x3f,0xdb,0xad,0xf3,0x3f,0xc8,0x2b,0xe,0xbf,0x92,0xdc,0x29,0xbf,0x58,0x77,0xcb,0xbe,0xc7,0xc1,0xa8,0x3f,0x6,0x8e,0x75,0xc0,0x27,0x21,0x95,0xc0,0x43,0x7c,0xef,0x3f,0x81,0x33,0x2f,0xc0,0xb4,0x5a,0xd7,0xbe,0x22,0x6d,0xb1,0x3f,0x32,0x88,0x33,0x3f,0xb6,0x4a,0x4e,0x40,0x70,0xc9,0x27,0x3f,0xbc,0x72,0x9e,0x3f,0xe0,0x25,0xe5,0xbe,0xca,0xf0,0x3c,0x3f,0x27,0xac,0xea,0x3f,0x3,0x4f,0x5a,0x40,0x18,0x9a,0x97,0xc0,0xda,0x4c,0x5,0xc0,0xfb,0x92,0x8f,0xc0,0x12,0x2a,0xff,0xbf,0xc2,0x10,0x43,0x40,0xae,0x99,0x97,0xc0,0xe7,0x5c,0x8f,0xc0,0x90,0x49,0x39,0x40,0xcc,0xf8,0x3c,0xc0,0x8c,0xe0,0x69,0x40,0xc3,0x6a,0xc7,0x3f,0x8b,0xa6,0xa0,0x3f,0x46,0x36,0x7e,0x40,0xd,0x35,0x94,0xc0,0x9e,0x55,0x6a,0x40,0xee,0x8c,0xcf,0x3f,0x62,0x6f,0x56,0xc0,0x3d,0xb8,0x9b,0x3f,0x21,0x5e,0xb2,0xbf,0xe5,0x71,0x0,0xc0,0xde,0xa0,0xa,0xbf,0x6a,0xde,0x16,0xc0,0xee,0xe8,0x8b,0x40,0x5c,0xb6,0x89,0x40,0x22,0x8c,0x8,0xbf,0x60,0xe2,0x8d,0xc0,0xf4,0x9b,0x9c,0xbe,0xec,0x23,0xa9,0x3e,0xd,0xe5,0x55,0x40,0x40,0xbb,0x24,0x3e,0xfb,0x44,0xba,0x3f,0x85,0xd0,0xa9,0x3f,0x88,0x91,0x35,0xc0,0xe3,0x7d,0x46,0xc0,0xd3,0x0,0x8f,0xc0,0x40,0xd3,0x20,0xbd,0x13,0x3a,0xc6,0x3f,0x38,0x7,0xb6,0xbe,0x7c,0x4e,0x9b,0x40,0x10,0x2d,0x74,0xbf,0x2,0xcf,0x50,0xc0,0xb6,0x55,0x55,0x3f,0x29,0x3b,0xb4,0xbf,0x72,0x79,0x2f,0xbf,0x30,0x8,0x9b,0x40,0xd0,0xe7,0x12,0xbe,0x45,0xc4,0x8b,0x40,0x32,0xf0,0x2a,0x3f,0xd,0x18,0xee,0xbf,0x69,0x9c,0x6a,0x40,0xfe,0x47,0x36,0xc0,0xa8,0x67,0x29,0x3e,0xf9,0xda,0x8f,0x3f,0x7f,0xa0,0xf,0x40,0x22,0xa0,0x93,0xc0,0x48,0x2a,0x7b,0x3e,0x68,0xb5,0xa5,0xbf,0x2c,0x7a,0x4f,0x40,0xf8,0x52,0xd7,0x3f,0x4a,0x41,0x0,0x40,0x34,0x67,0x40,0x40,0xaa,0x48,0x8f,0xbf,0x98,0x4,0xa4,0xbe,0x4f,0x5c,0x80,0x40,0x51,0xf5,0x80,0xc0,0xb8,0x30,0x5d,0xc0,0xe4,0x46,0xbb,0x3e,0x8b,0x85,0xfd,0xbf,0x20,0x9d,0x92,0x3e,0x6d,0x56,0x8d,0x40,0xdc,0x61,0x14,0xbf,0xe9,0x6b,0x88,0xc0,0xfe,0x76,0x11,0xc0,0x4e,0xf0,0x92,0x40,0xe8,0x99,0x8c,0xbf,0x1c,0x50,0xc,0xc0,0x5e,0xa,0x10,0x40,0x8c,0x75,0x1e,0x3f,0x98,0x11,0x8d,0xc0,0xf1,0x3e,0x85,0x40,0x2e,0x33,0x34,0x40,0xd2,0x11,0x8b,0x40,0x22,0x8,0xc,0x40,0x4c,0xc7,0xd7,0xbf,0x1e,0xed,0xd0,0xbf,0x3e,0x14,0x1b,0x40,0x8,0x22,0x78,0xbf,0xd0,0xf2,0x7a,0x3f,0xc2,0x9,0x9b,0xc0,0xe2,0x2e,0x1e,0xc0,0xf8,0xb9,0xed,0x3f,0x8,0x69,0x7c,0xbe,0x18,0xd7,0x19,0xc0,0x14,0x90,0x8b,0xc0,0x12,0x61,0x4b,0x40,0x7c,0xad,0x80,0xbf,0x8d,0x34,0x9d,0xc0,0x92,0x5d,0x9a,0x40,0x74,0xb8,0x1b,0x40,0x8d,0x67,0x3f,0xc0,0xc8,0x8b,0x69,0xc0,0x2c,0x9c,0x9a,0x40,0x40,0x5,0xab,0x3c,0x86,0x74,0x40,0xc0,0x98,0x24,0x38,0x40,0xb7,0x4f,0x85,0xbf,0x24,0x5e,0xaf,0x3e,0xe2,0xb2,0x26,0xc0,0xe8,0x84,0x87,0xc0,0xee,0x84,0x54,0xc0,0x3c,0x8c,0xc,0xbf,0xca,0xa9,0x67,0xc0,0x8a,0xb2,0x9d,0x40,0x60,0xa8,0x5d,0x3d,0x2a,0x3,0xf5,0xbf,0xdf,0xf0,0xfc,0x3f,0xdc,0xd9,0x8d,0xc0,0x70,0xad,0x23,0xc0,0x7a,0x62,0xf0,0x3f,0x2f,0xf2,0x87,0xc0,0x2c,0x7d,0x1f,0x40,0x68,0x2e,0xd7,0x3e,0xbe,0x68,0x85,0xc0,0x6,0xca,0x9e,0xc0,0xbd,0x45,0xca,0x3f,0xfc,0x40,0x17,0x40,0x50,0xe1,0x7f,0xbf,0x1a,0x7b,0x8d,0xc0,0x4c,0x6e,0x38,0xc0,0xf4,0xa,0x8,0x3f,0x50,0x45,0x3a,0x3e,0x42,0xd3,0xa3,0x3f,0x6e,0x54,0x62,0x3f,0x90,0x2f,0x86,0xbe,0x5c,0xdf,0x28,0x40,0xc2,0x33,0x9b,0x40,0xd,0x40,0x85,0x40,0x5e,0x63,0x91,0x40,0x8b,0x0,0xd8,0xbf,0x4,0x71,0xda,0xbf,0xd6,0x91,0xd,0xbf,0x5b,0x28,0xbd,0x3f,0x79,0x87,0x1,0x40,0x40,0x30,0xe4,0xbe,0x47,0xb2,0x4e,0xc0,0xa4,0x70,0x71,0xc0,0xf4,0x8,0x9a,0x40,0x56,0x11,0xac,0xbf,0x1c,0x4,0x2d,0xbf,0x82,0x1d,0x44,0xc0,0xa6,0xa4,0x1e,0xc0,0xc3,0x91,0x8c,0x3f,0x98,0xc7,0x6,0x40,0xce,0x1,0xfd,0xbf,0xf6,0x90,0xeb,0xbf,0xae,0x7d,0x7d,0x40,0x2a,0xce,0x24,0xc0,0x44,0xbf,0x6e,0xc0,0x34,0xb3,0x47,0xbf,0x40,0x3f,0x98,0x40,0xc4,0x41,0x8b,0x3f,0x9a,0xdc,0x30,0x3f,0x3c,0x60,0x1f,0xbf,0xe4,0xf6,0x47,0x40,0xb8,0x9b,0x1e,0xc0,0xa8,0xf6,0x58,0x40,0x3b,0x32,0x97,0x3f,0x80,0x50,0xe,0x3f,0x82,0x36,0x30,0x3f,0x21,0x5a,0x45,0xc0,0x8a,0xaa,0x6d,0x40,0x8,0x11,0x28,0x40,0x10,0x47,0x7a,0xc0,0x1b,0xf9,0x94,0xc0,0x30,0xc1,0xa4,0xbf,0xbb,0x97,0x54,0x40,0xce,0x8b,0x1d,0xc0,0x3e,0x4b,0x94,0x40,0x64,0xe3,0x20,0xc0,0x44,0x87,0x90,0xc0,0x96,0xc3,0xc,0x40,0xdc,0x63,0x41,0xc0,0xec,0xc6,0x49,0xbf,0x58,0x9e,0xc7,0xbf,0x60,0x6a,0xcb,0xbe,0x71,0x6b,0x8b,0xc0,0x90,0xc0,0x92,0xc0,0x82,0x8f,0x9,0x40,0x36,0xb,0x11,0xbf,0xa4,0x8,0x41,0xc0,0x28,0x6e,0x2,0xbe,0x86,0x9,0x92,0xc0,0x14,0xe2,0xa9,0x3f }); - // [[[[ 2.374515 4.849083 -4.073365 -0.6062859 2.7134748 4.582304 ] - Tensor *w = NN_tensor(4, (size_t[]){ 3, 3, 3, 6 }, DTYPE_F32, (uint8_t[]){ 0xe,0xf8,0x17,0x40,0xb0,0x2b,0x9b,0x40,0x2,0x59,0x82,0xc0,0x8e,0x35,0x1b,0xbf,0x92,0xa9,0x2d,0x40,0x3c,0xa2,0x92,0x40,0xca,0xab,0x63,0xc0,0xe9,0xfc,0x7,0x40,0xd4,0x1d,0x4,0x40,0x2e,0xeb,0x40,0x40,0xf9,0x9c,0x5c,0xc0,0x76,0x5b,0x64,0x40,0x60,0x61,0xb,0xc0,0xc0,0xf9,0x44,0xc0,0x34,0x27,0x7e,0x3f,0xdd,0x8a,0x87,0x40,0x30,0xe9,0x53,0xc0,0xbe,0xd9,0x2a,0x40,0xc6,0x97,0x12,0xbf,0xd9,0x4f,0xcc,0x3f,0x5e,0x9f,0x79,0x40,0xe1,0xc5,0xad,0x3f,0x35,0xd3,0x84,0xc0,0x48,0xb0,0xc0,0xbf,0xfe,0xc,0x7e,0x3f,0x76,0xf9,0x86,0xc0,0xb8,0xcc,0x54,0x3f,0x7f,0xd4,0x2b,0xc0,0x50,0x6f,0x7e,0xbf,0x49,0xf4,0xe4,0x3f,0x6a,0xc5,0x80,0xc0,0xd2,0x71,0x4d,0xc0,0x10,0xf4,0x11,0x40,0x1a,0x3f,0x9e,0xc0,0x63,0x38,0x5c,0x40,0xce,0xbe,0x76,0xc0,0x0,0xe2,0xa4,0xbd,0xb1,0x61,0x83,0x3f,0x5,0x8a,0xfc,0x3f,0x19,0x9d,0x46,0xc0,0xd6,0x40,0x2c,0x3f,0xb6,0xc9,0x9,0x40,0xc8,0x3b,0x89,0x40,0xd9,0xd0,0x70,0xc0,0x54,0x18,0x1f,0xc0,0x42,0x71,0xba,0x3f,0xa8,0x5d,0x24,0xbe,0xd6,0xf1,0x57,0xc0,0x4,0xaa,0x86,0xc0,0x96,0x11,0x8e,0xc0,0x5e,0xeb,0x5f,0xc0,0xf7,0x3e,0x8,0xc0,0x34,0x35,0x5e,0xc0,0xa,0x5c,0x8c,0xc0,0xb8,0xd4,0xc7,0x3e,0x80,0xaa,0x3b,0x40,0x36,0xe0,0x16,0xc0,0x88,0xfe,0xff,0x3e,0x80,0x78,0x7c,0xbd,0x24,0x94,0x15,0x40,0x14,0xec,0x5d,0xc0,0x70,0x14,0x73,0x3e,0xdc,0x57,0x95,0x40,0x36,0x74,0x64,0x40,0x24,0x94,0x9e,0xc0,0xca,0xb0,0x40,0xbf,0x80,0xe8,0x3e,0x3d,0x56,0x53,0xd3,0xbf,0x4b,0x3c,0x52,0xc0,0x17,0xaa,0x5e,0xc0,0x2a,0xa1,0x54,0x40,0x9e,0x32,0xcf,0xbf,0x28,0xbf,0xa4,0xbe,0xb4,0xcb,0xbb,0x3f,0xb0,0x69,0x44,0xc0,0x70,0x2d,0xe4,0x3e,0xa,0x57,0x3e,0x40,0xa8,0x19,0x3b,0xc0,0x2b,0x33,0xba,0x3f,0x10,0xe1,0x2e,0xbe,0x8f,0xf2,0x2f,0x40,0x38,0xa2,0x54,0x40,0xad,0xcb,0xa9,0x3f,0x60,0xb4,0x1a,0x3e,0xa0,0xbb,0x89,0xc0,0x98,0xd1,0xfe,0x3f,0xd6,0x17,0x43,0x40,0xd7,0x76,0xe8,0xbf,0xee,0xde,0x9e,0xc0,0x8b,0xa8,0x81,0x40,0xda,0x39,0x96,0xbf,0xd8,0xb,0x80,0x3f,0xcc,0xe8,0xb3,0xbf,0xc6,0x12,0x4c,0x40,0x71,0xb,0x9c,0x40,0xa0,0x96,0x48,0x40,0xe,0xad,0xcb,0xbf,0xb6,0x40,0x60,0x40,0x60,0x23,0x1c,0x40,0x5c,0xc2,0xf9,0x3e,0x7e,0xe0,0x80,0xc0,0xe4,0x67,0x9,0xc0,0x47,0x4d,0x9e,0xc0,0xda,0x6,0x56,0x40,0x96,0x28,0x9e,0x40,0x8a,0x67,0x3a,0x40,0xf,0x7e,0xcc,0x3f,0x2b,0x42,0x97,0x3f,0xda,0x5,0x9a,0x40,0xb8,0x3b,0x22,0xc0,0x41,0xdd,0xd6,0xbf,0x1a,0xa9,0x8f,0xc0,0x18,0x80,0xfd,0xbe,0xc4,0x9a,0xaf,0x3e,0x92,0x31,0xaf,0x3f,0x73,0x9e,0x5e,0xc0,0xe8,0x1e,0x14,0xbf,0x14,0xd7,0x83,0xc0,0x7e,0x26,0x82,0xc0,0x4,0xd7,0x26,0x3f,0x33,0x2f,0x9c,0xc0,0x3,0x6b,0xaa,0x3f,0x4c,0x64,0x93,0xc0,0xd,0xaa,0x5e,0xc0,0x27,0xcc,0x84,0xbf,0x5d,0xaf,0x98,0xc0,0x9f,0x38,0x81,0x40,0xd6,0x18,0x83,0x40,0x30,0x25,0x27,0xc0,0x36,0x11,0x86,0x3f,0x39,0xb4,0x23,0x40,0xf2,0x5f,0xcb,0x3f,0xa6,0x76,0x2b,0xbf,0xee,0xe9,0x96,0xc0,0x38,0xaf,0x68,0x40,0xe2,0x55,0x8c,0xc0,0x40,0xe,0x6d,0xbf,0xf8,0xcc,0x9e,0x3e,0x65,0xc7,0xd2,0xbf,0x41,0x15,0xea,0xbf,0x84,0x48,0x8a,0xc0,0xd8,0xd,0x8d,0x3e,0x72,0x56,0x11,0xbf,0x7,0x7d,0x8b,0x40,0x97,0xb3,0xd2,0xbf,0x32,0x55,0x77,0x40,0x88,0x61,0x72,0x3e,0x32,0xc5,0xf,0xc0,0x33,0x34,0x98,0xbf,0x82,0x41,0x11,0xbf,0xe0,0x22,0x54,0x3d,0x22,0xe2,0x52,0xbf,0x4d,0xef,0xbd,0x3f,0x38,0xc3,0x83,0x40,0xe6,0x31,0x49,0x3f,0xf1,0xd0,0xe7,0x3f,0x44,0x9b,0x45,0x40,0x4,0xf4,0x89,0x3f,0xba,0x82,0x13,0x40,0x31,0xdb,0x27,0x40,0x1a,0xc3,0x95,0x40,0x4d,0x6,0x92,0xc0 }); - // [ 1.7109567 -0.22655725 -0.8979517 -1.9277102 3.006003 4.573937 ] - Tensor *b = NN_tensor(1, (size_t[]){ 6 }, DTYPE_F32, (uint8_t[]){ 0xa1,0x0,0xdb,0x3f,0xa0,0xfe,0x67,0xbe,0x2a,0xe0,0x65,0xbf,0x35,0xbf,0xf6,0xbf,0x5a,0x62,0x40,0x40,0xb1,0x5d,0x92,0x40 }); - - - // [[[[ -57.222538 8.81204 -19.71092 79.85186 -50.808155 5. - Tensor *golden = NN_tensor(4, (size_t[]){ 1, 14, 14, 6 }, DTYPE_F32, (uint8_t[]){ 0xe1,0xe3,0x64,0xc2,0x1e,0xfe,0xc,0x41,0xf7,0xaf,0x9d,0xc1,0x27,0xb4,0x9f,0x42,0x8d,0x3b,0x4b,0xc2,0xc3,0x3e,0xbd,0x40,0x64,0xeb,0x11,0xc1,0xf6,0x89,0x5a,0x41,0x2d,0xf0,0x2b,0x42,0x6a,0x8,0x8e,0xc2,0x6f,0x34,0x20,0x40,0x98,0x6f,0x3,0x41,0x4d,0x29,0xe3,0x41,0x9e,0xb3,0xb4,0xc1,0x50,0xed,0x9a,0x40,0x37,0xf,0xe,0x42,0xe,0x58,0x55,0xc1,0xa3,0x89,0x9b,0x41,0x6f,0xcd,0x8e,0xc1,0xc8,0x67,0x30,0xc0,0xfd,0x5a,0xe2,0x41,0x3a,0x15,0xb9,0x41,0x7b,0x17,0x5b,0x42,0xab,0xf8,0x33,0x41,0x94,0x3b,0xce,0xc2,0x88,0x26,0x83,0x40,0x30,0x86,0x24,0x42,0xb9,0x81,0xd3,0xc0,0xb7,0xb3,0x1c,0xc2,0x41,0xc9,0x44,0x42,0xac,0xbb,0x7e,0x40,0xd8,0x95,0x93,0xc1,0xe3,0x35,0x2a,0xc1,0xa7,0x94,0xcf,0xc1,0xe0,0x20,0x92,0x41,0xe6,0xb,0x3e,0x40,0x16,0x19,0x19,0x41,0x1a,0xcc,0xdd,0xbf,0x20,0x32,0x20,0x40,0xc3,0x15,0xd5,0x41,0x7e,0x90,0x52,0x41,0xce,0x2b,0x45,0xc0,0x22,0xb8,0x4d,0xc1,0xa,0xf5,0x1d,0x42,0x8,0xff,0xf9,0xc0,0x50,0xbc,0x45,0x42,0x54,0x88,0x32,0x41,0xea,0x24,0xde,0x41,0x75,0x3a,0x5a,0x41,0x5a,0x1a,0x8,0x41,0x53,0x85,0x4f,0x42,0x89,0xc9,0x54,0xc1,0x2,0x4f,0xdd,0xc1,0x51,0xab,0x48,0xc2,0xae,0xa0,0x66,0x42,0x88,0x1e,0x75,0x40,0x1c,0xad,0x35,0xc2,0x8d,0xfd,0x4,0x42,0x2f,0xa9,0xb6,0x41,0x2,0x2a,0x59,0x42,0x3a,0x2d,0x97,0x40,0x7,0x16,0xb,0x3f,0xcb,0xc4,0xbd,0xc0,0x88,0xa0,0x27,0xc2,0xdc,0xbf,0x48,0xc0,0x77,0x49,0x52,0xc2,0x13,0xf5,0x74,0x42,0x2f,0x54,0xa7,0x41,0x6b,0x20,0x60,0xc1,0x8a,0xa5,0xbf,0x41,0xf1,0x56,0x27,0x42,0xe2,0x26,0x17,0xc1,0x6c,0xdb,0xc2,0xc0,0x40,0x9e,0x33,0x41,0xa,0x16,0xb,0x40,0xec,0x18,0xf0,0x41,0xd0,0xfe,0x72,0xc2,0xf8,0xaa,0xd,0x42,0x30,0x2d,0x21,0xbe,0x49,0xc,0x16,0x40,0xf3,0x12,0x28,0x41,0xc3,0x26,0x47,0xc2,0x64,0x8f,0x85,0x40,0x52,0x17,0x54,0xc0,0xfb,0xb3,0x4c,0xc1,0xe8,0x1f,0x90,0xc1,0x29,0x98,0x81,0xc2,0xe0,0x2e,0x4d,0xc2,0x1e,0x7b,0xa0,0xc2,0xf7,0x1a,0x8a,0xc2,0xd9,0x61,0x9e,0x42,0xd9,0xcc,0xda,0xc1,0x9,0x76,0xa9,0xc2,0xf6,0xe1,0xed,0xc1,0xda,0x99,0xfa,0x42,0xa0,0x4f,0xd0,0xbe,0x5a,0xc0,0x3f,0xc2,0x34,0x77,0x65,0x42,0xee,0x1d,0xb9,0x41,0x46,0x9c,0xa2,0x41,0x18,0xc6,0x86,0xc2,0x3a,0x3f,0xe1,0x41,0xf7,0xd9,0xc9,0xc1,0x80,0xa2,0xcd,0x42,0x6a,0xc1,0xbd,0x41,0x58,0x28,0x80,0x42,0x1a,0xf1,0x7,0xc2,0x7a,0x28,0x3,0x42,0xea,0xbe,0x5f,0x40,0x85,0xc,0xf7,0xc1,0x9f,0x46,0xff,0x40,0xc1,0x5b,0x85,0xc2,0xc6,0x6a,0x7,0xc1,0xe2,0xbf,0x4,0xc2,0xd9,0xeb,0xd,0x42,0x18,0x22,0x84,0xc2,0xf1,0x22,0xa0,0x42,0xa6,0xd,0x26,0x42,0xab,0x87,0x61,0x42,0xd6,0x7e,0x94,0xc2,0x7e,0xbd,0x49,0xc2,0x57,0x21,0xe8,0xc1,0xe8,0xd2,0x25,0x42,0x9d,0x9d,0xb5,0x41,0xc5,0x9a,0xcb,0xc2,0xa4,0x3b,0xa7,0x42,0xe,0x75,0x8c,0xc1,0x44,0x52,0x32,0x42,0xe7,0x77,0x95,0xc0,0xc1,0x42,0x33,0xc2,0x50,0xd9,0x1,0xc2,0x63,0xb4,0x96,0xc1,0x7f,0x80,0xa0,0x42,0xc2,0x93,0x11,0xc0,0x9b,0xc4,0x6b,0x41,0xc8,0x43,0x5b,0x42,0x1b,0xf4,0xad,0x42,0xe7,0xfe,0x1a,0x42,0xdc,0xd4,0x33,0xc2,0xfa,0x62,0x8b,0x42,0x71,0xff,0x2f,0x42,0xc6,0xff,0xc7,0x41,0x74,0xb9,0x10,0xc2,0x75,0x8c,0x82,0x42,0x4f,0x30,0xe8,0x41,0x3a,0x4f,0x2f,0x42,0x80,0x1d,0x8c,0xc1,0x38,0x26,0xc2,0x40,0x31,0x9a,0x8e,0x40,0x70,0xdc,0x32,0xc1,0xaf,0x51,0xb3,0x41,0xb8,0xc0,0x5d,0x41,0x88,0xb7,0x26,0xc2,0x8e,0xc3,0x85,0x41,0x1b,0xdf,0x9d,0x42,0x72,0xc4,0x51,0xc1,0x7e,0xa8,0x57,0xc2,0xcc,0xcd,0xfd,0x41,0xbc,0xf8,0xae,0xc1,0x34,0x96,0x56,0xc0,0x3c,0x14,0x94,0xc1,0xe2,0xa9,0xc,0xc2,0xc3,0x94,0x37,0x41,0xd0,0x1,0x4,0x42,0xb,0x66,0x24,0xc2,0xd1,0x6,0x4f,0x42,0x14,0x70,0xd0,0x42,0x4a,0x6f,0x3d,0xc1,0xd7,0x3,0x11,0x42,0xe,0xdd,0x11,0x42,0x69,0xde,0x94,0xc1,0x1,0x46,0x5,0x42,0xce,0x45,0x1c,0x42,0xe5,0xdb,0x96,0x41,0x4b,0xaf,0x9b,0x42,0x48,0xf7,0xdd,0xc0,0x4d,0xc8,0xc7,0x41,0xc2,0x34,0x96,0xc2,0x9c,0x99,0x42,0x41,0xc2,0x4e,0xe6,0x41,0x3d,0xfc,0x18,0x42,0x92,0x98,0xfb,0x41,0xb0,0xf4,0xc3,0xc2,0xcb,0x64,0x82,0x3f,0x76,0x60,0x59,0xc0,0xa9,0x96,0x94,0x42,0x31,0x5,0xb7,0x42,0xba,0x80,0x77,0xc2,0x8c,0xef,0xb3,0xc2,0xdd,0x4d,0x9c,0xc2,0x3e,0x57,0x37,0x42,0x13,0x52,0x10,0xc3,0x86,0x66,0x88,0x42,0x28,0x3e,0xc6,0xc2,0xd9,0x63,0x2f,0xc0,0x8d,0x37,0x82,0xc1,0x38,0xac,0x6e,0x42,0x62,0x11,0xcb,0x41,0x89,0xa0,0xa3,0xc2,0x9b,0x63,0x32,0xc0,0xac,0xd0,0x95,0x41,0x13,0xe0,0xf2,0x41,0x76,0xd1,0xa7,0xc2,0xe3,0xfb,0x0,0x41,0xb1,0x4e,0xad,0x3f,0xb5,0x3b,0xf7,0x41,0x32,0x6d,0x47,0xc2,0xfb,0x3,0x3e,0xc1,0x5e,0x9,0x1f,0xc1,0x74,0x5e,0x47,0x42,0xe3,0x72,0x86,0x42,0x76,0xe2,0x5d,0xc2,0xcd,0xbd,0xac,0xc0,0x50,0xbc,0x4b,0x41,0xa5,0x84,0xca,0x42,0x65,0x3b,0x9f,0xc2,0x78,0x2c,0x79,0xc1,0x36,0x55,0xa5,0xc0,0xfa,0x2b,0x67,0x42,0x3e,0xcf,0x85,0x42,0x8,0x60,0x68,0xc1,0x1b,0xcb,0xb8,0x41,0x3e,0xf5,0xfc,0xc1,0x8d,0xe8,0xee,0xc1,0x7e,0x12,0x95,0xc1,0x8c,0xda,0x9a,0xbf,0xd8,0xc5,0x62,0x41,0x23,0xf8,0x91,0x40,0xbc,0xa3,0x3,0xc2,0xc3,0xff,0x4c,0xc2,0x3d,0x23,0x39,0xc2,0x30,0xe1,0xc9,0xc2,0xdc,0xbd,0xbd,0xc1,0x37,0x71,0xd9,0xc0,0x5a,0xe3,0x4b,0xc2,0xdc,0xcb,0xe4,0x40,0xee,0xc7,0xca,0x40,0x5e,0xaa,0xc0,0x41,0x3f,0x65,0xaf,0xc0,0x5e,0xa7,0x23,0x42,0xd2,0xc2,0x82,0x41,0x28,0x68,0x8,0xc1,0x54,0x41,0x75,0x42,0x15,0xbc,0xd2,0xc1,0xb8,0x29,0x38,0x42,0x1b,0xa,0xcb,0x41,0x36,0x20,0xa4,0xc1,0x1c,0x8e,0xe4,0xc1,0xe8,0xe1,0x21,0x3e,0x2d,0x73,0x26,0xc2,0x5b,0x18,0x26,0xc2,0x9b,0xad,0xfb,0x41,0x46,0xbd,0x90,0xc1,0x39,0x67,0x2,0x42,0x26,0xfe,0x8c,0x41,0xb6,0x5b,0x78,0x42,0x53,0xcd,0x6,0x42,0xda,0xfc,0xf,0xc1,0x6,0xf6,0xd5,0xc1,0x34,0x4a,0x57,0x41,0x37,0x92,0x2,0x42,0x87,0x7a,0xc1,0x42,0xed,0x8d,0xd4,0x41,0x96,0x7b,0x3a,0x42,0x4,0x50,0x7,0xc2,0x9f,0xb3,0x29,0x42,0x89,0x60,0x1,0x41,0xf3,0x96,0xd2,0x40,0x1c,0xa5,0x21,0x41,0xaa,0x87,0x9e,0x41,0xb,0x2d,0x14,0x42,0x4d,0xe9,0x97,0x41,0x94,0x69,0xb2,0x41,0xe1,0x79,0x5,0x42,0xe5,0xb2,0xd9,0xc0,0x1d,0x50,0x2,0xc2,0xe5,0x7d,0x52,0x42,0x88,0xbd,0x82,0x42,0xe,0xb1,0x9b,0x41,0xac,0xe9,0xaf,0xbe,0x19,0xf1,0xe6,0x41,0xa1,0x49,0x97,0x42,0xaa,0xd1,0x6e,0xc1,0xbf,0x55,0x26,0xc2,0x97,0x2d,0x25,0xc2,0x1d,0xe7,0xf8,0x41,0xf1,0x42,0x82,0xc0,0x20,0x75,0x34,0xc0,0x3f,0x8e,0x22,0x42,0x78,0xfb,0x3c,0xc1,0x78,0xd0,0x6,0xc2,0x80,0xff,0xf2,0xc2,0xf0,0xde,0x42,0x42,0x1b,0x74,0xce,0xc1,0x4b,0x44,0x58,0x42,0x10,0xac,0xb2,0xc1,0x1d,0x51,0xaf,0x42,0xcd,0xea,0x85,0x42,0x99,0x0,0x3d,0xc2,0xc0,0x13,0x5b,0x42,0xd5,0x16,0x98,0x41,0x7b,0x22,0xec,0xc0,0xdd,0x53,0x6a,0x42,0x2a,0x3f,0x22,0xc1,0xfa,0xe8,0x8d,0xc1,0xcc,0x71,0x9,0x42,0x1,0x63,0xd7,0xc1,0x2b,0x7,0x1a,0xc2,0x88,0xff,0x9b,0x42,0xc,0x44,0x5e,0xc2,0x46,0x1a,0x5f,0xc1,0x1e,0xe0,0xd0,0xc1,0x7d,0x16,0x3c,0xc2,0x6b,0x3b,0xcd,0x41,0x99,0x42,0x10,0xc1,0x5f,0x4d,0xe2,0x41,0x94,0x1d,0x8c,0xc1,0xc2,0x5c,0x84,0x42,0x39,0x1,0xd,0xc2,0x76,0xb0,0xe,0x42,0xe,0x8,0x44,0xc2,0xb6,0x57,0xb,0xc2,0xee,0xb2,0x21,0xc1,0xb6,0xac,0x3b,0xc2,0x0,0x95,0xf1,0xc1,0x36,0xbd,0xaf,0x41,0xb,0x91,0xe3,0x41,0xf7,0x4d,0xf3,0xc1,0x88,0xd7,0xa7,0xbf,0xd,0x5a,0xde,0xc0,0xc8,0xd1,0x1e,0xc2,0xdd,0x14,0x5a,0xc2,0xc1,0xcd,0x84,0x42,0xff,0x52,0xe3,0xc1,0x7f,0x42,0xfa,0xc1,0x6e,0x2f,0x4b,0xc2,0xa4,0xad,0x6e,0xc1,0x3e,0x10,0x7e,0xc1,0x9c,0x80,0x1c,0xc2,0x93,0xdb,0x10,0x41,0x53,0x7b,0x93,0xc2,0x4c,0xfb,0x85,0x40,0x55,0xc5,0x6b,0x41,0x78,0x1b,0x6d,0xc1,0xef,0x72,0x52,0xc1,0x6e,0x2,0xa0,0xc2,0x9c,0x33,0xc2,0xc1,0x2c,0x6c,0x55,0xc0,0xca,0x92,0x7e,0x40,0x17,0x24,0xf3,0x41,0x89,0x6d,0xd8,0x42,0xae,0x3f,0x82,0x42,0x37,0x39,0xe9,0x41,0xe0,0x5c,0xda,0xbf,0xf,0x5,0x5f,0x42,0xb5,0xb5,0xce,0xc1,0x4c,0x40,0x32,0xc2,0x7a,0x9,0x88,0x42,0x70,0xa,0x3,0x41,0x2a,0xed,0x83,0x41,0x6f,0x87,0x68,0xc2,0x82,0xf0,0x25,0xc1,0x72,0x79,0xff,0xc1,0x34,0x64,0xf3,0xc1,0x85,0x74,0x11,0x41,0x1e,0xea,0xb3,0x3f,0xa,0x3f,0xfc,0xc1,0xf2,0xf4,0xc7,0xbf,0x6f,0x6,0xa1,0x42,0x96,0x4b,0x9,0xc2,0x4e,0x21,0xa4,0xc1,0x47,0x38,0xcd,0xc1,0x47,0xa6,0x9e,0x42,0x99,0x29,0x34,0x42,0x51,0x4f,0x26,0xc2,0x15,0xa9,0x62,0x42,0xb,0xf4,0xe8,0xc0,0xc2,0x57,0x13,0x41,0x8,0x9c,0x3a,0x42,0x36,0xa5,0xb,0x42,0xcd,0x14,0x80,0xc2,0x50,0x40,0xb7,0x41,0xe7,0x7d,0xb8,0x41,0x22,0x9c,0x13,0xc2,0x32,0x94,0xdc,0xc1,0x48,0x57,0xe,0xc1,0xf3,0xf5,0x23,0x42,0xdc,0xb9,0xcf,0x41,0xab,0x34,0x37,0xc2,0x6f,0x49,0xaa,0xc2,0xd9,0x99,0x46,0xc2,0x4,0xa3,0x84,0xc2,0x4f,0x25,0x8f,0x42,0x6b,0xd5,0xf9,0x40,0x64,0x35,0x6c,0xc1,0x78,0x24,0xab,0x41,0xb,0x1e,0x48,0xc2,0x8d,0x63,0xab,0xc1,0x5f,0x92,0x7,0x42,0x47,0x16,0x41,0xc2,0x81,0xde,0x69,0xc2,0xbf,0x29,0x98,0x42,0xbb,0x49,0xe7,0x41,0x2,0x78,0x37,0xc1,0xc,0x29,0x3e,0x40,0xef,0x72,0x6e,0x41,0x9f,0xf9,0x0,0xc2,0xfa,0x87,0xff,0xc1,0x71,0xfd,0x94,0x42,0xa6,0x45,0x16,0xc0,0xa4,0x8e,0x3e,0xc2,0x99,0xc9,0xd1,0x41,0x7f,0xe4,0x5c,0x42,0xaa,0x76,0xb,0xc2,0x83,0x23,0x75,0xc2,0x9e,0x67,0xf6,0xc1,0x22,0x46,0x82,0x41,0xbd,0xee,0x88,0xc1,0xd7,0xe1,0x9b,0x41,0x5b,0x7b,0x89,0x41,0xdc,0x30,0xe2,0x41,0x5b,0xf8,0x8e,0xc2,0xb4,0xab,0xa1,0xc2,0x59,0x7a,0x62,0xc2,0x47,0x6c,0xee,0xc1,0xda,0xdf,0xe3,0x3f,0x78,0x8,0x8,0x42,0xf4,0xd4,0x5f,0xc2,0x69,0x1f,0x39,0xc2,0xc,0x1f,0x80,0xc2,0x83,0x7c,0x42,0x42,0x5f,0x72,0xdb,0xc2,0x1d,0xcc,0x64,0x41,0x5c,0x8,0x68,0xc2,0x3d,0x4b,0x6b,0x42,0x6a,0x98,0xc4,0x42,0xde,0x9d,0x3f,0x42,0x8c,0x99,0x49,0x41,0xe5,0xbe,0xac,0xc2,0x75,0x1f,0x11,0xc2,0xf9,0x32,0x88,0x42,0xb6,0xe,0xa1,0xc1,0x58,0xd7,0x7b,0xc2,0x2d,0x29,0x2,0x42,0x2f,0xde,0x7e,0xc2,0x82,0x19,0x13,0x42,0x2d,0xf5,0x0,0xc2,0x10,0xd5,0x3e,0xc2,0xaa,0x0,0xa3,0xc2,0x4b,0x4a,0xc5,0xc0,0xfa,0x12,0x94,0x42,0xa8,0x41,0x71,0xc1,0xad,0x94,0x25,0x42,0x6d,0x72,0x42,0x41,0x67,0x3b,0xc8,0x42,0xae,0x19,0x64,0xc2,0xb0,0xfb,0xf6,0x3f,0x4a,0x44,0x5c,0x41,0x96,0xbd,0x87,0x41,0xb6,0xd1,0xb5,0x42,0x27,0xbd,0xe5,0xc1,0xff,0x5a,0xd3,0x42,0xf3,0x69,0xad,0xc1,0x5b,0xad,0x3a,0x42,0x7e,0xea,0xc,0xc2,0x3,0x7b,0xa4,0xc1,0xfc,0xe0,0x95,0xc1,0xec,0x27,0x79,0xc1,0x3e,0xa6,0x4c,0x42,0x6,0x37,0x51,0x42,0x23,0xc7,0xf8,0xc1,0x5,0x1c,0xaf,0x41,0xb7,0x18,0x8a,0x42,0xc6,0x78,0x62,0xc0,0xcf,0x89,0xc8,0xc1,0xcf,0xc,0x24,0xc2,0x32,0xe7,0xb9,0xc1,0xc1,0xda,0x1d,0x41,0x37,0x84,0x86,0xc1,0xdf,0x27,0xad,0x41,0x56,0x0,0xae,0xc2,0x42,0x57,0x13,0xc1,0xba,0x82,0x3f,0x41,0x8a,0xec,0x70,0x40,0xa6,0x26,0xdb,0xc1,0xd0,0x22,0x4f,0xc2,0x8c,0x23,0x93,0x41,0x8c,0x9e,0x9b,0x41,0xe3,0x97,0x36,0x42,0x4,0xba,0xa0,0x41,0x4,0xae,0x32,0xc1,0x7c,0x39,0x47,0xc1,0x86,0xbb,0xa9,0x42,0x39,0x77,0x51,0x42,0x83,0xbf,0x16,0x41,0x97,0xa2,0x8c,0x42,0x9f,0x3c,0x16,0x42,0xa5,0x1e,0xc,0x42,0xab,0x36,0x35,0xc2,0x84,0xeb,0x79,0x42,0x1d,0x9d,0x9c,0xc1,0xf9,0xee,0x2f,0xc1,0x9c,0xd8,0xad,0x40,0xb8,0xe9,0xe5,0x42,0xd3,0x74,0x1d,0xc2,0xc2,0x87,0x2f,0xc2,0x5d,0x8,0x64,0x41,0xee,0x55,0x42,0xc2,0x31,0x6d,0xc1,0xc2,0x97,0x27,0x4a,0x42,0x56,0x7,0xbb,0x40,0x32,0x7f,0xbf,0x41,0x40,0x45,0x9f,0xc1,0xa1,0x8a,0x4b,0x42,0x8a,0xe,0x13,0x41,0x24,0x3b,0x1d,0xc1,0x16,0x8b,0x9d,0xc1,0x3d,0x42,0x4a,0xc2,0xd1,0x8e,0x95,0x42,0x38,0xbd,0xa,0xc2,0x7a,0xd3,0x52,0xc2,0x3a,0x8,0xb,0xc0,0xdc,0xfb,0xe,0xc2,0xa6,0x2,0x66,0xc2,0x39,0xc9,0x85,0x42,0xc8,0xf4,0x7b,0xc2,0x48,0x27,0x37,0xc2,0x50,0xc5,0x89,0xc2,0x21,0xf6,0x20,0x42,0xc5,0xa4,0x69,0xc2,0xa2,0x0,0xbc,0xbf,0xfc,0x3b,0x19,0x42,0x84,0x86,0x31,0x42,0xc8,0xbc,0x8,0xc0,0xa2,0xa7,0x6d,0xc1,0x45,0x9f,0x83,0xc2,0x7e,0x28,0x5c,0xc1,0x22,0x26,0xf9,0xbf,0x7d,0x5a,0x87,0xc0,0xaa,0x17,0xd6,0x40,0xb9,0x61,0x83,0xc2,0xd5,0x23,0x2e,0xc2,0x45,0x2e,0xb2,0xc1,0x3e,0x56,0xaf,0xc2,0xb7,0xf4,0xaa,0xc2,0xcf,0x8f,0xd5,0x41,0xc5,0xff,0x2a,0xc2,0xf8,0x4b,0x15,0xc2,0xa3,0x49,0xa3,0xc0,0xed,0x53,0x2f,0xc1,0xbe,0xdf,0x59,0x42,0x88,0x87,0x73,0xc1,0x5e,0x9,0x96,0x40,0x57,0xcc,0x8a,0xc1,0x41,0x75,0xa0,0x41,0x6e,0xeb,0x4b,0xbf,0xfd,0x6d,0xb6,0x3f,0xcd,0x80,0x93,0xc0,0xfe,0xf,0x72,0x42,0x6d,0x5c,0x91,0xc1,0xe1,0x7b,0xef,0x41,0x33,0x35,0xeb,0xc2,0xf9,0x3d,0x95,0xc2,0x1d,0x7c,0x30,0x42,0xec,0x7,0xe5,0x42,0xb2,0xa0,0x32,0x41,0x16,0xa8,0xb,0xc2,0x3e,0x9b,0x34,0x41,0x3c,0x20,0xe1,0x41,0x6a,0x64,0x88,0x42,0xcc,0x58,0x71,0x42,0xb7,0x66,0x1c,0xc0,0xc2,0x9e,0xcc,0xc1,0x28,0x5b,0xde,0x41,0x64,0x8c,0xa9,0x42,0x80,0x9f,0x3c,0x42,0xbd,0x7b,0x4b,0xc2,0x50,0x34,0x44,0x42,0xf2,0xcd,0x20,0xc0,0xfc,0xb6,0x16,0x42,0xb4,0x8d,0x57,0xc1,0x3c,0xd6,0x4f,0xc2,0x96,0x6d,0x29,0xc2,0x93,0x6,0x25,0x42,0x98,0xe3,0x11,0xc2,0xd2,0x60,0x7e,0xc2,0x19,0xe0,0x5f,0x42,0xd1,0xdd,0xa9,0x42,0x16,0x40,0xa9,0xc1,0x18,0xd9,0x58,0xc1,0x91,0x81,0x5,0x42,0x8a,0x69,0x87,0xc1,0x42,0xc5,0x89,0xc1,0xda,0x53,0x80,0x42,0x12,0xf7,0xe2,0x40,0xea,0x2d,0x3a,0xc2,0xe5,0xee,0xfc,0xc1,0x11,0xf8,0x50,0x41,0xa4,0xfb,0xd1,0xc1,0x85,0xb2,0x14,0xc2,0x7a,0x89,0x11,0x41,0x60,0xe4,0xba,0xc2,0xa5,0x5,0xb1,0x41,0xa0,0x97,0xc,0xc0,0x18,0x90,0x7,0xc2,0xde,0xf6,0xee,0xc1,0xc,0xea,0x2e,0xc1,0x36,0x4c,0xa3,0xc2,0x90,0x80,0xa8,0x42,0x39,0xcc,0x20,0x42,0xd7,0x11,0xec,0x41,0x80,0x8a,0xa7,0xc1,0x92,0xe8,0x46,0xc2,0xb9,0xef,0x9a,0xc1,0x8f,0x29,0xed,0x42,0xa3,0x2b,0x84,0x42,0x31,0x4d,0x47,0xc2,0xde,0xcb,0xa3,0x42,0x52,0xb,0x5e,0xc2,0xd6,0x6e,0xc1,0xc1,0x27,0x25,0x7c,0xc1,0xa5,0x28,0x48,0xc2,0x2b,0x59,0x53,0xc2,0x3c,0x2d,0x94,0xc1,0x4c,0x2a,0x9d,0x40,0x4e,0xb,0xb8,0x41,0xbc,0xce,0xc5,0xc1,0x53,0x1,0x7e,0xc2,0xed,0xcf,0x9c,0x40,0x76,0x0,0x46,0xc2,0xdb,0x82,0x6a,0x42,0xab,0x3d,0xe3,0xc1,0x93,0xae,0x93,0x40,0x98,0xbe,0xec,0x41,0x9c,0xe9,0x13,0x42,0x8a,0xf,0xd8,0x3f,0x8,0x90,0xcc,0xc1,0x21,0x4f,0xdc,0x3f,0xd,0x3f,0xf4,0xc1,0x68,0x5,0x3a,0x42,0x34,0xaa,0x7,0xc1,0xde,0xdf,0x61,0xc2,0xa8,0xf0,0xe1,0xc0,0xfd,0xcb,0xe3,0x41,0x55,0xc2,0x8a,0xc2,0x78,0x17,0x11,0x42,0xe6,0x1c,0xe5,0x42,0x60,0x6f,0xfd,0xc1,0xe9,0x66,0xa4,0x41,0x1e,0xb5,0x33,0xc1,0x24,0xc3,0x6,0xc2,0xe1,0x30,0x83,0x41,0x18,0x3f,0xbe,0x40,0x98,0xfd,0xa2,0xc1,0xf5,0xc4,0x8b,0xc1,0xa3,0x15,0xdf,0x41,0x78,0xb5,0x2a,0xc1,0x96,0xb1,0xb6,0xc1,0x44,0xc,0xbe,0xc1,0x53,0xc0,0x71,0x42,0x23,0x1e,0x1a,0xc2,0xc3,0xe6,0x9f,0x42,0x87,0xba,0x6f,0x41,0x13,0xf2,0xc5,0x40,0x63,0x47,0xa4,0x41,0x99,0x8a,0x5f,0xc2,0x20,0xf8,0x9b,0x42,0x3c,0xcb,0x8d,0xc0,0xb3,0x44,0x9,0xc2,0x56,0xa6,0x94,0xc0,0x18,0x11,0xb9,0x42,0x82,0x60,0xf1,0x41,0x66,0xf6,0x85,0x42,0x62,0xbe,0x20,0x42,0x4e,0x84,0x2,0x42,0x2c,0x70,0xb4,0x40,0xcc,0x5b,0x32,0x42,0x73,0x7c,0xe3,0x41,0xed,0x28,0x63,0x42,0x69,0x38,0xfe,0xc1,0xaf,0x2a,0x89,0x41,0xbe,0xa7,0x15,0x43,0x94,0x81,0x12,0xc1,0x50,0xba,0x68,0x41,0xfe,0xc9,0x5f,0xbf,0xfe,0x2b,0x90,0xc1,0x26,0x9,0x72,0xc0,0x4e,0x56,0x82,0xc2,0x13,0xdc,0xf0,0xc1,0x0,0x4e,0x8f,0xbe,0xcb,0x57,0x98,0xc1,0x90,0xc,0xe3,0x40,0x7c,0xdb,0x9c,0x41,0xe4,0x5c,0x4e,0x42,0x1c,0x13,0x78,0xc2,0x96,0xa1,0x9a,0xc1,0x58,0x59,0x50,0xc1,0x79,0x77,0x4,0xc2,0x59,0x34,0xda,0x42,0xe2,0x98,0x7d,0xc1,0x18,0x15,0xf,0xc2,0xf2,0xc7,0xbb,0xc1,0xff,0x37,0x40,0xc2,0x47,0x13,0x9f,0xc2,0x8f,0xe6,0x7b,0x42,0xb9,0xc2,0xe4,0x41,0xbe,0xd1,0x88,0xc2,0x1f,0x56,0xf8,0x41,0x0,0xc2,0x47,0xc2,0x2c,0xff,0x4d,0x41,0x43,0x9e,0x79,0x41,0xec,0x78,0x8c,0x3e,0x3e,0xde,0xc6,0x40,0x47,0x57,0xc4,0x41,0x12,0xc9,0x67,0x42,0xee,0x7d,0x64,0x40,0x2,0x90,0xd5,0x41,0xdd,0x22,0xfb,0x41,0x8,0xeb,0x44,0x41,0xbe,0xee,0x19,0x42,0x83,0x6e,0x81,0x42,0xbd,0xcb,0x98,0xc1,0xec,0xe3,0x8f,0x42,0xc9,0x78,0xad,0x40,0x8a,0x9b,0x9c,0x3f,0xbc,0xa9,0x1c,0x42,0x28,0x7,0x92,0xc1,0x6,0x1b,0x5d,0x41,0x89,0xf0,0x51,0x42,0xfd,0x8e,0x1,0xc2,0x74,0x75,0x1,0x40,0xce,0x3c,0xa4,0x42,0x6,0xa7,0x46,0xc2,0xde,0xdf,0x46,0x42,0xfd,0x60,0x2d,0xc2,0x28,0x49,0x23,0xc2,0xac,0x11,0x7e,0xc2,0x5a,0x11,0xb3,0x41,0x2e,0x98,0x87,0x42,0xcc,0xda,0x56,0x41,0xed,0x9c,0x7f,0xc2,0x5e,0x6b,0x9c,0xc2,0x40,0xbd,0x7f,0x42,0xe0,0x68,0x82,0xc1,0x6f,0x1e,0x2c,0x41,0x2a,0x51,0x29,0xc2,0x1,0xfd,0x70,0xc1,0xcc,0xd7,0x2c,0x42,0x41,0x39,0x58,0x42,0xc6,0xcf,0x42,0xc1,0x27,0x5b,0x84,0xc1,0xd8,0x2c,0x49,0x41,0xfe,0xd9,0x8e,0x42,0xd3,0xb6,0xaf,0xc0,0xd0,0x76,0x40,0xc1,0xb7,0x12,0x49,0xc2,0x9c,0xaf,0x90,0x42,0xf5,0x93,0x4d,0xc2,0xef,0x70,0xb,0x42,0x44,0xb7,0xae,0xc0,0x82,0x46,0xc,0x42,0xf,0x56,0xd8,0x40,0xae,0x60,0x8c,0xc0,0xa6,0xcf,0x9b,0xc1,0x20,0xac,0x5f,0x42,0x5e,0xb7,0x99,0x41,0xeb,0xf0,0x96,0xc2,0xb0,0x58,0x33,0x42,0xc6,0x1a,0xcb,0x41,0x99,0xbd,0x33,0xc2,0xe,0x1b,0xbc,0x40,0xec,0x1d,0x88,0xc2,0xcf,0xde,0x80,0x41,0xa7,0x4c,0x94,0x41,0x6d,0x12,0x88,0x41,0x90,0x5f,0xeb,0xc0,0x3f,0xe5,0x75,0xc2,0x76,0x28,0x53,0x41,0xb7,0x10,0x89,0xc2,0x99,0x4a,0x54,0xc2,0xd9,0x86,0x1a,0x42,0xf5,0x7e,0x81,0x41,0x6d,0x6c,0xa1,0xc0,0x93,0x39,0xe8,0x40,0xae,0x27,0x13,0x42,0xd8,0x7a,0x57,0xc1,0x30,0x3d,0x9b,0x40,0xc8,0xad,0xa9,0xc1,0xa6,0x1,0x96,0x42,0xf7,0x88,0xd,0xc1,0xdd,0x8e,0x80,0xc2,0x67,0xf4,0x11,0x40,0x39,0x8c,0xdc,0x41,0x26,0x74,0x49,0xc2,0x40,0x64,0x39,0xc2,0x60,0x81,0x97,0xbe,0xe0,0x87,0x95,0x41,0x83,0x4c,0xac,0x41,0xc8,0x29,0x5f,0xc2,0x92,0xe,0x4f,0xc1,0x9,0xa2,0xa6,0xc1,0xdc,0x83,0xa2,0x3e,0x2f,0x2e,0xeb,0xc1,0xae,0x87,0xa0,0xc2,0x71,0x6c,0x7,0xc2,0xf,0xf0,0xf0,0x41,0x23,0x8d,0x1f,0x41,0xf,0xa2,0xee,0x3f,0x61,0xc6,0xb4,0x41,0x64,0x1a,0xbc,0xc1,0xf9,0x4d,0x3a,0xc2,0xac,0xaf,0x29,0xc2,0x45,0x8a,0x98,0x42,0xc0,0x42,0x7b,0x40,0xae,0xb2,0x84,0xc2,0xae,0x5a,0xd9,0x40,0x3a,0x64,0xc3,0xc1,0x55,0xee,0x23,0xc2,0x2,0xa4,0xeb,0xc1,0x7b,0xfd,0xa6,0x41,0xc8,0xd3,0xaf,0x41,0x52,0x37,0xbc,0xc1,0x97,0xe5,0x37,0xc2,0xfa,0x5a,0xc6,0x41,0x4,0xe,0xba,0x41,0xf8,0xc7,0x48,0x42,0xe,0x31,0xe8,0x41,0x9e,0xdc,0xa3,0xc1,0x42,0x59,0xbd,0xc1,0x60,0xe0,0xb2,0x40,0x71,0xdc,0x76,0x41,0x4,0x87,0x81,0xc1,0xad,0x89,0x47,0xc2,0x5b,0x35,0x85,0x41,0x70,0xf7,0x72,0xc1,0xde,0x46,0xb7,0xc1,0x26,0x38,0xd0,0xc1,0x6,0xa9,0x33,0xc2,0xaf,0xc8,0xbd,0xc0,0x9a,0xe8,0xb9,0xc1,0xe6,0xae,0xb8,0xc0,0x97,0x75,0xf9,0x42,0x3c,0x85,0x24,0x42,0x3,0x7a,0xa3,0x42,0x88,0x28,0x73,0xc1,0xf5,0x89,0x6a,0xc2,0xd8,0xb4,0x39,0x42,0x18,0x70,0x89,0x41,0x3a,0x33,0xa5,0x41,0x7b,0x53,0x31,0x42,0xe2,0xc4,0xab,0x41,0xf0,0xd4,0x77,0xc2,0x79,0xa9,0x9b,0xc0,0x4d,0xe7,0x73,0xc2,0xde,0xc8,0xbc,0x41,0x27,0x3c,0x3f,0x41,0x9f,0x1b,0x7f,0x42,0xbd,0x94,0x82,0x42,0x12,0xb8,0x20,0xc2,0xf3,0x59,0x96,0xc2,0x5c,0x4e,0x16,0x41,0x81,0x45,0xfc,0x41,0xb3,0x8a,0xb0,0xc2,0x88,0x23,0x5e,0xc1,0x0,0xd0,0x33,0x40,0xe4,0xef,0xce,0x40,0x7a,0x59,0x94,0xc2,0x27,0xc1,0xa,0xc2,0x5,0xff,0x5a,0x42,0x31,0x34,0xa3,0x41,0xd,0xc5,0xb4,0xc1,0x5,0xf0,0x2d,0x42,0xdd,0xeb,0x55,0x42,0xdb,0xf9,0x94,0x42,0x4a,0x7d,0xbd,0x40,0x42,0xfb,0xc6,0x3f,0x61,0x5c,0xcc,0x41,0x45,0xfd,0xaf,0x3f,0x1d,0x8b,0xe3,0x41,0xd1,0x99,0x91,0x40,0x35,0xef,0xc3,0x41,0x6a,0x56,0xb6,0x42,0x7c,0xee,0x51,0xc0,0xf6,0x8a,0x98,0xbf,0x9c,0xd3,0xd4,0x41,0xed,0x87,0xa,0xc2,0x6c,0x29,0x8d,0xc2,0x2e,0xe8,0x58,0xc1,0x97,0x48,0x2a,0x41,0x25,0xbf,0x92,0x40,0x7f,0x17,0xc3,0xc2,0xe7,0xb8,0x92,0xc1,0x46,0x4,0xf5,0x41,0xa8,0x3a,0x73,0xc1,0xa5,0x22,0xb4,0x41,0x5f,0xe0,0x7c,0xc2,0x83,0x3c,0xf6,0xc0,0x1f,0x18,0x2b,0xc2,0x6e,0x73,0xe5,0x41,0xe0,0x9f,0xf5,0xc1,0x13,0x62,0x5a,0xc2,0x48,0x4d,0x44,0xc2,0xd3,0x6a,0xd4,0x42,0x92,0xb9,0x9e,0x41,0xea,0xf0,0x79,0xc2,0x99,0xfc,0x93,0x42,0x41,0x2c,0x3e,0xc2,0xb2,0x45,0x26,0x41,0x8f,0xd5,0xa9,0xc0,0xaf,0xcd,0xd7,0x41,0xda,0x9a,0x7,0xc2,0x63,0xf,0xf3,0x41,0x34,0x7a,0x1e,0x41,0xc5,0xd9,0x53,0xc2,0xed,0xe0,0x4e,0x41,0x48,0xd,0xc,0xc2,0xb1,0x8f,0x4a,0x42,0x22,0x79,0xf0,0xc1,0x46,0xa,0x55,0xc2,0x2a,0x85,0x6e,0xc2,0x3c,0x6a,0x3,0x40,0x79,0xa1,0x26,0xc1,0xf2,0x4f,0x89,0xc2,0x16,0x0,0xea,0xc1,0xaf,0x91,0x87,0x42,0x38,0x1d,0x15,0x41,0x8c,0x58,0x1f,0xc2,0x6b,0x33,0xed,0x40,0x36,0xfc,0xb3,0x42,0xce,0x9f,0x82,0xc1,0xc1,0x47,0xb0,0x41,0xaf,0x44,0x9c,0x40,0x90,0xe2,0x3e,0xc1,0x31,0x62,0xac,0x41,0x9a,0x82,0x33,0x41,0xfd,0xb5,0x51,0x42,0xb4,0x6,0x55,0xc2,0x44,0xe8,0x50,0x41,0x7d,0xbe,0xde,0x40,0x6,0x8f,0x64,0xc2,0x39,0x7b,0xad,0xc0,0x2,0x6c,0x55,0x41,0xb2,0x5f,0xd0,0xc1,0x7a,0xab,0x3b,0xc1,0xab,0xb9,0xec,0x41,0x36,0x41,0xb1,0xc1,0x76,0xc2,0x76,0xc2,0x9b,0x33,0x42,0x41,0x3a,0xe5,0xa2,0x41,0xc8,0x62,0xb8,0xc1,0x66,0x38,0xbb,0xc0,0xe8,0xd2,0x4a,0x41,0xdc,0xd8,0x5d,0xc1,0xa6,0xd,0x72,0xc2,0x2a,0xb,0x51,0xc2,0x42,0x8c,0xc,0x41,0x9e,0xd5,0x9f,0xc0,0xd2,0x7b,0xa4,0xc0,0x5,0x33,0xf8,0xc0,0xc4,0x87,0xfa,0xbf,0x87,0xe6,0x75,0xc2,0xfa,0x63,0x6e,0x42,0xf2,0x8b,0x65,0xc1,0xb,0x41,0x2c,0xc1,0xda,0x48,0xb0,0xc1,0x2a,0x64,0x9,0xc2,0x6b,0x80,0x95,0xc1,0xa1,0x29,0x72,0x42,0xfb,0xca,0xad,0x41,0x54,0xc0,0x71,0x42,0x97,0xe9,0x5b,0x40,0x86,0x3c,0x82,0x42,0x5e,0x24,0x84,0x42,0xcf,0x82,0xec,0xc1,0xb4,0x8d,0x40,0x41,0x4d,0x6d,0x39,0xc1,0x6f,0x4c,0x18,0x42,0x4f,0x50,0x15,0xc2,0x39,0x1d,0xbe,0x40,0x9e,0x1,0x2,0x41,0x9d,0x23,0x7,0xc2,0x7c,0x5b,0x22,0xc2,0xc0,0x64,0x62,0xc0,0xd4,0x7f,0x1a,0x42,0xd2,0x11,0x2,0xc0,0xb7,0x7b,0xd5,0x41,0xfa,0xf6,0x6,0xc2,0xe4,0x66,0x29,0xc2,0x5d,0x4b,0xf4,0xc1,0x9c,0x4,0xe8,0xc1,0xca,0xfa,0x8a,0x42,0xe7,0x53,0xa7,0xc2,0x52,0xf4,0x4a,0xc0,0x8a,0x16,0x31,0xc0,0xc5,0xb3,0x15,0x42,0xda,0xf5,0x79,0xc2,0x73,0xc,0x5b,0xc2,0x14,0x1d,0x22,0xc2,0x4d,0x2b,0x1d,0x42,0x8b,0x9,0x56,0xc1,0xf3,0xd0,0xc0,0xc2,0x82,0x8c,0x60,0xc0,0xb5,0xcc,0xa7,0xc1,0x81,0x7e,0x71,0x42,0xd3,0x59,0x1a,0x42,0x7b,0x6,0x71,0x42,0xfc,0xd4,0xb8,0x40,0x8d,0xf9,0xab,0x41,0x40,0xd3,0x34,0x42,0x3,0x11,0x37,0xc2,0x88,0x43,0xaf,0x40,0xc2,0x9e,0x90,0xc1,0x40,0x10,0x98,0x41,0x50,0xaa,0x44,0xbf,0x53,0xc5,0x97,0xc2,0xd,0xc2,0xef,0x40,0xf6,0x7d,0x8,0x42,0xcb,0xa3,0x86,0xc2,0xe1,0x52,0x5e,0xc2,0x4e,0x59,0x9b,0xc1,0x4a,0x80,0xa1,0xc1,0x77,0x35,0xea,0xc1,0xa0,0x16,0x77,0xc0,0x70,0xf,0x7e,0x40,0xdc,0xa1,0x57,0x3f,0x7f,0x13,0x8c,0xc1,0x7,0xb1,0x60,0xc1,0x90,0xa6,0xc8,0xc1,0xd,0x89,0x0,0x42,0xe,0xe7,0x20,0xc1,0xd2,0x8c,0xab,0xc1,0xc,0x36,0x32,0x42,0x4,0xa4,0xa9,0xc1,0xc6,0xdd,0xa9,0x41,0xa7,0xd0,0x23,0x42,0xd2,0xaa,0x22,0x41,0xf2,0x4e,0x83,0xc1,0xf6,0x0,0x25,0x42,0xdf,0x88,0xad,0x42,0x18,0xb3,0x2e,0xc1,0x9e,0xb,0x91,0xc1,0xff,0x5d,0x28,0xc2,0xc8,0xb1,0x88,0x41,0x28,0x89,0x7,0x3f,0xd7,0x12,0xa8,0x41,0x6,0xf7,0x48,0xc1,0xe4,0xbc,0x89,0xc2,0xe6,0x85,0x42,0xc1,0xf0,0x1a,0x9c,0x41,0x3b,0xe4,0x3b,0x41,0xb8,0x63,0xf2,0x41,0xb5,0xb9,0x75,0x42,0x4a,0x81,0xb3,0xc2,0x44,0x9f,0x4c,0xc0,0xd8,0x88,0x93,0x42,0xdc,0xf,0x8b,0xbf,0x54,0x9,0x64,0x41,0xe7,0x34,0x0,0x42,0xda,0x70,0x9c,0x42,0x4a,0x9f,0x7f,0x42,0xf4,0x4,0x86,0x42,0x5f,0xd9,0x8b,0x41,0xb2,0x12,0x2b,0x3f,0x2d,0xf7,0xc9,0x41,0xdd,0x2f,0xb6,0xc1,0x4e,0x56,0x7d,0x42,0xc5,0x76,0x13,0xc2,0xdf,0xe1,0x1a,0x42,0x60,0x3f,0x96,0x41,0xe,0x90,0xb,0x41,0x38,0x13,0x33,0xc2,0x92,0xec,0xd3,0x41,0xe,0xf3,0xef,0x42,0x84,0xdf,0x21,0xc2,0x5a,0x93,0x89,0xc1,0x3e,0xd9,0x55,0xc2,0xf9,0x37,0x90,0xbf,0x58,0x2a,0x83,0xc1,0x1e,0x95,0x39,0xc2,0x47,0x8e,0xd9,0x41,0x96,0x3d,0x18,0x42,0x9a,0x4a,0x20,0xc2,0x67,0x79,0x56,0xc2,0xd8,0x42,0x52,0xc2,0x3c,0xe0,0xac,0xc1,0x23,0x70,0x21,0x41,0xbc,0x62,0x85,0x42,0x9b,0x10,0xbe,0xc2,0x6c,0x10,0x2b,0xc2,0x72,0x4c,0xba,0xc2,0x38,0xf6,0x18,0x41,0x1b,0xad,0x9d,0x41,0xa9,0xe7,0x89,0x41,0x93,0x5f,0x6,0x42,0x42,0x30,0x87,0x41,0x19,0x2,0x11,0x42,0x7c,0xc4,0xb1,0xc2,0xb8,0x8,0x1c,0x42,0x9b,0x55,0x22,0x41,0xa0,0xba,0x33,0xc2,0x28,0x71,0x8,0x42,0x16,0x61,0xbf,0x40,0xcc,0xfb,0xf8,0x40,0x1c,0x70,0x4,0xc1,0x6f,0x5e,0xe9,0x41,0xcc,0x29,0xee,0xc2,0xd9,0xbb,0xfe,0x41,0xa,0x9b,0xa,0xc2,0x9d,0x98,0xb3,0xc1,0xa0,0x16,0xa4,0xc2,0x1e,0xa5,0xe2,0xc1,0x66,0x9a,0x1b,0xc2,0xf0,0xf3,0x78,0xc1,0x11,0x7f,0xac,0x41,0xf2,0xd5,0xa8,0x40,0x99,0xd1,0x80,0x42,0xec,0x7d,0xf,0xc2,0x31,0x42,0x93,0xc1,0xdd,0x64,0x89,0xc2,0xd5,0xbb,0x93,0x41,0xd2,0x42,0x2f,0x42,0xdc,0x20,0x96,0xc2,0x87,0xd8,0xae,0xc0,0xb4,0x41,0xed,0x40,0xee,0x7c,0xfc,0xc1,0x53,0xc4,0x2f,0xc1,0x32,0x9,0x9c,0x42,0xad,0x8,0xa0,0x41,0x7f,0xd2,0x12,0x42,0x89,0x7d,0x44,0x3f,0xc7,0x5c,0x58,0xc2,0xaa,0x7,0x4a,0x40,0xf7,0x85,0xec,0x41,0x7f,0x43,0x1b,0x42,0x56,0xc3,0x7a,0x42,0x23,0x8d,0x9e,0xc1,0xb4,0x36,0x3c,0xc2,0xed,0x11,0x87,0xc2,0x52,0x77,0x1e,0x42,0x12,0x0,0x49,0xc1,0x78,0xa5,0x10,0x42,0xdf,0x86,0x18,0x42,0x88,0xbe,0x33,0xc2,0x7b,0x1,0x54,0xc1,0x9c,0x8e,0xf,0xc1,0xe,0xab,0x30,0xc2,0x7a,0x4,0xba,0xc1,0x56,0x89,0x8a,0x42,0x27,0x8e,0xef,0x41,0xf5,0x49,0x89,0x40,0x1b,0xc7,0xd2,0x41,0xa8,0xd,0xfd,0x41,0x85,0xc3,0x5b,0xc2,0x57,0xe,0x2d,0x42,0xc0,0xe4,0x99,0xc1,0xd5,0x53,0xd2,0x41,0x71,0x73,0x95,0xc1,0x90,0xa8,0xff,0x41,0x83,0x86,0xa9,0xc2,0xa0,0xab,0x4e,0x42,0xb4,0x8b,0x6b,0xbe,0xc1,0x6a,0xd8,0xbf,0xa2,0x22,0x6,0xc2,0x61,0xe3,0xfc,0xc0,0x48,0x64,0x50,0xc0,0x94,0x36,0x87,0x42,0xa,0x66,0x26,0x40,0xb,0xfa,0xf6,0x41,0x44,0xdc,0x95,0x42,0x50,0x8c,0xc0,0x3f,0x9c,0xd5,0x51,0x42,0x48,0xb8,0x5f,0x42,0x6a,0x44,0x6f,0x42,0x76,0x11,0x89,0x42,0x74,0xd5,0xeb,0xbf,0xcf,0x65,0x25,0x42 }); - Tensor *actual = NN_zeros(4, (size_t[]){ 1, 14, 14, 6 }, DTYPE_F32); - - cycles = read_cycles(); - NN_conv2d(actual, x, w, b, (size_t[]){1, 1}, (size_t[]){0, 0}, (size_t[]){1, 1}, 1); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(x); - NN_delete_tensor(w); - NN_delete_tensor(b); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("conv2d: "); - - // [[[[-4.08044910e+00 2.70139980e+00 3.44774842e+00] [ 8.73869658e-01 5.8898 - Tensor *x = NN_tensor(4, (size_t[]){ 1, 16, 16, 3 }, DTYPE_F32, (uint8_t[]){ 0xa,0x93,0x82,0xc0,0xbc,0xe3,0x2c,0x40,0xe9,0xa7,0x5c,0x40,0xec,0xb5,0x5f,0x3f,0x0,0x40,0x71,0x3d,0x90,0x3f,0x76,0x40,0xf0,0xcc,0x17,0x3e,0xaf,0xa1,0x9f,0xbf,0xc4,0xa,0xbd,0xbe,0x9b,0x55,0xcd,0x3f,0x91,0x37,0xa0,0x3f,0xc0,0x1e,0x8a,0xbe,0xcf,0x6,0xca,0x3f,0x82,0x5d,0xac,0x3f,0x4,0x9c,0x81,0xc0,0x1e,0x79,0x9f,0x3f,0x46,0xca,0x43,0x40,0xf2,0xca,0x12,0x3f,0x24,0xab,0xe9,0xbe,0x4a,0x21,0x75,0x40,0xfb,0xc9,0x8b,0xc0,0x48,0xf,0x12,0xc0,0x14,0xa3,0x10,0xc0,0x94,0x3f,0x8a,0x40,0x67,0xc1,0x9a,0xc0,0x1c,0xe5,0xfd,0x3e,0x81,0xfd,0x9a,0xc0,0x68,0x5d,0x28,0xbe,0x4c,0x8d,0xee,0x3f,0xba,0xaa,0x95,0xbf,0x52,0x51,0x9b,0x40,0x0,0x64,0x82,0x3c,0x48,0x25,0x23,0xc0,0xbb,0x8,0xa5,0x3f,0xa4,0x6b,0x26,0x40,0x0,0xc1,0x22,0xbc,0x36,0xe0,0x88,0x40,0x7c,0x88,0x4a,0xc0,0x7f,0x89,0x8,0x40,0x1a,0xb5,0x35,0x40,0xf2,0xf0,0x1e,0x40,0x0,0x64,0xf0,0xba,0x73,0xb2,0xb6,0x3f,0x2b,0xb,0x7b,0xc0,0x30,0x1f,0x7b,0xc0,0xec,0x1e,0x9f,0xbe,0x24,0x6d,0x20,0xbf,0xb4,0x9b,0x6d,0x40,0x4e,0x5c,0x68,0x40,0xaa,0xf9,0x58,0x40,0x10,0x92,0x12,0xc0,0x3c,0x36,0x7b,0xc0,0x6f,0x14,0x96,0xc0,0x78,0x9f,0xe7,0x3f,0x54,0x2c,0x90,0xc0,0xab,0xb8,0x9f,0xc0,0xbe,0xb8,0x21,0xc0,0xb0,0x16,0x87,0xc0,0x58,0x37,0xfc,0xbf,0x74,0x74,0x49,0xc0,0xce,0x2b,0x24,0xc0,0xac,0x1d,0x98,0x40,0x3c,0x36,0x71,0xbf,0xe6,0xb9,0x84,0x40,0x20,0x33,0xe3,0x3d,0x94,0x99,0x24,0xbf,0x6f,0x61,0xbb,0xbf,0xa4,0xbe,0x64,0xc0,0x3a,0x8d,0x80,0xc0,0x32,0x93,0x5d,0x40,0xde,0x38,0xc5,0xbf,0x2a,0xff,0x9b,0xc0,0x34,0xd6,0x92,0x40,0x90,0xf2,0xbd,0x3d,0xce,0x20,0x56,0xc0,0x82,0x89,0x7b,0xc0,0x99,0x5d,0x86,0xc0,0xfc,0x4b,0x8c,0xc0,0x94,0xc9,0x90,0x40,0x50,0xa3,0x5c,0x40,0xf4,0x61,0xd1,0x3e,0x28,0x5d,0x88,0xc0,0xa3,0x64,0xa7,0xbf,0x9c,0x4d,0x96,0xc0,0x8f,0x8e,0xdc,0x3f,0xbc,0xee,0xa9,0xbf,0xdc,0xf4,0x88,0xbf,0x4b,0xb0,0xc7,0xbf,0x50,0x8,0x16,0x40,0x6e,0x36,0x2d,0x40,0xb9,0x32,0x8c,0x3f,0xb6,0x49,0x20,0xbf,0x50,0xfd,0xfc,0xbe,0x40,0xee,0xb2,0xbd,0xe2,0x4a,0x6e,0xc0,0x89,0x1f,0x9c,0x40,0xaa,0x2,0xa,0xc0,0x9c,0x2d,0x3a,0x40,0x2e,0x64,0x33,0xc0,0x40,0x7c,0x9,0x3d,0xea,0x16,0xdb,0x3f,0xac,0xe8,0x92,0xc0,0xb0,0xc8,0x12,0x40,0x3c,0xf1,0x74,0xc0,0x86,0x9e,0x32,0x3f,0xb6,0xd2,0x7d,0xbf,0x72,0x6e,0x37,0x40,0x11,0x81,0x9b,0x40,0xed,0x3b,0x90,0x3f,0x68,0x32,0x12,0xbe,0xd6,0x8a,0x1e,0xc0,0x78,0x9d,0xee,0x3f,0xf1,0x5,0x1a,0xc0,0x72,0x2e,0x4,0x40,0x63,0xb2,0xa,0xc0,0x7e,0xf,0x59,0x40,0x96,0x73,0x75,0x40,0x1c,0x38,0x44,0x40,0x20,0x26,0x4d,0x3d,0xe2,0x65,0x14,0x40,0x16,0xcc,0x91,0xc0,0x75,0xc1,0x81,0x40,0xa3,0x47,0xa6,0xbf,0xf2,0x50,0xe9,0x3f,0xde,0xc0,0x58,0xbf,0x55,0xe7,0xd6,0xbf,0x14,0x46,0x16,0xc0,0x46,0x68,0x4e,0x40,0x84,0x18,0x2e,0xc0,0xe2,0xb8,0x61,0xbf,0x8d,0x6c,0x21,0x40,0xd2,0x1,0x1,0x3f,0xb8,0x9f,0x86,0xc0,0x97,0x19,0x9f,0xc0,0x4c,0x93,0x1b,0xc0,0x15,0x92,0x93,0x40,0x3c,0x87,0x63,0xc0,0x1,0x5d,0x30,0x40,0x9e,0xf,0x65,0x40,0xa0,0xa3,0x4,0xc0,0x6d,0x50,0xd,0xc0,0x38,0x38,0x66,0xc0,0x12,0xa8,0x47,0x3f,0x8e,0xf0,0x32,0xbf,0x18,0xc1,0x78,0x3e,0xac,0xcd,0xa,0x40,0x48,0x59,0x6,0x40,0x9,0xeb,0xc9,0xbf,0xdc,0xd2,0xaf,0x3e,0x9c,0x7,0x98,0x3f,0xa0,0xf8,0xd9,0x3d,0xe,0x12,0x80,0x3f,0xf4,0xa0,0x1,0xc0,0xd5,0x25,0x83,0x40,0x3c,0x4a,0x3,0xbf,0x1e,0xc5,0x23,0xbf,0x1e,0x9a,0x8f,0xc0,0x34,0xf5,0x67,0xc0,0x30,0x44,0x1f,0x3e,0xd6,0xf4,0x45,0xbf,0xba,0xe3,0x20,0xc0,0x13,0x81,0x27,0x40,0x90,0x2f,0xe5,0xbe,0x96,0x14,0xe1,0x3f,0x3a,0xc3,0x86,0x40,0x78,0x1e,0x13,0xc0,0xc0,0x7e,0x1d,0xc0,0x2f,0x9b,0x80,0xbf,0x90,0xc8,0xd8,0xbe,0x52,0xd,0x20,0xc0,0x64,0xa7,0x99,0xbf,0x28,0x94,0x13,0xbe,0x20,0x8a,0xf,0x40,0xac,0x6,0x94,0x40,0x7b,0xf6,0x6c,0x40,0x0,0x78,0x7,0x3f,0xac,0x52,0xa1,0xbe,0x11,0xf0,0xa3,0x3f,0xc8,0x1,0x51,0xbe,0xac,0xfb,0x27,0xbf,0xba,0x13,0xdc,0x3f,0x10,0x2d,0x82,0xc0,0xe3,0x11,0x88,0xc0,0xc0,0xe9,0xa5,0x3c,0x97,0xfb,0xc1,0xbf,0x62,0x47,0x1e,0xc0,0x6a,0xf3,0x94,0xc0,0xec,0x5a,0x56,0x40,0x38,0x0,0x4c,0xbe,0x96,0xed,0x2b,0xc0,0xa1,0x59,0x2,0xc0,0xb,0x42,0xa8,0x3f,0x3e,0x13,0x68,0xc0,0x2c,0x6b,0xa4,0x3e,0x60,0x8e,0x7c,0xbd,0x2e,0x6,0xda,0x3f,0xa1,0xe2,0xfd,0x3f,0xd6,0x14,0x51,0xc0,0x4e,0x2c,0xa,0x40,0x44,0xa3,0x71,0x40,0xb8,0xcf,0xa4,0x3e,0x80,0x6,0x23,0x40,0xc6,0x4b,0xf2,0xbf,0xd6,0x3e,0x7e,0x3f,0xca,0x1,0xbb,0x3f,0x64,0xcd,0x13,0xc0,0xd6,0x92,0x45,0x40,0x92,0x47,0x97,0xc0,0x38,0x68,0xf0,0xbf,0xb9,0x48,0x3c,0xc0,0xc0,0xf6,0x3d,0xc0,0x8a,0xe7,0x41,0xc0,0x3b,0xc4,0x96,0xc0,0x64,0xab,0x5b,0x3f,0x96,0x34,0x7d,0xbf,0xc2,0xb8,0x86,0xc0,0x0,0xc4,0x6,0xbb,0x64,0x39,0x55,0xbf,0x2e,0x2,0x4,0x40,0xcc,0xa6,0x7a,0xc0,0x58,0xc,0xb4,0xbf,0xe8,0xbb,0x83,0x3f,0xce,0xa4,0x7,0x40,0xe4,0xa9,0xc1,0x3e,0x5a,0x70,0xad,0x3f,0x2,0xf1,0x9f,0x40,0x27,0xb4,0xdd,0xbf,0x28,0x18,0x5a,0x40,0x77,0xd2,0x89,0x40,0xe2,0x89,0x8d,0xc0,0xf4,0xcf,0x9a,0x3f,0x89,0x43,0x35,0x40,0xde,0xa9,0x47,0xbf,0x84,0x9b,0x30,0x40,0xa8,0x26,0x2e,0x3e,0x51,0x9c,0x73,0x40,0x70,0x7b,0xdc,0x3d,0x6,0xdf,0x4c,0xc0,0x34,0x5,0x73,0x40,0xb8,0x56,0xbe,0x3f,0x84,0x1f,0x88,0x40,0x30,0xe0,0x9e,0x3f,0x1c,0xec,0x29,0x40,0xe,0x86,0x47,0x40,0xf4,0x88,0x57,0x3f,0x35,0xc7,0x94,0xbf,0x9d,0x2e,0x84,0x3f,0xb8,0x1e,0x5f,0xc0,0x70,0xea,0x2e,0x3e,0x8c,0xb4,0xcd,0xbf,0xb0,0xda,0xa1,0x3e,0xde,0x5c,0x7d,0xc0,0xfb,0x86,0x43,0x40,0x36,0x9e,0x93,0xc0,0x88,0x9,0x9,0x40,0x44,0xbd,0x52,0x40,0xac,0xa3,0x92,0xc0,0xc6,0x8f,0x90,0x40,0x4,0xe2,0x6d,0xc0,0x5a,0x59,0x7b,0xbf,0xc6,0xd2,0x25,0x40,0x1f,0xf2,0xca,0xbf,0xf0,0x96,0x8e,0x40,0x3a,0x2b,0xd,0xc0,0x36,0x5f,0x2b,0xbf,0xe4,0x2d,0x51,0xc0,0x16,0x75,0x14,0xc0,0xa6,0x22,0x9c,0x40,0xb,0xa9,0x70,0x40,0x88,0x7e,0xbc,0x3e,0x50,0x7d,0xd2,0x3e,0x76,0xc6,0x87,0xc0,0x50,0x95,0x71,0x40,0x8e,0xe8,0x3f,0xbf,0x54,0x78,0x5,0xc0,0xc8,0xa9,0x7e,0xc0,0x8b,0x8c,0x83,0x40,0x70,0xbd,0x17,0x40,0xc8,0xbe,0x40,0x40,0xc4,0x89,0x4,0x3f,0x7c,0x24,0x59,0xc0,0x42,0x15,0x3,0x40,0xe,0x9f,0x13,0x3f,0x91,0xc4,0xd6,0x3f,0x8a,0x5d,0x9f,0xbf,0x4c,0x3,0x17,0xc0,0x5e,0x59,0x83,0x40,0xe5,0x89,0xd6,0x3f,0xfd,0xdf,0x1,0xc0,0xf8,0x9a,0xe4,0x3e,0xc9,0x1e,0x8b,0xbf,0x38,0xec,0xda,0xbe,0x67,0x71,0x33,0x40,0xa2,0xb1,0x7e,0xc0,0x28,0xce,0x90,0x40,0xbd,0x60,0x57,0x40,0x0,0xc8,0x8c,0x3b,0x11,0xe4,0x2,0xc0,0x96,0x7d,0x82,0x3f,0x89,0xcf,0x53,0xc0,0x34,0xdb,0x4f,0x40,0x44,0x3c,0x29,0xc0,0x5e,0x93,0x74,0x3f,0xb7,0x69,0x9d,0xc0,0x6a,0x3d,0x19,0x40,0x9e,0x9f,0x58,0x40,0x8a,0x2f,0x70,0x40,0xd4,0xf5,0xd0,0x3e,0xa2,0xf0,0x3c,0x40,0x11,0x37,0xda,0x3f,0xde,0x98,0x56,0x40,0x18,0x94,0x34,0x40,0xe,0xfd,0x8b,0xc0,0x56,0xf0,0x6,0x3f,0xe1,0x2f,0xda,0xbf,0x7c,0xcc,0x18,0xc0,0xe1,0xfc,0x5f,0x40,0xfc,0x32,0x37,0xbf,0xda,0xd6,0x46,0x3f,0x3d,0x7b,0x49,0x40,0x2e,0x66,0x57,0x40,0x6b,0xc6,0x2a,0x40,0x56,0x79,0x5f,0xbf,0x87,0x9f,0x8e,0xc0,0xfa,0x98,0x99,0xc0,0xbf,0x2b,0xc9,0x3f,0x20,0xa,0x73,0xbd,0xa,0x2e,0x4a,0xc0,0x26,0xc1,0xb,0x40,0xfb,0x3a,0x91,0x40,0x78,0x14,0x39,0x40,0x5a,0x91,0x34,0xbf,0xc6,0xf5,0x2c,0x3f,0xdc,0x1d,0x4c,0xc0,0xa8,0x9,0x17,0x40,0xcc,0xfb,0x77,0xc0,0xf2,0xec,0x5c,0x40,0xe5,0x28,0x12,0xc0,0x18,0xd5,0xfd,0xbf,0x92,0x4,0x86,0xc0,0xe7,0xc3,0x9a,0xbf,0x6c,0xa0,0xf7,0xbe,0x76,0x7f,0x13,0xc0,0xa6,0xca,0x63,0x40,0x33,0xa6,0x37,0x40,0xd0,0x35,0x8d,0xc0,0x16,0xa,0x0,0xbf,0x28,0x2d,0xd7,0x3f,0x18,0x5e,0x9a,0x40,0x3b,0x8,0x99,0xbf,0x25,0x75,0x44,0x40,0x28,0x6b,0x8f,0xbe,0xb0,0x77,0xf5,0xbf,0xd8,0xd3,0x43,0x40,0xe,0x93,0x8e,0xc0,0x4e,0xc,0x86,0x40,0x7,0xd0,0x9f,0x40,0x4e,0xbc,0xae,0xbf,0x64,0xd0,0xfc,0x3f,0x7d,0x8d,0x9f,0x40,0x46,0xf3,0xc0,0x3f,0x58,0x48,0xfa,0x3f,0x4,0x1,0xeb,0x3f,0x8e,0xeb,0x2,0xc0,0x11,0x39,0x9c,0x3f,0x34,0x8d,0x2a,0xc0,0x52,0xa0,0x88,0x40,0xe3,0x1f,0x9,0xc0,0xa6,0x4e,0x92,0x3f,0xf5,0x64,0xb9,0xbf,0x0,0x8,0x20,0x40,0x0,0xca,0xa8,0x3d,0xfa,0xf3,0x2f,0x40,0x23,0x4d,0xad,0xbf,0x9c,0xc7,0x3b,0xc0,0x1e,0x5f,0xf5,0x3f,0xa,0x17,0x34,0xc0,0x6a,0x5d,0x83,0xc0,0x45,0x45,0xf7,0x3f,0x44,0x75,0x40,0xc0,0x4d,0x8f,0xf0,0xbf,0x14,0xce,0x9f,0xbf,0x78,0xc7,0xb5,0x3e,0x38,0xa8,0xdd,0xbf,0x54,0x56,0xe6,0xbf,0x4c,0xdb,0xa0,0xbf,0xde,0x40,0x60,0x40,0x2f,0xa2,0xbf,0x3f,0x65,0xf,0x1a,0xc0,0x94,0x31,0x5d,0xc0,0x60,0x43,0xed,0x3d,0xa2,0x8,0xcd,0x3f,0x40,0x48,0xd6,0xbd,0x2d,0x53,0x3b,0x40,0xe0,0x93,0x86,0x40,0x5,0x94,0xbb,0x3f,0x24,0x12,0xd3,0x3f,0x0,0xa7,0x39,0x40,0x3e,0x40,0xdb,0xbf,0x60,0xc,0x63,0x3f,0x86,0x5b,0x81,0x40,0x8c,0x3c,0x19,0xc0,0x18,0x3e,0xc7,0x3e,0xbf,0x36,0xfa,0xbf,0x3c,0xe,0x76,0xc0,0xa8,0x7e,0x29,0x40,0x86,0xb2,0x7f,0x40,0x16,0xe0,0x2c,0xc0,0x19,0xdd,0xef,0x3f,0x82,0x40,0xc4,0x3f,0xbb,0xe5,0xf9,0x3f,0x4,0x26,0x30,0x40,0xe6,0x5f,0x95,0x40,0x50,0xe1,0x72,0x40,0x6d,0x0,0x8c,0xc0,0xbf,0xe5,0xfa,0xbf,0xf0,0xf3,0x29,0x40,0xc8,0xad,0x36,0xc0,0x30,0x56,0x7b,0x3f,0x6f,0x2f,0x9,0xc0,0xaa,0x38,0x7e,0x3f,0x17,0x24,0x1c,0x40,0xdb,0x28,0xc9,0x3f,0x9e,0x75,0x68,0x40,0x68,0x7,0x1a,0xbf,0x0,0xb8,0x2d,0x40,0xa3,0xe7,0xce,0x3f,0x7e,0xb2,0xc9,0xbf,0x56,0x1,0x62,0xc0,0x75,0x61,0x92,0x40,0x29,0xd1,0xbe,0xbf,0x36,0x8,0x71,0x40,0x2b,0xb5,0x49,0x40,0x78,0x2c,0x4e,0xbe,0x4d,0x29,0x84,0xc0,0x74,0x17,0xce,0x3e,0xcc,0xb1,0x1a,0xc0,0xa2,0x89,0xa6,0x3f,0x79,0x64,0xfe,0xbf,0xf,0xa4,0x76,0x40,0x97,0x5b,0x90,0xc0,0x77,0x4a,0xac,0xbf,0xa6,0xda,0x49,0x3f,0x60,0x37,0xf4,0x3e,0x20,0x72,0x83,0x40,0x99,0x37,0xca,0xbf,0x4,0x71,0x7f,0xc0,0xdc,0xdd,0x53,0x40,0xd1,0xd5,0xb2,0x3f,0x3a,0xcc,0x52,0x40,0xce,0x64,0x3d,0xc0,0x58,0xf3,0x3b,0xc0,0x56,0x43,0x1,0xc0,0x60,0x2,0xb6,0x3e,0xb1,0xde,0xd8,0x3f,0xb6,0xe3,0x37,0xc0,0xd0,0x6,0xf1,0xbe,0x1a,0x3a,0x5d,0xbf,0x67,0xfd,0x91,0x40,0x53,0xcf,0xe6,0xbf,0x20,0xd,0x9b,0x40,0x1,0x44,0x44,0xc0,0x10,0xdc,0x3,0xc0,0x8e,0xaf,0x70,0xc0,0x7d,0xbe,0x6b,0x40,0xa1,0xe,0x5c,0xc0,0x68,0x75,0x4,0x40,0x14,0x2d,0xeb,0xbf,0x6,0x71,0x9f,0x40,0x72,0x8d,0x34,0x3f,0x5a,0xf2,0x8a,0xc0,0xec,0x4a,0x5c,0x3f,0x1a,0x9f,0x1b,0x3f,0xda,0xc0,0x9a,0xc0,0x27,0x71,0x80,0x3f,0xc4,0xa7,0x98,0x40,0x42,0x2d,0xb8,0x3f,0xc0,0xd3,0xd9,0xbc,0x65,0xac,0x84,0xbf,0xde,0x12,0xaa,0x3f,0xa2,0x90,0xe,0xc0,0xfe,0x8f,0x9d,0x40,0x35,0x50,0x8a,0x40,0x4e,0x7e,0x15,0x40,0xe5,0x62,0xee,0xbf,0x97,0x3b,0x96,0xc0,0x1f,0x37,0x38,0xc0,0x31,0x91,0x9b,0x40,0x4e,0xdc,0x92,0xc0,0x22,0xc5,0x98,0xc0,0x38,0x82,0xb8,0xbe,0xbe,0x9d,0xcb,0x3f,0x2b,0x3f,0x9f,0xc0,0x26,0x8c,0x94,0xc0,0xc0,0xb0,0xde,0x3c,0x85,0xad,0xd6,0xbf,0x6,0xf0,0x5e,0x40,0x41,0xc0,0xb7,0x3f,0x34,0xe2,0x8a,0xc0,0xa0,0x35,0x90,0xc0,0xb4,0xc2,0x5b,0x40,0x92,0xf8,0x62,0xbf,0x7e,0xfc,0xb,0xc0,0x77,0x96,0xc9,0x3f,0xa0,0x90,0x7b,0xbf,0x7,0xa,0x19,0x40,0x34,0x4c,0xa2,0x3f,0x33,0x8d,0xa,0xc0,0x2,0x3d,0x80,0xc0,0xc0,0x3a,0x2d,0x40,0x6b,0x42,0x40,0xc0,0xbc,0x92,0xd,0xbf,0x20,0x3,0x2f,0x3f,0xba,0x3a,0x3a,0xc0,0xd6,0x4f,0x2e,0x40,0x84,0x15,0x61,0xc0,0x28,0x30,0x9d,0x3f,0xaa,0xe5,0x8,0x3f,0xb0,0xd2,0xea,0x3f,0xd9,0x6,0x9d,0xc0,0x30,0xe1,0x93,0x3e,0x7e,0x0,0x1c,0x40,0x95,0xde,0x4c,0xc0,0x67,0x5e,0x9e,0x3f,0x40,0x7e,0xa0,0x3c,0x6a,0xbc,0x87,0x40,0x99,0x84,0x87,0xbf,0xc0,0xea,0xb,0x3d,0x12,0x2e,0xb,0xc0,0xd9,0xba,0x9d,0xbf,0xa2,0x37,0xb7,0x3f,0xaa,0x4f,0x9a,0xc0,0x1e,0xc1,0x72,0x40,0xc2,0x1c,0x66,0x40,0xc4,0x84,0x7,0x40,0x19,0x8d,0x6f,0x40,0x31,0x39,0xc7,0xbf,0xb1,0xc6,0x91,0x3f,0x40,0x3d,0x82,0x3e,0x3c,0x47,0x5d,0xc0,0x94,0xb,0xf6,0xbf,0xe2,0x34,0xe3,0xbf,0x0,0x3e,0x9e,0xbf,0xf7,0x11,0x8e,0xc0,0x82,0xd,0x61,0xc0,0xc4,0x1a,0xf3,0xbe,0xb2,0xb7,0x42,0xbf,0x4a,0x3d,0x91,0xc0,0x44,0xbf,0x88,0x3f,0xfe,0x3c,0x2e,0x40,0xd,0x40,0x85,0x40,0x17,0xa8,0x86,0x40,0xec,0x9a,0x5f,0xc0,0xcb,0x1b,0xcd,0xbf,0x99,0xce,0x17,0xc0,0xf6,0xc3,0x6a,0x3f,0xe8,0x7f,0xab,0x3f,0x2b,0x64,0x8e,0x3f,0x9f,0xff,0x3a,0x40,0x29,0xd3,0x28,0x40,0x4e,0xc2,0x2b,0xc0,0x9a,0xac,0x5b,0x40,0xaa,0xdc,0x57,0x40,0x8e,0x63,0x29,0x3f,0x30,0x34,0x8b,0xc0,0xa0,0x43,0x44,0xc0,0x4d,0x5a,0xb2,0x3f,0x68,0x46,0xdd,0x3f,0x28,0x31,0x95,0x40,0x6b,0xdd,0x22,0x40,0xbc,0xf6,0xe7,0x3f,0xb0,0xa0,0x2e,0xbe,0xc8,0x32,0x5a,0x40,0x78,0xf3,0xe8,0xbf,0x28,0x4b,0x2,0x40,0x74,0x69,0x18,0xc0,0x0,0x27,0x3f,0xbd,0x4a,0x1e,0x3d,0x40,0x8,0xd5,0x12,0x40,0x77,0x9e,0x8f,0xbf,0x20,0xa9,0x81,0xbd,0x84,0xa4,0x31,0xc0,0x3a,0x39,0x14,0x40,0x74,0x52,0x57,0x40,0x62,0x4d,0xdc,0x3f,0x73,0xd3,0x9a,0xc0,0xb4,0x12,0x65,0xc0,0xd4,0x39,0x56,0x40,0xac,0x46,0x37,0xbf,0x6f,0x85,0x44,0x40,0xcf,0xdf,0x6b,0x40,0x48,0x79,0xbb,0xbf,0x42,0xc0,0x3b,0xc0,0xeb,0x86,0x96,0xc0,0xdb,0xcf,0xf4,0x3f,0x78,0x1f,0x24,0x40,0x8e,0xe8,0x5d,0xbf,0x0,0x55,0x9b,0xc0,0x87,0x1d,0x4e,0xc0,0x2c,0xef,0x89,0xbe,0x8e,0xc,0x12,0x40,0xec,0x73,0xd6,0xbf,0x12,0x94,0x4e,0xc0,0xaa,0xc6,0x5e,0xc0,0x1f,0x28,0x8f,0x40,0x32,0xc2,0xe7,0x3f,0x1c,0xe8,0x81,0xc0,0x8e,0x9f,0x45,0xc0,0xbd,0xd2,0x87,0xc0,0x60,0x31,0x39,0x3f,0xe0,0xf0,0x1,0xc0,0x40,0xa8,0x8a,0xbc,0x66,0x7e,0x4a,0xbf,0x1,0xe,0x8c,0xc0,0xe9,0xfa,0x8e,0xc0,0x80,0x33,0x78,0xc0,0xf4,0x4,0x6,0xc0,0xa0,0x15,0x47,0x3f,0x14,0x7d,0x16,0xc0,0x50,0x80,0x36,0xbe,0x8c,0x52,0x19,0xbf,0x8e,0x53,0x92,0x40,0xdd,0xe0,0x11,0xc0,0x4d,0x53,0x96,0x40,0xe3,0xa8,0x75,0xc0,0x5b,0x7e,0x85,0xc0,0xba,0x1f,0xd0,0x3f,0xa,0x3d,0x3a,0xc0,0xc0,0x22,0x24,0x40,0x6,0xa,0x31,0xc0,0x1c,0xfd,0x7b,0x40,0x3e,0xed,0x9a,0x40,0xdc,0xe3,0xa3,0x3e,0xdc,0xc7,0x88,0x3f,0xd6,0x2b,0x95,0x40,0x84,0xb3,0x3d,0x40,0x96,0xad,0x8b,0xc0,0x80,0xe5,0x23,0xbe,0xac,0x6d,0x90,0xc0,0x99,0x71,0x74,0x40,0xce,0x73,0x6a,0xbf,0xa0,0xc1,0xe,0xbd,0xca,0x9a,0x44,0xc0,0x58,0x0,0x2e,0xc0,0x7c,0x1e,0x26,0x3f,0xec,0x2,0x84,0x40,0x53,0xd9,0x20,0xc0,0x58,0xe7,0xf1,0x3e,0x44,0xd5,0x90,0x40,0xe7,0x64,0x8f,0x40,0x5c,0x3f,0x7a,0xbf,0x3b,0xf6,0x95,0x40,0x69,0x11,0xe9,0x3f,0xd9,0xb8,0x91,0x40,0x98,0xe8,0x17,0x3e,0x64,0x99,0x87,0xc0,0xe4,0x35,0xae,0xbf,0x9b,0xf4,0xbf,0x3f,0xd0,0xa5,0x2a,0x40,0xae,0x64,0x9f,0xc0,0x70,0xe9,0x78,0x40,0x39,0x88,0x8f,0xc0,0x9d,0x7e,0x3b,0x40,0xd8,0xdd,0x9d,0x40,0xc3,0xb7,0x9d,0x3f,0x7a,0x93,0x71,0xbf,0x98,0x31,0x30,0x40,0x1b,0xf4,0xbd,0xbf,0xd2,0x8,0x6d,0xc0,0x9e,0x19,0x63,0xc0,0x4e,0x75,0x16,0x40,0x47,0x64,0x74,0x40,0xb0,0x52,0x4f,0x3e,0x68,0x22,0x9b,0xc0,0x9f,0x37,0x9d,0xc0,0x4a,0x84,0x90,0xbf,0xfe,0xbd,0x2c,0x40,0x18,0x3f,0x55,0xc0,0x90,0x81,0xac,0x3f,0x5,0xe7,0x2e,0xc0,0xa8,0x2d,0x82,0x40,0x2c,0xb3,0xa7,0xbf,0x1f,0x60,0x85,0xbf,0x37,0x55,0x8c,0xc0,0x88,0x4f,0x8f,0xc0,0x58,0x4,0xad,0x3e,0xf8,0xf6,0x4e,0x3f,0xb4,0xe2,0x2c,0x40,0x9e,0xe8,0x8b,0xc0,0x4a,0x48,0x60,0x3f,0x7c,0xe8,0x38,0xbf,0xed,0xb5,0x3b,0x40,0xb1,0x80,0x11,0xc0,0x58,0xac,0xbe,0x3f,0x45,0xf3,0x0,0x40,0x81,0xbf,0x20,0x40,0x5a,0x83,0xdb,0xbf,0x7d,0xf5,0xcd,0x3f,0x7e,0xdb,0x7a,0xbf,0xbb,0x56,0xac,0x3f,0xdc,0xc4,0x44,0xc0,0x65,0x46,0x7e,0xc0,0xb9,0xe0,0x82,0xc0,0x24,0x29,0x49,0xc0,0xd0,0x6e,0x7,0xc0,0xd2,0x87,0x3e,0x3f,0xe9,0xfd,0x8b,0xbf,0x14,0x2b,0x36,0xc0,0x20,0xb,0x2c,0x3d,0x23,0x1c,0xca,0xbf,0xfa,0x41,0x45,0x40,0xe1,0xc6,0x83,0xc0,0xc4,0x3a,0xec,0xbf,0x7e,0xa4,0x4d,0xc0,0xbc,0xf0,0x1d,0x3f,0xac,0xa9,0x8b,0x3e,0x3c,0x44,0x93,0xbe,0x5b,0xc0,0x9e,0x40,0x4e,0x26,0xf4,0xbf,0x30,0xf9,0x37,0xbf,0x42,0x59,0xa5,0x3f,0xb4,0x89,0x85,0x40,0x6e,0x8d,0x72,0x40,0xac,0x39,0x12,0x3f,0xa,0x21,0xf2,0xbf,0x79,0x40,0xd2,0x3f,0xdf,0x56,0x49,0x40,0x0,0x89,0xda,0xbd,0xd6,0xb0,0x2f,0x40,0x88,0xf2,0x82,0x40,0x28,0x72,0x2b,0xc0,0x22,0x7d,0x8d,0xbf,0xeb,0xc,0x90,0xc0,0x5,0xea,0x92,0x3f,0x96,0xf,0x64,0x40,0x8a,0x90,0x78,0xbf,0x8a,0x3f,0x4c,0x3f,0x71,0x80,0xcc,0x3f,0x70,0x69,0xda,0xbd,0xf3,0xc7,0x78,0x40,0x0,0x86,0x3a,0x3f,0x74,0x45,0x9d,0xc0,0x33,0x20,0x84,0xc0,0xc0,0x85,0x9e,0xc0,0x20,0x7,0x53,0x3e,0x52,0xfb,0x2c,0x40,0xfa,0xde,0x28,0xbf,0xaa,0xdb,0x8f,0x40,0x96,0x46,0x66,0xbf,0x26,0xd9,0x82,0x3f,0x4c,0x47,0x90,0x40,0xb,0xf3,0x21,0x40,0xc8,0x57,0x23,0xbe,0x9d,0x1d,0x9a,0x40,0x4a,0x30,0x3f,0xc0,0x68,0x62,0xee,0x3f,0x82,0x17,0x4a,0x40,0x2e,0x24,0x46,0xc0,0x83,0x4b,0x96,0xc0,0x36,0xb6,0xcc,0x3f,0x10,0xcf,0xf2,0xbf,0x3e,0x7c,0x21,0xc0,0x4e,0x99,0x7e,0x3f,0x14,0x23,0x68,0xc0,0x94,0xe7,0x8f,0x40,0xfc,0xcc,0xe5,0xbe,0x28,0xf6,0xcc,0xbf,0xcb,0xc1,0x85,0x40 }); - // [[[[ 1.3922077 0.95261157 -2.3906546 ... -4.186278 2.5229187 -2.577996 - Tensor *w = NN_tensor(4, (size_t[]){ 3, 3, 3, 71 }, DTYPE_F32, (uint8_t[]){ 0xdd,0x33,0xb2,0x3f,0x5a,0xde,0x73,0x3f,0x7c,0x0,0x19,0xc0,0xf0,0x7d,0x98,0x40,0x87,0xec,0xc2,0xbf,0xaa,0x13,0x85,0x40,0x88,0x2e,0xbc,0xbe,0x26,0x86,0x20,0x40,0xd0,0xff,0x60,0x40,0xa4,0x3d,0x6e,0xc0,0xf1,0x47,0x55,0xc0,0x78,0x37,0x9e,0xc0,0xd4,0xcd,0x66,0x40,0x4,0x99,0x89,0x40,0x89,0xe6,0xe9,0xbf,0xb7,0xba,0x1c,0xc0,0x6e,0x42,0x56,0x3f,0x8,0x48,0x2c,0x40,0x86,0xf9,0x9d,0x3f,0xe1,0x61,0x85,0xbf,0x3f,0x8b,0x4b,0xc0,0xc6,0xd7,0x88,0x40,0x82,0x3c,0x4f,0xc0,0x9c,0x9b,0x9a,0xc0,0xd1,0x88,0xff,0xbf,0x8,0x3e,0x7f,0x3f,0xd5,0xe1,0xed,0x3f,0x90,0x77,0xf7,0x3f,0x27,0x60,0x39,0xc0,0x23,0xa0,0xf5,0xbf,0x2a,0x4c,0xe,0xc0,0x8a,0xf6,0x1a,0xc0,0x84,0xc3,0x86,0xc0,0xfd,0x1,0x83,0x3f,0x85,0x1f,0xba,0xbf,0x40,0x0,0x9a,0xc0,0x80,0xda,0x3a,0xc0,0xba,0x2c,0x40,0xc0,0x3c,0x9,0xa,0xc0,0xb6,0xba,0x45,0xc0,0x4,0xfa,0x5d,0xbf,0x29,0x5a,0xe5,0x3f,0x7f,0x7d,0x81,0xc0,0x2c,0x4d,0xdb,0xbe,0x77,0x2f,0xb8,0xbf,0x46,0x9a,0x23,0xc0,0x64,0x1c,0x8e,0xbf,0x41,0xa0,0x7,0xc0,0xb8,0x98,0x24,0x3e,0xf4,0xfd,0x66,0xc0,0xdc,0xbc,0x72,0x3f,0xb3,0xe6,0x92,0x40,0xea,0x93,0x84,0x40,0x94,0x79,0xf,0xc0,0x1e,0x44,0xc5,0x3f,0x90,0x3b,0x97,0xc0,0x0,0xb6,0x86,0x40,0x4b,0x73,0x9f,0xc0,0xee,0xfa,0x8e,0xc0,0xe4,0x9e,0x8f,0xc0,0xaa,0x95,0x94,0xc0,0xa8,0x59,0x2d,0x3f,0xa6,0x3c,0xa9,0xbf,0xb0,0x2e,0x99,0x3f,0xd8,0x65,0x9e,0xbe,0x90,0xf7,0xdb,0xbd,0x58,0x38,0xe7,0xbf,0xb4,0xda,0x3d,0xc0,0xfd,0xf5,0x85,0xc0,0x80,0x77,0x21,0x40,0xe6,0xfd,0x24,0xc0,0x95,0x29,0x82,0xbf,0x1e,0x6c,0x1b,0x40,0xea,0x80,0x9e,0xbf,0xbf,0x5d,0xa1,0xbf,0x9a,0x53,0x55,0xc0,0x66,0xe5,0x88,0xc0,0xe3,0x96,0x19,0x40,0x46,0x65,0x90,0xbf,0xb3,0x37,0x49,0x40,0x84,0x7d,0xa8,0x3e,0x0,0x1b,0xd0,0xbb,0xbb,0x72,0x90,0xc0,0x40,0x14,0xe2,0x3d,0x4e,0xa3,0x90,0xbf,0x5e,0x9a,0x36,0xc0,0xc5,0x1e,0x94,0xbf,0x68,0xd5,0x85,0x3e,0x46,0x1d,0x71,0xc0,0xd0,0xd7,0x54,0x3f,0x2a,0xa9,0x5e,0x40,0x44,0xdc,0x7c,0x3f,0x7b,0xba,0x98,0x40,0x53,0x53,0x15,0x40,0x20,0x5e,0x7c,0xc0,0xc4,0xe9,0xfb,0xbf,0xef,0x2,0x9a,0xbf,0x86,0x73,0xbf,0x3f,0xc0,0x7,0x12,0xbe,0x60,0xc0,0x80,0x40,0x5a,0xb1,0x14,0x3f,0xcd,0xa8,0x4a,0xc0,0x54,0xa2,0xea,0xbf,0x21,0x1d,0x85,0xc0,0x87,0x77,0xb0,0xbf,0x88,0x54,0x1d,0x40,0x20,0xc4,0x45,0x3d,0xa2,0x93,0x98,0xc0,0x99,0x72,0x8a,0xc0,0x8d,0x7,0xe8,0x3f,0xb3,0x6e,0x8c,0xc0,0x4,0x3d,0x7f,0xc0,0xec,0xc9,0x3e,0xc0,0xba,0x7f,0x98,0x40,0x35,0xfb,0xb5,0xbf,0xb9,0xef,0x3,0xc0,0x70,0x11,0x58,0xc0,0xce,0xb4,0x4c,0x40,0x14,0xae,0x4e,0xbf,0x20,0xd4,0x76,0x3f,0xba,0xe3,0x98,0x3f,0x3f,0x7f,0xb4,0x3f,0xe,0xd4,0x4c,0x40,0xe8,0xd8,0x84,0x3e,0x6a,0x66,0x4,0x3f,0x24,0x3f,0xa6,0xbe,0x5a,0xa9,0x78,0xc0,0x83,0x76,0x92,0xbf,0xda,0x47,0x98,0x40,0x89,0xca,0x62,0xc0,0x76,0xf4,0x49,0xc0,0x2d,0xc5,0x9e,0xc0,0x88,0x3b,0x9b,0x3e,0xce,0xa6,0x95,0xc0,0xf2,0xe6,0x23,0xc0,0x3a,0x6e,0x93,0x40,0x64,0x88,0x4,0x40,0xa6,0x7c,0x2a,0x40,0x6,0x2d,0x5b,0x3f,0xfa,0xf6,0x87,0xc0,0xfe,0xe6,0x14,0xc0,0x84,0x87,0x81,0xc0,0xf5,0xdf,0x45,0xc0,0xc4,0xf2,0xd9,0x3f,0xb3,0x81,0xb1,0xbf,0xb4,0x5c,0x9c,0x40,0x2a,0x44,0x69,0xc0,0xac,0x8b,0x88,0xc0,0x1,0xfc,0x9d,0x40,0x8a,0x37,0x8a,0xc0,0x25,0x26,0x88,0x40,0x7a,0x56,0xac,0x3f,0xc,0xd5,0x91,0xc0,0x50,0x5b,0x8b,0x40,0x7e,0x3c,0xae,0xbf,0xae,0xf2,0x3,0xc0,0xb9,0xa1,0x79,0xc0,0xda,0x55,0x87,0xc0,0xa2,0x7e,0x8e,0x3f,0x62,0x29,0x9d,0xc0,0xe,0x7f,0x3,0x40,0x5e,0x26,0x9e,0xbf,0xfc,0x9a,0xe0,0x3f,0xbf,0xb2,0x9c,0xbf,0xe8,0x52,0xdd,0x3f,0xc0,0xdb,0xb,0xbe,0x5a,0x1b,0xbc,0x3f,0x96,0x30,0x2,0xc0,0x57,0x1c,0x5c,0xc0,0xb8,0x3,0x23,0x3f,0xcb,0x3f,0x4c,0xc0,0x4,0x5f,0x46,0xc0,0xd3,0xd9,0x99,0xc0,0xa2,0xff,0xcb,0xbf,0xfd,0xd1,0x55,0xc0,0x73,0x33,0x79,0x40,0x87,0x9b,0x66,0x40,0x7a,0xd9,0x97,0x3f,0x36,0x0,0x82,0x40,0xa2,0x15,0x1a,0x40,0x3e,0xb9,0x96,0xc0,0xe,0x12,0x0,0xbf,0xc4,0xc5,0x4f,0xbf,0xd2,0x4a,0x42,0xc0,0x6b,0x47,0xb6,0x3f,0xa4,0xc0,0xc7,0xbf,0x6a,0x4,0x19,0xc0,0x20,0xbe,0x6e,0xbd,0x2a,0xc2,0x54,0xc0,0x9a,0x6c,0x84,0x40,0x62,0x7d,0x4a,0x40,0x7a,0x74,0x97,0x40,0xac,0xb6,0x62,0xbf,0x56,0x5,0xd1,0x3f,0xd8,0xef,0x4d,0xbe,0x90,0x65,0x84,0xc0,0x3,0xc6,0x10,0x40,0x78,0x84,0x5f,0xc0,0x2a,0x7,0xe7,0xbf,0xc3,0x4d,0xf,0xc0,0x50,0x17,0x9c,0xc0,0x70,0xa5,0x37,0x3e,0xcc,0xb1,0x51,0x3f,0x44,0x52,0xbe,0xbe,0x5a,0x58,0x6b,0x40,0xc8,0x7d,0x75,0x3e,0x5e,0x26,0x69,0xbf,0xb0,0x8a,0x2e,0xc0,0xb7,0xc,0x3e,0xc0,0x7c,0xfa,0x35,0xbf,0x33,0xcf,0x3b,0xc0,0x69,0x18,0x53,0xc0,0xc4,0x4b,0x29,0xbf,0x1c,0x1,0x62,0xbf,0xd4,0x55,0x43,0xc0,0x2,0xf9,0x3a,0x40,0x3b,0xb1,0x87,0x40,0x5f,0x2f,0x5a,0xc0,0xb8,0x29,0xc,0x40,0xba,0x7b,0x14,0xc0,0x56,0xe8,0x4,0xbf,0x58,0x5c,0x95,0x40,0xec,0xc9,0x23,0x3f,0x48,0x8e,0x98,0xc0,0x11,0x16,0x93,0x40,0xc8,0x9f,0x58,0xbe,0x20,0x3c,0x20,0xc0,0xc6,0xfe,0x28,0xc0,0x8c,0x34,0x89,0x40,0xd0,0xd2,0xac,0x3d,0x46,0xbf,0x30,0x40,0x20,0x50,0x52,0x40,0x77,0x67,0xf8,0xbf,0x78,0x49,0xd9,0x3e,0x64,0xfe,0x4e,0xc0,0xcc,0x9b,0x85,0x40,0xd2,0x36,0x29,0xc0,0xec,0x8c,0x54,0x40,0xf9,0x27,0xa2,0x3f,0xcc,0x65,0x45,0x40,0x5c,0x76,0x61,0xc0,0xe0,0x39,0x1f,0xbe,0xa6,0xcf,0x25,0x40,0xd0,0x5d,0x4c,0xbe,0x70,0xed,0x92,0xbd,0x0,0xf0,0x1b,0x40,0x28,0x2b,0x6f,0xc0,0x1b,0x50,0x80,0xbf,0xe3,0xc1,0x11,0x40,0x8f,0xf1,0x1c,0x40,0xee,0x9a,0x94,0x40,0x64,0x34,0x7d,0xbf,0xf,0xa4,0x97,0x3f,0xd6,0x72,0x1d,0xc0,0xe,0xd4,0x56,0xbf,0x3c,0xa5,0x20,0xc0,0x6e,0x24,0x6d,0x40,0xc0,0x81,0xf9,0x3c,0x1d,0x2e,0x2,0x40,0xc6,0x3,0x30,0x40,0x9e,0x86,0x6e,0x3f,0x54,0x37,0x8,0x3f,0xcc,0x5e,0xbb,0xbe,0x30,0x88,0x87,0xc0,0xf6,0x3a,0x4e,0x3f,0xcb,0xc9,0x8d,0xbf,0xb,0x7c,0x86,0xc0,0xc4,0x11,0x95,0x40,0x70,0x75,0x8,0xbf,0x30,0xb5,0x1f,0xc0,0x44,0xc3,0x9b,0xc0,0x10,0x5e,0x93,0xc0,0xd2,0xb6,0xf3,0x3f,0xd8,0x14,0x12,0xc0,0x3c,0x3b,0xa,0xc0,0xaa,0x28,0x39,0xc0,0x33,0x27,0x81,0x40,0x46,0xd9,0x99,0xbf,0x15,0x6b,0x4f,0x40,0xba,0xa,0x7e,0x40,0xb7,0x18,0x78,0xc0,0x2,0xbc,0x6e,0x40,0xc,0x6d,0x74,0xbf,0x37,0x3e,0x99,0x40,0x52,0x73,0x23,0x40,0x3f,0xfd,0x9a,0xc0,0xfa,0xcb,0x6d,0x3f,0xf7,0xf9,0xe0,0x3f,0xa4,0x2c,0xe8,0xbf,0xca,0xa8,0x72,0x40,0x1,0x80,0x84,0xc0,0x67,0x13,0xcb,0xbf,0xe8,0x73,0x98,0x40,0x79,0x43,0x9c,0x40,0x7e,0xda,0x1f,0x40,0xd6,0x5,0x3f,0xc0,0x9,0xaa,0x89,0xc0,0x4c,0x17,0x82,0xc0,0xee,0xfd,0x9f,0xbf,0x5d,0x47,0x35,0x40,0xc7,0x9f,0xca,0x3f,0xc0,0x71,0x1b,0xbf,0x66,0xe5,0x8f,0x40,0x26,0x49,0x7b,0x40,0xf3,0x8f,0x15,0xc0,0xf8,0x93,0xa,0xc0,0xe0,0x47,0x70,0xbd,0xba,0xcf,0x84,0x3f,0x80,0x9c,0x12,0xbd,0xad,0x14,0xf7,0x3f,0x87,0xc8,0x5c,0x40,0xb0,0xcc,0x66,0xbf,0x3e,0x26,0x1d,0x40,0x4a,0x16,0x2e,0x3f,0x55,0xaa,0xf5,0x3f,0xda,0xbc,0x3,0x40,0x95,0xf,0xab,0xbf,0xd8,0xac,0xe,0xc0,0x7a,0xc7,0x8,0x40,0x65,0xe1,0x4c,0xc0,0x32,0x0,0x28,0x40,0x95,0x51,0x4d,0xc0,0xfb,0x87,0x5b,0x40,0x88,0x65,0x0,0x40,0x52,0xca,0x9c,0xbf,0xf4,0xe8,0x36,0x40,0xc7,0xc4,0xd2,0xbf,0x2d,0x59,0x88,0x3f,0x66,0x6e,0xbc,0x3f,0x78,0xb9,0x2,0x3f,0xb8,0x85,0x80,0x3f,0xf0,0x48,0xcb,0xbd,0xb7,0xe4,0xb8,0xbf,0xf7,0x87,0x32,0x40,0x98,0x6f,0xfc,0x3f,0x86,0xb7,0xee,0x3f,0x70,0x9,0x58,0x40,0x2e,0x6e,0x27,0xc0,0x4a,0xb2,0x94,0xbf,0x60,0xef,0x11,0xbe,0x16,0x1e,0x81,0x40,0xc8,0xd1,0x7e,0xc0,0x42,0x8d,0x37,0xc0,0xb3,0x72,0x98,0xbf,0x11,0xac,0x88,0xc0,0x80,0xd2,0x7c,0xc0,0xec,0x34,0x5b,0x40,0x70,0xd7,0x6e,0x3e,0x5d,0xb7,0x80,0xc0,0x36,0x5a,0x53,0xbf,0x58,0x54,0x28,0xbe,0xc1,0x87,0xe3,0xbf,0xef,0xd4,0x85,0xc0,0xd9,0x27,0x2e,0x40,0x44,0x18,0x1e,0xbf,0x98,0x36,0x9c,0x40,0xd8,0x13,0x75,0xc0,0xe,0xad,0x2f,0xc0,0xe4,0xff,0x84,0xbe,0x21,0xd7,0x5e,0xc0,0xc,0x35,0x69,0x40,0xd2,0x76,0x77,0x40,0x13,0xf3,0x90,0x40,0xf3,0x0,0x4a,0xc0,0x20,0xae,0x63,0x40,0xc9,0x2f,0x5e,0x40,0x22,0xa7,0xfe,0xbf,0x7c,0x74,0xc,0x3f,0x95,0x7c,0x18,0x40,0x1a,0xfd,0x64,0x40,0x84,0x70,0x95,0xc0,0xbf,0x4a,0x9f,0x40,0xfd,0xe8,0xa0,0xbf,0xe4,0x61,0x2,0x40,0x9c,0xbf,0x46,0xc0,0xfc,0x40,0x76,0xc0,0x15,0xb7,0x58,0xc0,0xf4,0x97,0x3c,0x40,0x66,0xd8,0x1d,0xc0,0xf5,0x4,0x3a,0x40,0x27,0x7b,0xc1,0x3f,0xbd,0x93,0xfe,0x3f,0xf9,0x59,0x8e,0xbf,0x68,0x72,0xca,0xbf,0xc2,0xb8,0x15,0xc0,0xaf,0xde,0x32,0xc0,0x67,0x86,0x93,0x40,0x40,0x20,0x8b,0xbe,0x34,0x3a,0x9,0xc0,0x62,0xdd,0x94,0xc0,0x78,0xbc,0x5e,0x3e,0x70,0xd2,0x9e,0xc0,0xe0,0x28,0x71,0xbd,0xea,0xc,0x4a,0x40,0x5e,0x4f,0x38,0xc0,0x1e,0xd2,0x2f,0x40,0x5c,0x27,0xcc,0xbf,0x84,0x1d,0x76,0xc0,0x61,0x78,0x9e,0xc0,0x2c,0xf8,0x1e,0x40,0x63,0xd4,0x74,0xc0,0xa4,0x3f,0x1c,0x40,0xd6,0x44,0x37,0x3f,0xe,0xeb,0x2d,0x40,0x8c,0x8a,0x70,0xc0,0x47,0xeb,0x8b,0x40,0x71,0x5d,0x9f,0xc0,0x2a,0xe4,0x72,0xc0,0x6a,0xe6,0x3f,0x40,0x18,0x2,0x2e,0x3e,0xf2,0xb0,0x33,0xc0,0xd5,0x3f,0x86,0xbf,0xbc,0x63,0x8e,0xc0,0xdb,0x3f,0x8b,0xc0,0x3b,0x4f,0x89,0xbf,0xdc,0x1c,0x74,0x40,0x0,0x22,0xbf,0x3f,0xe6,0x5e,0x71,0x3f,0x3f,0x9e,0xa9,0xbf,0xaa,0xa0,0x91,0x40,0x80,0x24,0x44,0x3d,0x9,0x19,0xd8,0x3f,0xa0,0xc1,0xa2,0x3d,0x20,0xbd,0x47,0x3f,0x41,0x6b,0xd5,0x3f,0xd4,0x8f,0x75,0x40,0xcf,0x31,0x38,0x40,0xe,0xd0,0x23,0x3f,0x39,0xdf,0xff,0x3f,0xd1,0x77,0xc0,0xbf,0x64,0xbb,0x5a,0x40,0x2,0xa9,0xb3,0x3f,0x6b,0x7f,0x71,0x40,0x8,0xda,0x47,0xbf,0xd9,0xa2,0x82,0xc0,0xc2,0xdb,0x7c,0x3f,0x48,0x26,0x2,0x40,0x88,0x48,0x81,0x40,0xf3,0xe,0xf8,0x3f,0xf6,0x76,0xec,0x3f,0x5d,0xa8,0x7e,0x40,0x6e,0xf1,0xdb,0xbf,0xba,0x44,0x8d,0x40,0xea,0xf,0x24,0x40,0xe7,0xb5,0x55,0x40,0x88,0x38,0x64,0x40,0xce,0xb7,0x82,0xc0,0xb8,0xac,0x26,0x40,0x96,0x3,0x95,0x40,0x87,0xce,0x60,0xc0,0xd4,0x68,0xdb,0xbe,0x41,0x4b,0x43,0xc0,0x8f,0x8a,0x9a,0xbf,0x70,0xc1,0x3e,0x3f,0xba,0x2b,0x2b,0x40,0x55,0xcd,0xb9,0xbf,0xf0,0x81,0x97,0xc0,0xc8,0xc9,0x2c,0x40,0xa1,0x87,0x33,0x40,0x38,0xc,0x68,0xbf,0xeb,0xf8,0x88,0x40,0xb6,0xaf,0x76,0x40,0x4a,0xf,0x8d,0xbf,0x28,0xb7,0x45,0x3e,0xf0,0x78,0x61,0x3f,0xcc,0xd3,0x7a,0xbf,0x38,0xac,0x9d,0xbf,0xaa,0x72,0x10,0xc0,0xcc,0xfa,0x35,0xc0,0xf2,0xcf,0x1f,0x40,0xb4,0xa,0xbe,0xbf,0x2a,0x84,0x19,0xc0,0x73,0xf1,0x8c,0x40,0xbe,0xa6,0x4c,0x3f,0x17,0xe3,0x66,0x40,0x94,0xce,0x91,0x40,0x5a,0x50,0x34,0xbf,0xc,0xee,0x3e,0x3f,0x9f,0x57,0x94,0x40,0xd6,0x2b,0x5c,0xc0,0xb6,0xe3,0xbf,0xbf,0x66,0x24,0x36,0x3f,0xa4,0xad,0xad,0xbe,0x78,0x64,0xaa,0x3f,0xd2,0x43,0x28,0x40,0x68,0xa7,0x3,0xc0,0x88,0x55,0xc7,0x3e,0x1a,0xc1,0x90,0x40,0xb0,0x12,0x35,0xc0,0x2b,0x0,0x59,0xc0,0x97,0x68,0x75,0xc0,0x66,0x48,0x3f,0x40,0xd2,0xc1,0x92,0xc0,0xc6,0x9d,0x1b,0xc0,0x4d,0x20,0x58,0x40,0x76,0xd5,0x3f,0xc0,0x44,0x1d,0x82,0x40,0xa8,0x96,0x15,0xc0,0x6,0x7f,0x4a,0x3f,0xde,0x8d,0x27,0x3f,0xb0,0x2b,0xfb,0xbd,0x68,0x4f,0x47,0x40,0x39,0xe4,0x87,0x40,0xc4,0xcb,0x47,0xc0,0x78,0x77,0x33,0x40,0xe6,0xff,0xaa,0x3f,0x60,0xd1,0xbe,0xbd,0x1c,0xbf,0x5f,0xc0,0x36,0xd9,0xbd,0x3f,0x9b,0x44,0x68,0x40,0x93,0x55,0x89,0xc0,0xc6,0xc4,0x93,0xc0,0x1e,0x4b,0x9d,0xc0,0x12,0xe1,0x93,0x3f,0xea,0xe4,0xb7,0xbf,0x39,0xcd,0xc6,0xbf,0x40,0xfc,0x94,0x40,0xec,0x3d,0xa3,0xbf,0x16,0x37,0x4b,0xc0,0x78,0x46,0xe6,0x3e,0xba,0xa2,0x2f,0xc0,0x33,0x84,0xbb,0xbf,0x88,0x8,0x29,0x40,0x43,0xb5,0x93,0x3f,0x32,0x97,0x5b,0xc0,0x7d,0x53,0x98,0x40,0x4,0x80,0x58,0x40,0xa0,0x23,0x5a,0xc0,0xee,0x62,0xb,0x40,0x80,0x7e,0x3,0x40,0xc7,0x9d,0x65,0xc0,0xd8,0xe4,0x60,0xc0,0xde,0x7b,0x84,0xc0,0x40,0x8b,0xe,0x40,0x0,0x2,0x5f,0x3f,0xf0,0x3c,0x7,0x40,0x5e,0x8d,0xc,0xc0,0x9c,0x9d,0x70,0x40,0x22,0x71,0x23,0x3f,0x34,0x56,0x7f,0xc0,0xa7,0x16,0xa1,0xbf,0xce,0x4e,0x23,0x40,0x96,0xb9,0x8c,0x3f,0x4c,0xd1,0x43,0xbf,0xf7,0x91,0x5f,0xc0,0xd8,0xf,0x47,0xc0,0x55,0x1,0x8a,0x40,0xb6,0x4e,0x37,0xc0,0xfc,0xc3,0x62,0x40,0xd3,0x37,0xd6,0xbf,0xa0,0xb5,0x4c,0x3d,0x70,0xce,0x9b,0xc0,0x84,0xa,0xd0,0xbf,0x70,0xe0,0x86,0x40,0xdf,0xa5,0x8f,0xc0,0x6,0x3,0x21,0x40,0x4c,0xa7,0x86,0xc0,0x2,0xb1,0x3a,0x3f,0xd3,0xf,0x91,0xc0,0xaf,0x52,0x7d,0xc0,0xe9,0x2a,0x81,0xc0,0x90,0xeb,0xdd,0xbf,0xe,0x48,0x2e,0x3f,0x74,0x9d,0x6a,0xc0,0xfd,0x32,0xa2,0x3f,0x92,0xbb,0x40,0x40,0x8b,0x6e,0x82,0x40,0xdf,0xab,0x8d,0x40,0x3c,0xaf,0x52,0x40,0xe7,0x74,0xbc,0xbf,0x58,0xed,0xeb,0xbe,0x5f,0x90,0x8d,0x40,0xd4,0x2f,0x1f,0x40,0x29,0xb9,0xa9,0xbf,0x86,0x99,0x71,0x40,0xf6,0xd3,0x8b,0xc0,0x5a,0xf0,0x88,0x40,0xba,0xa,0x33,0x40,0x26,0xb5,0x6a,0xc0,0x82,0x7f,0x82,0xc0,0x8e,0x3f,0x7a,0x40,0x8f,0xd7,0x9d,0x40,0xc0,0x64,0xdf,0x3e,0x16,0x12,0xfa,0xbf,0x4c,0x36,0x36,0x40,0xb2,0x5d,0x10,0x40,0x28,0xbf,0x1f,0xbf,0x47,0x19,0x80,0x40,0x75,0x6a,0x4f,0x40,0x73,0x8d,0x9f,0x3f,0x30,0x27,0x26,0x40,0x16,0xdf,0x95,0xc0,0xa,0xe4,0x15,0xc0,0xc4,0x4f,0xc,0x3f,0x1e,0xb,0xae,0x3f,0x58,0xfd,0x2e,0xbf,0xed,0xa7,0xf1,0x3f,0x78,0xf6,0xc2,0x3f,0x65,0xdf,0x93,0xc0,0x20,0xde,0xc9,0x3f,0x38,0x24,0xd0,0xbe,0xdf,0x34,0x5c,0xc0,0x38,0xca,0x2c,0x3e,0xb0,0x66,0x9d,0xbf,0xcb,0xee,0x29,0xc0,0x44,0xcc,0x91,0xc0,0x9c,0xd9,0x85,0x40,0xba,0x55,0x42,0xc0,0x18,0xeb,0x2b,0x3f,0xd,0x2d,0x80,0x40,0xf4,0x41,0x21,0xbf,0x84,0xbb,0x51,0xc0,0x11,0xcb,0x9a,0xc0,0x32,0xad,0x54,0x3f,0x5b,0x90,0x20,0xc0,0xbc,0xb0,0xba,0x3e,0xf7,0x6d,0xcc,0x3f,0x81,0x55,0xb5,0xbf,0xc0,0xf9,0x58,0x40,0x22,0x91,0x26,0xbf,0x68,0x6a,0xff,0xbf,0x52,0x95,0x53,0xc0,0x56,0x2d,0xc2,0x3f,0x74,0xd7,0x45,0xc0,0x91,0x88,0x86,0x3f,0x72,0x8c,0x21,0xbf,0xee,0xeb,0x5b,0x40,0xbc,0xe0,0x1c,0xc0,0x9e,0xa3,0x1d,0xc0,0x9e,0x6b,0x25,0xbf,0x3c,0x73,0x43,0xc0,0x2,0xff,0xf3,0x3f,0x74,0x6e,0xea,0xbf,0xc2,0x49,0x3,0x40,0x22,0xb8,0x39,0x40,0xf2,0xdb,0x3a,0x40,0xe6,0xfb,0x6a,0xbf,0xb6,0xa2,0x2e,0x40,0xf0,0x72,0x29,0xc0,0x78,0x6a,0x9f,0xc0,0x8c,0xa2,0xf3,0xbe,0x76,0x5,0x68,0xc0,0xb9,0xe9,0x77,0xc0,0x80,0xaf,0xa2,0x3f,0x4e,0xb9,0x88,0x40,0x81,0xdc,0xfb,0xbf,0x44,0xd0,0x90,0xbe,0x96,0xd6,0x67,0xc0,0x4,0xb7,0x5f,0x3f,0x4b,0x76,0xb6,0x3f,0x96,0x7c,0x44,0xbf,0x26,0x77,0x73,0x40,0xbc,0xc5,0x80,0xc0,0x60,0xbc,0x2b,0xbf,0x5e,0x9f,0x31,0xc0,0x58,0x7d,0x8c,0x40,0xb6,0x85,0x87,0x40,0x77,0x62,0x9d,0x40,0x2,0x35,0x93,0x40,0xec,0x79,0xfd,0x3f,0x56,0x7,0x75,0xc0,0xa3,0xf,0x59,0xc0,0x45,0x6c,0x99,0x3f,0x38,0xd9,0x8e,0xc0,0x32,0x96,0x4a,0x40,0x1f,0x1e,0xb,0x40,0x54,0xb3,0x98,0x3f,0xca,0xa6,0x8b,0xc0,0x8a,0xc8,0x68,0x40,0x32,0x78,0x7,0xbf,0xba,0x48,0x6,0xc0,0x3e,0x13,0x27,0x40,0xa4,0x55,0xd8,0x3e,0x52,0x59,0xe,0xc0,0x3f,0xcb,0x95,0x3f,0x1,0x65,0x55,0xc0,0xcc,0xb4,0x94,0x40,0x54,0x3d,0x8c,0x40,0x5,0x94,0x13,0x40,0xf3,0x49,0x29,0x40,0x94,0xc,0x9f,0xc0,0x4d,0xe2,0x31,0xc0,0x76,0xf6,0x99,0xc0,0x30,0xc9,0x26,0xc0,0xdf,0xa6,0x84,0xc0,0xfa,0x8a,0x6b,0x40,0xd8,0xa4,0x2c,0x40,0xc2,0x73,0x3c,0x40,0x26,0xf,0xe,0xc0,0x5e,0xe6,0x73,0x40,0xb0,0xf5,0x38,0xbf,0x15,0xd1,0xa5,0xbf,0x64,0x4c,0x2c,0x40,0x0,0xea,0x53,0x40,0x68,0xfe,0x65,0xc0,0x20,0x53,0x98,0x40,0x94,0x30,0x1,0xbf,0x2b,0x75,0xaa,0x3f,0x5f,0x51,0x9f,0xc0,0x24,0x7f,0xe,0x3f,0x89,0x5f,0x1e,0xc0,0x72,0x5d,0x48,0xc0,0xbe,0x9b,0x5,0xc0,0xc0,0xcb,0xbe,0xbc,0xf1,0x52,0xb6,0xbf,0x78,0xfd,0x4c,0xc0,0x75,0x1d,0x65,0x40,0x44,0x66,0xbe,0x3f,0x33,0xe7,0x94,0xc0,0x52,0x40,0x86,0x3f,0x26,0x37,0x9d,0x3f,0x20,0x23,0x3c,0x3e,0x8d,0x68,0x9b,0x3f,0x9c,0x55,0xd6,0xbe,0x1c,0xf3,0xb,0x40,0x2,0x46,0x61,0xc0,0x30,0x71,0x8,0xc0,0xc7,0xb6,0x6f,0x40,0xc4,0x40,0x46,0xc0,0x88,0x0,0x1d,0x40,0x28,0xb,0x94,0x40,0x43,0x4e,0x92,0xc0,0x88,0x31,0xc,0xc0,0x36,0x8a,0x88,0x40,0xa8,0xcb,0x9a,0xbe,0x7a,0xb0,0x7c,0x3f,0x46,0x2b,0x36,0x3f,0x29,0xdf,0x3,0x40,0xa2,0xd9,0x3,0xc0,0x28,0x2c,0x26,0x3f,0x58,0xfa,0x59,0x40,0xe4,0xf7,0xd7,0xbe,0x1,0xcb,0x92,0xc0,0x2b,0x38,0xdd,0x3f,0xe,0x62,0xa3,0xbf,0x14,0x5,0x87,0xbf,0x2c,0xe4,0x26,0x40,0x12,0x53,0x60,0x3f,0xad,0x95,0x41,0xc0,0xa7,0xab,0x13,0xc0,0x82,0x92,0x42,0xbf,0x29,0x1f,0x9e,0xbf,0xe2,0x7c,0x87,0xbf,0xe,0xb9,0x5a,0xc0,0x0,0xd1,0x67,0x40,0x80,0xf5,0x25,0x40,0x54,0x9a,0x7c,0x3f,0xe0,0xe8,0x90,0x3f,0xe6,0xd8,0x15,0x3f,0x60,0x46,0x6f,0x40,0xe3,0xd1,0x90,0x3f,0x2c,0xfc,0x42,0x3f,0x53,0xe8,0x2f,0xc0,0xa0,0x7f,0xd5,0x3f,0xfe,0xaf,0x95,0xc0,0x3e,0xd9,0xc9,0x3f,0xb1,0xaf,0x8a,0xc0,0x60,0x70,0x4,0xc0,0xbb,0xf0,0x28,0x40,0x8a,0x98,0x3e,0xc0,0xb4,0xce,0x7e,0x40,0x78,0xce,0x30,0xc0,0xf0,0x8c,0x97,0x40,0x76,0x41,0xc5,0x3f,0x5f,0xac,0xa,0xc0,0x48,0x29,0x43,0x40,0xe0,0xb1,0x8d,0xc0,0x91,0xb7,0x4a,0xc0,0xb1,0x7b,0x48,0xc0,0xc8,0x7f,0x28,0x3f,0x88,0x80,0xfb,0x3e,0xfe,0x9d,0x89,0xc0,0xca,0x64,0x9a,0x40,0x0,0x95,0x9c,0xbb,0x2,0xe1,0x2a,0xc0,0x40,0x98,0xf4,0x3d,0x6f,0x5c,0x9,0xc0,0x26,0x92,0xb0,0x3f,0x9a,0xaf,0xe7,0x3f,0xa,0x8b,0xb5,0xbf,0x40,0x3e,0x95,0x3e,0xe,0x67,0x3e,0x40,0x54,0x23,0x50,0xc0,0x5b,0xb6,0x8e,0xbf,0xdc,0xd4,0x3c,0xbf,0x54,0xb7,0x53,0xc0,0x44,0x81,0xd0,0x3e,0x58,0x2c,0x3c,0x3e,0x91,0x3c,0x81,0xc0,0xa1,0x49,0x83,0x3f,0xf2,0xb6,0x98,0x40,0xbc,0x34,0x2a,0x40,0x86,0x94,0x2d,0xc0,0x6b,0x75,0x92,0x40,0x52,0xf7,0x5b,0xc0,0xe0,0xb3,0x22,0xc0,0x58,0x26,0xd,0x40,0xc0,0x92,0x7e,0x40,0x8f,0xaf,0x98,0x40,0x78,0xbf,0x89,0x40,0xe6,0x34,0x30,0xc0,0xf5,0x72,0x92,0x3f,0xb8,0xee,0x48,0xc0,0x0,0x22,0xe2,0x3d,0x90,0x8f,0x84,0x40,0xba,0x90,0x1d,0x40,0x64,0xbd,0x93,0xc0,0x20,0xb8,0x9,0xc0,0xa2,0xff,0x86,0xc0,0x2a,0xbe,0x16,0x40,0x58,0x7d,0x22,0xbf,0x66,0xed,0x69,0xc0,0x15,0x82,0xcc,0xbf,0x72,0x6,0xd2,0x3f,0xf8,0x0,0xed,0x3e,0x11,0x21,0x96,0x40,0x70,0xf3,0x87,0xbd,0xfe,0x50,0xc9,0x3f,0x90,0xdf,0xc1,0xbf,0x68,0xbd,0x18,0x3f,0x88,0x6a,0x37,0x3e,0xdf,0x6f,0x89,0x40,0x58,0x15,0x6,0x40,0x8e,0x5d,0x36,0xc0,0x50,0x2b,0x8e,0xc0,0xf0,0x3a,0x98,0xc0,0xd8,0x6b,0xe8,0xbf,0x9e,0x75,0x25,0x3f,0xc8,0x85,0x96,0x40,0x1c,0x88,0xfb,0xbe,0xec,0x3b,0xfa,0x3f,0xd2,0xa1,0x22,0x40,0xc0,0x1e,0x75,0xc0,0xc0,0x5a,0x84,0xc0,0x9a,0x81,0xf2,0x3f,0xac,0x27,0x15,0x40,0xd6,0x0,0x15,0xc0,0x1e,0x96,0x48,0x3f,0x62,0xa8,0x9c,0xc0,0x80,0x12,0x81,0x3d,0xeb,0xe0,0x9c,0x3f,0xe0,0xda,0x41,0x3d,0x9e,0x2c,0x4b,0xbf,0x88,0x31,0x5,0x40,0x24,0xea,0xaf,0xbf,0xbc,0x34,0x6e,0x40,0xe,0xd0,0x89,0xc0,0x6,0xe1,0x36,0xc0,0xc2,0x92,0x85,0xc0,0x54,0xb4,0x90,0xc0,0xac,0x3b,0x6d,0x40,0xf5,0x61,0x9e,0xbf,0x5c,0x5e,0x7b,0xc0,0xfe,0xbd,0x84,0x3f,0x65,0x52,0x72,0xc0,0xbc,0x55,0x84,0x3e,0x4d,0x1f,0x18,0x40,0xf,0x55,0x87,0xbf,0x1b,0x81,0x24,0x40,0x49,0x5b,0x83,0x3f,0xf4,0x63,0x80,0xc0,0x52,0xed,0x7b,0x3f,0x6,0x49,0x4e,0x40,0x59,0x5d,0x94,0xbf,0x94,0xf1,0xf1,0x3e,0x7a,0x4b,0x23,0x3f,0xc8,0x23,0xdc,0x3e,0x5,0x5e,0xa6,0x3f,0x88,0x31,0x99,0xc0,0xf4,0xc9,0x72,0x40,0xfe,0x90,0xb,0x40,0x64,0x11,0x1e,0x3f,0xb0,0xe8,0x68,0x3f,0xed,0x8,0x81,0xc0,0xbf,0xbb,0xb6,0xbf,0x8,0xb4,0x5e,0xbe,0x4a,0x22,0x98,0x3f,0xf3,0x89,0x2f,0xc0,0x48,0xd0,0x7,0x3f,0x5d,0x9f,0xc6,0xbf,0xe4,0xeb,0x68,0x40,0x7a,0x56,0x89,0xc0,0x52,0xcd,0x5,0x3f,0x5c,0xcc,0x58,0x40,0xcd,0x89,0x78,0xc0,0x8,0xbf,0x12,0xbe,0xa1,0xde,0x13,0x40,0xca,0x20,0x1,0x40,0x3c,0x87,0x16,0x3f,0x0,0x5b,0x1,0x40,0x2c,0x12,0x5f,0xc0,0xfb,0x42,0x85,0x40,0x90,0x62,0xe4,0x3d,0xb4,0xd9,0x4e,0x40,0xab,0x94,0x8d,0x3f,0x8e,0x65,0xe,0xbf,0x68,0x11,0x9,0x40,0x5a,0xe3,0x97,0x40,0xa2,0xd3,0x9d,0x40,0xed,0xad,0x86,0xc0,0x30,0x43,0x9b,0x3e,0x62,0xe1,0x65,0xc0,0x8e,0x72,0x3a,0x40,0xea,0xb9,0x65,0x40,0x6,0xb4,0x60,0xc0,0xf4,0xf4,0x93,0xbe,0xe2,0x6e,0x5d,0x40,0x40,0x9e,0x53,0x40,0x28,0x99,0x70,0xc0,0x90,0xdb,0x56,0x40,0x4e,0x9c,0x62,0xbf,0x58,0x13,0x88,0xc0,0x8e,0xf9,0x7e,0x3f,0x6e,0x13,0x15,0x40,0x24,0xe9,0x3f,0x40,0x4a,0x93,0x59,0xc0,0x3c,0xc5,0x67,0xc0,0x54,0x1,0x57,0xc0,0x12,0x59,0x35,0x40,0x44,0xd6,0x8b,0xc0,0xa0,0xb2,0x2c,0xbd,0x27,0x12,0xbc,0xbf,0xa6,0xb6,0xb,0x40,0x18,0x5f,0x7b,0x3f,0x99,0x97,0x21,0xc0,0xc4,0x92,0x5f,0x3f,0x2a,0x3e,0x93,0x40,0x6e,0xbe,0x52,0x3f,0xf8,0x92,0x1e,0xc0,0xd0,0x6a,0x2b,0x3e,0x74,0xc2,0x92,0xc0,0x8d,0x4f,0x4d,0xc0,0xe6,0xc1,0x6d,0xbf,0x96,0x68,0x47,0xc0,0x8b,0x7d,0x87,0x40,0xe,0x76,0x78,0x3f,0x87,0xda,0x77,0x40,0xd5,0xbb,0x91,0xbf,0x26,0x4,0x32,0xbf,0xdf,0x6f,0xa1,0x3f,0x1d,0x4c,0xbe,0xbf,0x9d,0x28,0xda,0xbf,0xc2,0xf4,0x9c,0xc0,0x2c,0x12,0x71,0x40,0xfe,0xcd,0x90,0x40,0x69,0x6b,0x9e,0xc0,0xda,0xbf,0xd3,0xbf,0x4d,0xb,0x72,0xc0,0x6b,0xe5,0x1,0xc0,0x92,0x9e,0x73,0x40,0xb9,0x2c,0x2b,0x40,0xb4,0xa2,0xc6,0xbe,0x2c,0xac,0x8,0x40,0x4c,0x21,0xbf,0x3f,0xf3,0xc1,0x2e,0x40,0x78,0x93,0x80,0xc0,0x1f,0xd4,0xc5,0x3f,0xef,0x88,0x97,0xc0,0xf5,0x73,0x52,0xc0,0xa5,0x7f,0xee,0xbf,0x54,0x6b,0xf9,0xbe,0x25,0xfe,0x96,0xc0,0x50,0xd8,0xfe,0x3d,0x40,0x5c,0x4c,0x3f,0x8a,0xfe,0xfd,0xbf,0x8,0x96,0xcf,0x3f,0xcd,0xcf,0x8b,0x40,0x8a,0xa4,0x5a,0xbf,0xd6,0x6c,0x2a,0xc0,0x88,0xbb,0x8d,0xc0,0x36,0xaa,0x69,0xc0,0xed,0xfc,0x30,0xc0,0x59,0x91,0x6c,0xc0,0xc0,0x9d,0xfb,0xbf,0x7c,0x48,0x30,0x40,0x29,0x45,0xc8,0x3f,0x3c,0x36,0x90,0x40,0x2,0xdb,0x9e,0x40,0xe7,0x77,0xe6,0xbf,0xdf,0xa2,0xfa,0xbf,0x5e,0x29,0x2f,0x3f,0x70,0xcf,0x7e,0xc0,0xd8,0xd,0x2e,0x40,0x28,0x5f,0x66,0xbf,0xfe,0xf8,0x85,0xc0,0x18,0x98,0x71,0xc0,0x7a,0x80,0x5c,0xc0,0xc7,0xe7,0xaf,0x3f,0x74,0x4d,0x75,0x40,0x56,0x85,0x7d,0x40,0x29,0x3a,0xb0,0xbf,0xb8,0xdf,0x39,0xc0,0xf4,0x6,0xe,0xc0,0x24,0x99,0x5a,0xc0,0x81,0x1,0xa5,0xbf,0xb4,0x80,0x90,0xc0,0x9,0xa,0x2b,0x40,0x5c,0x97,0x96,0xc0,0xb6,0xe,0x47,0xc0,0x88,0xc0,0x56,0x40,0xea,0x5c,0x6f,0xc0,0x5c,0x0,0x99,0x3f,0x5,0xb0,0x6f,0x40,0xd6,0xb6,0x9d,0x40,0xac,0xea,0x21,0x40,0x15,0xc1,0xab,0xbf,0xfe,0xdb,0x36,0x40,0x58,0xf9,0x28,0xbe,0x75,0x56,0xc5,0xbf,0x0,0x66,0x85,0x3c,0xcd,0x8e,0x8f,0x3f,0xfc,0x90,0x56,0x40,0x14,0x53,0x6,0x40,0x4,0xcc,0x18,0x40,0x1e,0x7c,0x3f,0x3f,0x50,0xd9,0x80,0xbe,0xf3,0x5d,0x6,0x40,0x30,0xef,0x99,0x3f,0x39,0x1a,0x99,0xc0,0xbc,0xf1,0x4e,0x3f,0x2,0x1c,0xe,0xc0,0x0,0xb2,0x29,0xc0,0xe5,0x81,0xf7,0x3f,0x6b,0xdf,0x82,0x3f,0x6e,0xc2,0x58,0x3f,0x7e,0xcd,0x17,0xc0,0x1b,0xdd,0x13,0x40,0x2a,0x26,0x96,0x40,0x6c,0x97,0x1c,0x3f,0x48,0x87,0x3,0x40,0x5b,0x5f,0x8c,0xc0,0xc,0x3d,0x3e,0x40,0xe,0x54,0xde,0x3f,0x42,0x2b,0x10,0x40,0xa6,0x71,0x5,0x40,0xf2,0x55,0xa8,0xbf,0xc,0xaa,0x99,0xbe,0x48,0xc3,0x9a,0x40,0xcf,0x27,0x6a,0x40,0x4e,0x5f,0x65,0xc0,0x44,0xe5,0x7d,0x40,0xaf,0x3c,0x9f,0x40,0xa2,0x55,0x28,0x3f,0x85,0xa8,0x79,0xc0,0xb2,0x1d,0x78,0x3f,0x42,0x41,0x81,0xbf,0x68,0x13,0x66,0x40,0xb7,0xb9,0x99,0xc0,0x3a,0xc7,0xa3,0x3f,0x20,0x35,0x70,0xbd,0xcc,0x87,0xc9,0x3e,0x1c,0x20,0x5c,0x40,0xa0,0xfb,0xb8,0x3d,0x1c,0xd0,0x80,0xc0,0x0,0xab,0x3a,0xc0,0x16,0x21,0x0,0xc0,0x30,0x83,0x8,0x3f,0xd7,0xf9,0xf6,0x3f,0xb6,0xeb,0x6e,0xbf,0x10,0x98,0xfc,0xbf,0x3,0x6b,0xc,0x40,0xbc,0x91,0x9b,0xc0,0x29,0x9c,0x5f,0x40,0xe0,0xcb,0x14,0xbf,0x56,0xaa,0x5e,0x40,0xe4,0xcb,0x71,0x40,0xa,0xbd,0x8,0x3f,0x12,0x73,0xca,0x3f,0x7c,0xfe,0x34,0xc0,0x60,0x46,0x65,0x40,0x60,0x4b,0x3b,0x40,0xa,0x9,0x49,0xbf,0x18,0x75,0xf9,0x3f,0xd4,0x64,0x8f,0xbe,0x48,0x3,0x7a,0x40,0xf4,0xb9,0x3,0x40,0x86,0x4b,0x69,0x40,0xc7,0x6f,0x91,0xc0,0x6c,0xe4,0x9b,0x40,0xbb,0x73,0xee,0x3f,0x7,0x94,0x1b,0x40,0x57,0x9c,0x8e,0x3f,0xfe,0x2b,0x52,0x40,0xa0,0xa0,0x96,0x40,0x64,0x16,0xda,0xbe,0x83,0x48,0x83,0xc0,0x11,0xec,0x92,0x40,0x76,0xf8,0x86,0xbf,0x11,0x54,0x1a,0xc0,0xc8,0xfc,0x44,0x40,0xcb,0x95,0x32,0x40,0x82,0x5e,0x2b,0x3f,0x70,0xb2,0xa0,0xbe,0x78,0xdd,0x74,0xbf,0x9e,0xb4,0x92,0x40,0x9c,0xf8,0x42,0x40,0x4c,0x92,0x3e,0x40,0x98,0xe,0x4c,0x40,0x98,0x79,0x27,0xc0,0x1,0xa1,0x85,0x3f,0x12,0x6a,0x8a,0xc0,0xd4,0xe9,0x39,0x40,0xde,0x97,0x9e,0xc0,0x98,0xe7,0x9f,0xc0,0x39,0x28,0x9e,0xc0,0x67,0x55,0x45,0x40,0xa4,0x35,0x5,0x3f,0x0,0x4a,0x3a,0x3c,0x10,0x97,0x4b,0x3f,0x73,0x35,0xf2,0xbf,0x35,0x58,0xc2,0xbf,0xaa,0x8c,0x57,0xc0,0x80,0x4c,0x9c,0xbf,0x5e,0xe8,0x44,0xc0,0xc8,0xb5,0x6,0x3e,0xf,0x6d,0x7b,0x40,0x50,0x45,0x84,0xc0,0xe8,0x5d,0x1d,0x40,0xef,0x3,0x6e,0xc0,0x6a,0x95,0x4,0xc0,0xfa,0x4b,0x7a,0x3f,0xf8,0x3e,0x5c,0x3f,0x50,0x36,0x83,0x40,0x0,0x28,0xf5,0xba,0x7c,0xc1,0xf3,0xbf,0x83,0x57,0x4,0xc0,0xa8,0x1b,0x16,0x3e,0xfa,0xf1,0x6f,0xc0,0xf,0xe6,0x7a,0xc0,0x8e,0xea,0x8,0xc0,0x28,0x86,0x3,0x3e,0xf2,0x1b,0x58,0xc0,0xa8,0xaa,0x36,0xc0,0x7d,0x7a,0x64,0x40,0xe9,0xdb,0x93,0x40,0x78,0x78,0xc8,0xbf,0x20,0x45,0x89,0xc0,0xb8,0x6,0xf5,0xbf,0x18,0x27,0x1,0x40,0x70,0xb5,0xcf,0x3f,0x5a,0x66,0xc6,0xbf,0x44,0xea,0x8c,0xc0,0xba,0x70,0xc0,0xbf,0xc5,0x19,0x8f,0xbf,0xae,0x46,0x38,0x40,0xac,0xad,0x1e,0xc0,0x82,0xd,0x40,0x40,0x46,0x8f,0x31,0x3f,0x98,0x86,0x56,0xbf,0xbc,0x96,0x8e,0xc0,0x78,0xf6,0x9d,0x40,0xdc,0x3e,0x64,0xbf,0xf2,0x57,0x49,0x40,0xa1,0x86,0x25,0xc0,0x1b,0xd0,0x9b,0xc0,0x98,0x12,0x7f,0xc0,0xcb,0xfe,0x23,0xc0,0xd5,0xd1,0xcb,0xbf,0xd0,0xc0,0x34,0xbf,0x3a,0x71,0x85,0x40,0xb5,0x8f,0x93,0xc0,0xa3,0xb7,0x1f,0x40,0xeb,0xa0,0x86,0x40,0x60,0xd0,0x3,0x3d,0xc2,0x90,0x47,0xc0,0x58,0xc2,0x23,0x3e,0x38,0xd5,0x97,0x3f,0x63,0x96,0xd,0x40,0x4e,0x8a,0xc2,0xbf,0x32,0xa1,0xdb,0xbf,0x76,0xf7,0x16,0xc0,0x17,0xc1,0x9a,0xc0,0xd,0xc6,0xe0,0x3f,0xbc,0xec,0x71,0xc0,0x7e,0xba,0x19,0xc0,0x20,0xc1,0x52,0xbd,0x76,0xb0,0x76,0x40,0x2,0x43,0x8e,0x40,0x58,0xc1,0x68,0xc0,0x14,0xc4,0x8a,0x40,0x31,0x53,0x8f,0x40,0xf7,0x40,0x81,0x40,0x8,0xe1,0xde,0x3e,0xdb,0x80,0x80,0x40,0x24,0x7a,0x1b,0x40,0x7b,0x9e,0x65,0xc0,0x2a,0xaa,0x28,0xc0,0xa0,0x94,0xc0,0x3d,0x8,0xc7,0x62,0xc0,0x8d,0xbd,0xd2,0xbf,0xa8,0xff,0x80,0x40,0x46,0xfc,0x14,0x40,0x37,0x57,0x8b,0x40,0x20,0x1,0x1d,0x3d,0x13,0x2b,0x23,0xc0,0x96,0xca,0x53,0x40,0x9c,0xba,0xbc,0x3e,0x8a,0x8e,0x57,0x3f,0x56,0x95,0x7,0xc0,0x5a,0x72,0x3,0x40,0xb6,0x55,0x6c,0xc0,0x3c,0x5a,0x7f,0x40,0x8f,0xf9,0x8b,0x40,0x17,0xed,0xe6,0x3f,0x3e,0x31,0x79,0x40,0xd5,0x3a,0x42,0x40,0x57,0x6d,0xf4,0xbf,0xfa,0xc5,0x8a,0xc0,0x74,0x6f,0x28,0x3f,0x9e,0xeb,0x48,0x40,0x26,0xf2,0x2,0xbf,0xd0,0x66,0xd7,0x3e,0x8c,0x2e,0x6d,0x40,0x26,0x20,0x4,0x40,0x8f,0x3a,0x6f,0x40,0xaa,0xf3,0x3b,0x3f,0x36,0x7b,0xf,0x3f,0x1e,0x16,0x99,0xbf,0x8c,0xff,0x57,0xbf,0xaa,0x11,0x2a,0xc0,0xce,0xf1,0x55,0x40,0x88,0xed,0x91,0x40,0x7a,0x83,0xed,0x3f,0x80,0x7a,0x11,0x3e,0x6a,0x44,0xd3,0xbf,0x1d,0xf9,0x9d,0xc0,0xa,0x3,0x6d,0xbf,0x84,0x2b,0x63,0xc0,0x70,0x3e,0x6c,0xc0,0x4,0x76,0x7d,0xbf,0x86,0xcd,0x7b,0xbf,0xbe,0x1a,0x81,0x3f,0x38,0xf1,0x67,0xc0,0x85,0xf8,0x65,0x40,0x18,0xac,0x91,0xc0,0xc2,0x8c,0x17,0xc0,0x26,0xfa,0xf2,0xbf,0x0,0xd5,0x9d,0x3e,0x26,0x48,0x4,0x40,0x12,0xa9,0xa8,0xbf,0xaa,0xc4,0x47,0x3f,0xae,0x82,0x97,0xbf,0xec,0xb7,0xfb,0xbf,0xd8,0xa,0x33,0xbf,0xda,0xdb,0x80,0x3f,0x8a,0x6a,0x9b,0xc0,0xdd,0xbb,0x5e,0xc0,0x19,0x0,0x7a,0x40,0xfd,0xb2,0x10,0x40,0x78,0xe5,0x8,0xbe,0xf8,0xb0,0x21,0x3e,0x54,0xaf,0x30,0x3f,0xf,0xc0,0x94,0x3f,0xec,0x79,0x5a,0xc0,0xbe,0x74,0xae,0xbf,0x1a,0xd8,0x92,0xc0,0x56,0x94,0x7b,0xc0,0xba,0xd6,0x70,0xbf,0xdc,0x1,0x29,0xbf,0x68,0x49,0x7a,0x40,0x5e,0x79,0x5c,0x3f,0xea,0x8b,0x4f,0xbf,0xd0,0xd8,0xd,0xbe,0xb0,0xb7,0x32,0x40,0x31,0xdf,0xc1,0xbf,0xbc,0x49,0x6f,0xbf,0x71,0x63,0x80,0xbf,0x8,0x5,0x81,0xc0,0x6c,0xe5,0x32,0xbf,0x22,0xe9,0x93,0xc0,0x84,0x1,0x2c,0xc0,0x36,0xaf,0x4b,0xc0,0x54,0x60,0x6e,0x40,0xb4,0x63,0x93,0xc0,0x44,0x2a,0x9a,0x40,0x63,0xf7,0xef,0x3f,0xfc,0x40,0x58,0xc0,0xee,0x8e,0x84,0x40,0xb6,0x7,0x8d,0xbf,0x82,0x84,0x87,0xc0,0xa0,0xc1,0x31,0xbf,0xb2,0x25,0x1e,0x40,0xf4,0x90,0x9b,0xc0,0x7c,0xd7,0xbf,0xbe,0xde,0x33,0x2,0x40,0x99,0x6c,0xf9,0xbf,0xc0,0x28,0xe9,0x3e,0xa3,0xd4,0xfa,0xbf,0xf4,0xaf,0x56,0xc0,0xe2,0x9a,0x7a,0x40,0x1c,0x37,0x63,0xc0,0x40,0x1a,0x70,0xbd,0x84,0x28,0xd5,0x3f,0xd4,0xd4,0x32,0xc0,0x62,0x82,0x1a,0x40,0x98,0xdf,0x84,0xc0,0xe3,0xce,0x98,0x40,0xcc,0x83,0xe,0x40,0xf0,0x36,0x35,0xbf,0x24,0x18,0x85,0xc0,0x18,0xe5,0x1d,0x3e,0x91,0x3,0xe3,0x3f,0x86,0xcb,0x2d,0xc0,0xcc,0x32,0x21,0xbf,0xc5,0x73,0x9f,0xc0,0xd5,0xf3,0x9f,0xc0,0x8a,0x3,0xb,0xbf,0x1a,0xe1,0x85,0x40,0xb0,0xf9,0x70,0xbe,0xcd,0xa5,0xc8,0x3f,0x6f,0xd1,0xff,0xbf,0x20,0xfa,0xd0,0xbf,0x16,0xb2,0xc,0xbf,0x2a,0xc5,0x21,0xc0,0x2,0xd0,0x43,0x40,0x3e,0x8d,0x47,0x40,0xa6,0xc4,0x78,0xc0,0xdf,0x4c,0xc4,0x3f,0x90,0x31,0x4,0xc0,0x9c,0x3,0x38,0xc0,0x72,0x28,0x1c,0xbf,0xfe,0x80,0xc6,0xbf,0x74,0x34,0x36,0xc0,0x30,0xa4,0x3c,0x3f,0xc6,0xa5,0x36,0x40,0x3e,0x83,0x45,0xbf,0x34,0x13,0xb3,0xbe,0x68,0xa4,0xc0,0x3e,0x74,0x87,0x9,0xc0,0x62,0x69,0x29,0x40,0xea,0xa0,0x93,0x40,0x58,0xf9,0xe9,0xbe,0x14,0x6,0xae,0x3e,0xf4,0xea,0x80,0x40,0xa8,0xc,0x83,0x40,0x4b,0xc,0x6e,0xc0,0x5d,0x31,0x14,0xc0,0xdc,0xf2,0x9c,0xc0,0x4b,0xff,0x43,0x40,0xd6,0xc2,0x79,0x40,0x72,0xef,0xe8,0xbf,0x87,0x4b,0xcd,0x3f,0xa3,0x7,0x9b,0x3f,0x41,0xa8,0x89,0xc0,0xd1,0x92,0xff,0x3f,0x9a,0x4,0x1d,0x40,0xe0,0x33,0xe1,0x3d,0x98,0x43,0x3,0x3f,0x35,0xb8,0x94,0x3f,0xd4,0x87,0x66,0x40,0xd,0x5f,0x8d,0x40,0x72,0xf8,0x37,0x3f,0xf2,0x66,0x8,0x40,0xbf,0x70,0xa7,0xbf,0x10,0xc9,0x3e,0x40,0xb8,0xbe,0xfb,0xbf,0xe2,0xe2,0x83,0xc0,0xc6,0x22,0x16,0x40,0xe,0x5e,0xed,0x3f,0x76,0xde,0x8c,0x3f,0x62,0x26,0x8,0x40,0xd0,0x50,0x18,0x3f,0x22,0xd1,0xd9,0x3f,0x2,0x65,0x2,0x40,0x72,0x9f,0x2c,0xc0,0x4c,0x2a,0x89,0xbe,0xea,0xe5,0x40,0x3f,0x56,0x55,0x42,0xbf,0x83,0x86,0x86,0xc0,0xf4,0xd6,0xf2,0x3e,0x9a,0x90,0x43,0x40,0xb2,0x22,0x2b,0xc0,0xe2,0x16,0x9d,0x40,0xdd,0xf4,0x91,0x3f,0x20,0x19,0x8,0x40,0xe,0x22,0xf7,0xbf,0xd0,0xe1,0x82,0xc0,0xbf,0x2e,0xee,0xbf,0xd8,0x6c,0x1c,0x3e,0xca,0xd0,0x11,0xc0,0x9a,0x7d,0x8e,0x40,0x8e,0xcf,0x4c,0xc0,0x30,0x87,0x57,0xc0,0xfb,0x2,0xe3,0xbf,0x58,0x8b,0x8f,0x40,0x54,0x52,0x12,0xc0,0x65,0x5,0x94,0x40,0x2f,0xc8,0x19,0x40,0xac,0x7c,0x42,0xbf,0xab,0x81,0x25,0x40,0x73,0x21,0x18,0x40,0x9f,0xe0,0x22,0xc0,0x82,0xc2,0x83,0xbf,0xdd,0xfa,0x9a,0x40,0x6a,0x76,0x37,0x40,0x68,0x4b,0x1c,0xc0,0xc4,0x16,0xac,0xbf,0x82,0x5b,0x33,0x40,0xf6,0x73,0x22,0x40,0x10,0xed,0xca,0x3e,0xde,0xe6,0x4d,0xc0,0x68,0x5,0x6c,0xc0,0x90,0x15,0x87,0xbf,0x93,0x4e,0xeb,0x3f,0x6,0x76,0x8,0xbf,0xf0,0xc5,0x85,0xc0,0xd4,0xd9,0x9c,0xbf,0xe0,0xb4,0x9f,0x40,0x3a,0x3e,0x84,0xc0,0xba,0x59,0x78,0xc0,0x56,0x29,0x49,0x40,0x7d,0x33,0x9f,0x40,0x0,0xea,0x99,0xc0,0xcd,0xb5,0x90,0xc0,0x6e,0x1e,0xc8,0xbf,0x8d,0x86,0x9f,0x40,0x3a,0x9e,0x35,0xc0,0xf8,0xe0,0xda,0x3e,0xc0,0x9c,0x82,0x40,0xd2,0x90,0xe2,0xbf,0x10,0x44,0xc4,0xbf,0x6e,0xcb,0x56,0xc0,0xc8,0x95,0x44,0x3e,0x2e,0x57,0x95,0x40,0x25,0xda,0x2,0x40,0xc0,0xec,0x60,0x40,0x70,0x9a,0xa9,0xbe,0x34,0x50,0x4b,0xbf,0x5e,0xad,0x64,0xbf,0xd0,0x82,0x36,0x40,0xf8,0xd7,0x27,0xbf,0xdb,0xab,0x88,0xc0,0x21,0xbc,0xe0,0xbf,0x9c,0x77,0xfa,0x3f,0xe7,0xfe,0x9b,0x40,0xd0,0xbe,0x68,0xbf,0x64,0x4e,0x8b,0xc0,0x29,0x9f,0x6b,0xc0,0x32,0xc7,0x7b,0xc0,0x3c,0xfe,0x0,0x40,0x96,0xe1,0x6b,0x40,0x2a,0x45,0xbd,0x3f,0x31,0xab,0xdc,0x3f,0x47,0x79,0x50,0x40,0x5f,0xca,0x5a,0x40,0x14,0x15,0x3f,0x40,0xa6,0xf1,0x32,0x40,0x70,0x2d,0xad,0x3f,0x15,0x2c,0x25,0x40,0xa8,0x92,0x5b,0xc0,0x1e,0x1f,0x4f,0xc0,0x8e,0x1f,0xac,0x3f,0x42,0x32,0x47,0x3f,0xd6,0xa8,0x8c,0xc0,0x96,0x1e,0x69,0xc0,0x7e,0xbe,0x7e,0xc0,0xd5,0x26,0x7e,0x40,0x2c,0x37,0x51,0x40,0xa0,0x6e,0x28,0xc0,0xaa,0x20,0x41,0x3f,0x65,0x34,0x93,0xbf,0x9a,0x17,0x8b,0x40,0xe6,0xea,0x90,0xc0,0xf0,0x73,0x69,0xc0,0xdf,0x35,0x85,0xc0,0xac,0x3b,0x3a,0x40,0xca,0xf6,0x1f,0xc0,0x5d,0x98,0x3e,0x40,0x3e,0x57,0xd8,0x3f,0xe2,0x69,0x1c,0xc0,0xe5,0x68,0xac,0xbf,0x9a,0x7f,0x1,0xc0,0xff,0x2c,0xd,0x40,0x8f,0x54,0x0,0xc0,0x3a,0x32,0xd9,0x3f,0xc0,0xe2,0xb6,0x3e,0xd6,0x8d,0x7f,0xc0,0xe4,0x27,0x49,0xc0,0x2e,0xe1,0x5d,0xc0,0xa8,0xad,0x27,0x40,0xe,0xad,0x8a,0x3f,0xb8,0xbc,0x0,0xbe,0x8c,0x8a,0x3e,0xc0,0x79,0x87,0x9e,0xc0,0xbe,0x7c,0xe2,0xbf,0xdb,0xe8,0x74,0xc0,0x6d,0x25,0x9f,0xc0,0x5,0x9a,0x98,0xc0,0xb0,0x5,0x51,0xc0,0xe2,0x8a,0x9b,0xc0,0x25,0x81,0xc7,0x3f,0x6f,0x78,0xef,0x3f,0x51,0xfb,0x0,0x40,0x78,0x47,0x9f,0xc0,0x2,0xe0,0x45,0x40,0xaa,0x8d,0x79,0x3f,0xd6,0xa0,0x23,0x40,0x11,0x4c,0x9d,0xbf,0x2e,0xab,0x19,0x40,0x14,0xbf,0x97,0xc0,0x19,0xfd,0xd9,0x3f,0x97,0xbf,0x7d,0x40,0x56,0x84,0x6,0x40,0x6c,0xd1,0x96,0xc0,0xbb,0xa9,0xb3,0xbf,0x9e,0xf4,0x1e,0xbf,0x4c,0xaa,0x27,0x40,0x67,0x2d,0xf2,0xbf,0x24,0x19,0x38,0x3f,0x2c,0xac,0xe0,0xbf,0xba,0x56,0x4b,0xbf,0x20,0xd7,0xcb,0xbd,0xd0,0xbf,0x37,0xc0,0x23,0x1c,0x5e,0xc0,0x0,0x16,0x84,0x40,0x90,0x6e,0x86,0x40,0xb8,0x1,0x1b,0xbe,0xb5,0x7d,0x8a,0x40,0x60,0x96,0x76,0x40,0xe4,0x8f,0x49,0xc0,0x4d,0x4f,0xfe,0xbf,0x81,0xca,0x5b,0xc0,0xe,0xeb,0xce,0x3f,0x48,0x7c,0x1,0x3e,0x12,0x89,0x2f,0xbf,0xe4,0x96,0x6d,0x40,0x37,0x28,0xfa,0xbf,0x12,0x22,0x2f,0xc0,0xf8,0x7a,0x63,0xc0,0x16,0xcb,0x22,0xc0,0x6c,0x36,0x9a,0x40,0xbb,0x94,0x1b,0xc0,0x1d,0x19,0xb0,0xbf,0x85,0x3a,0x10,0x40,0x42,0xc5,0x75,0xc0,0xd,0x3a,0x42,0xc0,0xcc,0x85,0x6b,0x40,0xb0,0x77,0xf5,0xbf,0xe3,0xc,0x26,0xc0,0xb0,0x9a,0x25,0xbf,0xd6,0x63,0x36,0xbf,0xb0,0xec,0x69,0x3f,0x3a,0xa3,0xea,0x3f,0x1a,0xbc,0x76,0xc0,0xe2,0x66,0x91,0x40,0xda,0x1e,0x98,0xc0,0x1e,0xc2,0xd8,0x3f,0x7f,0x94,0xb4,0xbf,0x74,0x22,0x7,0xc0,0xd3,0xaa,0x95,0x40,0x3c,0x2f,0x9a,0xc0,0x70,0xd6,0xae,0x3e,0x14,0xd,0x4d,0x40,0x0,0xa,0x8f,0x40,0x35,0x44,0x87,0xc0,0x28,0x38,0x1a,0x3f,0x0,0x4d,0x9e,0x40,0x82,0xb9,0x9c,0xc0,0x3e,0x52,0x9c,0x3f,0xb1,0x80,0x48,0xc0,0x7e,0xca,0x4f,0x3f,0xc7,0xbb,0x90,0xc0,0xec,0x70,0x1d,0x40,0x22,0xfa,0x8d,0xbf,0xe8,0x3e,0x3f,0x40,0x0,0xfc,0x99,0xbd,0x62,0x73,0x36,0xbf,0x99,0x61,0x9b,0xbf,0xaa,0x80,0x92,0xc0,0x6a,0xec,0x7,0xc0,0x88,0x9,0x2a,0x3e,0x1e,0x91,0x77,0xc0,0x8a,0x6a,0x8c,0x40,0xf8,0x1d,0x50,0xc0,0xc3,0x56,0xf9,0xbf,0x46,0x2c,0x2b,0xbf,0x2a,0x9c,0x81,0xc0,0x20,0xcf,0x21,0xbd,0x4,0x18,0x1a,0xc0,0x1e,0xed,0x85,0xc0,0x0,0x2c,0xfb,0x3d,0x69,0xa5,0x8d,0x40,0x7d,0x99,0x9d,0x3f,0x61,0xf7,0x83,0x40,0x40,0x47,0x48,0xbd,0x90,0x62,0xdf,0xbf,0xa,0xf4,0x80,0x40,0xde,0x67,0x2a,0xc0,0x4e,0x4,0x94,0xc0,0x7a,0x12,0x8c,0x3f,0xdb,0x7a,0x1f,0x40,0xe3,0x48,0x3f,0xc0,0xd7,0x41,0xe1,0x3f,0xad,0xf,0xe3,0xbf,0x84,0x4e,0x1b,0xbf,0x21,0xb5,0x8d,0xbf,0x2e,0xe4,0x88,0xbf,0xa6,0x2f,0x82,0xc0,0x7e,0xda,0x9c,0x3f,0x17,0x59,0xa8,0xbf,0xf2,0xae,0x74,0x40,0x84,0xa5,0x55,0x3f,0xf4,0xd9,0x82,0xc0,0xfc,0x70,0x73,0xc0,0xb8,0xc5,0x26,0xc0,0x9e,0x3d,0x19,0x40,0x4a,0x9b,0x4e,0xc0,0x2e,0x64,0x12,0xc0,0x28,0x62,0x68,0x3f,0xf6,0xda,0x5d,0xc0,0x7c,0x93,0x1d,0xc0,0xeb,0x15,0x91,0x40,0x96,0x2e,0x29,0xc0,0xdb,0x3a,0xd5,0xbf,0x3a,0xdd,0x64,0x40,0xf2,0x69,0x8f,0x3f,0xfa,0x2a,0x7b,0x40,0x59,0xf5,0x8c,0xc0,0x58,0xf3,0x1f,0x40,0x40,0xc9,0x43,0xbf,0xc0,0x1,0x4d,0xc0,0xc,0xe,0x9,0xc0,0x8d,0xc3,0x9a,0xc0,0x3a,0x5e,0x5d,0x40,0xa0,0x9b,0x75,0xbf,0x1a,0xe3,0x9c,0xc0,0xac,0xd5,0x88,0x40,0x5,0x44,0x4f,0x40,0x80,0x50,0x4,0x40,0xcb,0x98,0x9c,0x40,0x19,0x7d,0x90,0x40,0x84,0x87,0x95,0x40,0xba,0x48,0x8f,0x40,0x44,0x7,0x82,0x40,0x86,0x8b,0xa7,0x3f,0x84,0x63,0xd6,0xbe,0xc8,0xb5,0x42,0x3e,0x1f,0xfc,0x4,0xc0,0xbe,0x5a,0x16,0x40,0x58,0x54,0x14,0x3e,0x1f,0xfe,0x96,0x3f,0x93,0x20,0x4e,0xc0,0x6e,0xfa,0xf0,0xbf,0xa5,0xe7,0x6f,0x40,0x40,0xfd,0xf8,0x3e,0xd8,0xdb,0xdc,0x3f,0x62,0xae,0x8b,0xc0,0x48,0x8,0x9,0xc0,0x98,0x4e,0x2,0xbe,0x46,0x51,0x6,0xbf,0x36,0x45,0x4c,0x40,0x6a,0x24,0xc1,0xbf,0x1c,0x89,0x85,0x40,0xdc,0x8f,0x77,0xbf,0x64,0xed,0xf8,0x3f,0xfa,0x49,0x61,0xc0,0x3e,0x42,0x59,0x3f,0x6b,0xfd,0x9b,0xc0,0x36,0x47,0x89,0xc0,0x3a,0xcd,0x4c,0xc0,0x25,0x2c,0xb3,0x3f,0x0,0x6b,0xc6,0x3e,0xac,0xc4,0xf7,0x3e,0x6a,0x4,0xc,0xbf,0xa0,0x70,0x86,0x40,0x6b,0xbc,0x9c,0x40,0x7a,0xe6,0x7,0x40,0x49,0x7b,0x7e,0x40,0x70,0xa,0x7d,0xbe,0xcb,0x48,0xeb,0xbf,0x6,0xd8,0x78,0x3f,0x55,0x69,0x52,0x40,0x7a,0xd3,0x45,0xbf,0xc8,0xb4,0x75,0xc0,0xdc,0x59,0xd3,0x3f,0x64,0x25,0xa3,0xbf,0xf7,0x9,0x1a,0xc0,0x82,0x1e,0x4a,0x40,0xc0,0xc8,0x2d,0xbe,0x80,0xeb,0x36,0xc0,0xa4,0x7a,0x3f,0xc0,0x80,0xae,0x96,0x40,0xab,0x24,0x50,0x40,0x74,0x75,0x65,0xc0,0x0,0xa4,0x1c,0x3b,0x10,0x8a,0xdd,0xbd,0x54,0x88,0x18,0x40,0xb5,0x8,0x89,0xc0,0x50,0x30,0x98,0x3d,0xe2,0x3d,0xd5,0x3f,0x56,0xd9,0x22,0x40,0x34,0xd7,0x5,0x3f,0x5a,0x9d,0x1e,0xc0,0x32,0x9a,0x99,0xc0,0xdc,0xf6,0x2c,0x40,0xfa,0x12,0x92,0x40,0x8b,0x3a,0xc1,0xbf,0x11,0xfc,0x8e,0xc0,0x44,0x41,0xbb,0x3f,0xfe,0x59,0x60,0xc0,0xaa,0x13,0x51,0xc0,0x78,0x74,0xae,0x3f,0xb0,0x1a,0xf3,0xbe,0xf8,0x21,0xae,0xbe,0x1,0x83,0x8f,0x40,0xd2,0x83,0x60,0xbf,0x87,0xc9,0x42,0x40,0xd7,0x2e,0xc7,0xbf,0x3,0x1d,0x6e,0x40,0x11,0x3f,0xc3,0x3f,0x61,0x93,0x8e,0x40,0x6,0x38,0xdf,0x3f,0x0,0xb3,0xe2,0xbf,0x26,0x79,0xb,0x40,0x9,0x51,0x88,0x40,0x40,0x9a,0x72,0x3f,0x78,0x87,0x13,0x40,0xa0,0x20,0x61,0xc0,0x3c,0x63,0x2d,0x40,0xa,0x3f,0x97,0xc0,0x86,0x71,0x8d,0x40,0xe7,0x2a,0x4,0x40,0x34,0x78,0xa8,0x3e,0xa5,0xc0,0x95,0xc0,0x6e,0x7f,0x91,0x40,0x91,0xb,0x4c,0x40,0xbb,0x7f,0x93,0x40,0x49,0x97,0xfb,0x3f,0xa3,0x89,0xd7,0x3f,0xa,0xc8,0xa5,0xbf,0xf5,0x22,0x3,0xc0,0xa9,0xb2,0xfd,0x3f,0x96,0xf4,0xdd,0x3f,0x98,0xfd,0x25,0xbe,0x50,0x98,0x4b,0x3f,0x45,0xd9,0xdb,0x3f,0xf8,0x9d,0x9a,0xc0,0xb6,0x7e,0x8d,0xc0,0xd8,0x5e,0xaa,0xbf,0x6e,0xf0,0x59,0x40,0x50,0x1f,0x1c,0x40,0xc3,0xb6,0x98,0xc0,0xbc,0x28,0xc0,0xbf,0x80,0x4d,0x7,0xbf,0xc7,0x33,0xd2,0x3f,0x3e,0xe6,0x82,0x40,0x0,0xf7,0xdf,0x3d,0x62,0x15,0x79,0xc0,0x44,0x14,0x9d,0x3e,0x9d,0x24,0xf7,0xbf,0xbf,0x90,0x43,0xc0,0xae,0x3e,0x31,0x40,0x74,0xf8,0x2b,0xbf,0xae,0x34,0x17,0x40,0xb0,0x2b,0x79,0x40,0xd8,0x99,0xfb,0x3e,0x54,0x3d,0x34,0x40,0x9e,0x21,0x17,0xc0,0x8,0xa1,0x32,0x40,0x98,0x8b,0x4c,0x3e,0x40,0xa6,0x54,0x40,0x32,0xf8,0x98,0x40,0xbe,0x10,0x72,0xc0,0x2f,0xe4,0x97,0x40,0x9c,0x46,0x74,0x40,0x1a,0xe4,0x80,0xc0,0x4d,0x9c,0xbb,0x3f,0xdc,0x41,0x82,0xc0,0x6c,0x9b,0xcf,0x3f,0x6c,0xf0,0x45,0x3f,0xe2,0xbc,0x98,0xc0,0x3,0x55,0xe8,0x3f,0x9d,0xcb,0xaf,0xbf,0x0,0x7c,0x9f,0x40,0x4a,0x29,0x9c,0x40,0x38,0xef,0xdc,0x3f,0xdc,0x3c,0x7c,0x40,0xd7,0x27,0xe7,0x3f,0x2a,0x60,0x97,0x40,0x30,0x5b,0xec,0xbe,0x20,0x2d,0x9e,0x3f,0x26,0x6f,0x53,0xbf,0xb0,0x14,0xb3,0xbd,0x5,0x11,0xc1,0xbf,0x78,0x48,0xfd,0xbf,0xe8,0x1c,0x39,0x40,0x18,0x52,0x9,0x40,0x96,0x42,0xd,0xc0,0x1c,0x2,0x8d,0xc0,0x62,0x77,0x1c,0x40,0xf2,0x2d,0x93,0xc0,0xf0,0x90,0x62,0xbe,0xbc,0xab,0x89,0xc0,0x12,0xf9,0x85,0x40,0xc8,0x48,0x82,0x40,0xa4,0x7e,0x83,0xc0,0xdf,0xc1,0x94,0xc0,0xf8,0x32,0x3d,0xc0,0x37,0x9a,0xb0,0x3f,0x38,0x6,0x20,0xc0,0xda,0x69,0x98,0xbf,0xa,0x3a,0xa2,0xbf,0x4e,0xcb,0x6a,0x3f,0xa2,0x5c,0x17,0xc0,0x70,0x8a,0x11,0x40,0xde,0xfc,0x64,0xc0,0x18,0xe0,0xe3,0xbe,0xc0,0x1d,0x86,0x40,0x79,0xb2,0x30,0xc0,0x87,0x82,0x75,0x40,0x16,0x8c,0x26,0x40,0x4d,0xbb,0xce,0xbf,0xe3,0xed,0xdd,0x3f,0x2c,0x2f,0x58,0xc0,0x14,0x9,0xce,0x3e,0x6a,0x49,0xb5,0x3f,0xd0,0x64,0x8a,0x40,0xb4,0x10,0x33,0xc0,0xb5,0xfd,0x35,0xc0,0xac,0xb6,0x1f,0xc0,0x1b,0xde,0x9b,0xc0,0xf3,0x6c,0x81,0x3f,0x74,0x71,0x84,0xc0,0xdb,0xcd,0xab,0xbf,0x31,0xc7,0xe,0xc0,0xe0,0x21,0x8f,0x3e,0xaa,0x24,0xc2,0x3f,0x16,0x8a,0x68,0xc0,0xf8,0xef,0xbc,0xbf,0x8c,0x1d,0xf6,0xbe,0x81,0xfc,0x38,0xc0,0xed,0xd8,0x93,0x3f,0xf8,0xec,0xec,0x3f,0xd8,0xe,0x64,0xc0,0xc,0x9f,0x7b,0x40,0x58,0x64,0x63,0x40,0x90,0x45,0xc0,0xbf,0xfa,0x73,0x3e,0x3f,0xa8,0xd9,0x1b,0x3f,0xb4,0x9a,0x30,0xbf,0xa1,0xc3,0x56,0xc0,0xe0,0xd7,0x83,0x40,0x14,0x79,0x1d,0x40,0xfe,0xb4,0x85,0xc0,0x4a,0x1,0x78,0xc0,0x1d,0x27,0x98,0x40,0x56,0x4b,0x4c,0x3f,0x86,0x9,0x93,0xbf,0x46,0xe0,0x58,0x40,0xcb,0xdb,0xb7,0x3f,0xca,0xbd,0xe5,0x3f,0x5a,0xde,0x7d,0x40,0x74,0xcd,0xc7,0xbe,0xc5,0x75,0x98,0x40,0x72,0xc7,0x60,0xc0,0x54,0xb8,0x42,0xc0,0x9a,0xe1,0x58,0x3f,0xea,0x65,0x1b,0xbf,0xc6,0x9b,0x36,0x40,0x8a,0x8,0xae,0xbf,0x1c,0x47,0x49,0x3f,0xfc,0xfb,0x84,0xbf,0x27,0x3d,0x70,0x40,0xb8,0xea,0xa7,0xbe,0x80,0x2d,0x9d,0x3d,0xe,0x6e,0x6a,0x40,0x6c,0x8c,0x9b,0x40,0xc7,0x18,0x99,0x40,0x92,0x6f,0x9c,0xc0,0xc6,0xd1,0x34,0xc0,0x94,0xf9,0x8a,0xbf,0xac,0x1f,0x84,0xbf,0xa0,0x19,0x39,0x40,0xea,0x86,0x10,0x40,0x88,0x90,0xd2,0xbe,0x40,0x95,0xf2,0x3d,0xf7,0x1f,0x89,0x3f,0xd8,0xed,0x89,0x40,0x8,0xd4,0x25,0x40,0x3b,0x69,0x21,0xc0,0xf,0xed,0x23,0xc0,0xf2,0x65,0xca,0x3f,0x7a,0x77,0x1,0xbf,0x5,0x4b,0x4d,0xc0,0x30,0xdc,0x9a,0xc0,0x1c,0x59,0x37,0x3f,0x14,0xe5,0xba,0xbf,0xfe,0x2f,0x3a,0xc0,0xe2,0xc7,0x70,0x3f,0x35,0xce,0x9b,0x40,0xa0,0xe4,0x84,0x40,0x96,0x73,0x36,0x40,0x44,0x58,0x71,0xc0,0x2e,0xa2,0x36,0x40,0x82,0x82,0x25,0x40,0x15,0x88,0xd5,0x3f,0xc,0x6d,0x9f,0xbf,0x30,0x4f,0xb2,0xbd,0x4a,0x91,0x2d,0xc0,0x27,0x2a,0x90,0xbf,0xe6,0xb4,0x52,0xbf,0x20,0x52,0x35,0xbf,0xf0,0x3a,0x9f,0xc0,0xb4,0xc8,0xe1,0x3f,0x1b,0xe9,0x82,0xc0,0x8c,0x4e,0x6f,0xc0,0xda,0x9,0x2,0x40,0x2,0xf9,0x82,0xc0,0x31,0xa3,0x98,0x40,0x14,0x35,0x99,0x40,0x69,0x61,0xcb,0xbf,0x94,0x98,0x5c,0xbf,0x50,0xd1,0x74,0xc0,0xdc,0x43,0x9e,0x3e,0xa4,0x7,0x6a,0x3f,0x70,0x8a,0x2f,0xc0,0x85,0xb1,0xc8,0x3f }); - // [-0.19242525 -1.4738947 -0.01729846 -4.8466244 -3.5221612 0.66183805 4.828 - Tensor *b = NN_tensor(1, (size_t[]){ 71 }, DTYPE_F32, (uint8_t[]){ 0x20,0xb,0x45,0xbe,0x95,0xa8,0xbc,0xbf,0x80,0xb5,0x8d,0xbc,0x8c,0x17,0x9b,0xc0,0x17,0x6b,0x61,0xc0,0x38,0x6e,0x29,0x3f,0xfc,0x83,0x9a,0x40,0xd7,0xab,0x3d,0xc0,0x76,0x25,0x4d,0x40,0x20,0x4a,0xea,0x3e,0x8d,0xac,0x9,0xc0,0x0,0x83,0xb3,0x3b,0x86,0x6a,0x19,0x40,0x42,0x48,0x18,0x3f,0x90,0xa2,0x8d,0x40,0xe6,0x3f,0x72,0xbf,0x9c,0xb0,0x55,0xc0,0x7,0x95,0x90,0x40,0xd0,0xc8,0xb6,0xbf,0x48,0xa,0x4b,0x40,0x2c,0x12,0x53,0x40,0x98,0xb1,0x62,0x3f,0xd0,0x51,0x83,0xc0,0x31,0x14,0x9d,0xc0,0x6e,0xea,0x17,0x40,0x71,0x79,0x9c,0x3f,0x45,0x32,0x3a,0x40,0x64,0x6,0x8d,0xc0,0x28,0x59,0x30,0xbf,0x7e,0x3d,0x8a,0x40,0x2e,0x1f,0x28,0x40,0x28,0xf7,0x84,0x40,0x2b,0x3d,0x7b,0x40,0xff,0x8,0x9d,0xbf,0x2e,0xea,0x59,0xc0,0xf0,0xcf,0x3e,0xc0,0x6f,0x5c,0xd9,0x3f,0xf7,0x9,0xfe,0xbf,0x40,0x72,0xa2,0x3c,0x6c,0x44,0x4c,0x3f,0x8,0xa6,0x46,0x40,0x12,0x77,0x32,0x40,0x14,0xa3,0x36,0x40,0x90,0x17,0x50,0x3e,0xe6,0xa7,0x34,0x40,0xeb,0xce,0x15,0xc0,0x4d,0x14,0x0,0xc0,0x9e,0xaa,0x4a,0xbf,0x4,0xd5,0x39,0xc0,0x3c,0xb8,0x8e,0x40,0x30,0x24,0x44,0xbf,0x49,0x10,0xba,0x3f,0x68,0x2f,0x1f,0xbe,0x70,0xd,0x8c,0xbd,0x9e,0x8e,0x2a,0xc0,0xb0,0xf2,0xbb,0xbe,0x85,0x1e,0x8f,0xc0,0xee,0x6,0x19,0xc0,0x6c,0x42,0x76,0x40,0x7a,0x12,0x96,0xc0,0x52,0xa3,0x52,0x3f,0x5c,0xeb,0x4b,0x3f,0x68,0x23,0x99,0xc0,0xbe,0x0,0x7a,0x3f,0xac,0x94,0x14,0x40,0x2f,0xc5,0x67,0x40,0xc0,0x95,0x6f,0x3f,0xf4,0x22,0x7a,0x40,0xc8,0xb7,0x40,0x3e,0xae,0xda,0xf3,0x3f,0xd,0xef,0xbc,0x3f }); - - - // [[[[-18.022787 -41.7714 19.320057 ... 42.576836 4.6415687 -29.2 - Tensor *golden = NN_tensor(4, (size_t[]){ 1, 16, 16, 71 }, DTYPE_F32, (uint8_t[]){ 0xab,0x2e,0x90,0xc1,0xea,0x15,0x27,0xc2,0x7a,0x8f,0x9a,0x41,0x2c,0xdf,0x87,0xc1,0x47,0xf9,0xa2,0xc1,0x40,0xb9,0xac,0x41,0x38,0x47,0x36,0xc2,0x3e,0x1a,0xcd,0x3f,0x8b,0xb9,0xc7,0x41,0xb0,0x37,0xf,0x41,0x46,0x86,0xcd,0xc1,0xe3,0x93,0xfb,0xc0,0x7d,0x8,0xb4,0xc1,0x58,0x8e,0x6d,0x42,0x24,0x1d,0x90,0xc1,0x74,0x34,0x44,0x42,0xe4,0x9a,0xe9,0x3f,0x8c,0x61,0x67,0xc1,0xa,0x9b,0x38,0xc2,0x40,0xc7,0x87,0xbd,0xd4,0x1f,0x33,0x41,0x62,0xd7,0xd,0x42,0x93,0xb6,0xd7,0xc1,0x27,0x4d,0xb1,0xc1,0xe0,0xba,0xa2,0x41,0x5f,0x12,0xed,0x40,0x3e,0x71,0x32,0x42,0x4e,0x81,0x34,0xc1,0x75,0x11,0xa3,0xc1,0xb0,0x8f,0xdc,0xbe,0x5b,0xb4,0xad,0x41,0x2e,0xf3,0xcc,0xc0,0x75,0x2c,0xb6,0x40,0x2e,0xd7,0xb,0x42,0x83,0xcf,0x2f,0xc2,0xa6,0x59,0x87,0xc2,0x28,0x27,0xcb,0xc1,0xe9,0x2f,0x86,0xc1,0xe8,0x28,0xd1,0xc0,0x90,0x74,0xe,0xc0,0x48,0xe8,0xa2,0x3e,0x2e,0x4f,0x94,0xc2,0xe0,0x8,0x8d,0x41,0xf9,0x3c,0x8b,0x42,0xa9,0xc5,0xb0,0xc0,0x21,0xd3,0x6c,0x40,0x20,0x82,0x5,0xc2,0x8e,0xe1,0x87,0x41,0x90,0xa8,0x15,0xc2,0xca,0xeb,0x1f,0xc1,0xcc,0xf4,0xf9,0xc1,0x37,0xa0,0xbc,0xc1,0xf2,0xed,0x3c,0x42,0x9d,0x70,0xcd,0x41,0x39,0xb4,0xff,0xc0,0x16,0xeb,0x7e,0xc1,0x68,0xd8,0x13,0xc1,0x42,0xdb,0x33,0xc2,0xc2,0xc6,0xb2,0x41,0x9c,0x73,0x78,0xc2,0x5a,0x51,0x82,0xc2,0x7c,0xf1,0x4b,0x40,0x69,0x9e,0x32,0xc2,0x4f,0xd5,0x2,0xc1,0x2e,0x60,0xc1,0x41,0x2f,0x95,0x90,0x42,0x6c,0x3e,0xb8,0xc1,0x5c,0x78,0xde,0x41,0xae,0x4e,0x2a,0x42,0xbb,0x87,0x94,0x40,0xb3,0x48,0xea,0xc1,0xcd,0xab,0xf,0x40,0x83,0x17,0xf4,0xc1,0x22,0xb,0x14,0xc1,0x42,0xf4,0x1a,0xc2,0x15,0x7d,0x8f,0xc2,0xa2,0x7d,0xf7,0xc1,0xb1,0x9c,0x1a,0x41,0xdd,0x6a,0x10,0xc2,0xb,0x4,0x88,0x42,0xde,0x92,0x4e,0x42,0xf0,0x4,0x44,0xc2,0xf2,0x21,0x92,0x3f,0xd0,0xa,0xd7,0x41,0x70,0xf9,0x81,0x42,0xf4,0x38,0xb5,0xc1,0x68,0xbd,0x27,0x42,0x16,0xe1,0xf5,0xbf,0xa2,0xc5,0x74,0x42,0x3f,0x97,0x30,0x41,0xaa,0x13,0x18,0xc2,0xd7,0x37,0x4a,0xc1,0xc8,0x53,0x39,0xc1,0x5c,0x1b,0xd7,0x40,0xb6,0x58,0xd,0x41,0xa6,0x19,0x12,0xc2,0xe0,0xfb,0x56,0xc1,0x42,0x29,0x32,0xc2,0xe4,0x9d,0xce,0xc2,0x75,0x8,0xc4,0x41,0xd8,0x12,0x8f,0x41,0xf0,0xc3,0xed,0x40,0x27,0x28,0xb5,0x40,0x28,0x1,0x23,0xc1,0x98,0xad,0x55,0x42,0x72,0x6d,0xf4,0x41,0x89,0xe4,0xbd,0x41,0x64,0xe9,0x9b,0xbe,0xbf,0x13,0x60,0x42,0x39,0xcb,0xd8,0x41,0xcd,0xd5,0x15,0xc1,0x7f,0x90,0xdb,0x41,0x7b,0x8f,0x9d,0x40,0x8a,0x22,0x52,0x41,0x9a,0xce,0x20,0x42,0x51,0xa3,0x2c,0x42,0x37,0xc5,0xc4,0x41,0xbe,0x7e,0x89,0x41,0x42,0xb7,0x89,0x41,0xca,0x24,0xac,0x41,0x98,0x4e,0x72,0xbf,0xbe,0xdd,0x50,0xc0,0x3f,0x8d,0xb7,0xc1,0x6d,0x29,0xdc,0x41,0xf5,0xb7,0x81,0xc1,0x2a,0x69,0xb6,0xc1,0x8d,0x4a,0x5f,0x42,0xf9,0x76,0x2b,0xc2,0x2a,0x9e,0x16,0xc2,0xdf,0xa,0x51,0x42,0x59,0x71,0x39,0xc2,0x3b,0x45,0x26,0xc2,0x7a,0x61,0xd8,0x41,0x4c,0xe7,0xd2,0x41,0x16,0xd,0x3f,0x42,0x90,0x49,0xf3,0xc1,0xf,0x97,0x49,0xc2,0x40,0x54,0x5a,0x42,0x2e,0x38,0xba,0xc2,0x65,0x41,0x9a,0x41,0xb0,0x35,0xe8,0x41,0xff,0xdb,0x45,0xc2,0x7d,0xa4,0x7e,0xc2,0xb0,0xdc,0xe4,0xc1,0x40,0x4,0xc5,0xc1,0x84,0xee,0x47,0xc2,0x5d,0xbf,0x2,0x40,0xae,0x19,0x5,0xc2,0x9a,0xc,0x64,0x41,0x1d,0x95,0x43,0xc1,0xd8,0x39,0x32,0x42,0x79,0x30,0x3c,0x42,0x3a,0x6e,0x41,0xc2,0x47,0xfa,0x2c,0xc2,0xc6,0x57,0x6,0x42,0xb9,0x7b,0xc8,0x41,0x8,0x8e,0xce,0x40,0x10,0xef,0x4d,0x42,0xf6,0xe7,0xad,0xc0,0x3e,0x54,0x3b,0x42,0x6e,0xc4,0x2c,0x40,0xfb,0x87,0x8d,0xc1,0x6a,0xbc,0xd3,0xc1,0xc5,0x62,0x26,0xc2,0x6e,0x34,0x16,0x42,0x6e,0xe3,0xb6,0xc1,0x64,0x2c,0x11,0xbf,0xbf,0xbc,0xf2,0x41,0x8c,0x62,0x36,0x42,0xf6,0xd,0xbe,0xc1,0x74,0x40,0x6d,0x41,0x82,0x19,0x8e,0x40,0x36,0x8b,0xcc,0x40,0x67,0x1c,0x52,0xc2,0x8c,0xbc,0x17,0x42,0xb9,0x1c,0x20,0x42,0xe7,0xa1,0xd1,0x40,0x43,0x91,0xbf,0xc1,0xca,0xa1,0xd9,0x41,0x8e,0x99,0x6,0x40,0xc5,0x73,0x4b,0x41,0x7d,0x45,0xec,0xc1,0x2e,0x3d,0x6b,0x42,0xbf,0x4a,0xe1,0x41,0xc6,0x5d,0x29,0xc0,0x7f,0xe8,0x4c,0x3f,0xb0,0xac,0xb2,0xc1,0x44,0xb9,0x43,0xc1,0x61,0x8c,0x8,0x42,0xb8,0x4d,0x7f,0x42,0xe5,0x36,0xf1,0xc0,0xca,0x6c,0x30,0xc2,0x6,0x8c,0xdc,0x41,0x58,0x27,0xd5,0xc1,0xe6,0xcb,0x77,0xc1,0xd4,0x86,0x70,0xc1,0x30,0x44,0x18,0x40,0xf8,0xc9,0x64,0x40,0x0,0xee,0x8c,0xc0,0xc0,0x20,0xc2,0xc1,0xf6,0xc0,0x7c,0x41,0x8d,0x38,0x72,0x42,0x15,0x59,0x77,0x41,0x99,0x6e,0x3,0xc2,0xbe,0xa5,0x91,0xc2,0x36,0xf9,0x45,0x42,0x46,0xa2,0xeb,0x40,0xe,0x58,0x5,0xc2,0xbc,0xdb,0x48,0xc1,0xcf,0x38,0x47,0xc2,0x5e,0x17,0x47,0xc1,0xe2,0x63,0x6,0xc2,0x9b,0x1d,0xa,0xc2,0xa8,0x15,0xea,0xc1,0x96,0x23,0x3e,0x41,0xb2,0x7d,0xe3,0xbf,0xb8,0xa4,0x9a,0xc1,0xf9,0xf9,0x82,0x41,0x47,0x88,0x60,0xc2,0xfc,0x6f,0x8c,0x3f,0x49,0xb5,0x3d,0xc1,0xa4,0x93,0x62,0x41,0xd8,0xf5,0x8f,0xc1,0x4f,0xd1,0x9e,0xc1,0xda,0x1f,0xec,0x40,0x7b,0xb4,0xc2,0x41,0xbf,0x2c,0x4d,0xc1,0xea,0x6f,0x44,0xc1,0xe9,0xbc,0xf7,0x3f,0x2c,0x93,0xc3,0xc0,0x97,0xd5,0xcf,0x40,0x76,0x43,0x34,0x42,0x30,0xd3,0x33,0x41,0xcb,0x8a,0x7,0xc2,0x92,0x74,0x7d,0xc1,0x7c,0x95,0xc8,0x40,0x54,0x47,0x6a,0xc2,0x82,0xbf,0x0,0xc2,0x4d,0x97,0xb5,0x41,0xe9,0xcf,0xac,0x41,0x23,0xc,0xed,0x41,0x3b,0x5e,0xeb,0x40,0x1a,0x63,0xfc,0x41,0xdc,0x49,0xce,0x41,0x61,0x31,0x34,0xc2,0xcc,0x64,0x1e,0x42,0xd9,0x2e,0xe0,0x41,0xee,0x90,0x16,0x41,0x5c,0x78,0xad,0x40,0x9d,0xa0,0xfc,0xbf,0x17,0x4a,0xc5,0xc1,0x60,0x2d,0xca,0xc0,0x3d,0xee,0x51,0xc1,0x9b,0xa3,0xe7,0x41,0xea,0xd6,0x40,0x41,0xa7,0x3c,0x94,0x41,0xef,0x44,0x24,0x42,0x0,0xc8,0x5f,0x40,0xfe,0x1e,0x64,0xc2,0x77,0x4,0x4d,0x42,0x8a,0x3c,0x34,0xc0,0xc,0xf6,0xb5,0xc1,0x48,0x5,0x6,0xc2,0x8a,0x8b,0x94,0x41,0x8d,0x30,0xb6,0x41,0x93,0xb2,0x39,0xc2,0x75,0x4f,0xbe,0xc1,0x4,0x70,0x95,0x41,0xde,0xbf,0xc1,0xc1,0xb8,0x9d,0xa1,0xbf,0xe1,0x76,0x45,0x42,0xe8,0x9f,0xb2,0xc1,0xee,0xf6,0x95,0x42,0xff,0x3e,0x39,0x42,0x6e,0xbd,0x35,0xc2,0x32,0x46,0x3d,0xc2,0x23,0x7a,0x89,0x42,0x9a,0xbb,0xbd,0x41,0xdf,0xd9,0x86,0xc1,0x8c,0x28,0x94,0x42,0x44,0x60,0xeb,0xc0,0x77,0x42,0x51,0xc1,0x23,0xa9,0xe3,0xc1,0xfa,0xb8,0xc,0xc0,0xa6,0xfe,0xb6,0x40,0xa9,0x76,0x81,0x41,0x31,0xd9,0xe9,0x41,0xd7,0xb8,0xe9,0xc1,0x76,0x1b,0x3a,0x42,0xd7,0x1e,0x45,0xc2,0x81,0x66,0x23,0x41,0x80,0xda,0x7a,0xbe,0x4c,0x9a,0x85,0xc1,0x15,0xea,0x3,0xc2,0x85,0x47,0x36,0x42,0xc0,0x1d,0x6c,0xc1,0x90,0x7f,0x54,0x41,0x68,0x42,0x8a,0xc1,0x78,0x18,0xf9,0xbf,0xaa,0xaf,0x9,0xc1,0xae,0x6a,0x90,0x41,0x6c,0xda,0x16,0x41,0x15,0xca,0x67,0xc1,0x47,0x99,0xd0,0xc1,0xcb,0xbd,0x3a,0x41,0xc8,0xc6,0x10,0x42,0x26,0xd6,0x6a,0xc0,0x62,0xac,0x14,0xc2,0xe2,0x4,0x92,0x41,0x3e,0x99,0x98,0xc1,0x71,0x6c,0x83,0x41,0x8a,0x2,0xa,0x42,0x67,0x2c,0xe,0xc0,0xc5,0x73,0x4b,0xc1,0x5f,0x92,0x31,0x42,0xa0,0x18,0xf2,0xbf,0x47,0x6,0x3,0xc2,0x40,0xa0,0xca,0xc1,0xd7,0x38,0xa0,0xc1,0xc8,0xe2,0x70,0xc1,0x9d,0xed,0xce,0x41,0x46,0xe,0x87,0xc2,0x6e,0x13,0x27,0x41,0xa8,0x89,0x99,0xc1,0x41,0xcd,0xbe,0x41,0x6a,0xc1,0x77,0x41,0xec,0xe7,0xbc,0xc0,0xb8,0x9,0x9c,0x41,0x16,0x42,0x5a,0xc0,0xb2,0x6b,0xcb,0xc1,0xc0,0xc0,0x92,0xc1,0xd8,0xac,0xba,0xc1,0xc8,0x9,0xe1,0xc1,0xc9,0x8,0x95,0x41,0x58,0x89,0xaf,0x41,0xdc,0xee,0x2e,0xc0,0x9a,0xfa,0x8,0x40,0xd2,0x29,0x61,0x41,0xb3,0x60,0x50,0x42,0x31,0xee,0xfe,0xc1,0xcd,0x2e,0x17,0x42,0xea,0x5f,0x14,0x42,0xd2,0xed,0x2e,0xc2,0xc7,0x90,0x5f,0x42,0x22,0xb5,0x18,0xc0,0x67,0x62,0xf5,0xc1,0xf8,0xff,0xf4,0xc1,0x13,0x6a,0x2,0xc2,0x72,0xc7,0xb0,0x41,0xe0,0x2,0x7c,0x42,0xf5,0xa9,0xf1,0x40,0x55,0x73,0x8a,0x42,0xcf,0x3a,0xf,0x42,0x8e,0xf7,0x45,0x42,0x1f,0xb5,0xee,0x41,0x1c,0xa9,0x16,0xc1,0x46,0xa6,0xcf,0x41,0xfb,0x6f,0x39,0xc2,0x56,0xf7,0x92,0x40,0x6e,0x73,0xf7,0x40,0x38,0x9d,0x28,0xc2,0x0,0xca,0x12,0xc2,0x69,0x57,0x27,0xc2,0x40,0xdb,0x5c,0xbe,0x5f,0x62,0x6,0x41,0x8d,0x26,0x82,0x41,0x95,0x7a,0xc4,0x41,0x9c,0x62,0x3a,0xc1,0x8c,0xda,0xb1,0x41,0x58,0x11,0x12,0xc1,0x8b,0xca,0xf3,0x40,0xf6,0x5,0x8,0xc2,0xfe,0x2c,0xc3,0x41,0x64,0x68,0x42,0xc2,0x64,0xba,0x63,0xc2,0x48,0xc6,0x83,0x41,0x21,0x67,0xdb,0x41,0x32,0x70,0x4,0xc2,0xc,0x98,0xb,0x42,0x86,0x9d,0x3a,0xc1,0xc9,0xfb,0x6d,0x42,0x10,0x59,0x38,0x42,0xaa,0xb7,0x2,0x42,0x6d,0xff,0x4,0xc2,0x8e,0x3c,0xbd,0xc0,0x9c,0x76,0x18,0x41,0xa6,0x2d,0x83,0x41,0x82,0xb5,0x44,0xc2,0x61,0x1a,0xbc,0x40,0x16,0xd1,0xe7,0xc1,0x98,0xd9,0x12,0xc1,0x19,0x90,0xf,0xc2,0xd7,0x31,0x3,0x41,0x2c,0xac,0x3c,0x42,0x35,0x98,0x26,0x42,0x90,0xd3,0xf6,0x3e,0x16,0x51,0x2c,0xc1,0x84,0xbe,0xc,0x41,0x62,0x7d,0xe4,0x41,0x87,0x93,0x1f,0x42,0xb5,0x29,0x21,0x42,0xc2,0x18,0xe1,0x3f,0x75,0xa4,0xd9,0xc1,0x53,0x7d,0x1,0x42,0xca,0x94,0x97,0xc1,0x58,0x4,0x5f,0x40,0xed,0x13,0x30,0x41,0x2b,0x55,0xe,0xc2,0x78,0xfd,0xec,0x41,0xed,0x52,0xa8,0x41,0x6c,0x87,0xaa,0x41,0x85,0xe1,0xa,0xc2,0xce,0xe3,0x81,0x3f,0xe4,0xd1,0x89,0x42,0x97,0x81,0x0,0xc2,0xf8,0xcd,0xf6,0xc1,0xa9,0xa6,0x8,0x42,0xda,0x38,0x8a,0x41,0x99,0x97,0x2f,0xc2,0xcc,0xdf,0xd8,0xc1,0x46,0x9d,0x83,0x42,0x64,0xe4,0x91,0x42,0x22,0xd3,0x89,0xc1,0xee,0x6e,0xd1,0x41,0xee,0x8f,0x15,0x42,0xdd,0x79,0xa6,0xc2,0x10,0xd0,0xeb,0xc1,0x7b,0x1f,0x28,0xc1,0x60,0x8b,0x80,0xc1,0x24,0xca,0x20,0x41,0xf9,0x72,0x5,0x41,0xbb,0xdd,0x14,0xc2,0x61,0xfa,0x8c,0x42,0xb3,0x93,0xe7,0xc1,0xab,0x4b,0x8c,0xc0,0x9e,0x68,0x9f,0x41,0xab,0x1b,0x8b,0xc2,0xf6,0xa8,0xaa,0x41,0xce,0x31,0x64,0xc1,0x1a,0xe9,0x64,0x42,0x6a,0xc7,0x15,0x42,0x7b,0x4d,0x8d,0xc1,0x82,0x36,0xba,0x41,0x2,0x3f,0x25,0xc1,0x98,0x23,0x42,0xc1,0x5f,0xf9,0x9c,0xc2,0x6c,0x42,0xa1,0x41,0x62,0x75,0x4b,0xc2,0x3c,0xb5,0x4e,0x41,0x59,0x2d,0xb4,0x40,0x4,0xdc,0x9,0x41,0x38,0xe2,0x55,0xc1,0x3a,0x27,0xb0,0x41,0x82,0xc0,0x27,0xc2,0x4c,0x88,0xc7,0xc1,0xad,0x7c,0x6a,0x41,0x7b,0x8e,0x84,0xc0,0x16,0xc0,0xfc,0xc0,0x85,0x9,0xb6,0xc2,0x1f,0xa3,0x96,0xc1,0x86,0xbf,0x0,0xc2,0xbc,0x18,0xe7,0x40,0x2d,0x2a,0xef,0x41,0xe2,0xec,0xe4,0x41,0x8c,0x47,0x9,0xc2,0x22,0xd6,0xd8,0xc0,0x6c,0x1b,0x30,0x42,0xec,0x7b,0x38,0x41,0x29,0x21,0x75,0x41,0xf,0x6b,0x42,0xc2,0x3b,0x9d,0x74,0xc2,0xf3,0xd9,0x12,0xc1,0xda,0x71,0xc3,0xc1,0xa6,0x5c,0xb0,0xc1,0xdf,0x64,0x3e,0xc2,0xb0,0x1a,0x1,0xc2,0x18,0xa9,0xf8,0x41,0x22,0x90,0xc4,0x41,0xaa,0xd0,0x72,0x42,0x18,0x1e,0x28,0x42,0xca,0x9e,0xc9,0x41,0x4a,0x28,0xc7,0x41,0xf1,0x6,0xa5,0x41,0x6,0x21,0x69,0xc2,0x75,0x87,0x18,0xc1,0x98,0x52,0x34,0x42,0x50,0x54,0x2f,0x42,0x5d,0xea,0x1,0xc2,0x57,0x7e,0x7d,0xc2,0x3c,0xc7,0xe8,0xc1,0x36,0xca,0xe4,0x41,0xdb,0xc,0x4a,0x40,0xb0,0xeb,0xeb,0xc0,0xee,0xa5,0x6c,0x42,0x63,0xb4,0x3d,0xc2,0x25,0xa0,0x88,0xc1,0x60,0xb7,0x3f,0xc0,0x16,0x57,0x9,0xc1,0xe,0x98,0x36,0xc0,0x28,0xe4,0x3c,0xc1,0x46,0xac,0x3d,0xc2,0xe8,0x6f,0xe2,0x40,0xc,0xc1,0x6d,0xc2,0x40,0x46,0x5c,0xc0,0x8c,0xac,0x3,0x42,0x74,0xff,0x8a,0x41,0x41,0xb3,0x4b,0x41,0xeb,0x36,0xa4,0x41,0x12,0x8f,0x2e,0xc1,0xbf,0x3b,0xa0,0x40,0x8,0x2,0xdc,0xc1,0xae,0x46,0xbe,0xc1,0xbc,0x61,0x9c,0xc1,0x11,0xe2,0x2b,0x41,0x49,0x10,0x36,0x41,0xc8,0xf7,0x16,0xc1,0xdd,0x9c,0x9b,0xc1,0x66,0x94,0xf0,0x41,0xad,0xcd,0xf6,0xc1,0x81,0x3f,0x65,0x42,0x72,0x4d,0x13,0x41,0x97,0xdc,0x95,0xc1,0xaf,0x9,0x1b,0x42,0xd,0x45,0x9a,0x40,0x3c,0xa6,0x45,0x42,0xc2,0x9f,0x78,0xc1,0xf0,0xbb,0xab,0xc0,0x63,0xa0,0xa,0x41,0x84,0xe4,0xa4,0xc2,0xc1,0x4a,0x0,0xc2,0xb7,0x72,0x8c,0x41,0xde,0x48,0x92,0x41,0xeb,0x97,0x75,0x42,0xaa,0x5b,0xdd,0xc1,0x35,0xdd,0xd6,0xc1,0xcd,0xdc,0x60,0x42,0x23,0x91,0x83,0x42,0x6f,0x30,0x1f,0xc1,0x2f,0x78,0xa6,0xc1,0xe9,0x9c,0x22,0x42,0x3c,0xb6,0x97,0x41,0x88,0xde,0x13,0xc0,0xc0,0xa1,0xde,0xc1,0x12,0x2,0x34,0x42,0xd6,0x5f,0xf8,0x41,0x2,0x37,0xa5,0x40,0xaa,0xaf,0x91,0xc1,0x8,0x27,0x27,0x42,0x7,0xea,0x1e,0x42,0x15,0xa7,0xc7,0x41,0x22,0x64,0x54,0xc1,0x5f,0x5e,0xa2,0xc1,0x1f,0xf2,0xd2,0x41,0x6c,0x8a,0x44,0x41,0x9f,0x1e,0xa3,0x41,0x43,0xa7,0x9d,0x41,0x7e,0xa0,0x25,0x42,0xa2,0x74,0x86,0x42,0x34,0x15,0x25,0xc2,0xd0,0xf6,0xfe,0x41,0x90,0x58,0x82,0x42,0x1e,0x80,0x51,0x42,0x1c,0xe3,0xe,0x42,0xf5,0xee,0xe7,0x41,0x24,0x54,0x5c,0x42,0xf1,0x93,0x45,0x3f,0x3f,0xaf,0x8c,0x41,0xce,0xe1,0xdc,0x40,0x96,0x3b,0x6,0x41,0x35,0x4f,0x41,0xc1,0x69,0xbd,0x56,0xc2,0xe,0xee,0xb5,0x40,0xfd,0x7f,0x6e,0xc2,0xb2,0x34,0x91,0xc2,0x16,0xb6,0x6,0x41,0x9b,0x1d,0x82,0xc2,0x65,0xb0,0x3c,0x42,0xa4,0x6d,0x91,0xc1,0xa8,0xa,0x7f,0xc2,0x1b,0xff,0x33,0x42,0x44,0xc4,0x1d,0xc2,0x78,0xe5,0xbd,0x40,0x73,0x12,0x16,0xc2,0x91,0x2e,0x5e,0x42,0xf6,0x28,0x80,0x41,0x4c,0x4b,0xaf,0xc1,0x50,0x46,0xb6,0xbe,0x38,0x15,0x8f,0xc2,0x8a,0xe,0x49,0xc2,0x4e,0x20,0x1c,0xc2,0x41,0xd5,0x84,0x41,0xad,0x70,0xf2,0x40,0x36,0x85,0x40,0x42,0x78,0xba,0x9c,0x3f,0xf4,0x2,0x36,0xbf,0x41,0x2b,0xd2,0xc1,0xba,0xa1,0xcf,0xc1,0x1a,0x2f,0xdd,0x41,0x64,0xaa,0x37,0xc0,0x48,0x3f,0x10,0xc2,0x5e,0xf,0xa3,0xc1,0x97,0xe6,0x4,0x42,0x7c,0x42,0x85,0x41,0xee,0x53,0x96,0xc2,0x5b,0xb6,0xb6,0x41,0x81,0xb3,0x6f,0xc2,0x52,0xde,0x60,0x41,0x96,0x42,0x58,0xc1,0x8e,0x26,0xa9,0xc0,0x86,0xd2,0x4e,0xc2,0xb7,0x4f,0x1b,0x42,0x82,0x9f,0x40,0xc1,0xf5,0x72,0x52,0xc2,0x10,0x25,0x3f,0x41,0xbe,0x7,0x54,0x41,0xa6,0x57,0xca,0xbf,0xb7,0x77,0x44,0xc2,0xa,0x76,0x35,0x42,0xa8,0x7,0xe2,0xc1,0x7e,0x79,0xf4,0x40,0x5c,0x35,0xd8,0xc1,0x79,0x48,0x82,0x42,0x18,0x85,0xea,0xc1,0x82,0x8f,0x53,0x41,0x47,0xfa,0x48,0x42,0x15,0xb4,0xbd,0xc2,0x1c,0x7d,0x95,0x42,0xf4,0xd3,0x57,0x40,0x18,0xbe,0x39,0x40,0x63,0x97,0x85,0x42,0xcd,0x25,0x22,0xc2,0xe1,0xa5,0xdc,0x41,0xa9,0x8f,0xab,0x42,0x74,0x77,0x67,0x42,0xf4,0xc,0xbd,0x41,0x96,0x41,0x4c,0x42,0xb2,0xa1,0xc3,0xc1,0xc9,0x18,0xa6,0x42,0x99,0x79,0xdc,0xc2,0x76,0x8b,0xb,0x42,0x95,0xfe,0x24,0x41,0x81,0x48,0x43,0x42,0x56,0xf8,0x3f,0x41,0x17,0xe6,0xbb,0x41,0x6a,0x45,0x2c,0xc2,0xea,0x92,0x69,0x42,0xaa,0xa5,0xd9,0x40,0x5e,0x5a,0xc0,0x41,0x0,0x7f,0x69,0xc1,0x10,0x26,0x47,0xc2,0x13,0x7d,0xb6,0x42,0xf6,0x97,0x2d,0xc2,0x53,0x45,0x49,0x42,0x84,0x35,0x69,0x42,0x3c,0xd7,0x45,0xc2,0x9c,0x64,0xed,0x41,0x3,0x2e,0x13,0xc2,0xac,0xf2,0x38,0x42,0x34,0x27,0x56,0xc2,0x18,0xc5,0xb5,0xc1,0x93,0x6,0x16,0x42,0x88,0x92,0xe0,0x41,0xaf,0xb0,0x37,0xc2,0xf4,0xf5,0x73,0xc1,0x97,0x3f,0x7,0x42,0xe4,0x54,0xa4,0xc1,0x67,0xd2,0x38,0xc1,0xb6,0x3e,0xc9,0xc0,0xb5,0xa6,0x96,0x42,0xc3,0xee,0x3f,0x42,0xd7,0xe0,0xfd,0x41,0xf,0xb,0x37,0xc2,0xa1,0x81,0x48,0xc2,0xb3,0x9c,0xda,0xc1,0xb7,0x6b,0xa8,0x41,0x2e,0x8c,0x3e,0x42,0x7b,0x6c,0x37,0xc2,0x9c,0x43,0xbf,0xc2,0x0,0x97,0x2b,0xc2,0x34,0x6c,0xc0,0x41,0xb4,0x64,0xf0,0x41,0x37,0x25,0x2d,0x42,0xd,0x57,0x3c,0x42,0xb5,0xe3,0xd3,0x41,0x96,0xd2,0x98,0xc1,0x31,0x87,0xa6,0xc1,0x0,0x5d,0xe2,0xc1,0xb8,0xfd,0x2f,0xc2,0x0,0xfe,0x63,0xc0,0xf2,0xc9,0xb4,0x41,0x4d,0x27,0xd,0x42,0x3a,0x6b,0x2b,0x42,0xb9,0xe1,0x90,0xc2,0xf9,0x87,0x83,0xc0,0xe4,0xb,0x4a,0x42,0xbb,0xdd,0x56,0xc0,0xb6,0x26,0x82,0x42,0xf4,0x6c,0x39,0xc2,0x7b,0xa,0x69,0x42,0x52,0xc7,0xa0,0x42,0xdb,0x23,0x9,0xc2,0xd3,0x10,0x1,0xc2,0x20,0xa4,0x49,0x42,0x98,0x74,0xb9,0xbe,0x46,0xae,0xb2,0xc1,0xea,0x6f,0x90,0x42,0x10,0xcc,0x8f,0x41,0xb6,0xd4,0x1e,0xc0,0x8,0xd7,0x1f,0x42,0x92,0x6c,0x51,0x41,0x78,0x95,0x4,0xc2,0x5c,0x4d,0x16,0x42,0x10,0x2d,0x6a,0xc2,0x85,0xba,0xae,0xc1,0x5e,0xaa,0x8a,0x41,0xcb,0xbe,0x92,0xc2,0xec,0xde,0x8c,0xc1,0xf3,0xd9,0x4f,0x41,0x7b,0x42,0xe8,0xc1,0x36,0x77,0xaa,0xc1,0x59,0x74,0x2b,0x42,0x5b,0xfa,0x3e,0xc1,0x79,0xad,0x44,0xc2,0x93,0xba,0x4a,0x41,0x3b,0xad,0x31,0xc2,0x41,0xa3,0x95,0x42,0x41,0xc0,0x84,0xc2,0x7d,0xf5,0xd9,0x41,0x83,0x37,0xd1,0xc1,0x97,0xe8,0x67,0x40,0xfa,0xac,0x48,0xc2,0x49,0x43,0x2e,0xc2,0x74,0x53,0xb,0xc2,0x81,0x32,0xe7,0xc1,0xfc,0xc2,0xf5,0x41,0xea,0x16,0xa3,0xc1,0x52,0x38,0x32,0x42,0x24,0x7b,0x5,0x42,0x5c,0xf3,0x62,0xc1,0x8d,0x7c,0x23,0xc2,0xbd,0xce,0xc1,0x41,0xc3,0x33,0x95,0xc1,0xd7,0x33,0x6e,0xc0,0x58,0x94,0x1d,0x42,0x65,0x1c,0x60,0x42,0xb4,0x9e,0x4e,0xc2,0xfa,0x48,0x21,0xc1,0xec,0xdb,0x37,0xc2,0x7a,0x59,0x97,0x41,0xf4,0x15,0xfe,0x41,0x9e,0x38,0x8b,0xc1,0x9e,0x7f,0x40,0xc1,0x64,0x27,0xf5,0x41,0xa5,0x6,0xa3,0x41,0x58,0x4f,0xad,0xc1,0x25,0x40,0xd2,0x41,0xac,0xa5,0xfe,0x41,0xd1,0xee,0xa7,0xc2,0x24,0x8a,0xf4,0xc1,0xef,0xcf,0xb2,0xc1,0x4b,0xd2,0x0,0x41,0x31,0xca,0xd5,0x41,0xc3,0x40,0xf4,0xc1,0x64,0xb2,0x6e,0x42,0x7e,0x55,0xb1,0xc1,0xf0,0x6e,0x7b,0x41,0x18,0x7b,0x4,0x41,0x18,0x95,0xe2,0x3f,0x59,0xb2,0x20,0x42,0xe8,0xe7,0xa8,0xc1,0x36,0x70,0xf,0xc2,0x8f,0xf4,0x4a,0x42,0xfe,0xb9,0xcc,0xc0,0x93,0xb6,0xc9,0xc1,0x4a,0x4b,0x92,0x40,0xd5,0xe0,0xaf,0x42,0xf7,0x90,0xcc,0x41,0xb,0xee,0xa,0x42,0xa7,0xe0,0xc,0x42,0xf6,0xc6,0xb2,0x41,0x8f,0x4a,0x36,0xc2,0x44,0x5a,0x3,0xc2,0xce,0x7f,0x70,0xc1,0xa,0xf4,0xf2,0x40,0x6b,0x46,0xfe,0xc1,0xee,0x94,0xbb,0x41,0xed,0xfb,0x4,0x42,0x6d,0x1d,0xd3,0x41,0x7b,0x8e,0xb8,0xc1,0x97,0x5e,0x4,0x41,0xc7,0x69,0x0,0x42,0xfb,0xce,0x69,0xc2,0xf5,0xfc,0x1f,0x42,0x1,0x83,0xd1,0xc0,0x96,0xb8,0x9b,0x42,0xe1,0xda,0x29,0x42,0x7c,0xed,0x12,0xc2,0x60,0xb7,0xce,0x41,0xa2,0xd0,0x3f,0x41,0xfc,0x15,0x76,0x42,0x8,0xf8,0x59,0xc1,0xdc,0x15,0x76,0x41,0xb6,0xf0,0x23,0x41,0xd8,0x4c,0x20,0x3f,0xcd,0x17,0xe2,0xc1,0xa2,0x32,0x72,0xc0,0xaa,0x6,0x39,0x42,0xcf,0xad,0x63,0xc0,0xe6,0x52,0x5b,0xc2,0x7a,0x87,0x83,0xc1,0x4e,0x65,0x7d,0x42,0x8d,0xeb,0x5,0x42,0x2c,0x54,0x8a,0x41,0xed,0x75,0x3a,0xc2,0x71,0xff,0xe2,0xc1,0x57,0xbe,0x93,0xc2,0xca,0x42,0xef,0x40,0x46,0x29,0x80,0x41,0x8e,0x14,0x5d,0x42,0x22,0x2b,0x8,0xc2,0x1,0xc2,0xd5,0xc1,0xaa,0x8a,0x4f,0x42,0xae,0x97,0xf1,0xc1,0x7e,0x71,0x33,0x40,0x6c,0x12,0xdb,0xc0,0xec,0xbb,0x63,0xc1,0xd6,0x15,0x3,0xc2,0x68,0x12,0xe6,0x40,0x98,0xa7,0xb2,0xc0,0x6e,0x19,0x9,0xc2,0x7b,0xe2,0xcb,0xc1,0x4,0x4,0x41,0x42,0xfc,0x8b,0xd2,0xc0,0xec,0x4f,0x87,0x42,0x9c,0xcd,0xe5,0xc1,0x8d,0x4e,0x4e,0x42,0x18,0x96,0x7c,0x40,0xb2,0x5e,0x16,0x41,0x29,0x55,0xee,0x40,0x16,0xf6,0xb3,0xc0,0x31,0x1f,0x32,0xc2,0x23,0xb7,0x3c,0x41,0xe5,0x2c,0xbd,0xc1,0x8c,0xea,0xaa,0xc2,0x86,0x2f,0x23,0xc2,0xd0,0x3c,0xa8,0xc0,0xfb,0xbc,0x2a,0xc2,0x8b,0x6a,0x8d,0x41,0x38,0x3b,0x8e,0x41,0x1e,0x39,0xb1,0x41,0x43,0xf,0x32,0xc1,0xb6,0x41,0xd8,0x41,0x60,0x2b,0xc0,0xc1,0x75,0x35,0x14,0x42,0x3e,0x66,0xf3,0xc0,0xb6,0x19,0x4c,0xc2,0x4a,0xd1,0xd5,0x41,0x15,0xd1,0x4d,0x3f,0x7e,0x50,0x8b,0xc1,0xe9,0xf7,0x7e,0x42,0xa8,0xdc,0x91,0xc1,0xf0,0xd4,0x86,0x41,0x3c,0xc8,0x8a,0x42,0x89,0x29,0x41,0xc1,0xfc,0x66,0xb9,0x40,0x8a,0x10,0x89,0xc1,0xc0,0x51,0x87,0x3d,0xd5,0x7d,0xe5,0x41,0x82,0x22,0xd9,0x40,0x41,0xed,0x8a,0x42,0x7,0x69,0xd8,0x41,0xfc,0x7a,0xc4,0x41,0xb2,0xfd,0xe7,0xc1,0xae,0x1b,0x13,0xc2,0x42,0x7b,0x37,0xc2,0x96,0x1a,0x86,0xc1,0xf4,0x4e,0x4e,0xc1,0x7c,0xf3,0x54,0x40,0xa0,0x2c,0x38,0x42,0x98,0x64,0xe1,0x40,0x91,0x2,0xed,0xc1,0x8c,0xf6,0x1e,0xc0,0xa6,0x38,0x7b,0x41,0xbf,0x4f,0x30,0x40,0xa5,0x2a,0x20,0x42,0x44,0xa9,0xdb,0x40,0x98,0x66,0x5f,0x42,0x7b,0x7b,0xd,0x42,0xfd,0x63,0xf3,0xc1,0x37,0xfd,0x14,0xc2,0xb9,0x88,0x71,0xc1,0x86,0xa5,0xc1,0x41,0xc6,0x6e,0x2c,0x42,0xca,0xd0,0x5a,0x41,0x80,0x4e,0x5d,0x41,0x7,0xe2,0xf,0x42,0xf2,0xd0,0x1a,0x42,0x8d,0xbf,0x38,0x41,0xd5,0x91,0xc6,0x41,0x34,0x57,0x7e,0xc0,0x63,0xc3,0x6,0x41,0x48,0x4,0xd,0xc2,0xba,0xb9,0x5b,0x42,0x24,0x89,0x52,0xc0,0x33,0x46,0x71,0xc2,0xb6,0x54,0x9a,0xc1,0xed,0xa0,0xd3,0xc1,0xa8,0x25,0x4c,0x41,0x31,0xd3,0xb2,0xc1,0xb2,0x45,0x42,0x42,0x4,0x87,0x8f,0x41,0x4d,0x62,0x1c,0xc2,0x8,0xb3,0xb6,0x40,0x35,0x60,0xb4,0xc1,0xe0,0xa0,0x35,0x42,0x4f,0x28,0x14,0x42,0x4c,0xff,0x23,0xc2,0xf,0xcd,0x34,0x41,0xe3,0x85,0x8e,0x40,0xa1,0x1c,0x16,0x40,0xe,0xa1,0x1d,0x42,0xc8,0x6d,0x6e,0xbf,0xae,0x52,0xcd,0x40,0xb3,0xcf,0xbd,0x41,0x7c,0x53,0xba,0xc1,0xc8,0xfd,0x11,0xc2,0x77,0x86,0xfa,0xc1,0x90,0x68,0xfc,0xc0,0x46,0x52,0x96,0x41,0x97,0x5b,0x39,0x41,0x1b,0x50,0x2e,0xc2,0xc0,0x34,0xf,0xc2,0x12,0x9,0xc6,0xbe,0x67,0x1,0x19,0x40,0x54,0x9b,0x8a,0x41,0x3f,0xd,0x4d,0x42,0xc7,0x35,0xf6,0xc1,0x78,0xbe,0x65,0xc2,0x9c,0x3e,0x81,0xc1,0x78,0x73,0x1,0x41,0x6c,0x1e,0x55,0x42,0x8b,0x16,0xb9,0x42,0xc8,0x55,0x2f,0x42,0x7a,0x17,0x5,0x42,0x5c,0xe6,0x86,0x41,0x40,0x8,0x0,0xc1,0xa8,0x9c,0xec,0xc1,0x5e,0xe6,0x31,0xc1,0x85,0x5f,0xa8,0xc1,0x12,0xe0,0x65,0xc2,0x42,0xa4,0x94,0x40,0x1e,0xb3,0x1b,0x42,0xc9,0xe7,0x1a,0x42,0x82,0x6,0x75,0x41,0xc0,0xe1,0xc3,0xbe,0xa3,0x3a,0x98,0x41,0xdb,0xa0,0xc3,0x41,0x18,0xb6,0x7c,0x3f,0x0,0x2c,0x12,0xbe,0xbb,0xdb,0xa3,0xc0,0x69,0x11,0x78,0x41,0x9c,0x22,0xe,0x42,0x8,0x64,0x42,0x41,0x3c,0x80,0xc0,0xc1,0xf6,0x52,0x46,0xc2,0x4,0xa,0x31,0x41,0xbf,0x43,0x1e,0xc2,0x20,0x20,0xc0,0xc1,0xd,0x4b,0x79,0xc2,0x49,0x40,0x33,0x42,0x4,0x46,0x84,0xc1,0x90,0xe0,0x74,0xbf,0x62,0xe2,0x29,0x42,0x25,0x8a,0x7f,0x41,0xb1,0x48,0x81,0x41,0xa6,0x97,0xf,0xc0,0xd5,0x3c,0xb3,0x41,0xc9,0x8,0xc,0x42,0x97,0x2,0xf,0xc2,0x72,0x63,0xc0,0x41,0x81,0x96,0xe0,0x41,0xb0,0x3d,0x2b,0x3f,0xce,0xb0,0x3f,0xc2,0x3a,0x72,0x5e,0xbf,0xdf,0x86,0x1a,0x41,0xf9,0x9a,0x56,0xc1,0x69,0xb6,0x7,0xc2,0x92,0x87,0x36,0x42,0x79,0xad,0x10,0xc2,0x4a,0xbb,0x90,0x3f,0x22,0x6d,0xce,0xc1,0x32,0x25,0x2c,0xc1,0xa5,0x95,0x2f,0x41,0xf7,0x51,0x20,0x41,0xb1,0x81,0xe5,0xc1,0x0,0x32,0xa1,0x41,0x3,0xed,0x2f,0xc1,0x24,0xe1,0x37,0xc1,0x17,0x36,0x28,0x42,0xe3,0x38,0x43,0x42,0x3f,0x90,0x60,0x41,0x42,0x36,0x51,0x42,0x42,0x37,0x9,0xc2,0xda,0x33,0x1d,0x41,0xa1,0x6c,0x41,0x41,0x5b,0x59,0x4b,0xc2,0xfa,0xa5,0x99,0x40,0xcb,0x97,0xa2,0x41,0x46,0xc7,0x1b,0x42,0x9a,0x58,0x7d,0x41,0xa3,0x1a,0x9a,0xc0,0xc2,0x82,0xe4,0x41,0x4a,0x8d,0x30,0xc2,0x6b,0xb7,0x8a,0x41,0xeb,0x4c,0x24,0x42,0xe1,0x3c,0x6a,0x40,0xe0,0x8,0x10,0xc2,0xd8,0x6d,0x18,0x40,0xfb,0x15,0x50,0x42,0x65,0x44,0x1c,0x41,0x73,0x8b,0x6e,0x42,0x97,0x28,0xba,0xc0,0x75,0xb8,0xb8,0xc1,0x2b,0x2b,0x28,0xc2,0xa4,0x51,0x19,0xc1,0xb6,0x99,0x1b,0x42,0xb6,0x93,0xe5,0xbf,0x13,0x97,0x41,0xc2,0xa7,0x69,0xac,0xc1,0xa4,0x33,0x58,0x41,0xe8,0x3f,0x84,0x41,0x6,0x82,0x8c,0x40,0x10,0x1d,0xef,0xc0,0xe,0x24,0xde,0x40,0x46,0x14,0xd,0x41,0x3c,0x73,0x99,0x40,0x4a,0xa9,0x33,0xc1,0xe2,0x58,0xe2,0xc1,0x85,0xdc,0xec,0x40,0x30,0x1b,0x95,0x42,0x94,0xda,0x35,0xc2,0xdc,0x90,0x9a,0x41,0x56,0xd6,0xf7,0x41,0xdb,0xff,0x4c,0x41,0xf6,0x5e,0xb4,0x41,0xdd,0xde,0xf4,0xc1,0x10,0x95,0x8c,0xc1,0x9b,0x90,0x5a,0x41,0x69,0xf0,0xb5,0xc1,0x68,0xa2,0x40,0x41,0x7a,0x71,0x56,0xc2,0x51,0x72,0x15,0xc2,0xaa,0x51,0x93,0x41,0xb0,0x2d,0x59,0xc2,0xa2,0xc6,0x56,0xc0,0x52,0x90,0xb1,0xc0,0x80,0x85,0xf5,0x41,0x95,0xbd,0xa3,0xc1,0x96,0x1f,0x2a,0xc2,0xc6,0x6b,0x2a,0x40,0xd4,0x8e,0xbf,0xc2,0x90,0x9d,0xb0,0x41,0xf3,0x52,0x72,0x41,0xdd,0x42,0xdb,0xc1,0x1d,0x56,0xa9,0x40,0xc4,0x6b,0xa1,0xc1,0x4f,0x24,0x83,0xbf,0xed,0x14,0x11,0xc1,0xf9,0x2a,0xd2,0xc1,0x52,0x8a,0xb9,0xc1,0x6d,0x36,0x34,0x42,0x46,0xd9,0x82,0x41,0x64,0x93,0x98,0x41,0x30,0xe,0xdc,0x40,0xcc,0xf1,0xf6,0xc0,0xe6,0x52,0xa6,0xc1,0xf4,0x4c,0x1e,0x42,0xa6,0x5,0xa8,0x41,0x8a,0xac,0x1,0xc2,0xce,0x5,0x45,0x41,0x72,0xba,0x97,0xc1,0x80,0x51,0x6c,0x3f,0xbd,0xcb,0xbe,0x41,0x9f,0x62,0x9e,0x40,0x3e,0xe,0x17,0x42,0x6e,0x39,0xbe,0xc1,0x63,0x1,0xbe,0xc0,0xa4,0x49,0x88,0x40,0xf6,0x0,0x52,0xc1,0xde,0xe3,0x89,0xc2,0x45,0xf5,0x94,0x41,0x56,0x75,0x2f,0xc1,0x8a,0x28,0xe5,0xbf,0xe2,0x45,0xba,0xc0,0xc2,0xc1,0x32,0x42,0x72,0x65,0x71,0x41,0xa1,0x71,0xcf,0x41,0x43,0xf8,0x2c,0x42,0xcf,0xfb,0x31,0x42,0x2a,0xf6,0x14,0xc1,0xd9,0x7f,0x5,0x41,0x2,0x80,0x1b,0xc2,0x56,0xbc,0xcd,0x41,0xef,0x14,0x1b,0x41,0xbe,0xdb,0x1c,0xc1,0x18,0xfb,0x5c,0xc1,0xa1,0x53,0x93,0xc0,0x4,0x98,0xc6,0x41,0xf0,0xfd,0x2c,0x3d,0xa,0x57,0x92,0x42,0x90,0xd3,0x77,0xc1,0x4,0x5d,0xb3,0x41,0xc5,0x9f,0x3d,0x41,0x68,0x6a,0xd1,0x41,0x80,0x66,0xd5,0xc0,0xd0,0x3e,0xd5,0xc1,0x6f,0x4f,0xfd,0x41,0x35,0x8b,0xef,0x3f,0xd6,0x82,0xb0,0xc1,0x2f,0xe8,0xa,0xc2,0x5c,0xef,0x4b,0x41,0x77,0xf5,0xe3,0x41,0x88,0xc,0x56,0x42,0xe8,0x1e,0xf8,0x41,0x8d,0x29,0x29,0xc2,0x87,0x31,0x34,0xc1,0x81,0xc3,0x61,0x41,0x96,0xdd,0x31,0xc1,0x5b,0xc,0x1,0x42,0xb5,0x23,0x17,0xc2,0x97,0xe5,0x8,0x40,0x5c,0x96,0x4,0xc0,0xbc,0x4d,0xba,0xc1,0xf8,0xb2,0x9a,0x41,0x4,0xa0,0x5,0xc2,0xf1,0xa1,0x97,0x40,0x1a,0x8f,0xb6,0x41,0xe9,0xf0,0xbf,0xc0,0x2d,0x2b,0x16,0xc2,0x61,0x84,0xaa,0x41,0xde,0xb0,0x37,0x41,0xfd,0x8d,0xc6,0xc1,0xd0,0x77,0x5f,0x42,0x90,0xb0,0x56,0xc2,0xb0,0x8,0x4c,0xc1,0x8,0x4,0xb3,0x41,0x55,0x48,0x29,0xc1,0x75,0xe9,0x71,0xc2,0x56,0x45,0xc,0x41,0xd3,0xb8,0x7f,0x42,0x9b,0x38,0x89,0x40,0xb2,0x2f,0x32,0xc2,0x82,0x9a,0xa6,0xc1,0x68,0x2c,0x4,0xc2,0xe3,0x72,0x4b,0x41,0xfc,0xb,0xac,0x41,0x1f,0xca,0x85,0x40,0x3e,0xb6,0xec,0xc1,0x8b,0x9a,0x84,0x41,0x4f,0x38,0x2c,0xc2,0xbf,0x79,0xa1,0x41,0x25,0x43,0xa,0xc2,0xe9,0x7b,0x68,0xc1,0xee,0x9b,0x5e,0xc1,0x70,0xb1,0x2d,0x42,0xd2,0xe7,0x2b,0xc2,0xb6,0x1c,0x0,0xc2,0xa2,0x5c,0xd,0x40,0x94,0xfa,0x8d,0xc2,0xff,0x8a,0x6b,0xbf,0xe2,0xf5,0x59,0xc1,0xae,0xea,0x74,0xc0,0x1b,0x46,0xf1,0xc1,0x23,0xab,0x16,0x41,0x73,0xbb,0x59,0x42,0xd2,0xea,0xbc,0xc0,0x6a,0xc7,0x18,0x41,0x4,0x61,0x9a,0x41,0x0,0xe4,0x40,0xbf,0x4d,0xdb,0x84,0xc2,0x3f,0x7f,0x5d,0xc2,0x3,0x6e,0x4d,0xc2,0x39,0xbb,0xc4,0x41,0x37,0x82,0x90,0xc2,0x6d,0x36,0x24,0xc2,0x72,0x9f,0x5e,0xc1,0x72,0x4d,0x53,0x42,0xe4,0xf4,0x8e,0x41,0xb1,0x17,0xa3,0x41,0xdb,0x53,0x2c,0x42,0xfa,0xa1,0xf7,0x41,0xbf,0xd6,0x3b,0xc2,0x57,0x2e,0xf4,0x40,0x4e,0x73,0x0,0xc2,0x38,0x80,0x18,0x3f,0xce,0x2f,0x23,0xc0,0x22,0xbc,0x90,0x40,0xb3,0x1c,0x20,0x41,0x7c,0xa0,0xdc,0xc1,0xcd,0xac,0x81,0xc2,0x6f,0xf4,0x33,0x42,0xa0,0x46,0x76,0xc1,0x42,0x9,0x4c,0x42,0x8,0x38,0x48,0x42,0x5b,0x80,0x84,0xc2,0xdf,0x32,0x6c,0xc0,0x36,0x7e,0xb7,0x41,0x76,0xb1,0x31,0x41,0xe0,0xc8,0xc3,0x40,0xad,0xc8,0x25,0xc1,0x5c,0xfc,0xa4,0xc2,0x4e,0xe7,0xdb,0xc1,0x1b,0xad,0x95,0xc1,0xdd,0x60,0x64,0x41,0xd2,0x4c,0x99,0x40,0x1f,0xe,0x9c,0x41,0xd5,0xb5,0x51,0x42,0xbd,0x67,0x52,0x41,0x35,0x63,0x2,0xc2,0x7b,0x7f,0xbf,0x41,0x26,0xc1,0x3a,0xc1,0xc7,0x4f,0x30,0xc2,0x8e,0x20,0x6,0xc2,0xee,0x88,0x11,0x42,0xd6,0xb4,0xb,0xc0,0xd6,0xa0,0xd5,0x41,0x8b,0xb0,0x9,0x41,0x1b,0xb4,0x96,0x42,0xbd,0x32,0x33,0x40,0xef,0x98,0x90,0x42,0xc0,0x46,0xf1,0xc0,0xc0,0x5,0x56,0x42,0xf2,0x27,0xec,0x41,0x98,0x45,0x4,0xc2,0x52,0x3e,0xc1,0xbf,0x12,0x67,0x44,0xc1,0xa0,0x42,0xc9,0xc1,0xae,0x88,0x93,0xc1,0x68,0x34,0x66,0xc2,0x7b,0x9e,0xad,0xc1,0xb8,0x3a,0xc2,0x3e,0x7e,0x90,0xf2,0xc0,0x80,0xdb,0xfa,0x42,0x79,0xf4,0x21,0xc2,0xda,0x81,0x32,0x42,0x7,0xca,0xfe,0x42,0x96,0xbd,0xdf,0x41,0xa1,0x7b,0xa3,0xc1,0x4c,0xe,0xde,0xc2,0xd8,0x67,0x16,0x42,0xa2,0xfb,0xcd,0xc1,0x80,0xa0,0xa1,0x3d,0x45,0x49,0x1b,0xc2,0xee,0x6a,0x11,0x42,0x85,0x68,0x91,0x42,0x41,0x95,0x5d,0x42,0xc9,0x8d,0x8c,0x42,0x23,0xe9,0x6b,0x42,0x43,0x56,0x5a,0xc2,0xc4,0x50,0xa0,0xbe,0xbe,0x71,0x5c,0x40,0x75,0x9a,0x12,0xc0,0x70,0x68,0x15,0xc2,0x61,0xa9,0x7e,0xc2,0x36,0xc6,0x58,0xc1,0x32,0x9b,0xce,0x41,0x4a,0x6,0xd3,0xc1,0x1c,0xf1,0xda,0x41,0x54,0xdf,0xae,0xc1,0xe1,0x4,0x78,0x42,0x6e,0x37,0xac,0x41,0x74,0x6c,0x9c,0x42,0x59,0xac,0x29,0xc0,0xc,0xfc,0x4f,0xbf,0x3d,0x60,0x76,0x42,0x58,0x37,0xcc,0x41,0xf8,0x3f,0x26,0xc1,0x6f,0x8b,0x1,0x42,0xc,0x93,0x25,0x42,0xc6,0x22,0x89,0x42,0x19,0x73,0x75,0xc1,0xca,0xa4,0x1a,0x42,0xbb,0xdf,0x55,0xc2,0x15,0xd4,0xbf,0x40,0x96,0x83,0x3d,0x42,0x2e,0x25,0xfe,0xc0,0x55,0x87,0xf,0x42,0x64,0x44,0x4d,0xc2,0xe3,0x82,0x6a,0xc2,0xd4,0xb2,0x7b,0x42,0x13,0xf7,0x2a,0x42,0xb4,0x3f,0xa7,0xc2,0x60,0xeb,0xb,0xc2,0x60,0x9,0x2e,0xc2,0x6,0xb1,0xf5,0x41,0xb1,0x70,0xd2,0xc1,0x71,0x29,0xcc,0x41,0xa,0xd5,0x2,0x41,0xfa,0x11,0xc5,0xc1,0xea,0xf1,0x17,0xc1,0x6a,0xd1,0x88,0x41,0xc2,0x17,0x60,0xc1,0x4,0x9a,0x51,0x41,0x11,0x6,0xab,0xc1,0xdf,0x7a,0x5d,0xc2,0xac,0xfd,0x9a,0x3f,0xb,0x8e,0x81,0xc1,0x94,0x18,0x31,0x41,0xdb,0xf3,0x89,0xc2,0xae,0xba,0x84,0xc0,0xc8,0x60,0x37,0x42,0x95,0x5c,0xbc,0x41,0x8e,0xd3,0x5d,0x42,0x78,0x7d,0x8d,0x42,0x9e,0xeb,0x51,0xc1,0xba,0xc7,0x96,0xc1,0x7f,0x45,0x41,0x3f,0x95,0x2,0xa4,0xc1,0xb4,0x1a,0x12,0xc2,0x31,0x45,0xbb,0xc1,0xe5,0x10,0x1f,0x42,0x54,0x24,0xe1,0xc1,0x51,0xa3,0x34,0x42,0xea,0xe4,0xa5,0x40,0xd9,0x89,0x8c,0xc0,0xab,0x34,0x1,0x42,0x3f,0x27,0x18,0x42,0x74,0xb6,0xec,0x42,0xca,0xb7,0x45,0xc2,0x1d,0x68,0x10,0x42,0x5c,0x1b,0xca,0xc2,0xcc,0x88,0xa2,0xc1,0x25,0x8,0xa0,0xc2,0xfe,0xaa,0xe8,0xc1,0x61,0x2c,0xc5,0xc1,0x5a,0x65,0xb9,0xc1,0xe3,0xeb,0x59,0x42,0x8,0x40,0x23,0xc1,0x3f,0x1a,0x47,0x42,0x14,0x0,0xfc,0x41,0x6,0x88,0xb2,0x42,0x7a,0x15,0xc5,0x42,0x40,0x3a,0xb5,0x41,0x4b,0x13,0xb0,0xc1,0xd2,0x42,0x89,0xc1,0x24,0x3,0xdd,0x40,0x90,0x67,0x6d,0xc2,0xd2,0xeb,0xc6,0x40,0x5e,0x5b,0xc1,0xc1,0xe0,0xdf,0x35,0x40,0x76,0x8f,0xa1,0xc1,0x1b,0xeb,0x16,0x42,0xfb,0x6b,0x91,0x41,0x15,0x94,0x4a,0xc2,0x2b,0x4c,0x9e,0xc1,0xf6,0x4d,0x83,0xc0,0x54,0xd6,0xa9,0xc0,0xa5,0x4b,0x3,0x42,0xf8,0xc4,0xbc,0xc2,0xdf,0x95,0x8e,0xc1,0x3b,0x5c,0x50,0x42,0x24,0x24,0x1d,0xc2,0x71,0x92,0xc2,0xc2,0xd1,0x72,0x21,0x41,0x3f,0x3e,0x92,0xc0,0xa,0xfc,0xad,0xc1,0xc,0x76,0xa8,0xc2,0xa,0x39,0x3d,0xc2,0x28,0x11,0x8e,0x40,0xa5,0x20,0x8d,0xc2,0x26,0xd1,0xe9,0x3e,0x3c,0xce,0x68,0x42,0x70,0x2a,0x9d,0x3f,0x9c,0xf0,0x2f,0x40,0xaa,0xba,0xd1,0xc0,0xbd,0xfb,0x30,0xc2,0xa4,0x68,0x43,0x41,0xb5,0x2c,0xb3,0x41,0x24,0x2b,0xbf,0x40,0x17,0x72,0x4,0x42,0xc0,0xbe,0x19,0x41,0x31,0x76,0xf6,0x41,0x20,0x4d,0xd,0x41,0x36,0x40,0x9c,0xc1,0x32,0xa8,0x91,0xc2,0x84,0xb,0x8a,0x42,0x6f,0x42,0xaf,0xc1,0xbe,0x62,0xf,0x41,0xde,0xbc,0xaa,0xc1,0x65,0x1,0x84,0xc2,0x88,0x65,0x60,0x41,0x12,0x23,0x9e,0xc1,0x9f,0x4a,0xe7,0x41,0xad,0xfd,0x54,0x42,0x68,0xd8,0xfa,0x40,0xcd,0x8b,0x9b,0x41,0xc1,0x9d,0xc2,0xc0,0xb7,0x76,0x41,0xc1,0x2c,0x34,0xa4,0x42,0x25,0xc7,0x0,0xc3,0x99,0x1f,0x2c,0x42,0x29,0x3,0x5,0x42,0xc9,0xea,0xca,0xc0,0x69,0x5d,0xee,0xc1,0xae,0x52,0xac,0x41,0x7a,0x4e,0xb1,0x42,0x70,0x45,0x98,0xc1,0xc8,0xb8,0xe7,0xc1,0xfc,0x97,0x8e,0x42,0xde,0x9d,0x7c,0x40,0x73,0x8c,0x76,0x42,0xd0,0x57,0x15,0xc2,0x65,0xc4,0xe0,0x41,0xf3,0x76,0x4d,0x41,0xa5,0x65,0x62,0x42,0x91,0x11,0x81,0xbf,0x58,0xff,0xd4,0x41,0x61,0x3f,0x6,0x42,0x33,0x1b,0x1f,0x42,0x57,0x26,0x14,0x42,0x4d,0x29,0xd7,0x41,0x6,0x8c,0xc2,0xbf,0xaa,0xe3,0x5e,0x42,0xb0,0x10,0x79,0x42,0x5a,0x62,0x65,0x42,0xf5,0xdf,0xd6,0x41,0x3d,0x13,0x8d,0xc1,0x6e,0xbf,0xe9,0xc1,0xd4,0x8c,0x36,0x42,0x93,0x3,0xbf,0x3f,0x33,0x6,0x93,0xc2,0x72,0x68,0x2c,0x42,0x96,0x84,0xbd,0xc1,0x82,0xd6,0x69,0x42,0xf5,0x64,0x74,0x41,0x43,0x98,0x9f,0x40,0xd2,0xb4,0xde,0xc1,0x62,0xbe,0x3,0xc2,0x88,0x1c,0x59,0xc2,0xb3,0xda,0xd0,0xc1,0x78,0x60,0x12,0x42,0xbc,0xa2,0x4,0x43,0xf8,0x5a,0x97,0x40,0x4c,0xd2,0x1c,0xc2,0xa8,0x2c,0x17,0x42,0x90,0x7d,0x45,0x42,0x43,0x56,0x63,0x42,0xae,0x9,0xa1,0x41,0x3,0x8f,0x24,0x42,0x14,0x53,0xeb,0x41,0x64,0xa0,0x34,0x41,0x94,0x16,0x48,0x42,0xe3,0x9,0xc,0xc2,0x79,0xf5,0x7d,0xc2,0xdb,0x8a,0x8c,0xc2,0xa2,0x1f,0x91,0xc2,0x32,0xa8,0x55,0x42,0x7d,0xca,0x68,0xc2,0x94,0xee,0x90,0xc2,0x7e,0x8d,0x31,0xc2,0xcd,0x5c,0x81,0xc1,0xb0,0x5c,0xdd,0x41,0xb9,0xc6,0x47,0x41,0x99,0x2,0x86,0x42,0x7e,0x9a,0xf,0x41,0x35,0xb5,0x28,0x42,0xd8,0x58,0xb9,0xc2,0x65,0xb1,0x88,0xc1,0x3a,0x3d,0x3b,0xc2,0xa4,0xa7,0x24,0x42,0xfb,0xd5,0x42,0xc2,0x43,0x76,0x8,0x42,0x9,0xbe,0x55,0x42,0x8b,0x2,0x62,0xc2,0xb4,0xf1,0x1f,0xbf,0x74,0x53,0x73,0x3f,0x1a,0x62,0x1f,0xc2,0x25,0x9,0xca,0x40,0x26,0x39,0xba,0xc0,0x28,0xd6,0x0,0x41,0x90,0xde,0x2c,0xc2,0x96,0x56,0x7,0xc2,0xf0,0xe5,0x8c,0xc2,0xd0,0x7c,0x55,0xc2,0xcf,0x9b,0x10,0xc2,0x8b,0x60,0x5a,0x42,0x6c,0x43,0xbf,0xc1,0x65,0xcd,0x2b,0xc2,0x5f,0xe2,0x48,0xc1,0xb1,0x29,0x17,0x42,0xee,0xe,0x16,0xc2,0xe2,0x9f,0x3,0x42,0x74,0x47,0xb9,0x41,0x62,0xb9,0xa6,0xc1,0xce,0xa2,0x6,0x41,0x6c,0xd4,0x7e,0xbf,0xa2,0x5b,0x15,0x42,0xec,0x5,0x4e,0xc2,0x2a,0x8c,0xa4,0x42,0xf6,0x85,0x80,0xc2,0x3c,0xcd,0xb8,0xc1,0x6a,0x3f,0x23,0x42,0x8c,0xfc,0x12,0xc1,0x60,0x99,0x12,0xc1,0xaf,0x87,0x8,0xc2,0x69,0xe3,0x3c,0xc2,0x3c,0x7c,0x6a,0x41,0x74,0x77,0xc,0xc2,0xa,0xd1,0xe6,0x41,0xc0,0x39,0x25,0x42,0xd8,0x2f,0x7d,0x42,0xd8,0x3,0x2a,0xc1,0xf3,0xda,0xe1,0xc1,0xbd,0x63,0xae,0xc2,0x4b,0xdd,0x96,0xc1,0x93,0xb8,0xa1,0xc1,0x2e,0xe2,0xc,0xc1,0x54,0xe0,0xf2,0x41,0x78,0xb9,0x58,0x40,0x3e,0x79,0xdc,0x41,0xf3,0xdc,0x62,0x41,0xbd,0xab,0xe7,0x40,0x9c,0x18,0xb,0x42,0x8c,0x94,0xee,0x41,0x1a,0x15,0x13,0xc2,0xe3,0xfe,0x22,0x42,0xfd,0xd9,0x2,0x42,0xaf,0x73,0x93,0xc1,0xb0,0x9b,0x40,0x41,0x54,0xe4,0x4c,0xc0,0x25,0x53,0x7b,0x42,0xea,0x6b,0x22,0xc2,0x48,0xa6,0xb2,0xbe,0xf7,0xf7,0x56,0x40,0x5f,0x78,0xd4,0x41,0x3f,0xd6,0x38,0x42,0xf3,0xfb,0xaa,0x41,0xcd,0xc1,0xcb,0x41,0x34,0x6f,0xd2,0xc2,0xe0,0x3a,0xbf,0xbe,0xfc,0xf9,0xeb,0x40,0xcc,0xe1,0xa3,0xbf,0xcf,0xf7,0x79,0x42,0xa1,0x7d,0xbd,0xc1,0x40,0x10,0x1a,0x42,0xaa,0x59,0xb2,0xc2,0xfd,0x24,0x21,0x42,0xdf,0x25,0x79,0xc2,0xc1,0x60,0x93,0xc1,0x30,0x2f,0x92,0xc1,0x46,0x24,0x6f,0xc2,0x36,0xa0,0xb8,0x41,0xff,0x63,0xa,0xc2,0x4a,0xe9,0xba,0x42,0xf7,0xd0,0xd0,0x41,0xa,0xcd,0xac,0xc1,0x1e,0x8f,0xea,0xc1,0xa7,0x1e,0x7f,0x41,0xef,0x8f,0x33,0xc2,0x69,0xf9,0xdd,0xc1,0x63,0xd6,0x42,0xc1,0x82,0x5d,0x7b,0x41,0x70,0xbc,0x37,0x42,0x4f,0x46,0x4,0xc1,0x59,0x69,0x37,0xc0,0x1a,0xcf,0xe3,0x40,0xce,0x44,0x7d,0x41,0x95,0x1e,0xa3,0xc0,0xdc,0xe9,0x1d,0xc0,0xc9,0xff,0x1d,0xc2,0x1d,0x7f,0xee,0x41,0x9a,0x92,0x95,0xc1,0x31,0x8,0x1f,0x41,0x33,0x28,0x83,0xc2,0xc8,0xf0,0xf3,0xbe,0xde,0xcf,0x3e,0xc2,0x36,0x38,0x27,0xc2,0x32,0xa0,0x1a,0xc1,0x7c,0xc6,0xec,0x40,0xce,0xeb,0x3a,0x41,0xe8,0x8,0x84,0x42,0xc,0x2e,0xf5,0x42,0xc1,0x5a,0x82,0x42,0xbf,0x42,0xa8,0x42,0xa,0xfb,0x1a,0xc1,0x74,0x38,0x4,0xc2,0xba,0xa2,0x63,0xc1,0xa6,0xc9,0x87,0x41,0x8,0x56,0xd,0xc2,0x76,0x84,0x4e,0x42,0x8e,0x53,0xc8,0x41,0x4c,0xf7,0x3a,0x42,0xf0,0x78,0x8e,0x41,0xeb,0xe9,0xa9,0xc1,0xbc,0xd8,0x9e,0x41,0x1e,0x56,0x5c,0xc2,0x7a,0xe3,0x7,0x42,0xa4,0x74,0x1d,0xc2,0xa4,0x33,0x4a,0x42,0x85,0xdc,0x98,0xc2,0xb,0x44,0x4b,0x42,0xbf,0x5e,0x50,0xc1,0xb3,0xd3,0xa0,0xc2,0x20,0x46,0x5f,0x40,0xe7,0xa3,0xe3,0x40,0x32,0xb6,0x5f,0xc2,0xd1,0xc8,0xa4,0xc2,0xb0,0x6a,0xb8,0xc1,0xb3,0x24,0xd9,0xc1,0xe3,0xec,0xc,0x41,0xea,0x3d,0xe6,0x41,0x5,0x89,0xab,0x42,0xee,0x82,0xed,0x41,0x2d,0xe4,0x30,0x41,0x1d,0x7a,0x29,0x42,0x99,0xf1,0x25,0xc2,0x1c,0x78,0xae,0x3f,0x1f,0xe3,0x20,0xc2,0x60,0x6b,0x4e,0x42,0xc6,0x75,0x12,0x42,0x89,0x25,0x14,0xc2,0x88,0xe4,0xd3,0xc1,0xea,0x11,0x1b,0xc2,0xfb,0x18,0x84,0xc1,0x70,0x37,0xbc,0xbf,0xc1,0x3,0x49,0x41,0x76,0x54,0xef,0x40,0xa4,0x14,0xf0,0xc1,0xf5,0x5d,0x37,0xc2,0x23,0x6a,0x8,0x42,0xab,0xcc,0x1b,0xc2,0x70,0xeb,0xeb,0x41,0xc3,0x51,0x13,0xc2,0xf6,0x9b,0x91,0x41,0xac,0xad,0xb4,0x42,0x60,0x95,0x91,0xc2,0x1e,0x80,0xf5,0x40,0xa6,0xaf,0xd6,0x3f,0x73,0xa1,0xc4,0x41,0x33,0x28,0xda,0xc1,0xbe,0xbd,0x40,0x42,0x27,0x5e,0x8d,0xc2,0xcc,0xa9,0x29,0xc2,0x65,0x0,0x5a,0x42,0xd0,0x17,0xd1,0xc0,0x16,0xff,0x9e,0xc2,0x75,0x86,0x95,0x40,0x25,0x29,0x21,0x42,0x54,0x94,0x1b,0x3f,0x85,0x9c,0xf8,0xc2,0x1f,0xeb,0x63,0xc2,0x78,0x8a,0xfc,0xc1,0x90,0x8d,0x4e,0x3e,0xef,0x25,0x8c,0xc2,0x88,0x93,0x6a,0x41,0x6f,0x79,0x8a,0xc2,0x32,0x1,0x92,0x41,0x4f,0x71,0x70,0x42,0x9b,0xa9,0x78,0x42,0xfb,0x6f,0xfe,0x41,0x7a,0xe5,0x3,0x42,0xfb,0x9f,0xfa,0xc0,0x98,0x71,0x23,0xc0,0x9a,0x66,0x7e,0x41,0x55,0xcb,0x64,0x42,0xae,0x4c,0xde,0x41,0x53,0xce,0x23,0xc2,0xf1,0xd3,0xf,0xc2,0x98,0x34,0x41,0xc2,0x22,0xfd,0x18,0xc2,0x54,0x6f,0x0,0xc0,0xd0,0x30,0x3f,0xc1,0x8e,0xe8,0xce,0xc1,0xcf,0xbc,0xcd,0xc1,0x81,0x6e,0xea,0x41,0x1a,0x25,0x96,0x41,0x7c,0x26,0x89,0xc2,0x2f,0x1a,0x53,0x42,0x60,0xd6,0xb4,0x41,0x28,0xb7,0x43,0x41,0x39,0x43,0xe8,0xc2,0x4c,0xe1,0x66,0xc1,0x97,0xc1,0xf7,0xc1,0x42,0x7b,0x30,0xc0,0x78,0x39,0x5f,0xc1,0xf8,0xbc,0xeb,0xc2,0xd1,0xda,0x97,0x42,0xd3,0xef,0x81,0xc2,0x66,0x3b,0x1f,0x41,0x68,0x33,0x84,0xc2,0xf4,0x3,0x3d,0x42,0x56,0xc7,0xf2,0x41,0x58,0xad,0xa9,0xc1,0x56,0x8a,0x2d,0x41,0x42,0x62,0xaf,0x42,0x98,0xc7,0xb6,0x40,0x21,0x2,0x9b,0xc2,0x5e,0xcc,0xcf,0x41,0x62,0x3d,0x64,0xc1,0x46,0xa2,0x73,0x42,0xf2,0x59,0xc1,0xc1,0x8,0x78,0xec,0xc1,0xd0,0xb0,0x92,0x40,0x94,0xff,0x51,0xc2,0xc9,0x3,0x8f,0xc2,0x34,0x28,0xef,0x41,0x84,0xcf,0xe2,0xc1,0x15,0x6b,0xbe,0xc0,0x71,0xd0,0x33,0x42,0x88,0xd4,0x6d,0xc2,0x29,0xcf,0xb8,0x41,0x7d,0x11,0x95,0xc2,0xa3,0x5f,0xe5,0xc1,0x63,0x9,0x72,0xc2,0xd9,0x77,0x3b,0xc2,0xc6,0xd1,0x83,0x41,0x92,0xd1,0x72,0x40,0x5b,0xc9,0x2,0xc2,0x81,0xf6,0x1f,0xc2,0xc8,0x9,0x8c,0xc2,0xd2,0xfb,0x99,0xc2,0xc2,0xa8,0x83,0xc2,0xb8,0xd,0x70,0x41,0x7f,0x4c,0x99,0x42,0xec,0x14,0xa6,0x42,0x70,0x23,0x5,0x41,0xd4,0x60,0x77,0x40,0x9b,0xce,0xcd,0x40,0x8,0x3,0x6c,0xc0,0x68,0xb9,0x2f,0x3e,0x48,0x6c,0xd0,0xc2,0x17,0xb,0xe5,0x41,0x4b,0xb1,0x41,0x42,0xea,0xc,0x8b,0xc1,0x99,0x12,0xce,0x41,0x3e,0xf2,0xfd,0xc1,0xca,0xfb,0x53,0xc2,0x3e,0x80,0xb4,0x41,0xac,0x1e,0xc1,0xc1,0x4b,0x47,0x91,0x41,0xae,0xa0,0xa6,0x42,0xe4,0xad,0xa4,0x42,0x5,0x35,0xbf,0x41,0xc7,0x6e,0x6a,0x42,0x68,0xf2,0x5d,0xc2,0x11,0xd,0x1c,0xc2,0xa6,0x5d,0xf8,0x41,0x76,0x29,0xe3,0xc1,0x24,0x61,0xad,0xc1,0x8a,0xf,0x1f,0x41,0xf0,0x78,0xcc,0x41,0xd8,0xfd,0x8,0xc2,0xbe,0x17,0xcf,0xbf,0x52,0x16,0xb9,0x42,0x58,0x93,0xcb,0xc1,0x35,0xc1,0x84,0x42,0x7c,0x31,0x35,0x42,0xc8,0x3c,0x5c,0xbf,0x5d,0x91,0xc,0x42,0x68,0x11,0x9,0x41,0xcd,0x14,0x89,0x40,0x86,0x2a,0x7,0x42,0x64,0xa1,0x77,0x41,0xd1,0x45,0xe,0xc1,0x95,0x30,0x66,0x42,0x17,0xa4,0x81,0x41,0xe3,0xfa,0x32,0x41,0x47,0x87,0x2b,0xc2,0x41,0x14,0xcc,0x40,0x9b,0xe5,0xa8,0xc2,0x38,0xed,0x61,0x3f,0x19,0x1a,0x3d,0x42,0xd8,0x85,0x65,0xc1,0x14,0x32,0x1f,0xc2,0x3a,0x61,0x8,0x42,0xc9,0x36,0xc2,0x40,0x99,0x68,0xa5,0x42,0xb8,0xe0,0x9b,0x41,0xa6,0x45,0x9d,0xc2,0x42,0xa4,0x82,0x42,0x16,0xd3,0xed,0x41,0xdc,0xd2,0x6b,0xc2,0x2e,0x63,0x59,0x41,0xcc,0xf3,0x10,0xc2,0x81,0x62,0x1b,0x41,0x2d,0xf5,0x9b,0x42,0xcd,0x96,0x4d,0x42,0x72,0xb0,0x87,0xc2,0xbe,0xa,0x5,0xc2,0xac,0xef,0xa9,0x42,0xd5,0x24,0xf7,0x41,0x40,0xd6,0xeb,0x3f,0xe8,0x45,0x5f,0x41,0x5a,0xb6,0xe9,0xbf,0xf,0x5d,0xe4,0x41,0x1d,0x67,0xc7,0xc2,0xbc,0x26,0x71,0xc1,0xea,0x77,0x3e,0xc1,0x1e,0x60,0x15,0x42,0x68,0xfc,0xab,0x41,0xa4,0x96,0x96,0x42,0x84,0xe1,0x5b,0x42,0xa0,0xc8,0x3e,0x41,0x56,0xb1,0x3d,0xc2,0xbc,0x92,0x5e,0x42,0xc,0x61,0x9a,0x41,0x65,0x4c,0xb6,0x41,0x86,0x9,0xba,0x42,0x45,0x61,0x79,0xc2,0xad,0x81,0x9b,0x41,0x23,0x65,0xd5,0x41,0x11,0x8e,0x42,0xc1,0xbb,0xd8,0x80,0xc0,0x68,0x44,0x82,0x42,0xf5,0x2a,0x7a,0xc1,0xe4,0x6e,0x27,0x42,0x16,0x12,0x31,0x41,0xa6,0x6d,0xbb,0xc1,0xdc,0xc5,0x9c,0x3e,0xca,0x7,0xc8,0x41,0x32,0x56,0x24,0xc0,0xf,0xb0,0xef,0x41,0xce,0x88,0xc9,0xc1,0xf7,0x6b,0xcd,0xbf,0xda,0xe,0xd,0x42,0xb3,0x90,0x73,0x41,0x8d,0xe5,0x63,0xc2,0x94,0xe4,0x1f,0xc2,0xf4,0xa6,0x1f,0x41,0xab,0x6c,0x8e,0xc2,0xf9,0x43,0xe4,0x41,0x2c,0x5f,0x9f,0x41,0x6b,0xdc,0x22,0x42,0xea,0x86,0xf4,0x42,0xe,0x2f,0x98,0x41,0x26,0x47,0x40,0xc0,0x2,0x88,0xb,0x42,0xec,0xe6,0x31,0xc2,0x18,0x46,0x3e,0xc2,0x45,0x51,0x69,0xc2,0xee,0x98,0x85,0x42,0x3c,0x97,0x8c,0xc0,0xdc,0x6c,0x70,0x42,0xf7,0xd7,0x90,0x42,0x36,0xf7,0xd,0x40,0xfc,0x45,0x64,0xc0,0xf,0x1d,0xf5,0xc1,0xef,0x38,0x10,0xc0,0x8e,0x2e,0xcf,0x41,0x54,0x38,0x57,0x42,0xa2,0x60,0x85,0xc1,0xa3,0x4,0x49,0xc2,0x78,0x39,0x34,0xc1,0x9b,0xd8,0x57,0xc2,0x36,0xe,0x19,0x42,0xc1,0xdc,0xa3,0xc2,0x2c,0xc8,0xa1,0xc2,0xbe,0xdd,0x58,0x42,0xe1,0x77,0x85,0x41,0xa4,0x81,0xe7,0xc1,0x9e,0xe2,0x62,0xc2,0xc4,0x82,0x47,0xc1,0xb6,0xee,0x80,0xc2,0x94,0xd0,0x5d,0xc2,0x61,0x57,0xe2,0x41,0x4c,0xd,0x25,0x42,0x8c,0x5d,0xad,0x41,0x45,0x4d,0x81,0x41,0x2e,0x95,0x25,0x42,0xc3,0x10,0xa0,0xc2,0x6c,0xe5,0x33,0xc1,0x8f,0xe6,0xad,0xc0,0x6c,0x9c,0xe2,0xc1,0x3e,0x6b,0x19,0xc1,0xc3,0x95,0xaf,0x42,0xfe,0x4e,0xbb,0x41,0xd5,0x2,0xa1,0x41,0xe0,0x36,0xb3,0xc0,0x37,0xc2,0xe2,0xc1,0xc5,0x49,0x18,0xc1,0xdd,0xa4,0xa,0xc2,0x2,0x21,0x56,0x41,0x37,0x5b,0x46,0x41,0x11,0x5d,0xf9,0x41,0xd0,0xc8,0x4,0xc1,0x12,0xa,0xec,0x41,0xf4,0x2b,0xa0,0xc2,0xbc,0x1a,0xda,0xc1,0xb1,0x32,0x13,0x42,0x19,0xa8,0xb8,0x42,0x5d,0xad,0x1f,0x42,0xd2,0x7e,0x98,0x40,0x82,0x92,0xb0,0x42,0x44,0x2b,0x8f,0xc2,0x5b,0x84,0x10,0xc2,0x79,0x50,0xa,0x42,0xec,0xfd,0xb0,0xc2,0x84,0xa8,0xe2,0x42,0x10,0x2c,0x5,0xc1,0x37,0xd9,0x16,0xc2,0xf6,0xfd,0x5d,0x42,0x1,0xca,0xd8,0xc0,0x92,0x33,0xfd,0xc1,0x1f,0xde,0xea,0x41,0x45,0x7a,0x4,0xc2,0xa8,0x9a,0xf5,0x3f,0x10,0x8,0xc9,0x40,0x5b,0x25,0x2,0x41,0xbf,0x23,0x45,0xc2,0x93,0x38,0x1d,0x42,0xfc,0xf,0xd4,0x41,0xf7,0xce,0x6f,0x41,0x5,0x1b,0x15,0x43,0x26,0xa9,0x38,0xc1,0x76,0x5d,0xf9,0x40,0x9f,0x8f,0x2e,0xc1,0x7f,0x96,0x48,0x42,0x48,0xde,0x7d,0x42,0xd1,0xe4,0x7b,0x41,0x6e,0x9b,0xc6,0xc1,0x9,0x77,0xd3,0xc1,0x3f,0x6a,0x29,0x40,0xc2,0x8a,0x6e,0x41,0xc2,0x7e,0xb,0xc2,0xae,0xe,0xfa,0xc1,0x9d,0xa0,0xb5,0x41,0x88,0x79,0x38,0xbf,0xe8,0x42,0x57,0xc0,0xd,0xb2,0x5c,0xc2,0xb6,0xed,0x8b,0x41,0x16,0xc0,0xa2,0x42,0xa8,0x67,0xaf,0xc1,0x1a,0xe6,0x41,0x42,0xf2,0x9e,0x1,0x42,0xfd,0x28,0xaf,0x42,0x3a,0xb2,0xe5,0x41,0x14,0x34,0x93,0x41,0xc6,0x12,0x9,0xc2,0x18,0xb9,0x91,0x42,0xda,0x22,0xe4,0xc1,0x11,0x20,0x61,0xc2,0xe2,0x9c,0x4b,0x41,0x8c,0x84,0xdd,0x41,0x9d,0x9,0xea,0x41,0x68,0x87,0x42,0x41,0xfd,0xf4,0x34,0xc2,0x50,0xbd,0xd2,0x40,0x38,0x31,0x4e,0xbf,0xa2,0xf2,0xbe,0xc1,0x63,0x69,0x33,0x41,0xea,0x6c,0x29,0xc1,0x26,0x52,0x4c,0x41,0xb9,0x2,0x70,0xc1,0x3,0xa8,0x1c,0xc2,0x18,0xd9,0xa5,0xc1,0x1e,0xc6,0xf4,0x42,0x5d,0x4b,0xff,0xc1,0xce,0x9c,0xb8,0xc1,0x46,0x74,0x36,0xc2,0xb7,0x62,0x33,0xc2,0xe,0xf1,0xc0,0x40,0xb3,0xeb,0x54,0xc2,0x6d,0x55,0xef,0xc1,0xe8,0x4c,0xa4,0x3e,0xe0,0x8f,0xad,0xc1,0x64,0xd7,0x19,0x42,0x52,0xbc,0x15,0x42,0x10,0x82,0x7,0x42,0x79,0xd2,0x34,0xc2,0x22,0xef,0x5a,0x42,0xdd,0xe2,0x9c,0x41,0x1d,0x58,0xef,0xc0,0xea,0x22,0x2b,0xc2,0xde,0xc2,0x9e,0x41,0x23,0x9c,0x97,0xc2,0x59,0x59,0x7a,0x42,0xe3,0xe9,0x7b,0xc2,0x47,0xf2,0xd1,0xc2,0x6e,0xd4,0x36,0x42,0xc8,0x44,0xc3,0xc1,0xc6,0xbc,0xa4,0xc0,0x75,0x41,0x4f,0xc1,0x4e,0xc1,0x80,0x42,0x72,0xc2,0x51,0xc1,0xde,0x6,0x2a,0x41,0x2b,0x4,0xf8,0x41,0xb2,0xc7,0x31,0x42,0xf6,0x74,0x92,0xc2,0x47,0x19,0x3,0xc2,0xdb,0x3,0x54,0x41,0x6b,0x59,0x4a,0x42,0x6a,0x9e,0x91,0x40,0x5a,0x7b,0xb6,0x41,0xe9,0x32,0x9c,0x40,0x20,0x9a,0xb3,0x42,0x91,0x9d,0x4b,0x42,0xa9,0xd9,0x29,0x42,0xce,0x43,0x6f,0xc1,0xd4,0x87,0x9b,0xc2,0x8e,0x3b,0x1,0x42,0x90,0xcb,0x4a,0x42,0x9c,0x2,0x23,0x42,0x3c,0xef,0x95,0x42,0x83,0x98,0x37,0xc2,0xac,0x9a,0xc0,0x41,0x16,0x3e,0x4f,0xc0,0x9d,0x17,0x83,0xc2,0x6b,0x94,0x95,0xc2,0xc2,0x6,0xb2,0x40,0x3f,0x2c,0x36,0x42,0x3c,0x75,0xb6,0x42,0x12,0xb7,0x96,0xc2,0xcc,0x13,0x59,0x41,0xe4,0xb6,0xca,0x41,0xca,0xb3,0x37,0x42,0xcc,0x12,0x2c,0xc2,0x86,0x6d,0xef,0x41,0xcd,0x21,0x4a,0xc1,0x5b,0x36,0xd7,0xc0,0xfc,0xd,0x82,0x42,0xc3,0xa3,0x7f,0xc2,0xb1,0xee,0x62,0xc2,0x49,0x48,0xae,0xc2,0x72,0xf5,0x4b,0x42,0x73,0xc0,0x1e,0x41,0x64,0x90,0x5d,0xc0,0xc2,0x48,0x47,0xc2,0xc5,0xb8,0x8c,0xc2,0x6,0xf5,0xac,0x41,0x6b,0x4b,0x1c,0x42,0xd4,0xfb,0x1b,0x41,0xe7,0x4b,0x4c,0x42,0xcc,0xa7,0xdb,0x42,0x20,0xd5,0x5e,0x42,0x8,0x43,0x82,0xc0,0x6b,0x58,0x1,0x42,0x92,0xdc,0xba,0x41,0xa0,0xad,0x51,0xc0,0xea,0x34,0xdf,0xc1,0x5f,0xac,0x1,0x42,0x30,0xfb,0xb9,0x3f,0x79,0xeb,0x98,0xc2,0x47,0xe5,0xa5,0x41,0x36,0xe1,0xd5,0x41,0x32,0xbc,0x55,0xc2,0x83,0xe,0xc0,0x41,0x8,0xb7,0x0,0xc2,0x52,0x44,0xa3,0x41,0x54,0xec,0xcc,0x41,0x1a,0xfc,0x75,0xc1,0xca,0xeb,0x66,0xc2,0xd5,0xe4,0xdc,0x41,0xac,0x75,0x1e,0xc2,0x5e,0x4f,0x2b,0x42,0xe8,0x27,0x6b,0x41,0xf2,0xec,0xa9,0xc1,0x66,0xcb,0x4a,0x42,0xf2,0xd6,0x9b,0xbf,0xd4,0x4b,0x69,0x42,0x12,0x9a,0x9a,0x41,0x14,0xd0,0xb2,0xc1,0x2e,0x9a,0xca,0xc1,0x20,0x5a,0xa0,0xc1,0xc,0xeb,0xf3,0xc0,0xb,0x95,0x32,0x42,0xba,0x10,0x4,0x41,0x8,0x6e,0x23,0x42,0xc4,0x61,0xa3,0xc1,0x72,0x6d,0xd4,0x41,0x79,0x1b,0x89,0x41,0xd9,0xd8,0x47,0x42,0xe0,0xeb,0xed,0xbd,0x3f,0x4d,0xba,0xc1,0x47,0x21,0xa4,0xc1,0xf4,0x4a,0x4d,0x42,0xca,0x85,0x9d,0x41,0x73,0x37,0xc0,0x42,0x6c,0x99,0xde,0x41,0x60,0x37,0x87,0xc2,0xdc,0x21,0xbd,0xc1,0x6f,0x4e,0xc7,0x40,0xe1,0xc1,0x2c,0xc0,0x38,0x1e,0xb6,0xc0,0x13,0xd1,0x3e,0x40,0x36,0x7e,0x9b,0xc0,0x22,0x1b,0x37,0x42,0x5,0xec,0x96,0x42,0xbe,0x3f,0x6e,0xc2,0xc2,0x88,0xe1,0xc0,0x47,0xf1,0x16,0x42,0x9a,0xd4,0xbc,0xc1,0x8e,0xfb,0x42,0x41,0xc9,0xf7,0xa2,0x42,0xfe,0x21,0x5,0x42,0x30,0x87,0x25,0x40,0x54,0x41,0x87,0xc1,0x46,0xaf,0x9,0xc2,0xdc,0xed,0x0,0xc2,0x19,0xf6,0xf9,0x41,0x67,0x19,0x84,0xc1,0x39,0x65,0x91,0xc1,0xc4,0xf4,0xe2,0x41,0xe6,0xc0,0x9b,0x41,0x4a,0x10,0x81,0x41,0xca,0xe0,0x33,0xc2,0x17,0x4,0x33,0xc1,0x91,0xf6,0xb,0x42,0xc0,0x94,0xcf,0x3f,0xec,0x6a,0xc1,0xc1,0xe9,0xc4,0x75,0x41,0xc,0xc8,0x9,0x42,0x70,0xd1,0x3a,0x42,0x76,0xad,0x39,0xc0,0x4a,0x49,0xe1,0xc0,0xe0,0xc3,0x8b,0x3f,0xa1,0xba,0xf3,0x41,0x5c,0x5f,0x4f,0x41,0xba,0x4,0xb7,0xc1,0x5e,0x3d,0xf2,0x41,0xd4,0x1,0x40,0xc1,0xeb,0x3b,0xdf,0xc1,0x3a,0x54,0xea,0x41,0x10,0x69,0xb7,0x41,0x50,0x1d,0xaa,0xc0,0x42,0x32,0x71,0x42,0xe4,0x2c,0xaa,0xc2,0xe3,0x97,0x71,0xc2,0x43,0xa,0xc9,0xc1,0x8f,0x62,0x84,0xc1,0x5a,0x3c,0xb4,0xc1,0x46,0x4b,0x51,0xc2,0xa1,0x6d,0xf1,0x40,0x9e,0xa1,0x9,0xc2,0xf2,0xd1,0x53,0x42,0xa6,0x99,0xc7,0xc0,0x3c,0x3a,0x84,0xc1,0x44,0xf8,0x33,0x42,0x94,0xf0,0xa,0xbf,0x6e,0xc9,0x81,0x41,0xd0,0x40,0xf,0x3d,0x94,0x22,0xb2,0xc2,0x16,0x24,0x4,0xc2,0x29,0x12,0xb5,0xc1,0x8c,0x0,0xad,0x42,0x88,0x2d,0xfd,0xbf,0x3a,0x86,0x2e,0x42,0xba,0x40,0x43,0xc2,0xc0,0xc3,0x9e,0x3d,0x94,0x8b,0x34,0xc1,0x52,0xe,0x22,0x42,0x26,0xb,0x80,0x41,0x75,0x29,0x2b,0xc2,0x5e,0x56,0x86,0xc1,0xf6,0xeb,0xd,0xc2,0xb4,0x71,0x99,0x41,0x41,0x8f,0x27,0xc2,0x48,0x22,0xce,0x41,0x14,0xd2,0x13,0xc2,0xa0,0x5b,0x6e,0xc0,0x8e,0x6,0xb0,0xc0,0xef,0x1d,0x6f,0xc2,0xd0,0x46,0x2d,0xc2,0xba,0xb8,0x87,0xc0,0x50,0xe1,0x18,0x40,0x20,0x31,0x4d,0x42,0xbb,0x29,0x12,0xc2,0x3,0x1b,0x83,0x40,0xb0,0xf4,0xff,0x40,0x96,0x52,0xad,0xc2,0x8,0xa6,0xea,0x3d,0xce,0xbc,0xb3,0xc1,0x65,0x21,0x9b,0x40,0xca,0xb1,0x1,0x42,0xf9,0xfd,0x11,0xc2,0xbc,0xb6,0x3,0xc3,0x86,0x13,0xd3,0x41,0x99,0xb3,0x7f,0xc1,0x2f,0xcc,0xf3,0xc1,0xe4,0xa9,0x26,0xc2,0xa0,0xed,0x64,0xc2,0xe6,0x80,0x46,0xc0,0xcb,0x18,0x29,0x42,0x86,0x54,0x21,0x42,0x70,0xc7,0x5e,0x40,0x26,0x43,0xdf,0xc1,0x14,0x46,0x48,0x41,0xee,0x81,0xeb,0xc1,0x9c,0x2a,0x5b,0xc2,0x84,0x4d,0x19,0x41,0xb1,0xe4,0x3e,0xc2,0x8e,0xd2,0x4d,0xc1,0x3e,0x44,0xaa,0x41,0x9a,0xdb,0x8d,0xc2,0x67,0x4f,0x82,0x41,0xd2,0x31,0x89,0x41,0x92,0x8d,0x26,0xc1,0x44,0x46,0x2d,0xc2,0x67,0x4a,0x82,0x41,0xf7,0x9c,0x69,0xc2,0xfb,0x77,0x8e,0xc2,0x48,0x3a,0x5,0xc2,0x23,0xca,0xde,0x3f,0x3e,0x79,0x80,0xc2,0x5e,0xb,0x8a,0x41,0xfc,0x27,0x99,0xc2,0x88,0x39,0xdd,0xc1,0xae,0x98,0x5f,0x42,0x84,0xa8,0x5f,0xc1,0x55,0x4b,0x59,0x42,0xfc,0xc,0x14,0x41,0xd4,0x82,0xfd,0xbf,0x30,0x25,0x94,0x41,0x1d,0x1,0xbd,0xc1,0xb0,0xe9,0xb,0x42,0xd0,0x93,0x24,0x41,0xd6,0x8c,0x0,0x42,0x72,0xb8,0x8d,0xc1,0xb6,0x7a,0x16,0x42,0xa4,0xc2,0x2d,0x42,0x9e,0xfa,0x41,0x42,0x77,0xc9,0xf7,0x41,0xa,0x64,0x36,0xc2,0x72,0x28,0x46,0xc2,0x64,0xe9,0xf0,0x41,0xbb,0x5,0xb3,0xc1,0x48,0xd7,0xfc,0xc1,0xbe,0xbe,0xcd,0x41,0xb5,0xee,0x2a,0xc2,0x56,0x6e,0x51,0xc2,0x48,0xe8,0x8f,0x3e,0xfc,0x4c,0xfb,0x41,0x34,0x56,0x32,0x42,0x84,0x5,0x18,0xc1,0x23,0x6b,0x44,0x42,0xb8,0x23,0x77,0x41,0xdc,0x89,0x25,0xc2,0xc4,0xf8,0x6a,0x40,0x8a,0xc9,0xa8,0xc1,0xe2,0x73,0xe2,0x41,0x68,0xb8,0x35,0x42,0x14,0xb2,0x30,0x40,0x4e,0xd6,0x16,0x42,0xda,0xc,0xc,0xc1,0x39,0x5c,0x2d,0xc2,0x3,0xc4,0x82,0x41,0xc1,0xcd,0x33,0x42,0x7f,0xae,0x33,0xc2,0xe,0x76,0x99,0x42,0x2e,0x8,0xdf,0x41,0xee,0x98,0xcd,0xc0,0x3c,0xdd,0x22,0xc2,0xa2,0x75,0x95,0x41,0xf5,0x83,0xf6,0xc1,0x5f,0x75,0xd,0x42,0x1c,0x4c,0xd2,0xc1,0x40,0xf1,0x5b,0xbd,0x3d,0x5,0x92,0x41,0xf9,0x61,0x7a,0x42,0x16,0x82,0x4b,0xc1,0x4,0xcb,0xb4,0x40,0x2b,0xfa,0x11,0xc2,0x7d,0x12,0x1,0x42,0x66,0xa9,0x5b,0x41,0xe9,0xd8,0xae,0xc1,0xe7,0xf9,0x82,0x42,0x6c,0x3d,0x9c,0x41,0x9c,0x81,0x15,0xc2,0x10,0x8,0xe9,0x41,0x41,0x6e,0x78,0x41,0x86,0xce,0x9b,0x42,0x1c,0x25,0x14,0x42,0x9a,0xc0,0xa9,0x42,0x94,0x7c,0x10,0x42,0x4c,0xb8,0xf0,0xc1,0x14,0x42,0x9a,0x40,0x6f,0xd0,0x8a,0x42,0x93,0x8d,0x36,0xc2,0xd8,0x5b,0x3f,0xc2,0xfc,0xb3,0x30,0xc2,0xfa,0x5a,0x96,0xc2,0xfe,0xd2,0x27,0x42,0x59,0xb0,0x0,0xc2,0xcf,0x22,0x7f,0xc1,0xfa,0x5b,0x13,0xc0,0x27,0xdf,0xf0,0xc1,0xe1,0x60,0xd7,0xc1,0xc2,0x24,0x1c,0xc2,0x37,0x17,0x4d,0x42,0x30,0x52,0xa3,0xc1,0xe4,0x87,0x1d,0xc1,0x94,0x18,0x2c,0x41,0x8e,0xca,0xb3,0xc0,0xe1,0x56,0x48,0x42,0xf8,0x3a,0x33,0x42,0xf7,0xad,0x3f,0xc2,0x32,0x75,0x1b,0x41,0xcf,0x40,0xbc,0xc0,0x29,0x36,0x5d,0x41,0xa9,0x99,0xa3,0x41,0x36,0x60,0x1f,0x42,0xb9,0x88,0xd1,0xc1,0x4a,0x99,0xf7,0x41,0x7e,0xce,0x2c,0x42,0xc6,0x60,0x5,0xc1,0x1a,0x65,0x18,0x40,0xeb,0xf,0x55,0xc1,0x4c,0xa9,0x65,0xbf,0xb,0xf6,0xd,0xc2,0x22,0xf5,0xc7,0x41,0xd9,0x72,0xfd,0xc1,0xa,0x10,0x40,0x41,0xcc,0xf3,0xf8,0x41,0x78,0x69,0x80,0xc2,0x2a,0xea,0x58,0x3f,0x69,0x6f,0x77,0x41,0xb7,0xa,0x10,0x42,0x51,0xca,0xb8,0xc1,0x23,0x9e,0x73,0x41,0x64,0x5a,0xa,0xc2,0xec,0xce,0x96,0xc0,0x21,0xce,0x5d,0x41,0x3f,0x56,0x65,0x41,0x67,0xe9,0x1,0xc2,0xc8,0x9f,0x80,0x40,0xdc,0xab,0xb1,0xc1,0xd6,0x2b,0xde,0x40,0xc9,0x9c,0x40,0x42,0x50,0xe0,0x7c,0xc1,0x15,0x92,0xa1,0xc1,0xa0,0x77,0x90,0xc1,0xc8,0x6f,0x2d,0xc2,0x10,0xf5,0x23,0x42,0xe3,0xe4,0x21,0xc2,0x5d,0x73,0x58,0xc1,0x40,0x3a,0xe8,0x41,0x4a,0x5,0x71,0x42,0xa2,0x42,0x3c,0x41,0xff,0x9e,0xb6,0x41,0xae,0xf9,0x9e,0x42,0x86,0x67,0xa5,0xc0,0x84,0x26,0x16,0xc2,0x78,0x2a,0x8c,0x41,0xdc,0x24,0x99,0xc2,0x5e,0x53,0x29,0x42,0x4c,0x91,0x91,0x42,0x2a,0xa,0xa,0xc2,0x10,0x58,0xaf,0x40,0x22,0xfe,0xe3,0x3f,0x4a,0x5f,0x26,0xc2,0x0,0x72,0x27,0x42,0xb6,0xa4,0xdc,0x41,0xd0,0xb0,0x58,0xc2,0x58,0x50,0x4b,0xc2,0x74,0xc0,0xe0,0x40,0xee,0x1,0x5e,0xc2,0x7a,0x60,0x37,0xc2,0xfe,0x5c,0xf4,0x42,0x31,0xa8,0x19,0x42,0xd3,0xd3,0x16,0xc1,0x5,0x32,0x9f,0xc2,0x51,0xb4,0xb,0xc2,0x6e,0xaa,0x56,0xc2,0xc6,0x34,0x69,0xc2,0x48,0x1a,0xfe,0x40,0xf7,0x66,0xbd,0x42,0x89,0xa1,0x8d,0xc2,0x3a,0xdd,0x5a,0xc1,0x11,0x6e,0xf3,0x41,0xf4,0x1b,0x2e,0xc1,0x82,0x47,0x35,0xc1,0x3c,0xd8,0x27,0x42,0x11,0xf5,0x36,0xc2,0x4c,0x32,0xff,0xc1,0xa6,0x1c,0xf0,0x41,0x12,0x91,0xa,0xc1,0x7c,0x44,0x80,0xc2,0xf0,0x4c,0x71,0xbf,0xf7,0xa3,0xdc,0xc1,0x3c,0xab,0x2c,0xc1,0x32,0x40,0x11,0xc2,0xa9,0x7b,0x37,0xc1,0x35,0xdb,0x1d,0xc2,0xc0,0x39,0x3e,0xc2,0x4b,0xef,0xe5,0xc1,0xe4,0x20,0x4a,0x41,0xeb,0xbe,0x30,0x42,0xf6,0x83,0x43,0xc2,0x7,0xec,0x11,0xc2,0x97,0xeb,0xec,0xc1,0xf6,0x5f,0x8b,0xc2,0x6a,0x61,0xb4,0xc2,0x5e,0x26,0x8b,0xc1,0x1e,0x3e,0x65,0xc2,0x69,0x9,0xb,0x42,0x98,0xae,0xbf,0xc1,0xab,0x81,0x6,0x42,0xc3,0x9c,0x90,0x42,0xc0,0x39,0x5c,0xc1,0x52,0x1d,0x65,0xc0,0xd1,0x99,0x82,0xc2,0x68,0x14,0x2a,0x42,0x5a,0x18,0x6,0xc2,0x9c,0x61,0xd2,0x41,0xfb,0x30,0x7,0xc1,0x62,0xcf,0x36,0x42,0x64,0x30,0x56,0xbf,0xb8,0xa8,0x32,0xc2,0x92,0x56,0x75,0x42,0x7c,0x4c,0x6a,0xc1,0x2e,0xcc,0xc2,0x41,0xf0,0x5d,0x95,0x41,0x84,0x90,0x6f,0xc2,0x74,0x5d,0x8a,0xc1,0x35,0x8d,0x83,0xc2,0xa4,0xdb,0xbe,0xc2,0x94,0x29,0x4e,0x42,0x20,0x56,0xc1,0x41,0xca,0x7d,0x7e,0xc2,0xda,0x30,0x64,0x42,0x63,0x8a,0x30,0xc2,0xb6,0x3,0x8f,0x41,0x7e,0x41,0x59,0x42,0xf9,0xdb,0x32,0xc2,0x7c,0xa,0xf5,0xc1,0x2,0xba,0x3f,0x42,0x12,0x1,0x4,0x41,0x33,0x91,0x4b,0xc2,0x2a,0x91,0x74,0x40,0xfa,0x76,0xa2,0x42,0x1d,0xb8,0x8c,0xc0,0xbc,0x5b,0x95,0xc2,0x53,0x31,0x10,0xc2,0xf5,0xfb,0xf1,0xc2,0x18,0x96,0x74,0xc2,0x93,0x8a,0x18,0x42,0xba,0x47,0x7,0xc2,0x5c,0xc,0x9f,0xc1,0x24,0xb2,0xb2,0x42,0x4c,0x73,0x3,0x42,0x54,0xbb,0xce,0x3f,0x9b,0xee,0xbc,0xc1,0x52,0x89,0x74,0x41,0x25,0x66,0x6d,0xc2,0xf7,0xd3,0x6c,0xc2,0xe2,0x69,0x92,0x42,0x72,0x55,0x59,0xc1,0x43,0x69,0xf4,0xc1,0xc9,0x4e,0xec,0x41,0xba,0xe2,0x1,0xc2,0x78,0x7d,0xfd,0x41,0xc1,0x4d,0x55,0x42,0xf8,0x56,0x12,0x42,0x2b,0x58,0x85,0xc2,0x26,0xf5,0x33,0x42,0xc4,0x7,0x4b,0x42,0x58,0x97,0x27,0x42,0x49,0x53,0x1e,0x42,0x76,0xfe,0xcb,0x40,0x91,0xd1,0x48,0x42,0xe,0xd1,0x8a,0x42,0xc9,0x65,0x5c,0xc2,0xc,0xfe,0xb5,0x41,0x74,0xa7,0xc3,0xc1,0x20,0xb7,0x1f,0xc2,0x5c,0x89,0x51,0x3f,0xbd,0xcb,0x7,0xc2,0xc8,0xce,0x88,0x40,0x58,0xa4,0x28,0x41,0x34,0x82,0x81,0x40,0xc1,0x78,0x9b,0x42,0xa0,0x9a,0x9b,0xc1,0xc7,0xae,0x96,0x42,0xc0,0xdd,0xf4,0x41,0xf,0x37,0x7d,0x42,0xe4,0xb2,0x8d,0x42,0x27,0xcc,0x9,0x41,0x20,0x15,0x25,0x42,0x0,0x1,0x5c,0xc1,0xc0,0x87,0xc2,0xc1,0xfc,0x68,0x1,0xc1,0xfc,0xbe,0xf,0xc2,0xdc,0xfa,0xad,0x42,0xde,0x4d,0x7e,0x42,0xbc,0xed,0xb7,0xc1,0xd6,0xe8,0x3c,0x42,0x7b,0xc8,0x36,0xc2,0xd0,0xf7,0x2f,0xc1,0x36,0x3b,0xe4,0xc1,0x61,0x35,0x9c,0xc2,0xec,0x1,0xd9,0x41,0xf5,0xd4,0xd7,0x41,0x2d,0xe1,0xa6,0xc2,0x5e,0xac,0x9c,0xc1,0x7d,0x8,0xf9,0xc1,0xa1,0x48,0xb4,0x40,0x82,0xc1,0x50,0xc1,0xd5,0x4f,0x7b,0x42,0xf2,0x79,0xce,0x41,0x8e,0x62,0xa3,0xc1,0xbc,0x6c,0x31,0xc2,0x20,0x43,0x9,0x42,0xe2,0x9d,0xf2,0xc1,0x87,0xfe,0x20,0x42,0xc4,0x0,0x2,0xc2,0x1e,0x87,0x11,0x41,0xa6,0x6c,0xb5,0x41,0xca,0x24,0xc6,0xc1,0xf4,0x7e,0x81,0xc2,0xfa,0x7d,0x5c,0x42,0xd3,0x14,0x4,0xc2,0x43,0xe6,0x2f,0x42,0x55,0x58,0x26,0xc1,0x52,0xa1,0x4a,0xc1,0xd,0x9f,0xec,0x40,0xea,0xcf,0x84,0x42,0x6b,0xd9,0x5d,0x42,0xc4,0xa2,0x39,0x40,0xe3,0x5c,0x8b,0x42,0xa7,0xea,0x95,0x42,0xd6,0x6e,0x34,0xc2,0x77,0xb4,0x2b,0xc2,0x56,0x1b,0x64,0xc1,0x9b,0x5,0xe9,0x41,0x54,0x89,0xe2,0x41,0x89,0xf2,0x53,0x42,0x3a,0x76,0x49,0x42,0x7a,0xfb,0x59,0xc2,0x4c,0xb4,0x25,0x42,0xa1,0xd5,0x13,0x42,0x83,0x6a,0x74,0x42,0xb3,0x56,0xdd,0x41,0x5c,0x8d,0x3f,0xbf,0x6e,0x31,0x2a,0x40,0xf0,0x83,0x3f,0xc2,0x74,0xa4,0x2d,0x41,0x41,0x9c,0x9,0xc2,0xf4,0xd3,0x2b,0xc1,0xf4,0xbd,0x66,0xc2,0xb6,0x51,0x80,0x42,0x4a,0xc8,0x47,0xc2,0xb7,0x12,0x2a,0x42,0x34,0x81,0x2d,0x41,0x8c,0x7f,0x93,0x41,0x2b,0xed,0x23,0x43,0xce,0xa7,0x87,0xc2,0x74,0x9b,0x80,0x41,0x7a,0xca,0x8f,0x3f,0x40,0xd7,0x27,0xbf,0x91,0x84,0x26,0xc1,0xe7,0x3d,0x82,0x40,0x66,0xbe,0x19,0x40,0x14,0x2c,0xf3,0x3e,0x80,0x43,0x58,0xbd,0xd,0x35,0x66,0x42,0xa8,0x82,0x16,0x42,0x46,0xbc,0x56,0xc2,0x4e,0xa8,0xd9,0x41,0xcf,0xca,0x54,0xc2,0xea,0xc9,0xf2,0x41,0xae,0x48,0x7e,0xc2,0x95,0x6b,0xe0,0x41,0x26,0xf8,0x8a,0x41,0x5e,0x9b,0xd1,0x41,0x98,0x71,0x76,0xbf,0x58,0x3b,0x1d,0xc2,0xf4,0xc4,0x5c,0x42,0x33,0xd,0x97,0x41,0x7e,0x91,0x4b,0x40,0xba,0xb5,0x6d,0xc0,0x61,0xf5,0xb5,0x41,0x16,0xfb,0x46,0x42,0x75,0x93,0x34,0x42,0x67,0xd9,0x42,0x42,0x40,0x24,0x50,0x42,0x4e,0x93,0x3d,0x42,0x2,0xa0,0xfa,0x41,0xae,0xff,0xad,0xc0,0x18,0x5e,0xbf,0xc1,0x50,0xfa,0xe0,0xc0,0x6a,0xd4,0x6,0x41,0xfe,0xb9,0x19,0xc0,0xfc,0xf7,0x1a,0xc2,0x60,0x5c,0x14,0xc1,0xae,0xb9,0x88,0xc2,0x50,0xc6,0x4a,0x42,0xc,0x24,0xf2,0x41,0xfb,0x5b,0x5,0x42,0x76,0x3e,0x67,0x42,0xfb,0xe8,0xc,0x42,0xd6,0xd5,0xd0,0xc1,0x77,0xff,0x12,0x42,0xb2,0x1,0xa0,0x41,0x1d,0x14,0x7f,0x42,0x6e,0xc1,0x54,0xc0,0x9e,0x87,0x77,0xc0,0x2,0x4a,0xb7,0x40,0x92,0x4,0x19,0x42,0x6d,0xd5,0x91,0x41,0x3c,0xfd,0xff,0xbf,0x74,0x6e,0x7f,0x41,0xe0,0x59,0x35,0x3e,0xea,0x1a,0xb5,0x41,0x20,0xf4,0xf9,0x3e,0xfd,0xbb,0x5e,0x41,0x45,0xd,0x51,0xc1,0xca,0xf,0x3f,0x42,0xe0,0xdc,0xe4,0x41,0xe9,0xfd,0xe,0xc2,0xa0,0xc8,0x4e,0x42,0xec,0xcf,0x7b,0x40,0x91,0xcb,0x4e,0xc2,0x9c,0x23,0x9b,0x42,0x3c,0xa5,0x27,0xc1,0x80,0xd2,0x87,0xc1,0x9a,0x3b,0xff,0x41,0xc6,0xff,0xe1,0xc0,0xe3,0x15,0xff,0x41,0xbb,0x71,0xb0,0xc1,0xb4,0xfb,0x6b,0x41,0xb7,0xd2,0xc,0x41,0x30,0xae,0x34,0xc2,0x8d,0x62,0x5d,0xc2,0xf5,0x7d,0x74,0xc2,0xea,0x21,0xad,0xc1,0xd9,0x21,0x10,0x41,0x1c,0x19,0xf0,0x3e,0x20,0x62,0x90,0x41,0xa8,0x3b,0xae,0xc2,0x47,0x9d,0x1,0x41,0x3,0x2b,0x9,0x42,0xd8,0xc8,0x2a,0xc2,0x85,0x1e,0xe6,0xc1,0x55,0xd4,0xc1,0xc0,0x8e,0xea,0xa1,0xc0,0x4b,0xc8,0x91,0x42,0x8b,0x5e,0xcf,0xc0,0x8,0x9d,0xc0,0xc1,0x7,0x4f,0x23,0x42,0x15,0x63,0xb3,0xc1,0xda,0x55,0x21,0xc1,0xc7,0xa,0x9b,0xc2,0xcc,0x8,0xe2,0x41,0xb0,0x91,0x62,0x42,0xa2,0x6f,0xd6,0xc1,0xcc,0xa5,0x23,0x3f,0x4,0xdc,0x1c,0xc2,0xd2,0x4b,0xc2,0x41,0x8,0xdb,0x56,0x40,0xe6,0x58,0xc6,0xc1,0x86,0x4d,0x8,0xc1,0xa6,0x2,0xca,0xc0,0x66,0x64,0xfa,0xc1,0x88,0x2f,0x8b,0xc1,0x50,0xc6,0x94,0x42,0xc4,0xb4,0x71,0x41,0x10,0x63,0x71,0xc1,0x3f,0x2f,0x78,0xc1,0x68,0xc3,0x39,0x42,0x20,0x92,0x90,0xc0,0x8c,0xa3,0x2b,0x42,0x21,0xf0,0xb0,0x41,0x9a,0xd8,0x7e,0x41,0x2b,0x2,0x45,0x42,0xe9,0x55,0xf2,0xc1,0xb4,0x27,0x7,0x41,0x17,0x18,0x5,0xc2,0x6d,0xa6,0x9e,0x41,0xc4,0xc8,0xcd,0xc1,0xb4,0x8a,0x3a,0x40,0xfe,0x56,0x40,0x42,0x7b,0x2b,0x80,0x42,0xc,0xf1,0xa2,0x42,0xfb,0xc2,0x8e,0x41,0x6b,0x21,0x14,0x42,0xd1,0x1d,0x1d,0x42,0x46,0x90,0xdc,0x41,0x4e,0x72,0x50,0xc2,0x52,0xa6,0xfc,0xc1,0x52,0x99,0x88,0x41,0x82,0xa2,0x5,0xc2,0xa3,0xf,0xf6,0xc0,0x4c,0xb,0xf0,0x3f,0x66,0x53,0x7f,0x41,0x23,0xbc,0x37,0xc2,0xbe,0x17,0xa5,0x42,0xd2,0x83,0x85,0xc2,0x7f,0x2d,0x14,0x42,0x7d,0xcc,0x7a,0xc1,0xa5,0xfb,0x19,0xc2,0xa0,0x12,0xb,0x40,0x37,0x55,0x8e,0x42,0xe4,0xf8,0xc8,0xc1,0x83,0xdc,0x17,0x42,0x41,0x5a,0xff,0x40,0xcc,0xb6,0x90,0xbf,0x9c,0xbb,0xc4,0x41,0x82,0xe9,0xe7,0xc2,0xb3,0xde,0x16,0x42,0xf9,0xaa,0xda,0xc1,0xb4,0x51,0xd3,0xc0,0xf2,0xe3,0x62,0x41,0xf8,0xbb,0x50,0xc2,0xfd,0x68,0xdc,0xc0,0xdc,0x12,0x4,0x42,0xab,0xfe,0xc6,0xc1,0x24,0x46,0x21,0xc0,0x0,0x2d,0xca,0xc1,0xf1,0xe3,0x9,0xc2,0x9,0xf0,0x6c,0xc0,0x97,0x5e,0x5a,0x41,0x2e,0x70,0xe4,0x41,0xa,0x7c,0xe1,0x41,0x3a,0xb3,0x2b,0xc1,0x75,0x71,0x12,0x42,0x4c,0xe3,0xa5,0xc1,0x76,0x33,0x2f,0x42,0xf8,0xa,0x6e,0xc1,0xb3,0x8b,0x4b,0x41,0x42,0x89,0xb9,0xc1,0xa7,0x78,0xaa,0x42,0x43,0x13,0x21,0xc2,0x32,0xb6,0x74,0xc1,0x55,0xb9,0x15,0xc2,0xbe,0x27,0x14,0xc2,0xc3,0xd5,0x9e,0xc1,0x13,0xac,0xc0,0x41,0xa5,0x63,0x90,0xc0,0x66,0xed,0x99,0x40,0x33,0x93,0xe3,0x41,0x5a,0x8d,0x0,0xc2,0xa2,0x8f,0x45,0x42,0x19,0xa0,0xbb,0x42,0x26,0xbf,0x68,0x40,0x4b,0x1f,0x7e,0xc2,0xc8,0xcc,0x6f,0xc1,0xdd,0xac,0x4e,0x41,0x96,0x80,0x27,0xc2,0x11,0xda,0xbf,0xc1,0xeb,0x89,0x48,0xc1,0xe5,0xac,0x38,0xc2,0x84,0x46,0x49,0xc0,0xa3,0xe,0x54,0x42,0x8c,0x51,0x62,0xc1,0xe1,0x5d,0x6f,0xc2,0xd0,0xb2,0xda,0xc0,0x22,0x2,0x63,0x41,0x5b,0xb4,0x6d,0xc1,0x86,0x94,0xbe,0xc0,0x27,0xf3,0x64,0xc2,0xc0,0xcc,0xab,0x40,0xe1,0xb2,0xbe,0x42,0xb9,0x54,0x41,0x41,0x7c,0x65,0x17,0x40,0x11,0x1f,0x86,0xc1,0xf9,0xf9,0xfc,0x41,0x4b,0x5e,0x15,0x42,0x4f,0xa9,0x75,0x40,0x5a,0xca,0xde,0xc1,0x81,0xa3,0x94,0xc2,0xa1,0x64,0x1b,0x42,0xde,0xa7,0x9f,0xc2,0xd4,0xa9,0x32,0xc2,0x8,0xdb,0x7c,0x3f,0x52,0x6f,0xd6,0x41,0xec,0xca,0xa7,0xc2,0x83,0x48,0x73,0xc2,0xeb,0xc2,0xe1,0x41,0x61,0x8c,0x34,0xc2,0x58,0x11,0x8a,0xc1,0x51,0x41,0x57,0xc2,0xab,0xe0,0x1f,0xc2,0x73,0x44,0x2a,0x42,0x28,0xf9,0x95,0xc1,0xbe,0x9e,0x8a,0x41,0xb0,0x12,0xb4,0xc1,0x10,0x44,0x1a,0xc2,0x57,0xa1,0xdc,0xc1,0xa9,0xc5,0xdb,0xc0,0xa7,0x42,0x5b,0x41,0x75,0xcc,0x6b,0x41,0xdc,0x28,0xd5,0x40,0x56,0x4f,0x2a,0x42,0xd4,0xe1,0x5f,0xc1,0xd,0x6e,0x3d,0x42,0xdf,0x2e,0x76,0x42,0x69,0x44,0x13,0xc2,0xe9,0x5,0x8c,0x42,0x9a,0x76,0x52,0xc2,0xfa,0xae,0x3b,0xc2,0xd1,0x82,0x18,0x42,0x23,0xee,0xea,0xc1,0xcd,0xff,0x9a,0x41,0xbc,0xb6,0xa4,0x42,0x5f,0xc1,0xf1,0xc0,0x97,0x8a,0x16,0xc1,0x6c,0xf4,0x40,0x41,0x22,0xb9,0x39,0xc2,0x83,0x9d,0x32,0x42,0x42,0xaf,0xfc,0xc1,0x94,0x9d,0x48,0x41,0x48,0x8,0xc3,0xbf,0xf6,0xbe,0x99,0x41,0x34,0x6b,0x37,0xc1,0xe9,0x8c,0xd4,0x40,0x4b,0x9d,0x43,0x42,0x53,0x7d,0x79,0x42,0xbe,0x52,0xaa,0x42,0x87,0xc0,0x1,0xc1,0x4a,0xc2,0xa7,0x42,0xd3,0x23,0xe2,0x41,0x34,0x77,0x84,0x42,0xea,0xd3,0x56,0xc2,0x21,0x44,0xa8,0x42,0xc,0x36,0xb,0x42,0x4d,0x22,0xa8,0x42,0xbd,0x5c,0x2f,0x42,0xf6,0x6b,0x4e,0x42,0x50,0xac,0xf6,0x41,0xb8,0x25,0x98,0xc1,0x8f,0x95,0x5e,0xc2,0xb6,0x80,0xc4,0xc0,0x46,0xbb,0x4f,0x41,0x5c,0x16,0xdc,0xc1,0xcd,0xde,0x2e,0x42,0x7f,0xc9,0xc3,0x42,0xfa,0x1b,0x83,0xc2,0xdb,0xa5,0xea,0xc1,0x4f,0x2c,0xd,0x42,0x93,0x2f,0x73,0x42,0xe6,0x32,0xc5,0x41,0xfc,0x43,0x30,0x40,0xf2,0x11,0x4,0x41,0x6c,0x2,0x7b,0x41,0xc1,0x7f,0x8e,0xc2,0xc1,0xc9,0x98,0xc1,0x78,0xf6,0x75,0x41,0x44,0x42,0xc5,0xc2,0x3e,0x20,0x47,0x42,0xf4,0xc5,0xc5,0xc1,0x8,0xa,0x1a,0x42,0x38,0x7b,0x8,0x41,0x8e,0xd2,0xac,0xc1,0x9,0xdf,0xe0,0x41,0x76,0xe9,0x7,0x40,0xf4,0x57,0x90,0xc0,0x52,0x1a,0x21,0x42,0xa2,0xef,0x93,0xc2,0x40,0x33,0xc4,0x41,0xd,0xe1,0x94,0xc1,0x2,0x41,0x3b,0xc2,0x20,0x30,0xa2,0xc1,0x8,0xbe,0x53,0x41,0x70,0x86,0x83,0x41,0xb,0x32,0x8d,0xc1,0xfc,0x1e,0x5e,0xc1,0xa8,0x44,0x92,0x42,0xf1,0x84,0x56,0x41,0x27,0xa5,0x70,0x42,0xcf,0x32,0xec,0x41,0x9e,0xe9,0x42,0xc2,0xc2,0xb5,0xf9,0x41,0x1b,0x11,0x2a,0x42,0x32,0x17,0xbf,0xc2,0x22,0xa,0x8c,0xbf,0x95,0x7d,0x85,0xc1,0x7a,0x6f,0xc7,0x41,0xff,0x65,0x91,0x42,0xfe,0x25,0x48,0x42,0x6,0x8f,0x89,0xc2,0xe5,0x6b,0x8e,0x42,0xbc,0xdd,0xaa,0x42,0xfe,0x17,0x37,0xc2,0xbe,0xd3,0x5b,0x42,0xf0,0x2f,0xe4,0x40,0xcd,0x12,0x1d,0xc2,0xcd,0xdc,0xfa,0xc0,0xd4,0xa5,0x68,0xc0,0xdb,0x6f,0xa7,0xc1,0x22,0x4d,0x6b,0xc2,0xdc,0x37,0xb6,0x41,0x80,0x68,0xa0,0x3f,0x69,0xc3,0x98,0xc1,0x2,0xbd,0x5c,0x41,0xff,0x22,0x7e,0x42,0xbf,0xeb,0xd6,0xc0,0xdf,0x78,0x1f,0xc2,0x7d,0xe1,0x16,0xc2,0x4a,0xcf,0x8a,0x41,0xc6,0xd,0x16,0xc2,0xda,0xb1,0x5b,0xc2,0x4,0x51,0x4e,0xc1,0xa1,0x7c,0xb3,0xbf,0xe,0x60,0xd0,0xc0,0x69,0x44,0xfb,0x41,0x6c,0x22,0xef,0x41,0x58,0x8d,0x79,0xc1,0xb8,0xd8,0x57,0xc1,0xc0,0x78,0xba,0xbf,0x56,0x3c,0x58,0xc2,0xa3,0x4b,0x8e,0x42,0xfc,0xcb,0xe1,0x40,0x9e,0x4e,0xb8,0xc2,0xfb,0xf0,0x50,0xc1,0xa4,0xdc,0xb5,0x42,0xbe,0x2c,0x1e,0x42,0x1a,0x5,0x1,0x41,0xc6,0x4,0xb4,0x3f,0x14,0x91,0x9e,0xc1,0x95,0xc3,0x16,0xc2,0x54,0x73,0x1,0xc2,0xda,0x3d,0x1e,0xc2,0xa,0x27,0xf,0x42,0x5c,0x64,0x69,0x42,0xae,0xca,0xa9,0x41,0xc7,0xad,0x8,0xc1,0x15,0x14,0x8e,0x42,0x40,0x4,0x60,0xc2,0x9d,0x7,0x8e,0x41,0x3f,0x2e,0x22,0x42,0xaf,0x8d,0x62,0xc2,0x49,0xd9,0xbf,0xc2,0xd3,0x6,0x4b,0x42,0x58,0x6f,0x8,0xc2,0x46,0x2a,0x58,0x42,0x14,0xde,0xf2,0xbe,0x80,0x77,0x28,0x3e,0xe5,0xf5,0x21,0xc2,0x80,0x81,0xaa,0xc1,0x7f,0xe5,0xd4,0x41,0x23,0xb,0xa0,0xc2,0x76,0x1e,0x1b,0x42,0xf9,0x6f,0x81,0x40,0x39,0x1f,0xaa,0x42,0x1c,0x86,0xd4,0xc1,0xa0,0xc2,0xe8,0xc1,0x76,0x7f,0x6e,0xc2,0x7,0xd9,0x64,0xc2,0x8a,0x9a,0x15,0xc2,0xaa,0xea,0x69,0x42,0x73,0xa8,0x35,0x42,0x8e,0x3c,0x9,0xc2,0x26,0x18,0x36,0xc1,0x44,0x36,0xb2,0x40,0xb2,0xe2,0x1b,0xc1,0xd5,0x57,0x85,0xc1,0xfd,0x13,0x29,0x42,0x6,0xe,0x84,0xc1,0x22,0x6d,0xf0,0x40,0xee,0xc,0x98,0xc2,0x62,0x46,0xab,0x40,0xe,0xbc,0x4d,0xbf,0xc0,0x35,0x8,0xc2,0xe0,0x1b,0x71,0x42,0x94,0x6c,0x9d,0xc1,0x28,0x14,0xef,0x41,0x67,0x9,0xf6,0x3f,0xfb,0xbe,0x7a,0x41,0xa9,0xf3,0xe1,0xc1,0x14,0x85,0x92,0xc2,0x6c,0xe2,0x82,0x41,0xa0,0x8,0x1e,0x42,0xfd,0x2b,0x11,0xc2,0xf8,0x9a,0x84,0x42,0x4d,0xc8,0x4e,0x42,0x68,0x92,0xcd,0x40,0xb6,0xcd,0x57,0xc2,0x3a,0xeb,0x9,0x42,0x89,0xb3,0xf8,0x41,0x1,0xaa,0x5d,0x42,0xc,0xd9,0xa1,0x41,0x88,0xed,0x82,0x40,0x1a,0x96,0x41,0x40,0xf0,0x5a,0xa,0x42,0xb6,0xba,0x18,0x41,0x5a,0x1d,0xb4,0xc1,0xca,0xfe,0xf0,0xc1,0xbf,0x7c,0x56,0x42,0xa4,0x91,0x27,0xc2,0xe4,0x5a,0xa4,0x41,0x79,0x66,0xea,0x41,0xc5,0xd5,0x4a,0x42,0x30,0x75,0xf2,0x40,0x40,0xc3,0x4,0xc1,0x90,0x5d,0x49,0xc2,0xc5,0x16,0x9f,0x41,0xee,0x4e,0x2,0x42,0xe,0x0,0xbf,0xbf,0xd6,0xd6,0x57,0x42,0xe2,0xec,0xa9,0xc2,0x18,0xbb,0x87,0xbf,0x26,0x98,0xa,0xc2,0x75,0xf8,0x33,0x40,0xca,0xb3,0xdb,0x41,0xa5,0xbe,0x36,0x42,0x11,0x23,0xa2,0xc2,0xa9,0xaa,0x57,0xc2,0x1e,0xaa,0x59,0x42,0x39,0x35,0x6d,0x42,0xca,0x86,0x31,0xc2,0xe9,0xe,0xc9,0xc1,0x46,0x8b,0x5e,0xc2,0xe,0x15,0x8f,0xc2,0x30,0x2f,0xc4,0x41,0xb6,0x20,0x39,0xc2,0xcc,0xf7,0x2e,0xc2,0x1a,0x71,0xd0,0x42,0x88,0xf6,0x64,0x42,0xb7,0xbf,0x7a,0x42,0x61,0x74,0xa4,0x42,0x4a,0x63,0x1f,0x41,0x30,0x66,0x2f,0xc2,0xb0,0xf8,0xbf,0x41,0xa3,0x32,0x93,0x42,0x61,0x7e,0x36,0x42,0xb9,0x9e,0x91,0x41,0x9e,0x70,0x69,0xc2,0x41,0x8b,0xb7,0xc2,0x67,0x74,0x20,0xc2,0x2e,0xc2,0x4f,0x42,0xfb,0x3f,0x31,0x42,0x6c,0x89,0x90,0xc1,0x78,0x14,0x91,0x42,0x8a,0xf9,0xb3,0x40,0x1b,0x94,0xed,0x41,0xf6,0x62,0xe5,0xc1,0xad,0x73,0x29,0x41,0x1c,0x56,0x1a,0x42,0xcd,0x6d,0x76,0x42,0x45,0xa0,0xd,0xc2,0xe0,0x16,0xdb,0xc0,0x98,0xe0,0xf,0xc2,0xf0,0xe2,0x1,0xc2,0x6a,0x31,0x46,0xc2,0xd6,0x2,0xf3,0xc1,0x1f,0x27,0xee,0xc1,0x19,0x92,0x6d,0x42,0x12,0x40,0xdb,0x41,0x3,0x36,0x4b,0x42,0xdd,0xf,0x84,0xc1,0x28,0x9b,0x67,0xc2,0x82,0x1e,0xe,0xc1,0xd4,0xcb,0x97,0x42,0x6,0x4,0xc5,0x41,0x98,0x88,0xeb,0xc1,0x76,0x53,0xe4,0x40,0x75,0x0,0xdc,0xc1,0x45,0xa3,0xf,0xc1,0xa5,0x51,0x1c,0x42,0x32,0x4e,0x96,0x41,0xa8,0x51,0x5,0x41,0x3e,0xa6,0x6,0x41,0x14,0x10,0x81,0x40,0x2,0x60,0x3c,0x41,0xf3,0x17,0xe1,0x40,0xcf,0x24,0xa,0x42,0x6c,0x4e,0x23,0xc2,0xc6,0xd5,0x5e,0xc0,0x94,0xfa,0x78,0xc0,0xe8,0xf2,0x93,0xc2,0x3b,0x17,0xc,0x42,0xb0,0x56,0x17,0xc2,0xa3,0xb1,0x18,0x40,0xf8,0xf6,0x4,0xc2,0x54,0xe,0x48,0xc2,0x71,0x51,0xe7,0xc1,0x72,0xef,0x56,0x40,0xd4,0xb4,0x9b,0x42,0xd9,0x8a,0x40,0xc2,0xb5,0xa3,0x6a,0xc1,0x5e,0x9a,0x4d,0xc2,0x3c,0x5e,0x1c,0xc1,0x60,0x95,0xfa,0xc1,0x2,0xdd,0xa5,0xc0,0xe9,0x35,0x5c,0x42,0x83,0x55,0xb1,0x42,0x6a,0x44,0xd4,0xc0,0x24,0x66,0x56,0xc1,0xf0,0x3d,0xde,0xc1,0x1,0x4,0xfc,0xc1,0x0,0xe2,0x5a,0xc2,0xf4,0x79,0xd,0x42,0xb,0x93,0xae,0x41,0xb2,0xe4,0xe6,0xc1,0x24,0xf7,0x9,0xc1,0x6,0xe5,0x80,0xc2,0x58,0x1,0xd5,0xc2,0xc8,0xa5,0x52,0x42,0x62,0xf5,0xea,0x41,0xae,0x92,0xfc,0x40,0xc0,0xb3,0x9c,0xc1,0xbc,0xae,0xe6,0xbf,0xc7,0x40,0x5c,0x41,0xfa,0xb5,0xa9,0x41,0xef,0xbb,0x9d,0xc2,0xcc,0xd6,0x2c,0xc2,0x14,0xd8,0x8b,0x42,0x24,0x10,0x69,0x3f,0xe7,0xaf,0x6d,0xc2,0xd4,0x28,0x9f,0xc1,0xa9,0x31,0x43,0xc1,0xeb,0x35,0x44,0xc2,0x5a,0x12,0x8f,0xc0,0x31,0xcd,0xdf,0x41,0xa8,0xe1,0xd7,0xbf,0x2f,0x64,0xa0,0x42,0x36,0x1e,0xfc,0x42,0xfe,0xf5,0xe1,0x41,0xb1,0xd9,0xc9,0xc1,0x5d,0x7e,0xa1,0x41,0x72,0xac,0x73,0xc1,0xac,0x63,0x4e,0x41,0xe8,0x7c,0xef,0x41,0x6c,0x3f,0x13,0xc2,0xd4,0x48,0xe0,0xc1,0xc5,0x68,0x19,0x42,0x34,0xf6,0x62,0x40,0xec,0xcd,0xdd,0xc1,0xac,0x1d,0x2e,0x42,0x70,0xa2,0x6d,0x40,0x9d,0x98,0x2e,0xc1,0x70,0x85,0x37,0x40,0xce,0x3e,0x8a,0xc2,0x57,0x60,0x18,0xc1,0x7d,0x76,0xa0,0xc2,0x18,0xfe,0x54,0x41,0x5b,0x8,0x21,0x41,0x61,0xdc,0x29,0x41,0xf8,0x67,0x80,0xc2,0x68,0xf3,0x5c,0x42,0xad,0x69,0xdb,0x41,0xa2,0xb2,0x34,0xc0,0xd3,0xca,0x27,0x42,0x91,0x55,0x87,0x41,0xc8,0x71,0x7d,0x42,0x6a,0xe1,0x15,0xc2,0x98,0xb8,0x5f,0x41,0xca,0xe7,0x38,0xc2,0xcf,0x41,0x68,0x42,0x17,0x8c,0x1b,0x42,0x40,0x49,0x74,0x42,0x1d,0xbd,0x9c,0xc0,0x50,0x8c,0x2a,0x42,0xda,0xad,0x4f,0xc1,0x1b,0x71,0x6,0xc1,0x2e,0x81,0x9a,0xc1,0xf,0xc6,0x58,0xc2,0x88,0x60,0x23,0x42,0x94,0x52,0xa,0x40,0xf1,0xf4,0x91,0x42,0x5d,0x85,0x59,0x42,0x3e,0x71,0xe5,0x41,0x90,0x6,0x7b,0xc2,0x2d,0x3f,0x5d,0xc0,0x54,0x4b,0x88,0x42,0x8,0xbf,0x7d,0x41,0xd2,0x18,0x7,0xc1,0xad,0xe1,0x68,0x42,0x50,0xc,0x81,0xc2,0x98,0x16,0x36,0x3f,0xc6,0xbd,0xbb,0x40,0xaa,0x9c,0x1e,0x42,0xde,0x74,0x5d,0xc1,0xad,0x7f,0x8c,0x41,0xe4,0xf3,0xe1,0xc1,0x9a,0x94,0x5c,0x42,0xa1,0x9b,0xc8,0x41,0xe0,0x14,0xae,0x41,0x39,0x17,0x2f,0xc2,0xec,0xb3,0x42,0xc2,0xfe,0x76,0x9,0x42,0xef,0x26,0xf4,0xc1,0xf6,0x27,0x72,0xc0,0xc6,0x91,0x85,0xc2,0x39,0x3d,0x4d,0x40,0xea,0x63,0x2b,0x42,0xf6,0xc1,0x7b,0xc2,0xe0,0xb7,0x94,0x40,0x4c,0x8b,0x5f,0x3f,0x14,0xb5,0xbd,0xc2,0x70,0x9c,0x7a,0x42,0x8b,0xcd,0xf,0xc0,0xce,0x5e,0xfd,0xc1,0xa1,0xbf,0xe6,0x42,0x49,0x4f,0x72,0x41,0x25,0x80,0xf,0x42,0x98,0xc3,0xa7,0xc1,0xb0,0xfd,0x66,0xc2,0x59,0x6c,0x6c,0x41,0x5c,0xcc,0xd,0x41,0x46,0x40,0x4e,0x41,0x8e,0x20,0x40,0xc2,0x31,0xe5,0x61,0x42,0x23,0x95,0x1d,0x42,0x17,0xac,0x3a,0x42,0x16,0xd0,0x1f,0xc0,0x87,0x92,0xbb,0x40,0x48,0x91,0x93,0xbf,0xf8,0x70,0x3,0xc2,0x72,0xc6,0xe9,0xc1,0xf2,0x7d,0xbf,0xc1,0x44,0x80,0xa5,0x41,0xe,0xdc,0x77,0x41,0xad,0xa7,0x27,0x42,0x7a,0x49,0x8e,0x41,0x32,0x42,0x9a,0xc0,0xa0,0xc1,0xce,0xc0,0xf2,0xe5,0xbc,0x41,0x9,0x8f,0x1f,0xc2,0xb4,0xa9,0xc9,0x41,0x27,0xa4,0xcf,0x40,0x67,0x3,0xc0,0x41,0xab,0x4c,0xc,0xc2,0x16,0x41,0xbe,0x40,0x6,0x34,0xc0,0x42,0xe,0xb9,0x4a,0x42,0x71,0x37,0xec,0xc2,0xa1,0xff,0x4e,0xc2,0x76,0xd3,0xce,0x41,0x7d,0x3,0x91,0xc2,0x5a,0xa7,0x59,0x41,0x7a,0xef,0x74,0x41,0xb5,0xbf,0xdb,0xc1,0x9e,0xd2,0xab,0xc1,0xc5,0x18,0xdc,0x41,0x45,0x46,0x84,0x41,0x3d,0x37,0x0,0x42,0xcf,0x22,0x3c,0x40,0xac,0xba,0x26,0x42,0xf1,0x79,0x3c,0x42,0x17,0x2b,0x25,0x42,0xf6,0x60,0x62,0xc1,0xbd,0x1,0x9a,0xc1,0x2c,0x76,0xf4,0xc1,0x69,0xa9,0xdb,0xc1,0xac,0x68,0x0,0xc1,0xf0,0xbc,0x55,0xc1,0x2f,0x26,0xaf,0xc0,0xaa,0xb8,0x26,0x42,0xc2,0xed,0xee,0x41,0x46,0x92,0x36,0x42,0x29,0xb2,0xce,0xc1,0x1e,0x2f,0xd1,0x42,0x9,0x35,0x2b,0xc2,0x4,0xef,0x34,0xc2,0x43,0x88,0x9d,0xc1,0x36,0x57,0xab,0x41,0x70,0x42,0x20,0x42,0x83,0x56,0x77,0xc1,0xb0,0xfd,0x43,0xc2,0x3e,0x5d,0x5f,0xc2,0x4c,0x9b,0xd2,0x41,0xec,0x1c,0x66,0x41,0xd3,0xd,0x12,0x42,0x8c,0x8c,0xb3,0x41,0x66,0x35,0x59,0xc2,0x1d,0x86,0xe4,0x41,0x60,0x4,0x6e,0x42,0x60,0x40,0x5,0xbf,0x72,0xcc,0x8d,0x42,0x8a,0xe7,0x16,0x41,0x3d,0x2,0x30,0xc2,0x7a,0xce,0x7b,0x42,0xa2,0xc5,0x3,0xc2,0x84,0x62,0x59,0x3f,0xf,0xa4,0x82,0x41,0x4f,0x6e,0x72,0x41,0x22,0x6d,0x65,0xc2,0xf2,0x62,0x88,0xc1,0x41,0xce,0xf9,0xc1,0x35,0x81,0x5f,0xc1,0x51,0x5b,0x3e,0xc2,0x15,0xcf,0x8f,0xc2,0x64,0xe3,0x4f,0x42,0x5,0xa,0xb2,0xc2,0x48,0x62,0x36,0x42,0x72,0xe6,0xe8,0xc1,0x27,0x3e,0x18,0xc2,0x0,0xed,0x3a,0xc2,0xa7,0x94,0x8c,0x42,0x5f,0x75,0x5,0xc2,0x9b,0xdb,0x1c,0xc2,0xec,0x7e,0x28,0x40,0xb9,0x46,0x73,0x41,0x16,0x25,0x4f,0x41,0x74,0xe0,0x40,0x42,0xb2,0x9f,0x58,0x42,0x47,0xc,0x3b,0x42,0x20,0x7,0x93,0xc1,0x0,0xd0,0x7,0x42,0x23,0xe2,0x4a,0xc2,0x36,0x2d,0x88,0xc1,0xd0,0x83,0x13,0xc2,0x8e,0xde,0x18,0xc2,0xa4,0x8e,0xcc,0xc1,0xdd,0x23,0xba,0x41,0x85,0x9d,0x39,0xc1,0xe5,0x29,0xdf,0xc0,0x9d,0x1a,0xf,0xc2,0xe,0xb4,0x17,0xc1,0x37,0xb,0x16,0x42,0x3a,0x5b,0x3f,0x41,0xd3,0xf8,0xd0,0x41,0x63,0x6f,0x41,0xc1,0xcc,0x86,0x3c,0x41,0xe1,0x40,0x85,0x42,0x7b,0x8e,0x3,0xc0,0xdb,0xcb,0xec,0xc1,0x3d,0xe4,0x36,0xc2,0xfa,0xa2,0xd5,0x41,0x1f,0x88,0x67,0xc1,0xad,0xc4,0xba,0xc1,0x5d,0x44,0x36,0xc1,0xe9,0xbf,0xa0,0x42,0x40,0xea,0x49,0x42,0x42,0x4e,0x32,0x42,0xf4,0xfe,0xf8,0x41,0x93,0xcb,0x31,0x40,0xa4,0x8b,0x7d,0x40,0xe9,0x16,0x67,0xc2,0xc7,0xdc,0xd2,0xc0,0x10,0x26,0xba,0x42,0x3f,0xdf,0x66,0xc2,0xff,0x35,0xe4,0x40,0x26,0x9f,0x22,0x41,0xf0,0x99,0x4d,0xc0,0x0,0xcb,0xfa,0xc1,0x51,0xc6,0xb6,0xc1,0x36,0x96,0x10,0x42,0x44,0x52,0xd9,0xc1,0x16,0x4d,0x65,0x42,0xad,0x1,0x1e,0x42,0x6c,0xe,0x98,0xc1,0x90,0x7c,0x8a,0x42,0x95,0x3f,0x1e,0x42,0x53,0x5c,0x8d,0x40,0x93,0xc4,0xf2,0xc1,0xd7,0x73,0xb,0xc1,0xef,0x49,0x9c,0x41,0x4e,0x7d,0x4,0x42,0x6c,0x5b,0xd1,0xc0,0x21,0x66,0xe0,0xc1,0x92,0x4a,0x89,0x40,0xba,0xa0,0x31,0x42,0x4e,0x19,0xb2,0x41,0x62,0x86,0x8c,0x41,0xee,0x98,0x7f,0xc1,0x5b,0xb7,0x1f,0xc1,0xd6,0xf9,0x86,0xc1,0xbb,0x30,0xc,0x41,0x37,0x13,0x89,0x42,0x1f,0x60,0xc1,0x41,0x3b,0xa9,0x10,0x42,0x79,0x45,0x6e,0xc2,0x8,0x9e,0x10,0x42,0x3c,0xb6,0xc5,0x41,0xc4,0xd6,0xe3,0xc1,0x6a,0x96,0x27,0xc2,0x57,0xf3,0x67,0xc1,0x42,0xf9,0x19,0x42,0x3e,0xd2,0x80,0xc0,0xb8,0xfa,0xff,0xc1,0x14,0x6f,0x90,0xc1,0x4b,0xe8,0x34,0x42,0x62,0x5c,0xae,0x41,0x9a,0x2a,0x79,0x41,0xe5,0x14,0x4d,0xc2,0x84,0xb1,0x94,0x41,0xd2,0xcf,0x2b,0xc1,0x24,0xc4,0xa4,0x41,0x9,0x3c,0xef,0x41,0xda,0x1d,0xe3,0x40,0x4f,0xbb,0xa4,0xc2,0x4f,0xa2,0x1,0x42,0x92,0xdb,0x91,0xc2,0x82,0xdc,0xe9,0x41,0xa2,0x98,0x51,0x42,0x61,0x3b,0x7c,0xc2,0x2a,0xce,0x3f,0x42,0xc6,0x32,0x46,0xc1,0x9e,0xc4,0xca,0xc1,0x1c,0xf9,0xe8,0xc1,0xd,0xea,0x6d,0x42,0x2a,0x5d,0x59,0xc2,0xfb,0x72,0xa2,0xc1,0x22,0xbd,0xa0,0x41,0xfd,0xa,0x1f,0x42,0xe0,0x3a,0xa3,0xc1,0xa2,0x6b,0x31,0x41,0x18,0x4c,0x49,0xc2,0xf7,0xef,0x4f,0xc2,0x34,0xec,0xad,0x41,0x1b,0xfb,0xfe,0x40,0xcf,0x92,0x67,0xc2,0x34,0x99,0x55,0xc1,0x4,0x98,0x1d,0x41,0xac,0x32,0xdb,0x41,0x59,0xbf,0x42,0x41,0x58,0xbc,0xdd,0x40,0x0,0xe1,0x8d,0xc0,0xb4,0x4,0xfa,0xc1,0xc6,0x47,0x58,0xc0,0x37,0xee,0x42,0x41,0x76,0x44,0xc6,0x41,0x0,0x5c,0x2a,0x41,0x59,0x8c,0xf0,0x40,0xca,0xcb,0xe2,0x41,0xb0,0xab,0x42,0xc1,0xab,0x7d,0xbf,0x40,0x3c,0xda,0xd,0xc2,0xca,0x11,0x4d,0xc0,0x34,0x7e,0x2,0x42,0x34,0x69,0x5,0xc2,0xd6,0x6c,0x39,0xc1,0x2f,0xdb,0xfb,0xc0,0xf5,0xae,0xe8,0xc1,0x17,0x10,0xb6,0xc1,0x2c,0xf6,0xbb,0x41,0x76,0x51,0xa0,0xc0,0x35,0xf7,0x14,0x41,0x5f,0x8f,0xe3,0x40,0xa4,0x7,0x8b,0xc0,0x4f,0x7d,0x32,0xc2,0x24,0x98,0xd8,0xc0,0x6c,0xe5,0x6b,0xc1,0xc8,0x96,0x9b,0xc1,0x13,0x5d,0xbe,0xc1,0x70,0x80,0x10,0x3f,0x1c,0xb2,0x6,0x40,0x99,0x65,0x6f,0xc1,0x86,0x7,0x3b,0xc1,0xf8,0x7b,0x3,0xc1,0xe0,0xc4,0xf0,0x41,0xab,0xc2,0x20,0xc2,0xd7,0xfc,0x2a,0xc1,0xb0,0x24,0xdd,0xc1,0xb4,0xa7,0x9f,0xc1,0x82,0x95,0xc2,0x41,0x1a,0x22,0x46,0x41,0xab,0x77,0x12,0x42,0xac,0xef,0xc3,0xc1,0x0,0xe9,0xa1,0xc1,0x4e,0xc3,0xf6,0x41,0x7a,0x62,0xa1,0xbf,0xff,0x20,0xe1,0xc0,0x9c,0x51,0xe8,0x41,0x33,0x56,0x3,0x42,0xda,0x11,0xcf,0xbf,0xc7,0xaa,0x45,0x41,0x20,0x72,0xce,0x41,0x54,0xb4,0xce,0x41,0x6e,0x34,0xad,0xc0,0x15,0xfe,0xe5,0x41,0x49,0x94,0xf0,0x41,0xdf,0x62,0x1f,0xc2,0xa8,0xf9,0x82,0x41,0x99,0xdb,0x5d,0xc1,0x6a,0xce,0x2e,0xc2,0xd8,0xd3,0x4b,0x41,0xde,0x8d,0xa8,0xc1,0xfd,0x7a,0xe,0x42,0x3c,0x74,0x71,0x42,0x5c,0xd8,0xae,0xc0,0xf6,0x1b,0x35,0x41,0x12,0xcf,0x9c,0x40,0xce,0x6d,0x3c,0x42,0x44,0x98,0x96,0x41,0xb0,0x76,0xb4,0xc1,0x69,0x83,0x1c,0x42,0xf6,0xe7,0x19,0xc1,0x94,0xfb,0xd,0xc2,0x6d,0x4,0x99,0xc1,0x78,0x6d,0xd9,0xc1,0xb3,0x6d,0x1b,0xc1,0x5b,0xfa,0xc4,0xc1,0x55,0x65,0x5d,0x41,0x88,0xde,0x62,0xc0,0x60,0x82,0x6a,0xc1,0x9e,0xd3,0xd7,0xc0,0xb8,0x6f,0x10,0x42,0xa4,0x80,0x11,0x42,0x7e,0x18,0x65,0x41,0xc1,0xc4,0x28,0x42,0x9d,0xc4,0xb4,0xc1,0x31,0xe4,0xf4,0x41,0x6,0x63,0x1f,0xc2,0xa4,0x67,0xc,0xc2,0xdc,0x2b,0x2a,0xc2,0xe2,0x2b,0x84,0x3f,0xde,0x40,0xbe,0x41,0x3a,0x23,0x98,0x42,0x24,0x96,0xe6,0xc1,0xb8,0x1f,0x3d,0xc1,0x4a,0x93,0xb8,0xc1,0xda,0x86,0x5d,0x41,0x66,0xa9,0x19,0x42,0x30,0xd9,0xd1,0xbf,0x3f,0x46,0x9c,0x41,0xe4,0x55,0x77,0x41,0xee,0x35,0x94,0x41,0xfe,0x3b,0x1a,0x42,0xd9,0x26,0x44,0x42,0x69,0x86,0x41,0xc0,0x8a,0xef,0xf5,0x41,0x3e,0xa1,0xf2,0x40,0x9,0x55,0x3e,0xc1,0x7a,0x7b,0x8d,0x41,0x46,0xa4,0x1c,0x42,0xad,0x68,0x83,0x41,0x42,0xee,0xba,0x40,0x65,0x15,0xe6,0x40,0xf4,0x9,0x24,0xc2,0x30,0x4c,0x5c,0x41,0xbb,0xb,0x3,0xc2,0xab,0x3d,0x76,0x42,0xb,0xaa,0x28,0x42,0x6b,0x36,0x2c,0xc1,0x3d,0x98,0x69,0xc2,0x74,0x10,0x8e,0x41,0x2c,0x90,0xe,0x42,0xf0,0x65,0xfa,0xc0,0xd6,0x47,0xbb,0x41,0x4c,0xb9,0xab,0x41,0xc6,0xae,0x6,0x42,0x5f,0xbc,0x54,0xc2,0xda,0x6d,0xf7,0xc1,0xc2,0xca,0x10,0x41,0xcc,0x3e,0x8e,0x41,0x31,0x83,0x3c,0xc1,0x63,0x6a,0x4a,0x41,0xc5,0xc8,0x8,0x42,0x24,0xc,0x50,0xc1,0xc2,0xb4,0xb8,0x40,0x76,0xb3,0x8e,0xc1,0x81,0xb6,0xab,0x41,0xbf,0xe9,0xe9,0xc0,0xc8,0x5b,0xdc,0xc1,0x7c,0x81,0x81,0x42,0xc6,0x1b,0x2e,0x41,0x43,0x34,0x5a,0x42,0xcf,0x39,0x59,0xc1,0xea,0x5e,0xda,0xc1,0x58,0x87,0x8a,0x40,0xe0,0x72,0xfe,0xc0,0x24,0x7e,0x80,0x41,0xa7,0x46,0xdb,0x41,0xb8,0xcd,0xce,0x41,0xc3,0xd4,0x84,0x41,0x41,0x6c,0xf6,0xc1,0xb1,0x50,0x29,0xc0,0x95,0xfa,0x88,0xc1,0x30,0x56,0x9f,0x42,0x6d,0xe9,0xdd,0x40,0xd1,0xf1,0x60,0x41,0x36,0x37,0x8,0xc1,0x11,0xfd,0x1,0x42,0x62,0xb0,0xce,0x40,0x62,0x34,0xa8,0x40,0x10,0x77,0x9a,0x40,0x85,0xf0,0xf8,0xc0,0x3,0x9d,0x2a,0xc1,0x52,0x95,0x84,0x40,0x99,0x3b,0xd0,0x40,0x6b,0xfc,0xd7,0x41,0xc5,0xa4,0x36,0x42,0x9,0xe9,0x8c,0xc1,0xe8,0xca,0x50,0x3e,0xe,0x3b,0xad,0x41,0x9c,0x7,0x3b,0x42,0x62,0xa2,0x7a,0xc0,0x42,0x9f,0xef,0xc0,0xb8,0xde,0xc5,0x41,0x62,0x23,0x79,0x42,0x76,0xa9,0x32,0xc0,0xe2,0xb1,0x66,0xc2,0x0,0x5d,0x7,0x42,0x5f,0xb7,0x8c,0xc0,0x6a,0x18,0xa6,0xbf,0x8f,0x1,0xd4,0xc1,0x8a,0x9b,0x0,0x42,0x5,0x5b,0x4a,0x42,0xff,0x95,0x87,0x40,0x35,0x29,0x40,0x42,0xf9,0x89,0x6d,0xc0,0x28,0x96,0x9a,0xc2,0xc6,0xa5,0x2,0xc2,0x88,0x65,0xfc,0xc1,0xcf,0x60,0x8f,0xc1,0x8a,0x5f,0x9d,0xc2,0xfe,0xf1,0xa5,0x41,0xd9,0xa1,0x34,0xc2,0x38,0x53,0xb8,0x40,0x60,0x61,0x14,0xbf,0xb8,0x3e,0x98,0x40,0xa9,0x5c,0x24,0xc1,0x2d,0xf4,0x9d,0xc1,0x2e,0x55,0xcf,0x40,0xea,0x5a,0x4,0xc2,0x60,0x99,0x7a,0xc2,0x9a,0x4,0x16,0xc2,0x71,0x66,0xd9,0x41,0xe7,0x24,0x5d,0x41,0xf7,0xb2,0x8f,0xc1,0x1e,0x94,0xbf,0xc1,0xd3,0x9,0xad,0x41,0x90,0xc9,0x9a,0xc0,0x50,0xde,0x3a,0xc1,0xdd,0xa9,0xbb,0x40,0x7e,0xb6,0x29,0x41,0xd6,0xf8,0x26,0x42,0xc7,0xbc,0x64,0xc2,0x49,0x36,0xee,0xc1,0xfd,0xa,0x94,0x41,0xba,0xae,0x3f,0xc2,0x28,0xc6,0x2b,0xc2,0x79,0xc9,0x21,0x42,0xde,0xda,0x91,0x42,0x17,0xe3,0xdc,0x41,0x50,0x79,0x2d,0x42,0x9e,0x18,0x59,0x42,0xf0,0x3c,0xf1,0x42,0xb9,0x6a,0xd4,0xc0,0xcd,0x55,0xe6,0x41,0xe9,0xf0,0x3b,0xc1,0xca,0x0,0x3d,0xc2,0xf2,0x74,0xc5,0x41,0x7a,0x21,0x15,0xc1,0xf,0xce,0xa5,0x42,0x32,0xe5,0xff,0x41,0xc4,0xbf,0x57,0x42,0xd1,0x9c,0x86,0xc2,0xc8,0x11,0x61,0x41,0x94,0xc0,0xc2,0x41,0x9c,0xaa,0xf6,0xbf,0xa1,0x47,0x1,0x41,0x34,0x1c,0x5b,0x41,0x35,0x50,0xe8,0x41,0x58,0xb3,0xc,0xc2,0x7c,0x5d,0x8b,0x3f,0x45,0x71,0xdc,0x41,0xbd,0x4f,0x1b,0x41,0x88,0x3d,0x88,0xc1,0xb7,0xd7,0x5f,0x41,0x93,0x8b,0x10,0xc2,0xc,0xa8,0x10,0xc2,0xb2,0x2d,0x8f,0x41,0xf1,0xa7,0xfb,0x41,0x69,0x8,0xac,0xc0,0x2a,0xce,0x21,0x41,0xdb,0xc8,0xa8,0xc0,0x23,0x97,0x9f,0xc1,0xab,0x3d,0x6d,0xc2,0x54,0x91,0x78,0xc1,0xac,0x15,0x97,0x42,0x33,0x51,0x2b,0xc2,0x48,0x71,0x1a,0xc1,0x10,0xd5,0xdb,0xc1,0x39,0x82,0x43,0x42,0xd,0x91,0x9f,0xc1,0xeb,0x6c,0x53,0x42,0x36,0x24,0xb0,0xbf,0x69,0x6b,0x6e,0x42,0xd8,0xa6,0x5f,0xc1,0x7f,0xc6,0xb2,0xc0,0x3c,0x1a,0x9b,0xc1,0xa,0xb1,0xf,0xc2,0x89,0x6e,0x86,0x42,0x53,0xb,0x34,0x42,0xd0,0x57,0x15,0x3e,0x74,0x9f,0xb3,0xc1,0xc9,0xd9,0x2e,0x42,0x12,0xbb,0x61,0x40,0xda,0x94,0xb3,0x41,0xf9,0x8d,0x8e,0x41,0xd4,0xdd,0xde,0xc0,0x81,0x1d,0xe4,0x41,0x33,0x24,0xb2,0xc1,0xb3,0x2,0xee,0x41,0xab,0x27,0x57,0xc2,0x48,0xc8,0x83,0xc2,0x7c,0xea,0xa7,0xbf,0xfb,0xb9,0xa1,0xc2,0xaf,0x79,0x20,0x42,0x9d,0x60,0xb0,0x41,0x9e,0x2a,0xef,0x42,0xf5,0x1a,0x88,0xc1,0x6f,0x39,0x8,0xc2,0x18,0x84,0x10,0xc2,0xc0,0x57,0x20,0xc2,0x2c,0xe2,0x3,0xc2,0xed,0xdc,0xc7,0xc1,0xe9,0xda,0x24,0xc1,0xbe,0xbf,0x10,0x42,0xd2,0x5b,0x60,0xc2,0x24,0x12,0x4f,0x41,0x11,0x24,0x26,0xc2,0x5e,0x5d,0x3,0xc1,0x91,0x96,0x6c,0xc2,0x5a,0xc0,0x49,0xc1,0x86,0xe1,0x10,0x42,0xd1,0xb9,0x2e,0xc2,0x54,0x89,0x4c,0x42,0x64,0x46,0x85,0x41,0x9b,0x31,0x98,0xc2,0x49,0x48,0x21,0x41,0x3c,0xf0,0xb2,0xc1,0x62,0xb7,0x9a,0xc0,0x27,0x93,0xd5,0xc1,0x37,0xbc,0xab,0x41,0x82,0xa0,0x58,0xc0,0x8d,0x75,0xf4,0xc0,0xdc,0x6f,0x9e,0x41,0xaa,0x7d,0xa2,0x42,0x63,0x2e,0x67,0xc1,0x34,0x3e,0x1e,0xc2,0xca,0xe7,0xd8,0x41,0xc,0xe9,0x5c,0xc1,0x1e,0x4b,0xbb,0xc1,0x34,0x20,0xdb,0xc0,0x9c,0xe7,0xa2,0xc1,0x50,0xa5,0x91,0xc1,0x8f,0x3e,0x18,0xc2,0x0,0xd1,0xac,0x41,0x10,0xa4,0x55,0xc2,0x61,0xc3,0x56,0xc2,0x17,0xf5,0x44,0x42,0x6d,0x2d,0x73,0x42,0x41,0x13,0x8b,0x42,0x62,0xd3,0x45,0x40,0x9d,0xb0,0x33,0xc1,0x96,0x40,0x5e,0x42,0x26,0xc0,0xf,0x42,0xb7,0x92,0x5d,0xc1,0x8,0x42,0x4e,0xc2,0xe4,0xf2,0x85,0xc2,0x95,0xe8,0x4,0x42,0x6f,0x19,0x48,0xc2,0x9d,0xe3,0x94,0xc2,0x4b,0x1a,0x97,0xc1,0x98,0xcb,0x89,0x41,0x69,0x86,0x2c,0x42,0x63,0x3f,0x2e,0x42,0x86,0xf2,0x14,0x42,0x28,0x9a,0xc3,0xc1,0xb6,0xd2,0xda,0x40,0xb8,0xd0,0x2a,0x42,0x16,0xab,0x39,0xc1,0xc3,0x90,0x3f,0xc2,0xb,0xae,0x8c,0xc1,0x38,0xe7,0x9a,0x41,0xa2,0xa6,0x4,0xc2,0x1,0xb9,0x45,0x42,0x9c,0xfa,0x5c,0xc2,0x1d,0x6,0x46,0xc2,0x30,0x6b,0x3d,0x42,0x4b,0x86,0x2f,0xc2,0x5b,0xde,0x2,0x42,0x8f,0x8,0x16,0xc1,0x56,0xd3,0x4e,0x40,0x48,0x47,0x73,0xc2,0xd2,0x54,0xbf,0x41,0xc0,0x22,0x55,0xc1,0xdc,0xca,0xbe,0xc2,0xa8,0xba,0x34,0xc2,0x82,0xc5,0x80,0xc2,0x70,0x7e,0x6d,0xc2,0xd8,0x27,0x85,0x41,0x56,0x50,0x23,0xc1,0x16,0xfc,0x7,0xc2,0xe4,0x35,0x87,0x3f,0x48,0x7b,0xbc,0x41,0xe3,0xed,0x30,0xc0,0xc9,0xb,0xf8,0x42,0x56,0xf1,0x86,0x41,0x20,0xb,0xea,0xc2,0x99,0x9d,0x34,0xc2,0xf8,0x5d,0xc7,0x41,0x75,0xa,0x8b,0x42,0xb6,0x17,0xc,0x42,0xac,0x44,0x57,0x41,0x16,0x31,0xf2,0xc1,0x61,0x3d,0xb2,0xc1,0xbe,0x75,0x7b,0xc2,0x52,0x2d,0xa7,0xc1,0xf4,0xb8,0x47,0xc2,0x3a,0x77,0x43,0xc2,0x23,0xc5,0xd3,0x42,0x56,0x8,0x5c,0xc2,0x78,0x32,0x27,0x41,0x2a,0xe3,0x38,0x42,0x2f,0x1d,0x54,0x41,0x2b,0xb1,0xd0,0xc2,0x33,0x6c,0x5c,0x42,0x94,0x95,0x52,0x41,0xf0,0x78,0x72,0x3e,0x8e,0x9a,0x8d,0xc1,0xce,0x46,0x8d,0xbf,0x5c,0x65,0xba,0x40,0x5d,0x29,0xa5,0xc2,0x8a,0x52,0x9b,0xc2,0x36,0xc6,0x90,0x41,0xc5,0x88,0x88,0x41,0xac,0xf6,0x6f,0x41,0x89,0x59,0x9e,0xc2,0x92,0x27,0x51,0x42,0x48,0xc1,0x71,0x42,0xbe,0xa4,0xb2,0xc1,0x7a,0xc4,0xeb,0x40,0xb4,0xf5,0xaf,0x41,0xff,0xff,0x97,0x41,0xfc,0x2f,0x14,0x42,0x70,0x41,0xf8,0x41,0x35,0xe,0x5c,0xc2,0x1e,0x1f,0x7c,0xc2,0xe1,0x49,0x11,0xc2,0xbe,0x3f,0x1d,0xc1,0xf1,0xcf,0x91,0x41,0xa5,0xcf,0x46,0xc2,0x96,0xa6,0x24,0x41,0x3e,0xd1,0xf0,0x40,0x35,0x6c,0x22,0x42,0x6d,0x3d,0x6d,0xc2,0x40,0x93,0xb5,0x41,0x30,0x70,0x9f,0x41,0x40,0x13,0x96,0xc1,0xe0,0xf6,0x80,0x41,0xaa,0xa5,0x12,0xc3,0xbf,0x49,0x39,0x42,0x7c,0x5a,0x8f,0x41,0x30,0x47,0x98,0x3f,0x17,0xf8,0x60,0x42,0x20,0x23,0xdd,0xc0,0x8e,0x80,0x23,0x42,0x12,0xcf,0xb,0x42,0x42,0x6d,0xe2,0x41,0x4e,0x2d,0xd4,0x41,0x8b,0x97,0x32,0xc2,0xa5,0x52,0x8e,0xc1,0x60,0xc8,0x1d,0xc2,0x3c,0x4c,0x1b,0xc1,0x86,0x25,0x9d,0x40,0x50,0x99,0x3b,0x42,0xc0,0xc2,0x17,0xc2,0x4c,0xf1,0x6f,0x42,0xee,0x92,0xa8,0x42,0x2e,0x88,0xf6,0xc1,0x68,0xfa,0xba,0xc1,0x52,0x65,0x9a,0x42,0x8c,0x7,0xe,0x42,0x3e,0xcf,0x44,0xc1,0x79,0x2e,0xaf,0xc1,0x3c,0xdd,0x56,0x42,0xc3,0x8c,0x5b,0x42,0x6c,0x5d,0x46,0x42,0xb0,0x97,0x37,0xc2,0xb8,0x7,0xe2,0xc1,0xc3,0x6d,0xb4,0xc1,0x9b,0x8f,0xa8,0x42,0x78,0x19,0x42,0xc2,0xa0,0xdd,0xf0,0xbd,0x88,0xf7,0xe0,0x40,0x3a,0xd8,0xf5,0xbf,0xe1,0xb,0x7c,0xc1,0xec,0x1d,0x1,0x42,0x5e,0xe9,0x8f,0xc1,0xfd,0xb5,0xb3,0xc1,0xff,0x52,0x18,0xc2,0x7d,0xd4,0xc3,0xc1,0x25,0x9c,0x85,0x42,0xc8,0x74,0x7d,0xbf,0x8e,0xb7,0xf4,0x41,0xc,0x3b,0x1f,0xc2,0x5a,0x3f,0x95,0xc1,0x77,0xba,0x80,0x42,0xc1,0x12,0xcb,0xc1,0x88,0x6f,0x86,0x42,0x42,0x1a,0x50,0x41,0x38,0x38,0xb9,0x3e,0xa0,0x28,0xba,0xc0,0x88,0x5d,0x3a,0x41,0x90,0xa0,0xac,0xc2,0x1f,0xf0,0x45,0x42,0x32,0x45,0x6e,0x42,0xbe,0x46,0x8d,0xc1,0x3e,0xde,0x43,0xc1,0xc0,0x86,0x8a,0x42,0xac,0xc8,0x47,0xc0,0x36,0xe7,0x15,0x41,0xcf,0x61,0xf,0xc2,0xdb,0xc5,0xd6,0x41,0xb2,0x1c,0x4c,0xc2,0xc,0x22,0xc5,0x41,0x59,0xac,0xb8,0xc1,0xc0,0x9e,0xc2,0x41,0x11,0xc1,0x9,0x42,0xe2,0x96,0x78,0x41,0xcf,0x7f,0x1e,0xc2,0xb0,0x41,0x8e,0xc1,0xdb,0xb6,0xc9,0x41,0xfe,0xb6,0xf,0x42,0x93,0x2a,0x84,0xc1,0x96,0xa7,0xa2,0x41,0x38,0x8f,0x25,0xc2,0x91,0x60,0x35,0xc2,0x38,0x8e,0xd3,0x41,0x7e,0x3b,0x7,0x41,0x8a,0x30,0x7a,0xc1,0x72,0x2a,0x18,0x3f,0xb6,0x13,0x72,0xc1,0x75,0xf3,0x7,0xc2,0x92,0x55,0x21,0xc2,0xc0,0x6f,0xf8,0xc1,0x58,0xd1,0x43,0x3f,0xa9,0x4e,0xd5,0x41,0x30,0xed,0x54,0x42,0xca,0x39,0xc,0x42,0xd7,0x2,0xf,0xc2,0x2f,0x50,0x37,0xc1,0x69,0x8,0xa7,0x41,0x21,0xe3,0x75,0xc2,0x44,0x76,0xcb,0xc2,0x83,0x39,0x45,0x41,0x12,0x65,0x0,0x42,0x45,0xd,0xb9,0xc0,0x3a,0xda,0x9,0x42,0x18,0xd8,0x8e,0xc1,0xbe,0xdf,0xfb,0x41,0x66,0x95,0x55,0xc2,0xd8,0x37,0xe6,0x41,0xcf,0x56,0x13,0xc2,0x9,0x8d,0x72,0x42,0x15,0xc3,0x81,0x40,0xf1,0xfb,0xa5,0x41,0xa1,0x2,0xd8,0xc1,0xdd,0x58,0xa9,0x40,0x48,0x9e,0x77,0x41,0xd1,0x59,0x81,0xc1,0x41,0xff,0x63,0xc2,0xfe,0xa7,0xe9,0x40,0xb6,0xc9,0x47,0x3f,0x83,0xcf,0x88,0x41,0xf3,0x75,0xca,0x41,0x14,0x32,0x8b,0x41,0xf,0x1c,0x6,0xc2,0xc7,0xa7,0x9b,0x41,0x83,0xbb,0x24,0xc1,0xc1,0x6e,0xbd,0x41,0xd2,0x4c,0x65,0xc2,0x4b,0x55,0x3a,0x42,0xf1,0xfa,0x9b,0xc1,0x28,0x3f,0x66,0xc1,0xa0,0x48,0x9f,0xc1,0x7e,0x7,0xe,0xc0,0x91,0x6c,0x1d,0x42,0xa0,0xa2,0xf4,0xc1,0xa2,0xdd,0x4d,0x42,0xd2,0x7a,0xeb,0x41,0x94,0x50,0xf7,0xc0,0xd,0xa,0x92,0xc2,0x38,0xf7,0x97,0x41,0x84,0x57,0xed,0xc1,0xe3,0xb,0x41,0xc2,0x5e,0x2d,0xde,0xc1,0xc7,0x84,0x4f,0xc2,0x96,0x45,0xd6,0xc1,0x7b,0xf1,0x75,0x41,0x17,0xff,0xe,0x42,0x21,0xfb,0xac,0xc2,0xe8,0x98,0xb5,0x41,0x7b,0x89,0x5f,0x42,0x13,0x8e,0xc0,0x42,0x7f,0xc0,0x4b,0xc0,0xd2,0x17,0x83,0xc1,0x83,0xd0,0xf,0x42,0x28,0x35,0xcb,0xc1,0xb8,0x1e,0xdb,0x41,0x76,0x5a,0x24,0xbf,0x50,0xaf,0xe2,0xc1,0xc6,0x78,0xe0,0x41,0x8a,0x7f,0xf5,0xc0,0x96,0x4b,0x4c,0xc1,0x41,0x36,0x19,0xc2,0x81,0x3,0x33,0xc0,0xae,0xa3,0x94,0x41,0x42,0xa0,0x7f,0x41,0xed,0xc6,0x23,0x42,0x3e,0x49,0x2f,0xc2,0x5f,0x54,0x4d,0xc1,0x82,0x3c,0x34,0xc0,0xb9,0x3d,0xa,0xc2,0x80,0xc6,0x48,0xc0,0xc3,0xe6,0x3,0x41,0x60,0x5a,0xa7,0x41,0x0,0x9d,0xaf,0x3f,0x39,0x36,0xd5,0xc1,0x3a,0xcb,0x86,0xc1,0x64,0xf6,0xda,0x41,0xa7,0x1a,0xbb,0xc2,0x38,0x46,0x72,0xc0,0xec,0xbf,0x11,0xc2,0x94,0x4,0xd5,0xc1,0x98,0x75,0xf8,0xc1,0x7,0x7,0xfd,0xc1,0xaa,0xb8,0xf0,0xbf,0xc2,0x8b,0x4e,0xc1,0x1c,0xe9,0xd4,0xc1,0x32,0xf1,0x9d,0xc1,0x1d,0x14,0xa3,0x41,0xc,0x5a,0x5f,0x41,0xc9,0xa1,0x2a,0xc1,0x50,0xa6,0x8d,0x42,0x40,0xdf,0x2f,0x42,0x34,0x23,0x4f,0xc2,0x84,0x76,0x1a,0xc0,0x3d,0xf,0x4a,0xc2,0x43,0x4,0xbe,0xc1,0x2d,0x21,0xa,0xc2,0xe6,0x5f,0x2e,0xc1,0x48,0xe2,0xbb,0xbf,0x9a,0x24,0xf9,0x41,0x3e,0x34,0x17,0x42,0x38,0x58,0x65,0x42,0xc0,0xe4,0x80,0x41,0x29,0xdd,0x9a,0xc0,0x74,0x34,0x6c,0xc1,0x90,0x93,0x5a,0xc1,0xae,0x7e,0xe,0x42,0x6e,0x10,0xf7,0xc1,0x47,0x76,0x2d,0x42,0x49,0xab,0x7,0x42,0x2c,0xa5,0xba,0xc0,0x8b,0xab,0x84,0xc2,0x92,0x61,0x1c,0x41,0xa1,0x89,0x74,0x42,0xa8,0x38,0xd9,0xc0,0x58,0xcc,0xb2,0x41,0xd7,0x52,0x65,0xc2,0xca,0xda,0x5f,0xc2,0x8d,0x32,0x4f,0x42,0xba,0x5b,0x91,0x41,0x45,0x29,0x18,0x42,0xa1,0x84,0x3c,0xc2,0x80,0x9e,0xb8,0x41,0xa8,0xaf,0x7,0xc2,0xaa,0x1e,0xdc,0x41,0x57,0x98,0x2,0xc1,0xcc,0x5d,0x91,0x40,0xb6,0x7f,0x34,0xc2,0xf5,0x1f,0x18,0xc2,0xf1,0xad,0xdf,0xc1,0x93,0xfb,0x79,0x42,0x90,0x83,0x74,0xc2,0x48,0x0,0x86,0xbf,0x48,0xed,0x27,0x41,0x30,0xbd,0xaa,0xc1,0x16,0xe0,0xa1,0x40,0xf3,0xba,0xdc,0x41,0x20,0x91,0xa0,0x41,0x45,0x4f,0x62,0xc1,0x7e,0x3c,0x20,0x42,0xc8,0x4e,0x31,0x41,0xa8,0x9c,0x39,0xc2,0x66,0x2b,0x90,0xc0,0x5a,0x91,0x41,0xc0,0x48,0xfe,0x18,0xc1,0x30,0xfa,0x70,0xc1,0xb6,0x94,0x97,0x3f,0xc4,0x98,0x9b,0x41,0x94,0x63,0xf4,0x41,0x64,0xf8,0x13,0x42,0x7c,0x5,0xec,0x41,0x56,0xf1,0x3c,0xc1,0x11,0xda,0x9,0xc2,0xa9,0xa6,0xcd,0x41,0x69,0x3,0x4a,0xc0,0x32,0x82,0x8,0xc2,0x2b,0x6d,0x82,0x42,0xcc,0xdb,0x98,0x42,0x39,0xf8,0x59,0x42,0xe,0x92,0x8c,0x41,0x73,0xd,0xe,0x42,0xc1,0x29,0x17,0xc1,0x77,0x72,0x3f,0xc2,0x9a,0x68,0xce,0xc0,0x1d,0x77,0xbb,0x41,0x45,0xf7,0x39,0x41,0xf6,0xf0,0xe0,0xc1,0x56,0x97,0xee,0xc1,0xc7,0x90,0xa3,0x41,0x3c,0x25,0x12,0xc0,0x71,0x27,0x10,0x42,0xd6,0x14,0x50,0x42,0x58,0xc9,0x80,0x42,0x7b,0xea,0xc4,0xc1,0x31,0xef,0x6,0x41,0x6d,0x45,0xcf,0x41,0x8d,0x6d,0xa,0xc2,0xb2,0x5b,0x10,0x41,0xf,0x8,0x5,0xc2,0x23,0x50,0x80,0x40,0x4a,0x8e,0x3b,0x41,0x1a,0x97,0x14,0xc2,0x37,0x9b,0xd6,0x40,0xe6,0xa5,0x34,0x41,0xe2,0x96,0x23,0xc1,0xea,0xf6,0xbd,0x42,0xea,0x8,0xfd,0xc1,0x5a,0xa4,0xbd,0x41,0xf8,0x48,0x4d,0xc0,0x33,0xb3,0x80,0xc2,0x40,0x5b,0x96,0xc2,0x54,0xad,0x29,0xc1,0x1b,0x9f,0xcb,0x40,0xc0,0xa5,0x2c,0xc1,0x17,0xc2,0xbf,0x41,0x60,0x74,0xd,0xc2,0x17,0xfb,0x22,0x42,0x63,0x75,0x5b,0xc1,0x61,0xfb,0x2a,0x42,0xfd,0x31,0x24,0x42,0xb7,0x37,0x69,0xc1,0x1e,0x1d,0x87,0x3f,0xde,0xad,0x92,0xc1,0xa7,0x35,0x90,0x42,0x78,0x64,0x29,0x42,0x9c,0xeb,0x80,0xc1,0x65,0x1f,0x7,0x42,0xbc,0xea,0x15,0xc2,0x46,0xfd,0x26,0x42,0xa5,0x8b,0x99,0x42,0x9a,0x2,0x89,0xc2,0xa5,0x42,0x3b,0x42,0x5,0x4b,0xf8,0xc1,0x70,0x6f,0xb8,0xc1,0x2c,0x2,0xaf,0x41,0x46,0x78,0xd4,0x40,0x22,0xe,0xaf,0x42,0xb0,0x76,0x2a,0xc1,0x3b,0x20,0x38,0x41,0xb5,0x94,0x80,0x42,0x75,0x7,0x20,0x42,0xf0,0xb9,0x42,0xc2,0xe,0xd5,0x5f,0x41,0x0,0xab,0xa2,0x41,0x51,0x1,0xd4,0xc1,0xf,0x60,0x27,0x42,0x4f,0xd0,0xfb,0x41,0x49,0x5c,0x4c,0x42,0x52,0xa9,0xd9,0xc1,0xd4,0xb4,0x37,0x41,0x43,0xfb,0xf3,0x41,0x5e,0x11,0x35,0xc1,0x5e,0x8c,0xf,0xc2,0x3b,0xe0,0xcb,0x41,0xac,0xc5,0xcf,0xc1,0xa7,0xb4,0x0,0x42,0x21,0x45,0xbc,0xc2,0xcd,0xf8,0x1c,0xc1,0x6a,0xa9,0xe8,0x41,0xb1,0xc3,0xd3,0x41,0x2,0xb7,0x8b,0x42,0x6,0xc3,0xd,0xc1,0x16,0xc4,0x8c,0xc1,0xee,0xaf,0x6d,0xc0,0x52,0x8d,0xea,0x41,0x24,0x83,0x72,0xc2,0xff,0x3b,0x33,0xbf,0xa6,0xe0,0x9f,0xc1,0x54,0x94,0xcd,0x41,0x41,0x43,0x57,0x42,0xd,0xc5,0x33,0x41,0x96,0x43,0x98,0xc0,0x7,0x32,0x3,0x41,0x7a,0x5a,0x7c,0xc1,0xb3,0x33,0x2,0x40,0x40,0xb3,0x93,0x3e,0x22,0x74,0x4d,0x41,0x58,0x4,0x7c,0xc0,0xc8,0x62,0x80,0xc1,0x76,0xdc,0x33,0xc1,0xc6,0x27,0x8c,0xc2,0xb3,0xf5,0x6f,0x42,0xb5,0xfc,0x56,0xc2,0x4c,0xb5,0xcc,0xc1,0xbc,0x86,0x53,0xbf,0xfc,0x2,0xd0,0xc2,0xaf,0x6,0xc,0xc2,0x47,0xc4,0x21,0xc2,0x52,0x86,0x7b,0x42,0xf5,0x92,0xf9,0xc0,0x3,0xa6,0x4a,0x42,0x42,0x76,0xb7,0xc1,0x92,0x12,0x88,0xc2,0x2c,0x50,0x5c,0xc2,0x9b,0xf9,0xc8,0xc0,0x6b,0xd7,0xd1,0x41,0x6d,0xaa,0xa0,0x40,0x3a,0xde,0xa1,0x41,0xb0,0x67,0x9a,0xc2,0xe6,0xed,0x43,0x42,0x96,0xe1,0x9c,0x42,0x90,0xa1,0xcd,0xc1,0x7c,0x1f,0x0,0xc2,0x14,0x79,0xd6,0xc1,0x1f,0xa5,0x2b,0xc1,0x39,0x35,0x32,0x42,0x6,0x79,0x97,0xc1,0x77,0x5c,0x7b,0x42,0xec,0xdc,0x14,0x42,0x7a,0x15,0xa1,0xc0,0xdb,0x4a,0xaa,0x42,0x47,0x61,0x15,0x42,0xac,0xca,0x12,0xc2,0x4c,0xd,0x6e,0x42,0x7f,0xf7,0xf6,0x41,0x23,0x82,0x5a,0x41,0xa2,0x71,0xef,0x40,0xf4,0x6d,0x3f,0x42,0x24,0xff,0x58,0x3e,0xa9,0xc1,0x6a,0x41,0xd1,0x60,0x53,0x42,0x42,0x97,0xab,0x41,0xe,0xf3,0x99,0xc1,0x33,0x68,0x3b,0xc1,0x76,0x8b,0x6a,0x41,0x6e,0x83,0xba,0x41,0xd9,0x41,0x8b,0xc1,0x1a,0xec,0xfc,0xc1,0x1f,0xe5,0xdc,0x41,0x95,0x65,0x77,0x42,0x4c,0x63,0x7e,0xc2,0xc8,0x64,0x18,0xc2,0xb0,0x4a,0x98,0x42,0xd2,0x66,0x94,0xc2,0x60,0xad,0x17,0xc1,0x48,0x21,0x13,0x41,0xda,0x45,0xbf,0xc0,0x19,0x25,0x0,0x41,0xd8,0x74,0xe0,0x41,0xc9,0x97,0x43,0x41,0xe1,0xe6,0x89,0x42,0xd9,0x9f,0x70,0xc1,0x84,0x36,0x3c,0xc0,0xf0,0xfa,0x86,0x42,0xf9,0x97,0xcb,0xc1,0x49,0xbe,0x2d,0x42,0x87,0xce,0x27,0xc2,0x7f,0x74,0x5e,0x42,0x23,0xe9,0x59,0x41,0x6b,0x4,0x3e,0xc2,0x93,0xc5,0x8,0x41,0xe4,0x1b,0xb3,0x40,0xec,0x46,0xa5,0x42,0x5d,0xa7,0x17,0xc2,0xc2,0x95,0x3e,0x42,0xe5,0x59,0xa8,0xc1,0xa6,0xe,0x46,0xc2,0xb4,0xb6,0xd5,0xc1,0xb9,0x4d,0x63,0xc2,0x34,0x4,0xe5,0x40,0xbf,0xc6,0x91,0xc2,0x96,0x87,0xcc,0x40,0xaa,0xc6,0x3c,0x42,0x80,0xc3,0x82,0xc2,0x60,0xb0,0xc3,0x3e,0x8f,0xe,0x5d,0x42,0x75,0x93,0xe9,0xc1,0xaa,0xcd,0xff,0x42,0xc4,0xa3,0xd3,0x40,0x1c,0x9e,0xca,0xc2,0x7e,0x2,0x72,0xc1,0xbc,0x9f,0xfb,0x40,0x27,0x71,0x3a,0x41,0x7a,0x60,0x47,0x40,0xe7,0x7,0xa7,0x41,0x26,0x14,0x9b,0x42,0x21,0x5d,0x16,0xc2,0x74,0xa3,0x4a,0x40,0xa,0x1,0x73,0x41,0xfa,0xd0,0x6f,0x40,0xc6,0x75,0x3c,0x42,0x8,0xb1,0x4a,0x42,0xf4,0x53,0xe8,0x41,0xdb,0x8b,0x30,0x41,0xb8,0x5d,0x46,0x41,0xb2,0x1b,0xa9,0x40,0x10,0x80,0xdf,0xc1,0x19,0x71,0xdf,0xc1,0x24,0xc4,0x57,0x42,0x8a,0x6f,0xe,0xc0,0xef,0xa3,0x73,0xc1,0xc3,0x4d,0x7c,0xc2,0x33,0xeb,0xcb,0x41,0x2c,0x57,0x22,0x40,0xd3,0xb9,0xdc,0xc1,0xaf,0x5f,0x7e,0x42,0x64,0xa1,0x35,0x42,0x44,0xd2,0x6a,0x40,0x54,0x94,0x17,0xc2,0xab,0x49,0x55,0xc2,0xb2,0xe9,0x6b,0x41,0xe6,0x26,0x65,0xc2,0xa9,0xda,0xfb,0xc0,0x84,0x59,0x6a,0x42,0xf4,0xa1,0xc6,0xc2,0x45,0x7c,0x9d,0xc2,0xec,0x0,0x19,0x42,0x58,0x13,0x83,0xc0,0xa6,0x78,0xcd,0x41,0x72,0x92,0x8d,0x42,0xaa,0xbc,0xfd,0x41,0x77,0x0,0xe,0x42,0x76,0xd,0xc6,0x41,0xbc,0x0,0x7,0xc1,0x9e,0xd9,0x96,0x40,0x47,0xfc,0x62,0xc2,0x5d,0xd9,0x6b,0x42,0x96,0x36,0x38,0xc2,0x6f,0xa5,0x85,0x42,0xc0,0xd9,0x6e,0x42,0x38,0xa0,0x2c,0xc2,0xa1,0xe4,0xb5,0x42,0xac,0x59,0xa6,0x42,0xe0,0xe8,0x81,0x41,0x18,0x44,0x56,0xc1,0xe4,0x5,0xdb,0x3f,0x1f,0xe5,0x3,0xc2,0x34,0xc8,0xd6,0xc2,0x80,0xef,0xaa,0x41,0x35,0x62,0x54,0xc2,0x1f,0x79,0x85,0xc2,0xad,0xf1,0x4b,0xc2,0xc2,0x1,0x26,0xc2,0xbc,0x3,0xbf,0xc1,0xd4,0x6a,0x1c,0xc0,0x4f,0xb2,0xb6,0x41,0xc8,0x4e,0x66,0xc1,0x91,0x23,0x83,0x41,0xed,0x94,0xe,0x42,0x27,0x55,0x1,0x42,0x91,0xf,0xc5,0xc2,0xf4,0x6,0xa0,0xc2,0x54,0x63,0xb7,0x40,0x2a,0xf4,0xdd,0x42,0xe1,0x6,0xff,0xc1,0x65,0x2a,0xa9,0xc2,0x96,0x15,0xbb,0x42,0x81,0xf9,0x5b,0xc1,0x6e,0x1a,0xa9,0xc0,0x40,0x81,0x10,0xc2,0x9f,0xf9,0x1b,0xc1,0x9f,0x6,0x6f,0x41,0x68,0x31,0x2a,0xc2,0x14,0xa4,0xea,0xc2,0xee,0x9,0x3,0x42,0xba,0xa,0xe8,0x41,0x88,0xf5,0x9b,0xc0,0xf8,0x9a,0x65,0xc0,0x96,0x5f,0xad,0xbf,0x81,0xf0,0x9a,0x41,0xf8,0x9c,0x2d,0xc2,0xc2,0xea,0x83,0x41,0x91,0x3d,0xd2,0x40,0x50,0xfd,0x29,0x42,0x23,0x1c,0xb6,0x42,0x52,0x95,0x2c,0xc1,0xd7,0x44,0xe7,0xc1,0x96,0x65,0xee,0x41,0x73,0x8,0x3b,0x41,0xd1,0xc1,0x9a,0x42,0xf1,0xa2,0xf5,0xc1,0x82,0x2a,0x80,0x42,0x1c,0xd1,0x27,0xc2,0xcd,0xc9,0x94,0xc1,0x44,0xce,0xaf,0xc1,0x53,0xd2,0x18,0xc1,0xe8,0xb3,0x1,0x42,0x82,0x27,0xc3,0x41,0x19,0x24,0x9d,0x42,0x2b,0x21,0xf9,0x3f,0xc2,0xeb,0x5,0x42,0x0,0x0,0xb8,0xc1,0xb9,0x66,0xb6,0xc2,0xab,0x34,0xb2,0x41,0x52,0x7a,0x46,0xc2,0xd0,0xbf,0xec,0x41,0x48,0x33,0x2c,0xc0,0x52,0xe0,0x82,0x42,0xdb,0x84,0x80,0x41,0x79,0xfe,0x97,0xc0,0x75,0xb4,0x86,0x40,0xd1,0x64,0x52,0x42,0x75,0x2e,0xf0,0x42,0x44,0x11,0x91,0x42,0xca,0xcc,0xc7,0xc1,0x35,0x50,0x5a,0x42,0x98,0xd0,0xf1,0xbf,0x2b,0x83,0x10,0x42,0xe5,0x3c,0x7f,0x41,0x4d,0x74,0x54,0x42,0x9e,0xaf,0x80,0x42,0x1d,0x8d,0xac,0xc2,0x35,0x8a,0xc6,0x42,0x1a,0x97,0x6,0xc2,0xd6,0x15,0xf9,0xc0,0xa,0x52,0xc8,0x41,0xc8,0x35,0xe4,0x42,0xd4,0xb3,0x4a,0xc2,0x6d,0xc9,0xe6,0x41,0xc4,0xd0,0x3f,0xc2,0xdb,0x66,0xc6,0xc1,0x7f,0x45,0x2b,0x42,0xd5,0x31,0xc2,0xc2,0xce,0xde,0xe7,0xc2,0x10,0x2f,0x3,0x42,0xc6,0xc5,0x87,0xc1,0x92,0xa8,0xa1,0x40,0x0,0x47,0x2b,0xc2,0x8c,0xe3,0xce,0xc1,0x34,0xd0,0x37,0xc2,0x6e,0xf6,0xac,0xc2,0x88,0x89,0xb4,0xc1,0x7,0xd,0xc6,0x41,0xe2,0x45,0x8c,0x41,0x21,0x88,0x63,0x3f,0x3,0x7e,0x70,0xc2,0x1e,0x43,0xde,0xc1,0x6f,0xb7,0xeb,0xc0,0xaa,0x6d,0x2,0x41,0x6d,0x75,0x11,0xc1,0x7c,0x93,0x47,0x41,0x5,0x28,0x6f,0xc2,0x86,0x62,0xac,0x41,0x69,0x80,0x8e,0xc0,0x12,0xf2,0x23,0xc2,0xc9,0xe1,0xa7,0x41,0x1e,0x51,0xa1,0x41,0xae,0x23,0x85,0xc2,0x42,0xaa,0x83,0xc2,0xd5,0xba,0xb8,0x41,0xcd,0xd1,0x8e,0x42,0x51,0x48,0x7a,0xc2,0xcc,0x17,0x1b,0x41,0x2c,0xaa,0x35,0xc2,0x72,0xbd,0xc,0xc2,0x4e,0x17,0xf9,0xc1,0xbb,0xd7,0xf4,0x41,0x87,0x0,0x1b,0xc2,0x49,0x46,0x8f,0xc1,0x17,0xa1,0x5f,0xc2,0x2b,0xa6,0x10,0xc2,0x5f,0x4e,0x15,0xc2,0xe3,0x7d,0x36,0xc1,0x27,0xf4,0xd6,0xc2,0x4c,0x9d,0x34,0x42,0x3b,0x53,0x10,0x42,0xd5,0xf8,0x2f,0xbf,0x94,0xe0,0xf8,0x41,0x16,0x1a,0x6d,0xc2,0xda,0x21,0x2b,0x41,0xc9,0x83,0xb9,0xc2,0xdc,0xe0,0x87,0xc2,0xe6,0xa,0xfe,0x40,0x3,0x78,0x7d,0xc1,0xe2,0xa8,0x80,0xc1,0x53,0x1b,0x1f,0xc2,0x64,0xf1,0x41,0x42,0x62,0xa9,0xb8,0x41,0xec,0x7,0x56,0x3f,0xbc,0x94,0xaa,0x41,0x7d,0x71,0x11,0x42,0xa8,0xee,0xa0,0xc1,0x40,0x6c,0x4a,0xc2,0x46,0x23,0xd5,0x41,0x49,0x99,0x8f,0x42,0x7d,0x1,0x1f,0x41,0xf8,0x36,0x4e,0x42,0xbe,0x27,0x20,0xc1,0xea,0x3f,0xaa,0xc0,0x60,0x44,0x14,0x41,0x5e,0x28,0x22,0xc2,0x1a,0x29,0x1,0x41,0x84,0xd5,0x15,0x42,0x68,0xdc,0xc3,0xc1,0x72,0x69,0xc,0x42,0x41,0xc8,0x7f,0xc2,0x80,0x56,0xb1,0x3f,0x1,0x51,0x54,0x42,0x58,0xcd,0x42,0x41,0x37,0x24,0x5c,0xc1,0x8e,0x50,0x8f,0xc1,0x67,0x97,0x9d,0xc0,0x20,0xca,0x27,0xc2,0x70,0xa8,0x21,0x41,0x8,0x98,0x81,0xc1,0xd9,0xea,0x9c,0x42,0x12,0x5c,0xe5,0xc1,0x92,0xb5,0x7f,0x40,0x73,0x75,0x9b,0xc0,0x14,0xf3,0x99,0xc0,0xc0,0x74,0x53,0xc2,0x76,0x35,0x6c,0xc1,0x4f,0x28,0xf7,0x40,0x7c,0x53,0xbb,0xc1,0x53,0xc,0xa9,0x41,0x2a,0x21,0xa8,0x3f,0xc4,0xf7,0xdf,0xc0,0x9e,0xf4,0x49,0xc1,0x9a,0x92,0x93,0xc0,0x14,0xa,0x9f,0xc1,0x77,0xb6,0xd7,0x40,0x1b,0xf7,0x9f,0xc1,0xed,0xad,0x25,0x42,0x98,0x6a,0xbb,0xc1,0x8c,0x7f,0x58,0x40,0x32,0x26,0x43,0x42,0x3f,0x7a,0x37,0xc2,0xda,0x4e,0x14,0x42,0x56,0x1b,0xc3,0x41,0x91,0x74,0xa2,0xc0,0x98,0x73,0x4a,0xc2,0xb6,0x29,0xe9,0xc1,0xe,0x5f,0x9a,0xc0,0x48,0x64,0xf4,0x41,0x48,0x8,0x16,0xc1,0xdd,0xe8,0x10,0xc2,0x2d,0x8f,0x8c,0x42,0xa8,0x8c,0xb4,0xc1,0x46,0xf7,0xe8,0xc1,0x53,0xa3,0x82,0x3f,0x50,0xb2,0x1,0x41,0xef,0x67,0x96,0xc1,0x4d,0xdc,0x11,0x41,0x36,0x5e,0x9,0xc1,0x26,0xe0,0x4d,0xc2,0xb,0xd5,0xbb,0x41,0x73,0x13,0x29,0x42,0x40,0x10,0x1c,0xbf,0xfc,0xca,0xad,0xc1,0x42,0x4,0x15,0xc1,0x2,0x24,0x48,0x41,0x88,0x36,0xb9,0x3f,0xa8,0x5d,0xc3,0x41,0x1a,0xb0,0xa1,0x42,0x82,0x15,0x5,0x41,0x8d,0xf8,0x99,0x42,0x1a,0xde,0x9f,0xc1,0xe4,0x8,0xf8,0xc0,0x52,0xb4,0x97,0x41,0xec,0xcf,0x84,0xc1,0x8c,0x3,0x94,0x41,0x98,0xee,0x80,0xc1,0xc5,0x81,0xbb,0xc0,0xec,0x95,0x9d,0x40,0xae,0xfb,0xb1,0x41,0xe3,0x96,0x40,0x42,0x18,0x3e,0xed,0x40,0x7,0x63,0xa9,0xc1,0x4a,0x75,0x39,0xc2,0xba,0x26,0xc9,0xc0,0x2f,0xf,0xa1,0xc1,0x24,0x63,0xec,0x41,0x20,0xd,0xa7,0x3e,0x10,0xd6,0xbc,0x40,0x86,0xb6,0xcb,0xc0,0x7c,0x3a,0x8d,0x3f,0xea,0xc3,0x7e,0x41,0xf,0xfe,0x87,0xc0,0xde,0xb2,0xd2,0x41,0x6d,0xe,0x8,0x41,0x4f,0xf3,0xd6,0x41,0xfb,0x4c,0x1c,0x41,0xde,0x7d,0x8,0x42,0x45,0xb8,0x8f,0xc1,0x20,0x75,0xdd,0x41,0xa6,0x77,0xe,0xc1,0xd5,0x1a,0xbf,0x41,0x18,0x59,0x67,0x41,0xc5,0x7e,0x13,0xc2,0xf8,0x1d,0xc9,0x3f,0x81,0xd8,0x1f,0xc2,0xd8,0x8f,0x3f,0xc0,0xef,0x39,0x80,0xc2,0xf2,0xc,0x2,0x42,0xba,0xb7,0xc8,0x3f,0xc7,0x7a,0x1,0xc1,0x0,0xcc,0x8c,0x41,0x94,0x36,0x8b,0xc1,0x4a,0x7f,0x2a,0xc2,0x96,0x73,0x2a,0xc1,0x90,0x42,0xa7,0xc1,0x98,0x9e,0x11,0xc2,0x23,0x9e,0xae,0x3f,0x9c,0x17,0xfe,0x40,0x41,0x99,0xdf,0x41,0xb0,0x15,0x60,0x41,0x2,0xce,0x59,0xc1,0x99,0x74,0x8a,0xc1,0x2,0xd8,0x32,0x41,0x33,0xab,0xb4,0xc1,0x5f,0x7b,0x87,0xc1,0xea,0x31,0x15,0x42,0xa4,0xcc,0x6d,0xc1,0xa6,0x64,0x94,0xc0,0x84,0xe7,0xb5,0x40,0x12,0x84,0x18,0xc0,0x8a,0xaf,0x81,0xc0,0xdb,0x13,0xcb,0x41,0x3,0xc,0xb5,0xc1,0xfa,0x34,0xac,0x41,0x4a,0xd4,0x1e,0x42,0xa8,0x25,0x33,0xc1,0xb5,0xa4,0x7a,0x41,0xa2,0x6,0x90,0xc1,0x2d,0xf5,0x92,0x42,0xde,0xb8,0xc8,0xc1,0x4,0xa8,0x4e,0xc0,0x8d,0x78,0x6c,0xc1,0xdb,0x10,0x83,0xc1,0xd6,0x0,0x30,0x42,0x5,0x11,0x3d,0xc1,0x40,0x95,0x14,0xc2,0xb4,0x4b,0x19,0x42,0x73,0xea,0x47,0xc1,0xd5,0xc,0xbc,0xc0,0xf5,0xc8,0x3c,0xc0,0xd0,0x80,0xe5,0xbf,0x5a,0x66,0xc6,0x41,0x70,0xdf,0x83,0xc2,0x48,0xc8,0xc8,0x41,0x63,0xff,0x12,0x42,0xb0,0xb7,0x24,0xc1,0x57,0xf0,0x3e,0xc1,0x58,0x4f,0x82,0xc2,0xe0,0xc5,0x20,0xc2,0x98,0xab,0x5f,0xc2,0x74,0x3,0x76,0x40,0x8d,0x6d,0xd6,0x41,0xca,0x77,0xf9,0xc0,0x27,0x96,0xa8,0x41,0x8e,0x5f,0x43,0x42,0x4c,0x50,0xeb,0x3e,0x6e,0x85,0xbc,0x41,0x5b,0x7f,0xf4,0xc0,0xe3,0x18,0x8a,0x40,0xde,0x1f,0xd6,0xc1,0x35,0x4a,0xa5,0xc0,0x22,0xfb,0x77,0x42,0x6f,0x8c,0xa2,0xc2,0x74,0xb4,0x22,0xc2,0x8c,0xf3,0xd2,0xc1,0x6e,0xdf,0x9d,0xc2,0x81,0x64,0x67,0x42,0x9f,0x67,0x4b,0xc2,0xdf,0x14,0xa8,0xc2,0x91,0xf,0x1,0xc1,0x8c,0x5f,0x13,0xc1,0x23,0x1a,0xe7,0x40,0xe6,0x54,0x34,0x41,0xdd,0xa6,0xd3,0xbf,0x3e,0xb5,0x59,0xc0,0x81,0x4b,0x7d,0x42,0x27,0xdb,0x20,0xc2,0x85,0x95,0x74,0xc1,0x59,0x94,0x4b,0xc1,0x36,0x5a,0x99,0x41,0x96,0x20,0x8e,0xc1,0xef,0x75,0xa6,0x41,0xf7,0xcf,0x66,0x41,0x12,0xf7,0x68,0x41,0x50,0x42,0xb5,0x3f,0x82,0xe8,0x24,0x42,0xdb,0xf5,0x95,0xc1,0x19,0x34,0xfd,0xc1,0x80,0xcb,0x15,0xc2,0x54,0x2b,0xaa,0xc1,0x46,0x85,0x3d,0x41,0x7a,0x5a,0x35,0x42,0xda,0x6d,0x19,0xc1,0x2e,0x3a,0x84,0xc2,0xfe,0xe9,0xc4,0x40,0xd4,0xd0,0xb4,0x41,0xc,0xf3,0x8e,0xc1,0xa0,0x96,0x4c,0xbf,0xd2,0x6b,0x90,0xc1,0x95,0x1c,0x31,0x42,0xfd,0xbd,0x2f,0xc2,0x1e,0xdd,0xc6,0xc1,0x5c,0xe0,0xa3,0x41,0x19,0xa1,0x9a,0xc1,0xb1,0x78,0xd6,0xc0,0x25,0x2d,0x8b,0x41,0x1,0xc5,0x85,0xc1,0x75,0xa,0xe1,0x41,0x58,0xda,0xe8,0xc1,0xd3,0x8a,0xf5,0xc1,0x94,0xf0,0xe9,0x41,0xc1,0x8b,0xd1,0xc1,0xc9,0x4b,0xa8,0x42,0xa,0x4f,0x42,0xc2,0x23,0x88,0x48,0x42,0x51,0xcf,0xac,0x41,0xa8,0xf0,0x20,0x41,0xef,0xc8,0x3a,0xc1,0x31,0x13,0xa5,0x41,0xd8,0xff,0x14,0x42,0x57,0xa1,0x34,0x41,0xc,0xd9,0xd5,0xc1,0x78,0xe7,0xb1,0xc1,0xb3,0xcd,0x9f,0xc1,0x14,0xcc,0xf3,0xc0,0xb1,0x42,0x6,0xc2,0x7d,0x10,0x80,0xc0,0x84,0x8b,0xd,0x41,0x19,0xd5,0x67,0xc1,0x1e,0xe1,0x94,0xc1,0x5b,0x52,0x1d,0x42,0xd8,0x44,0x3a,0xbf,0x60,0x52,0xc2,0x41,0x34,0x37,0xb,0xc1,0x37,0xb6,0x88,0x41,0x7d,0x26,0x1b,0x42,0xd8,0xbb,0x99,0x41,0x63,0xa3,0x83,0xbf,0x91,0xe3,0x4a,0x42,0x30,0x37,0x17,0xc2,0xd3,0x68,0x97,0x41,0x8,0xd5,0x3,0x3f,0x74,0xc3,0xbf,0xc1,0x6,0x76,0xf9,0x41,0xc7,0x9f,0x75,0x41,0x17,0x57,0xbc,0xc1,0xf6,0x98,0xfe,0xc0,0x7b,0xb0,0x78,0x41,0x44,0x31,0x53,0xc2,0x4a,0xe7,0xdb,0xc0,0x70,0x77,0x4d,0xc1,0x27,0x64,0x11,0x41,0x7e,0x5b,0x1b,0x42,0xaa,0x58,0x6e,0x42,0x92,0xd0,0x27,0xc0,0x0,0x9a,0xac,0xc1,0xd4,0x4,0x44,0x42,0xe6,0x52,0x72,0xc1,0x98,0x1e,0xbd,0x41,0xae,0xcd,0x16,0x42,0x87,0x52,0x13,0xc2,0x81,0xc7,0x81,0xc0,0x3d,0xc0,0x96,0x41,0xf,0xb5,0x13,0xc2,0x95,0x5d,0x1e,0xc2,0x24,0x45,0x5d,0xc2,0x50,0xb1,0x31,0x41,0x5f,0x84,0xd4,0x40,0x1b,0x7d,0x75,0xc1,0x6d,0xec,0xdd,0x40,0x6d,0x3d,0x6b,0xc2,0xc7,0x40,0x8f,0xc1,0x62,0x7d,0x3f,0xc2,0x7f,0x57,0x6e,0xc2,0x60,0xe4,0x5d,0x41,0xc2,0xa9,0x62,0xc2,0x7,0xde,0x6,0x41,0x2a,0x95,0x77,0xbf,0xed,0xfb,0xd6,0x40,0x1f,0x7,0x58,0x42,0x18,0x3c,0x52,0x41,0xae,0xef,0xfc,0x41,0x4,0x13,0xb,0xc1,0x8e,0x21,0x84,0xc2,0x13,0x1e,0xcf,0xc0,0x56,0xc0,0x4b,0x42,0x3c,0x57,0xe5,0x3f,0xef,0x4e,0x90,0x42,0x52,0x18,0x1,0xc1,0xa7,0xd4,0x70,0x42,0x73,0x8f,0x35,0x41,0xf7,0x2a,0xb4,0xc1,0x24,0xe,0x9b,0x42,0xc7,0x36,0xec,0xc0,0xd2,0xa0,0x64,0x41,0xa0,0x6c,0xdc,0xc1,0xef,0x73,0x3f,0x42,0xad,0xbc,0xbf,0x40,0xbf,0x66,0x2b,0x42,0xea,0x2a,0xd8,0xc1,0xe6,0x49,0x80,0xc0,0x9a,0xa9,0x90,0xc0,0xd,0x87,0x96,0x42,0xea,0xc1,0x1a,0xc2,0x9d,0x1,0x10,0xc2,0xd8,0xc5,0x98,0xc1,0xc4,0xd9,0x0,0xc2,0xca,0xc4,0x4a,0x41,0x7e,0x31,0xf1,0x41,0xd2,0xef,0x6,0xc1,0x2a,0x6e,0xf5,0xc1,0x82,0x7e,0xd4,0x41,0xdc,0xea,0x49,0x40,0xa2,0x67,0x90,0xc1,0x87,0xb5,0x17,0x42,0xb,0x7,0xba,0x41,0x7e,0x26,0x4,0xc2,0x56,0x84,0xac,0x41,0x49,0xdf,0x5e,0x40,0xc0,0xd4,0x22,0x42,0xea,0x73,0xfe,0xc1,0xef,0xa5,0x80,0xc2,0x5a,0x2a,0x62,0x42,0x5,0x95,0xb8,0xc1,0x5b,0x8d,0x62,0x42,0xcb,0x27,0x39,0xc1,0x25,0x94,0x4d,0x42,0x96,0xc1,0xe5,0x41,0xa1,0x98,0xee,0xc1,0xa0,0x0,0xcd,0x3f,0xef,0xda,0x72,0xc2,0xb6,0xc,0xea,0xbf,0x24,0x88,0x58,0x3f,0x90,0x17,0x6e,0xc2,0x28,0x2d,0xd1,0xc1,0xd7,0x42,0x35,0x42,0xd5,0x5a,0x1e,0x42,0x26,0x70,0xcb,0xc0,0xdb,0x97,0x9e,0xc1,0x62,0x2e,0xab,0x41,0xf2,0x4a,0xde,0x41,0x4f,0x2d,0x30,0xc1,0xb5,0x10,0xe5,0x41,0x15,0x4d,0x89,0x41,0x83,0xbc,0xac,0x41,0x5d,0x92,0x94,0xc2,0x6e,0x50,0x5b,0xc2,0xd8,0x73,0xf8,0x40,0xa1,0x23,0xbe,0x41,0x8,0x2c,0x7c,0x42,0x87,0xd3,0x1e,0x42,0x8b,0x2f,0x2d,0xc2,0x4d,0xe9,0x16,0xc1,0xa3,0x27,0x7d,0x41,0x89,0xf3,0x4e,0xc2,0xab,0x7a,0x4,0x43,0x4f,0x48,0x9d,0xbf,0x28,0x15,0x88,0xc1,0xca,0xbf,0xfe,0xc1,0x84,0x22,0x23,0x42,0xb8,0x88,0xeb,0x42,0xb7,0xef,0x4a,0xc1,0x46,0x8f,0x86,0xc1,0xa5,0x59,0x92,0x42,0x42,0x62,0x29,0x42,0x3b,0x54,0xed,0xc1,0xcb,0xec,0x88,0xc0,0x3,0xfd,0x5a,0xc2,0x51,0xd3,0x8c,0xc1,0x2d,0xda,0x65,0xc1,0xd0,0x68,0x3d,0x42,0xf0,0x6a,0x99,0xc1,0x74,0x35,0xcf,0xc1,0x38,0x0,0x4c,0xc1,0xc4,0x67,0x6,0xc1,0xff,0x44,0xac,0xc1,0xfc,0x48,0x8f,0x42,0x57,0x19,0xcc,0x40,0x96,0x90,0x90,0x42,0x6,0x71,0xcb,0xc2,0x4f,0xbf,0x35,0xc2,0x4e,0xbc,0x2a,0x42,0x7a,0xda,0xc4,0x41,0x9d,0xd9,0x85,0xc0,0x8f,0x64,0xaa,0xc1,0xe5,0xfb,0x74,0x42,0x4d,0xd4,0x36,0xc2,0x38,0x43,0x5c,0x42,0xc0,0x20,0x16,0xbd,0x80,0x7b,0xde,0xbc,0x2a,0xd0,0x72,0x42,0x65,0xd5,0x8f,0x42,0x80,0x64,0x2f,0xc1,0xab,0x85,0x6f,0x42,0x47,0xa8,0xb1,0x41,0x75,0x16,0x69,0xc2,0xf3,0x61,0xf1,0x41,0xac,0xde,0xa5,0xc1,0x94,0xee,0xc9,0xc0,0xb9,0x3a,0x86,0xc1,0xc7,0xc3,0x5b,0x42,0xa9,0x6a,0xa2,0x42,0x95,0xac,0xaa,0xc2,0xd1,0x4a,0xcd,0x41,0xaa,0xb5,0x3c,0x41,0x6e,0xa0,0xc1,0x42,0xab,0xa4,0x67,0x42,0xe,0xee,0xbd,0x41,0xee,0x87,0x67,0xc1,0xae,0xec,0x50,0xc2,0x97,0xae,0x5a,0xc1,0x71,0xcb,0x1c,0xc2,0xf6,0xe1,0xe,0x41,0x66,0xbe,0x86,0xc2,0x6f,0x1,0xde,0x41,0x4c,0xfc,0x18,0xc2,0xb2,0xf,0x89,0xc2,0x70,0x4c,0x85,0x41,0x6e,0x43,0x5b,0xc1,0xe0,0x8,0x9d,0x41,0x8a,0x3b,0x2d,0x42,0xc5,0x2a,0xb,0xc1,0xb3,0x6c,0x72,0xc2,0x78,0x7b,0x1d,0x40,0xe1,0x2,0x58,0xc2,0x35,0x1c,0xc8,0x41,0xf9,0xb0,0x36,0x42,0xe1,0xeb,0x40,0xc2,0x40,0x3a,0x61,0xc1,0x33,0x43,0x54,0xc1,0x68,0x39,0xe7,0x41,0xa4,0x49,0x3e,0x41,0xcb,0x77,0x15,0x40,0x48,0x16,0x82,0x42,0x17,0x36,0x16,0x42,0xaa,0x72,0x8d,0xc2,0x66,0x4a,0x99,0x40,0x52,0xa2,0x28,0x41,0x3e,0x38,0x4,0xc1,0x85,0xe5,0xbe,0x40,0x40,0xa4,0x81,0xc1,0xf9,0x3e,0x8c,0x41,0x0,0x47,0xba,0xbf,0xe1,0x4b,0x2c,0x42,0x4b,0x2b,0x6f,0xc2,0x0,0x89,0x8e,0x41,0x5d,0x8d,0xfd,0x42,0x36,0xff,0x39,0x41,0x21,0xa8,0xf3,0x40,0x53,0x4f,0x33,0xc0,0xae,0x1e,0xe8,0x3f,0x13,0x44,0x9a,0x41,0x88,0x49,0x52,0x42,0x1,0x3a,0xb4,0x41,0xf1,0xe9,0xdf,0xc1,0xb6,0x68,0x1e,0xc2,0x4d,0x66,0xfb,0x40,0x83,0x52,0xcb,0xc2,0x43,0x3c,0x2c,0xc2,0x35,0x37,0x80,0x41,0x18,0x50,0x5f,0xc1,0x9f,0xaf,0x3c,0x42,0xff,0x43,0x5f,0x42,0x94,0x9b,0x3e,0x42,0xce,0xdf,0xe9,0xc1,0x89,0x2f,0xdc,0xc1,0x10,0xbf,0xbf,0xc2,0xae,0x52,0x82,0x42,0xbf,0x8a,0xba,0xc2,0x8,0x31,0x4a,0x41,0x6,0x72,0x99,0xc1,0xc9,0x7,0x86,0xc2,0xf2,0xbb,0xaf,0x42,0x9e,0xbf,0xf7,0xc0,0x1,0x53,0xca,0x42,0x5,0xaf,0x81,0x41,0x60,0xf4,0xe4,0x41,0x9e,0x1,0x92,0x42,0x29,0xe5,0x26,0x42,0x74,0xc5,0xa,0xc2,0xfa,0x17,0x94,0xc2,0xb8,0x89,0x52,0x41,0x9b,0xb5,0xf1,0xc1,0x8f,0x73,0x1f,0xc2,0x64,0x5,0x12,0xc2,0x34,0x82,0x21,0x42,0xfe,0x63,0xb8,0xc1,0x91,0xca,0x1d,0xc1,0x8a,0x64,0x7a,0x42,0xa7,0x2b,0x4d,0xc2,0xd1,0xf2,0xee,0xc1,0x9e,0x98,0x35,0x42,0xb6,0x1e,0xf6,0xc0,0xf2,0x86,0x7e,0x41,0xb5,0xf3,0x4,0xc2,0x55,0x3d,0x19,0xc2,0xee,0xfc,0x70,0x41,0xb,0xeb,0xa3,0xc2,0x47,0x7e,0x4c,0xc1,0x9e,0x4e,0x22,0x42,0xe2,0x1a,0xeb,0xc1,0x40,0x2a,0x30,0xc2,0x27,0x31,0xd6,0xc2,0x95,0xd3,0xa7,0x41,0xe6,0xc,0xa0,0x41,0x8a,0x6e,0x56,0xc2,0xfb,0xc1,0xf5,0xc1,0x32,0x8d,0x35,0x42,0x84,0x57,0xd7,0xc0,0x81,0xc2,0x16,0x42,0xd,0xa4,0xd2,0x41,0x52,0x9f,0x55,0xc2,0xa2,0x62,0xc3,0x41,0xac,0xa1,0x1c,0xc1,0xb8,0x66,0xb3,0x3f,0x38,0x1b,0xa6,0x40,0xce,0xdc,0x88,0x3f,0xe3,0xaf,0x36,0x42,0x9d,0xcb,0x4c,0xc1,0x74,0xd0,0x46,0xbf,0x6d,0x2d,0x1e,0xc2,0x15,0x6b,0x9e,0x42,0xa7,0x82,0x3d,0x41,0x7d,0x49,0x97,0xc1,0x6,0xc4,0xc4,0xc1,0x56,0xad,0x60,0xc2,0xda,0x86,0xf,0x42,0x1,0x18,0x5d,0xc1,0xd4,0x65,0x59,0xc2,0xa,0xdf,0xcb,0xc1,0xa0,0x27,0x8f,0xc1,0xa,0x6e,0xe0,0xc0,0xf8,0x99,0xc3,0xc0,0x11,0x4f,0x28,0x41,0x3d,0x93,0xc6,0x41,0x3c,0x70,0xf,0xc2,0xa5,0xd5,0x59,0xc1,0xa9,0xdd,0xd2,0x40,0x87,0x14,0xbf,0xc1,0x75,0xb7,0x21,0xc2,0xc4,0xb6,0x69,0x41,0x20,0xf4,0xe3,0xbe,0x3e,0x3f,0xf,0xc2,0x7b,0xa7,0x92,0xc2,0xca,0x27,0xd2,0x42,0x66,0x4a,0xa4,0x42,0x49,0x65,0x18,0x42,0xcc,0x4e,0x29,0x41,0x4a,0xc9,0x86,0x42,0x42,0x53,0x4,0x42,0xd1,0xf0,0x8d,0xc2,0xb2,0x2d,0xaa,0x41,0x48,0xe7,0xf2,0xbf,0x14,0xe6,0x4b,0xc2,0x1e,0x18,0xa5,0xc1,0xcc,0xd9,0x83,0x41,0xf5,0xec,0x38,0xc2,0x53,0xaf,0x5d,0x42,0x72,0x89,0x95,0xc0,0x40,0x2c,0x8a,0xbd,0xbf,0x6e,0xa4,0x41,0x24,0xc7,0xa1,0xc2,0x6e,0xa7,0x55,0x42,0x51,0x77,0xd1,0xc1,0x2a,0xf8,0xa5,0x41,0x7e,0x88,0x4d,0xc2,0xeb,0x8e,0x39,0xc2,0xe8,0xb3,0x6e,0xc1,0xe6,0x30,0x49,0xc2,0x64,0x10,0x74,0x42,0x5e,0x62,0xea,0x40,0x99,0xd5,0x3e,0x41,0xef,0x57,0xc7,0xc2,0xa3,0xeb,0xaf,0xc2,0xb4,0xf9,0xa7,0xc2,0xa2,0xb6,0xd9,0xc1,0x3f,0x2e,0x14,0x41,0xbc,0xbb,0x95,0x42,0x9b,0xa7,0x31,0x42,0x12,0x8e,0x38,0xc2,0xed,0xed,0xaf,0x42,0xc0,0x5b,0x1d,0xc1,0xdb,0xa0,0x9c,0xc1,0x48,0x62,0x25,0x42,0xa4,0xe1,0x43,0x41,0x13,0x67,0xa0,0xc2,0xde,0xb8,0xd3,0x41,0x4a,0xfe,0xe5,0xc1,0x79,0x72,0x7f,0xc2,0xe2,0x69,0x17,0x42,0x10,0x48,0xe3,0xc1,0x5a,0x5b,0x0,0xc2,0x73,0xc1,0x1f,0x42,0xc7,0xaa,0x8e,0xc1,0x45,0x79,0xc4,0xc1,0xf3,0x7c,0x2b,0xc2,0xe6,0xc5,0x53,0xc2,0xdc,0xd6,0xa0,0xc1,0x74,0x28,0x83,0x42,0x33,0x41,0x4e,0x41,0xa6,0xe9,0x23,0xc1,0x8e,0x2d,0xad,0x41,0x77,0x95,0xe1,0xc1,0x93,0x29,0x8a,0xc1,0xf4,0x1f,0xe2,0xc1,0x34,0x9a,0x1b,0x42,0x82,0x8d,0xc,0xc2,0xb1,0xd4,0xce,0x40,0xb7,0x9b,0xfa,0x41,0x16,0x14,0x82,0xbf,0x22,0x11,0x9b,0x41,0x40,0x73,0x8f,0xc1,0xe1,0xd6,0x28,0xc2,0xfc,0xfa,0x28,0x42,0x8,0xf2,0xd4,0xc0,0xe,0x4e,0x32,0x42,0xf,0xb8,0xb4,0xc1,0xf0,0xbf,0x7b,0x42,0xe2,0xde,0x35,0xc2,0xc2,0x22,0x23,0xc2,0x8a,0xf2,0x16,0x42,0xb3,0xfd,0x19,0x42,0x82,0xa2,0xa4,0xc0,0xed,0x68,0x24,0x42,0x70,0x97,0x33,0x3f,0x66,0x61,0xba,0xc1,0x2a,0x27,0xa6,0xc1,0x8,0xbb,0x6a,0xc0,0xe1,0x65,0x4f,0x42,0x27,0xa,0xeb,0x41,0x5,0x45,0x8d,0xc0,0xe3,0x1a,0x5d,0x42,0xac,0x2a,0xbe,0x41,0x8,0xd1,0x4,0x42,0xbc,0x6a,0xa,0xbf,0x48,0xda,0xcd,0x40,0xe6,0x3e,0x69,0x40,0x90,0x8d,0xcd,0xc1,0xcb,0xd,0x10,0x42,0x82,0x0,0x72,0x42,0x14,0x29,0xdd,0xc0,0xcd,0x8,0x39,0x42,0x51,0xbc,0x9a,0xc2,0xa9,0xc,0x62,0x41,0x86,0xd1,0x8c,0x41,0x94,0xe2,0x6,0xc2,0x88,0x2d,0x9b,0xc0,0x5a,0x13,0x1d,0x42,0x20,0xc1,0xb8,0xc1,0x9a,0x41,0xa8,0x41,0xdf,0x42,0xa3,0x40,0xf,0x89,0x14,0xc2,0x77,0x1c,0xcc,0x41,0x98,0x76,0x20,0xc1,0x7c,0x4a,0x88,0xc1,0xae,0x13,0xe6,0xc0,0x53,0xc7,0x3,0x42,0x95,0x7d,0xa3,0xc1,0xa0,0xa2,0xa7,0x41,0xf0,0xb6,0x85,0xc0,0x12,0x9,0xf8,0xc1,0x50,0x27,0x1c,0xc2,0x72,0xbd,0xc8,0x42,0x44,0x32,0x25,0xc2,0xe1,0x63,0x12,0x42,0x7a,0xca,0xce,0x41,0x51,0x8a,0x71,0x40,0xe4,0xa,0x5e,0x42,0x9b,0x53,0x57,0x42,0xc7,0x2d,0x49,0x41,0x9d,0x75,0xae,0xc1,0xb0,0xa2,0x64,0x42,0x97,0x18,0x6e,0x40,0xb0,0xac,0x82,0xc1,0x27,0x93,0x5,0xc0,0x20,0xd7,0x79,0x3e,0x82,0xa1,0x7,0xc1,0xd4,0x22,0x99,0x41,0x62,0xc,0x6a,0x41,0x88,0xd5,0x41,0xc2,0x0,0x69,0x9,0xc2,0x10,0xec,0xb0,0x3e,0xc6,0x72,0x2f,0x3f,0x8a,0xd2,0x29,0xc1,0xc7,0x3,0x51,0x42,0xe1,0x5b,0x9f,0x42,0x5,0x1e,0x57,0x41,0x51,0x0,0x54,0x42,0x7,0x19,0x28,0xc2,0xbd,0xd8,0xc,0x41,0xcb,0x22,0x8f,0x41,0x9f,0x6a,0x15,0xc2,0xc1,0xed,0xe9,0x3f,0xe4,0x5,0x32,0x42,0x84,0x4,0x6c,0x42,0x9,0x63,0x6d,0x41,0x77,0x18,0x15,0xc0,0x14,0xf3,0x64,0x42,0xad,0xd,0x8d,0x42,0x20,0x62,0x81,0xc2,0x2f,0xb,0x6e,0x41,0x70,0x9b,0x57,0xc2,0xf,0xaf,0x52,0x40,0xef,0x7,0x93,0x42,0xdc,0x4c,0x3c,0xc1,0x5f,0x9,0x79,0x42,0x26,0x9,0x1a,0xc2,0x64,0x99,0xdc,0x41,0x4b,0x7b,0x7f,0x42,0xb4,0x87,0xc9,0xbf,0x8e,0xe9,0x69,0xc0,0xa0,0x7a,0xa4,0xc0,0xdd,0xb8,0x86,0x40,0xff,0xc1,0xee,0x41,0x85,0x71,0x94,0x42,0x4d,0x6c,0x15,0x42,0x8a,0xcb,0x6b,0x41,0xf4,0x98,0x98,0x41,0xc,0xae,0xf8,0xc1,0x74,0xa8,0x5f,0x41,0xec,0x6c,0x80,0x41,0x34,0xe8,0x9,0xc2,0xe1,0x95,0x63,0x42,0xfa,0xe6,0x21,0xc1,0x7a,0x5b,0xdb,0x41,0x7e,0x68,0x6a,0x41,0xeb,0x5e,0x26,0xc0,0xdb,0x7f,0x10,0xc1,0xf6,0x2,0x44,0x41,0x57,0x4d,0x1d,0x42,0x6b,0xa1,0x6c,0x42,0x80,0x32,0x67,0xc0,0x87,0x74,0xf3,0xc0,0xc4,0xe9,0x37,0xc2,0x75,0x9e,0x4a,0xc1,0xa1,0x8b,0xaa,0xc2,0xf3,0x15,0xfe,0x41,0x0,0x5e,0x8d,0xc0,0x0,0x40,0x28,0xbe,0xd3,0xa2,0x7a,0xc2,0x1c,0xdc,0x99,0xc1,0x8c,0xbe,0x9b,0x41,0x11,0xfa,0x13,0x41,0xe0,0x46,0x94,0xc1,0x3e,0xb0,0xc8,0xc0,0x9a,0x1f,0x14,0x42,0x3b,0x95,0xb,0xc1,0x92,0x53,0x47,0x42,0x39,0xe,0xf,0x41,0x77,0xdd,0x44,0xc2,0xb6,0xf1,0xab,0x41,0x21,0xa5,0xba,0x41,0x71,0xfe,0x53,0xc2,0x8,0xf1,0x25,0xc1,0x37,0x99,0xd,0x42,0xb8,0x76,0x32,0xc2,0xe0,0x96,0x84,0x41,0xdb,0xa9,0x60,0xc2,0xa5,0x5b,0xce,0xc0,0x19,0x1b,0x7c,0x41,0xb,0xd9,0x27,0x41,0x93,0x87,0x6,0xc1,0xfb,0xb8,0x6,0x42,0x3c,0x1a,0x9e,0x42,0x7c,0x3,0xcc,0xc2,0x7a,0xa8,0xf2,0x41,0x91,0xc1,0x76,0x42,0xc9,0xa8,0x82,0x42,0x1e,0x48,0xee,0x41,0x5,0x74,0xec,0x40,0x1f,0x99,0x8f,0x40,0xa9,0x98,0x0,0xc1,0xf7,0x74,0xe0,0x41,0xb5,0x2c,0x87,0xc2,0x4c,0x5,0x4a,0x41,0x76,0xd4,0x7b,0x42,0x7b,0x1,0x26,0xc2,0xd7,0xaf,0x86,0x42,0x3c,0xfa,0x84,0x42,0xd6,0x83,0x76,0xc2,0xe3,0x74,0xb7,0x42,0x16,0x24,0x4f,0xc2,0x33,0x74,0x17,0x42,0x52,0x81,0xb7,0x40,0x3a,0xf,0xc3,0x41,0xfe,0x34,0x8b,0xc1,0x97,0xf9,0x90,0x41,0x30,0xe3,0x25,0x42,0x76,0x32,0x29,0xc2,0x87,0x26,0x48,0xc2,0x1c,0xc9,0x84,0xc1,0x2e,0x7f,0x16,0x42,0x70,0x82,0xe8,0xbe,0x47,0xbd,0xdd,0x41,0xf0,0xcd,0xce,0xc1,0xfd,0x34,0xc,0xc2,0x3c,0x9f,0xbf,0xc2,0xf8,0xa1,0x11,0x41,0x9e,0x1b,0xc5,0x41,0x16,0x31,0xf3,0xc1,0x8c,0xcd,0x64,0x42,0x7a,0x7f,0xbe,0xc1,0x1a,0x51,0x52,0x41,0x4b,0xb8,0x5c,0x42,0x12,0xad,0xc4,0xbf,0x21,0xc2,0x14,0x42,0xcd,0xd,0x33,0x42,0x84,0x56,0x90,0xc2,0x3,0x91,0x33,0xc2,0xd6,0xb8,0x12,0xc0,0x50,0xb7,0xa2,0x41,0xc6,0xac,0xc4,0x41,0x5b,0xf6,0x86,0xc1,0x3a,0x42,0x20,0x41,0xed,0xd9,0xda,0x41,0xb0,0xbe,0x3c,0xc1,0x10,0xc1,0x4b,0xc1,0x2c,0x7f,0xd1,0xbf,0x64,0x4d,0xf2,0x41,0xc6,0x5a,0xa4,0xc1,0x9c,0xc4,0x56,0x41,0xa3,0x60,0x17,0x42,0xbc,0x58,0x69,0xc2,0xf,0x79,0x94,0xc1,0xfe,0xde,0x16,0x42,0x6f,0xb8,0xcb,0xc1,0x26,0xfd,0x6b,0xc1,0xb6,0x5f,0x9a,0x40,0x13,0x6e,0x56,0xc2,0x24,0x4d,0x72,0xc2,0xb,0x30,0x6b,0x42,0xf6,0x4f,0x76,0xc1,0x3f,0x28,0x22,0xc2,0xa6,0xeb,0x6a,0xc2,0xb8,0x1,0x80,0xc1,0xe4,0x2d,0x6e,0xc0,0x35,0x5,0xc0,0xc2,0xe3,0x91,0xdc,0xc0,0x38,0x50,0xf4,0x40,0x7b,0x8a,0x94,0xc1,0x5a,0xa1,0xa0,0xc1,0x8e,0xdd,0xe2,0xc1,0x54,0x86,0x85,0x40,0x4,0x3a,0x25,0xc2,0xe5,0xeb,0x2,0x42,0x3b,0x6e,0x93,0x42,0x41,0x9,0xe,0x42,0x2e,0xc7,0x91,0x42,0x4b,0x4c,0x3f,0xc2,0xc,0x70,0x3a,0x42,0xe2,0x78,0xd,0x42,0x7f,0xe8,0xb1,0xc1,0xaa,0x52,0x76,0xc0,0xf4,0x49,0x1,0x42,0x4,0xc5,0x41,0x42,0x2e,0x9d,0x8f,0x41,0xde,0xdd,0xc7,0xc0,0x82,0xe2,0x83,0x42,0x4,0xa9,0xc9,0x42,0xa8,0x0,0x5b,0x41,0xbe,0x3b,0x4f,0x41,0x7e,0xe7,0x8d,0x40,0x6c,0x56,0x43,0x41,0x1d,0x49,0xc7,0xc1,0x49,0xed,0x3f,0x42,0xc9,0xc5,0x27,0xc1,0x7a,0x5a,0x5f,0x41,0x8,0x80,0x48,0x41,0x9,0x8a,0xf4,0x40,0x90,0xbd,0x9b,0xc1,0x58,0x50,0xb0,0x41,0xd8,0x9a,0xcc,0xc1,0xfd,0xe5,0xba,0x40,0x60,0x69,0xaf,0xc0,0x8f,0x9c,0xc8,0x41,0x9f,0x1f,0x19,0x42,0x67,0x28,0xaa,0x41,0x94,0x4e,0x3a,0x40,0x1f,0xaf,0xe3,0xc2,0xc0,0x1f,0xca,0x41,0xd,0xa0,0xea,0x40,0x1c,0x59,0x62,0x40,0x50,0x7a,0x16,0x41,0x8e,0x12,0xc6,0xc0,0x2e,0xce,0x39,0xc2,0x90,0x3a,0x3d,0xc2,0x3c,0xb,0x2e,0x42,0x69,0xab,0x24,0x42,0x56,0x21,0xb7,0xc1,0x58,0x7b,0x72,0xc2,0xb7,0x62,0x9a,0x42,0xa9,0xce,0x2a,0x41,0xcd,0xf8,0x8f,0x42,0x41,0x76,0x82,0xc2,0xc3,0xe5,0x2,0x42,0x2,0x51,0x3a,0x41,0xf0,0xef,0x10,0xc2,0xac,0x98,0x4d,0x42,0xbe,0x3a,0xb7,0xc2,0x46,0x30,0xe3,0xc0,0xb6,0xd7,0x3f,0x42,0x86,0xe8,0xc,0xc2,0xba,0x57,0x79,0xc1,0x34,0x75,0xd3,0xc0,0x5,0x37,0x5b,0x41,0x1f,0x5a,0xa3,0xc2,0x3e,0x11,0xb0,0xc2,0x1b,0x55,0x8b,0xc2,0xcd,0x59,0x1a,0xc2,0x81,0x0,0x95,0xc2,0xcd,0xb9,0x96,0x42,0x16,0xec,0x3e,0xc2,0xdf,0x1a,0x5,0x42,0x1e,0xc7,0x0,0xc2,0xf7,0x59,0xbb,0xc2,0x4c,0xa7,0x33,0x41,0x6e,0x91,0x20,0x42,0x65,0x10,0x1d,0xc1,0xea,0xa3,0x47,0x42,0x95,0x91,0x42,0xc2,0x34,0x38,0xa5,0xc1,0x1c,0x95,0x4f,0x42,0xde,0x94,0x11,0x41,0xef,0xf8,0xfd,0x41,0x99,0x78,0x32,0xc2,0x9a,0xba,0x32,0xc2,0x90,0xbd,0x91,0x42,0x4c,0xb5,0x87,0xc1,0x24,0x30,0xf5,0x42,0x16,0x9a,0xd,0x42,0x3f,0x55,0xe1,0x41,0x10,0x8e,0xb5,0x40,0xf8,0x22,0x73,0xc1,0x60,0xe3,0x25,0xc2,0x18,0xc6,0x3f,0x3f,0x59,0x3d,0xcc,0x41,0x5b,0x7c,0x4f,0xc2,0x3b,0x4e,0xae,0xc1,0x10,0xd7,0xc3,0xc0,0x5a,0x1b,0x8f,0xc1,0x7c,0x66,0x6e,0xc0,0x19,0xd7,0x10,0x42,0xbe,0x3,0xc0,0xc1,0x66,0xc2,0x42,0x42,0xfa,0xb,0x60,0x42,0xf,0x5f,0x79,0x42,0x40,0xbd,0x68,0x41,0x96,0xa9,0x20,0xc1,0xc5,0x47,0xf8,0xc0,0x56,0x2e,0x9e,0xc1,0x77,0xbe,0x7,0x42,0xa,0x1,0x29,0xc1,0xf9,0x5,0x4e,0xc2,0xa1,0xc1,0x15,0x42,0x76,0x39,0xce,0xc0,0xce,0xe5,0x80,0xbf,0x53,0xbf,0x77,0x41,0x5b,0x53,0x10,0x42,0xbd,0xea,0x10,0x41,0x26,0x89,0xcf,0xc0,0xcc,0xe4,0xa5,0x41,0x4,0x5c,0xfe,0x40,0xbd,0xd0,0x96,0x40,0xa3,0x48,0x85,0xc1,0xfd,0x1b,0xb2,0x41,0xf,0x18,0xf3,0xc0,0x46,0x9e,0x3c,0x41,0x6f,0xb1,0xc9,0x41,0x32,0xe1,0x4b,0x42,0x8a,0xef,0x66,0x42,0x9d,0x4f,0xcb,0xc2,0x81,0x3c,0x27,0xc2,0xe9,0x9f,0x3f,0x42,0xa4,0x36,0x6f,0x41,0x54,0x6d,0x7d,0xc1,0x6e,0x4a,0x2e,0x3f,0x42,0x3f,0xbb,0x41,0xa,0xdb,0xbb,0xc2,0x58,0x54,0x79,0x3f,0x4f,0x49,0x7b,0x42,0xa2,0x41,0x91,0x40,0x58,0xb4,0xb,0x41,0x94,0xd7,0x88,0xc2,0x45,0xe1,0xbd,0xc1,0x51,0x6d,0xd3,0xc1,0xde,0x99,0x13,0x40,0x23,0x80,0xda,0xc0,0x8,0x8d,0xaf,0x42,0x64,0xe9,0x3a,0xc2,0x91,0x1b,0xb3,0xbf,0x1c,0xd5,0x16,0x41,0xbf,0x54,0x2c,0xc1,0xf1,0xe9,0x65,0xc1,0x5c,0x69,0xa5,0x41,0x4b,0x53,0x22,0x42,0xe7,0x42,0x83,0xc2,0xf6,0x2d,0x25,0x42,0x81,0x35,0xbf,0xc1,0xb0,0x65,0x94,0xc1,0x93,0xd2,0x3f,0x42,0xaa,0x96,0x93,0xc0,0x74,0x85,0x3f,0x3f,0x68,0xa6,0xff,0xc0,0xee,0xe2,0xab,0xc2,0x73,0xba,0x4d,0xc2,0x44,0xb4,0xa6,0x42,0xf4,0x7b,0x81,0xc2,0xdd,0x20,0x75,0x42,0x22,0x5,0xb8,0x40,0xc0,0xcc,0x64,0xc2,0xce,0x7,0x6b,0xc1,0xd8,0x3e,0x8d,0x42,0xf0,0x82,0xa1,0x41,0xdd,0x8e,0xf0,0x41,0x96,0xdd,0xc,0x42,0x90,0x52,0x33,0xc1,0xf6,0x9,0x85,0xc2,0x67,0xd8,0x4a,0xc2,0xa4,0x97,0x2a,0x41,0x92,0xfc,0x7b,0x42,0x59,0xbf,0xb8,0xc1,0xfa,0xa4,0xfe,0x41,0xc5,0x6a,0x8e,0x42,0x8a,0x4d,0xa0,0x42,0xbf,0x3,0x59,0xc2,0x8c,0xda,0x43,0xc2,0xb3,0xce,0x68,0x42,0xe7,0x4c,0x1e,0x42,0x18,0x3a,0xc9,0x41,0x1c,0x51,0x3,0x41,0x65,0xd4,0x83,0xc1,0x6e,0x43,0x87,0xc2,0xf8,0x9a,0xb5,0xc1,0xb1,0x44,0xbb,0x41,0x1d,0x18,0x6f,0xc2,0x3d,0xa5,0xf0,0xbf,0xab,0x4d,0xb5,0x41,0x36,0x6,0x16,0x42,0x2c,0x5d,0x98,0x42,0x89,0x75,0x89,0xc1,0x90,0xde,0x5e,0x42,0xa0,0xed,0x30,0xc2,0x36,0x89,0xb8,0x41,0x17,0x9,0xb,0x40,0xf6,0xa0,0x3,0xc2,0x1e,0xaa,0x6e,0xc0,0x3d,0xe7,0x4b,0xc2,0xf1,0x9b,0x73,0xc2,0xab,0x91,0xa2,0x41,0x8a,0x6d,0xd5,0xc1,0x8a,0xca,0x2a,0x41,0xef,0xa9,0xdd,0x41,0xc8,0x4a,0x54,0x41,0x24,0x88,0xa,0xc2,0x65,0x40,0x59,0xc2,0xe2,0x48,0x1e,0xc1,0x95,0xd7,0xf5,0x41,0xcc,0xdf,0x39,0xc1,0xcd,0xed,0xdd,0xc0,0x92,0x78,0x2,0xc2,0xb6,0x4d,0xeb,0xc1,0x68,0x13,0xbe,0xc1,0x4,0x0,0xb6,0xc1,0x56,0xb6,0x13,0x42,0xc8,0x30,0x88,0xc2,0xcf,0x80,0x80,0xc0,0x38,0xb1,0xff,0xc1,0x82,0x9c,0xf,0x42,0xab,0xdc,0xd4,0xbf,0xb4,0xf6,0xc7,0x40,0x9d,0x0,0x2c,0xc2,0x10,0x4b,0x9e,0xc1,0x24,0x79,0x12,0x42,0xa0,0x64,0x65,0x41,0x99,0x1f,0x3f,0xc2,0xa7,0x97,0xa7,0xc2,0x55,0xbc,0x25,0x42,0x7a,0xaf,0x67,0xc2,0x88,0x36,0x3,0xc1,0x3f,0xf,0x55,0x42,0x76,0x4,0xd2,0x41,0xb0,0x9c,0xae,0xc1,0xb0,0x88,0xfe,0xbe,0x45,0xc2,0x95,0x41,0xd8,0xdf,0xd5,0xc0,0x22,0xa,0xda,0x40,0xc5,0x85,0x4e,0x41,0xde,0xdb,0xd7,0xc1,0x54,0x9c,0x98,0xc2,0xa,0xf,0x8f,0xc1,0xd8,0x7,0x0,0xc2,0xb2,0x36,0x71,0xc1,0xf2,0xa0,0x2e,0x42,0x6e,0xce,0xf4,0x41,0xc,0x3c,0xa,0x42,0xe2,0x22,0xa0,0xc1,0xf6,0x1d,0xa7,0xc0,0x3a,0xef,0xe1,0xc1,0x73,0x31,0xa1,0xc1,0xe6,0x40,0x91,0xbf,0x43,0x56,0x80,0x40,0xc8,0xb3,0xf5,0xc1,0x6b,0xfb,0x97,0xc2,0xbc,0x8c,0xbf,0x40,0xe9,0x65,0x28,0x41,0xa4,0xdc,0xcd,0xc1,0xd5,0x98,0x67,0x42,0x88,0x65,0x14,0x42,0xa,0xbd,0xa9,0xc1,0xad,0x51,0x3f,0x42,0xc1,0xcd,0xbf,0xc1,0x64,0x7e,0xb,0xc2,0x5c,0x49,0xc9,0x41,0x4,0x6c,0x9e,0x41,0xb7,0x15,0x8,0xc2,0x63,0x22,0x71,0xc1,0x7a,0x29,0x8f,0x41,0x4,0xd9,0xa9,0x41,0xe4,0xea,0x69,0xc1,0xf2,0xdb,0xf1,0x41,0xcd,0x3c,0x6b,0x42,0x28,0x7d,0x81,0xc2,0xa0,0x60,0xe,0xc2,0xa1,0xc6,0xb4,0xc1,0x60,0xdf,0x1,0x42,0x5f,0xc2,0x19,0xc0,0xd7,0x3e,0x24,0x42,0x88,0x43,0x41,0xc2,0xbe,0x5b,0x7c,0xc1,0xbc,0x46,0x75,0xc2,0x2e,0x60,0xb3,0xc0,0x55,0xa4,0xfc,0xc1,0x65,0x31,0xc1,0xc1,0xdf,0x9e,0x15,0xc0,0x8b,0xcc,0x27,0x42,0xa7,0xb0,0x3,0xc1,0x96,0x8b,0x2b,0x40,0xd1,0xae,0x84,0x41,0xa2,0x98,0x37,0xc1,0x26,0x95,0xf6,0xc1,0xbc,0xee,0xb1,0x41,0xe,0x24,0x25,0xc2,0x27,0xe2,0xe3,0xc1,0x9e,0xc2,0x8d,0x41,0x4b,0x10,0x34,0x42,0xff,0x4f,0x73,0x42,0x40,0xfc,0xb2,0xc1,0x58,0x91,0x32,0xbf,0xe,0x52,0x11,0xc2,0xcd,0x74,0x1,0xc2,0xb1,0x86,0x15,0xc2,0xef,0xcf,0x65,0xc0,0x9e,0x73,0x1a,0x41,0x1b,0x9d,0x9d,0x41,0xe6,0x44,0x4a,0x41,0x2f,0x7d,0xa2,0x40,0xe2,0x27,0x9b,0x3f,0x4c,0xd0,0x9d,0x3e,0xba,0x12,0x4b,0xc1,0xf2,0xa9,0x4b,0x41,0xdf,0x73,0xf5,0xc1,0x76,0x64,0x9,0x40,0xfd,0x16,0x40,0x42,0xa7,0x92,0x7e,0xc1,0x55,0xfc,0x97,0x40,0xa7,0x54,0x4b,0xc2,0xd7,0xa3,0x81,0x41,0x80,0x6,0xd4,0x41,0x3a,0x56,0x14,0xc1,0xbd,0x31,0x5e,0xc2,0xc9,0x8f,0xf0,0xc1,0xb4,0xfa,0x73,0xc1,0x5a,0xc2,0xb7,0x40,0xc5,0xc9,0xe0,0x41,0xea,0x6b,0x8b,0xc0,0xe9,0x7f,0x40,0xc2,0xb7,0x4d,0xee,0x41,0x83,0xf4,0x44,0x42,0xb0,0x84,0x10,0x40,0xa8,0x16,0xa3,0xc1,0xb0,0x17,0xc4,0xc1,0x96,0x8f,0x2a,0x42,0xa1,0xd5,0x18,0xc1,0x5a,0x8c,0xd4,0x40,0x64,0x29,0x92,0xc1,0x74,0x5,0x1d,0xc1,0x76,0x78,0x5e,0xc1,0xe2,0x26,0x1f,0xc2,0x8a,0x8e,0x39,0x42,0xa7,0xf3,0xf3,0x41,0x21,0x57,0x23,0x42,0x53,0x81,0x60,0x42,0xe9,0x43,0x1e,0x42,0x2a,0x7c,0xc3,0x3f,0x97,0x26,0x83,0x40,0x25,0x43,0xa0,0xc1,0x9a,0xf2,0x64,0x41,0x22,0xdb,0xd6,0xc0,0xb0,0xf6,0x3e,0xc2,0x90,0x73,0x68,0x41,0x1e,0x42,0x1f,0xc1,0x5a,0x70,0xf6,0xc0,0x7c,0xf6,0xf8,0xc0,0xa5,0xdf,0x87,0xc1,0xd2,0x27,0x9f,0x41,0xaf,0x89,0x2f,0x42,0xbd,0xf5,0x88,0x41,0xf0,0x87,0x53,0xc1,0xbc,0x94,0x4e,0x40,0xad,0x76,0x6e,0x41,0x7b,0x2b,0xc1,0xc1,0x2c,0x4b,0xd7,0xc1,0xfc,0x30,0x51,0x40,0xf2,0xdc,0x18,0x42,0x8c,0xe0,0x30,0x41,0xbc,0x81,0x48,0xc2,0xef,0xb,0x85,0xc1,0x92,0xf3,0x6,0xc1,0x68,0x53,0x29,0x41,0x48,0xdb,0x93,0xc1,0x38,0xdc,0x5e,0x40,0x6b,0x24,0xf4,0xc1,0x48,0x4,0x8a,0xc1,0xbc,0xba,0xd9,0x41,0xba,0xf9,0xcd,0x40,0xac,0x65,0x69,0x41,0xe0,0xb4,0x83,0x3f,0x6b,0xa9,0x2a,0xc0,0xba,0xd3,0xa2,0x41,0xb9,0x4,0x93,0x41,0x9b,0x20,0x54,0xc1,0xfd,0x92,0x19,0x41,0x9e,0x44,0x93,0x41,0x9,0x19,0x8e,0xc1,0x17,0x61,0x66,0x40,0x72,0x38,0x39,0x42,0xdc,0xbe,0xb7,0x41,0x93,0x86,0x3f,0xc1,0xca,0x75,0xf0,0x40,0xb6,0x49,0x5d,0x41,0xca,0xeb,0x26,0xc2,0xd8,0x1f,0x43,0x42,0x4f,0xfb,0x10,0xc2,0x56,0xe7,0xff,0xc1,0xee,0x6,0x66,0xc1,0x96,0xae,0xcc,0x41,0x3e,0x8,0x5c,0x41,0xb2,0x36,0xaf,0x41,0x9b,0x4a,0x52,0xc1,0x68,0xda,0xea,0x3f,0xea,0x4e,0x7c,0x41,0xa5,0x64,0x9e,0x41,0xf,0x4a,0x37,0x42,0x31,0xa6,0xa0,0x40,0xbe,0xf8,0xf7,0xc0,0x64,0xf1,0x62,0x41,0x91,0xf0,0x75,0x41,0xb2,0x58,0xd4,0xc1,0xa2,0x48,0x78,0xc2,0x96,0x59,0x3e,0xc1,0x28,0xfa,0x21,0xc2,0x6a,0xeb,0xd4,0x41,0x50,0x7d,0xfe,0xc1,0x46,0x77,0x1d,0x41,0x52,0xae,0x16,0x41,0x88,0x82,0xdc,0x41,0x1c,0xda,0xab,0xbf,0x8b,0xe6,0x6e,0x41,0x35,0x42,0xe3,0x41,0x6c,0x4a,0x6,0xc2,0x20,0xfe,0x8e,0x42,0xbf,0x90,0xb4,0x41,0xc2,0xda,0x5f,0xc1,0x9e,0xca,0xda,0xc1,0xfa,0xc7,0xd3,0xc1,0x72,0x8f,0x35,0x42,0x42,0xf7,0x4,0x42,0xdc,0x41,0xab,0x41,0x77,0xb4,0xb2,0x41,0xc3,0xfc,0x60,0xc2,0x4e,0x37,0xe9,0xc1,0x92,0x11,0x66,0xc1,0xe5,0x3d,0x7c,0x41,0x22,0xe5,0x14,0x42,0xfe,0xc0,0x93,0x42,0x12,0x44,0x4b,0x42,0x50,0x1b,0x3f,0x42,0xa7,0xf3,0xec,0xc1,0xd6,0xaa,0x36,0x41,0xd4,0xc1,0xcb,0xc0,0xeb,0x98,0x1e,0x42,0xa5,0x5,0x88,0xc1,0xd5,0xb8,0x79,0xc0,0xae,0xbe,0x91,0xc1,0xea,0x8,0x4f,0x42,0xf6,0xb7,0xef,0x41,0x24,0x35,0x2d,0xc1,0xd4,0xbb,0xc6,0xc0,0x4b,0x29,0x34,0x41,0xac,0x9a,0x79,0xc2,0xfd,0x48,0xd0,0x41,0xf9,0x1e,0x4b,0x42,0xb8,0x5d,0x22,0x42,0x83,0x9e,0x18,0x41,0x43,0x64,0x59,0x41,0x72,0x45,0x2,0x42,0xae,0x88,0x17,0x42,0xf8,0x46,0x46,0x40,0xdd,0x95,0x17,0xc1,0xa9,0xa,0xc9,0xc1,0x34,0x73,0x53,0xc2,0x7,0xe2,0x3,0xc2,0x7a,0xd3,0xaa,0x41,0x2a,0xd1,0xb2,0xc1,0x90,0x10,0x4a,0xc2,0xd6,0x1f,0x74,0x42,0xf6,0x1b,0x37,0x42,0xb5,0x93,0x46,0x41,0x17,0x86,0x8f,0xc0,0x45,0xa9,0x65,0xc1,0xa8,0x68,0xec,0x41,0x72,0x9c,0xe6,0xc1,0xa5,0x23,0xbe,0x40,0x51,0x23,0xa1,0x41,0xa4,0x3c,0x12,0x41,0x3e,0x5c,0x28,0x40,0x44,0xe6,0xc1,0x41,0x81,0xcf,0x90,0xc2,0x64,0xac,0xb7,0xc1,0x47,0x73,0x99,0xc2,0xcb,0xe9,0x85,0x40,0xb6,0x61,0x3a,0xc1,0x40,0xc9,0xeb,0xc1,0xd2,0xe,0xc,0x42,0xa0,0x3a,0x79,0x3e,0x1c,0x74,0xd5,0x40,0x8d,0xbb,0xa9,0x42,0x1b,0x40,0x28,0x42,0xd5,0x12,0xb0,0x41,0xda,0x17,0x38,0xc2,0xd5,0x5d,0x83,0xc1,0xac,0x91,0xfe,0xc1,0x2,0x96,0x3e,0x41,0x34,0x58,0x60,0xc2,0xc9,0x79,0xab,0xc1,0x2c,0xc6,0x5a,0x41,0x84,0x7f,0x9a,0x40,0xcf,0xfb,0x89,0x42,0x38,0xe0,0xec,0xc1,0xfa,0x12,0x7a,0xc1,0x73,0x39,0xa,0xc2,0x38,0x27,0x3,0xc2,0x35,0x9d,0xd8,0x41,0x7d,0xb1,0x10,0xc1,0x5f,0x88,0x50,0x42,0xba,0x15,0x84,0x42,0xbe,0xc9,0x66,0x42,0x55,0x0,0x2d,0xc2,0xf7,0xe2,0xc2,0xc1,0x27,0x18,0xdd,0xc0,0x96,0x20,0x53,0x40,0x6e,0x5,0x76,0x40,0x9c,0x6,0xc3,0x41,0x39,0x6d,0x80,0x40,0xd6,0x7f,0xa6,0x40,0xd8,0xa1,0x5,0xc1,0xdb,0xa,0xa9,0x40,0xff,0x58,0x81,0xc1,0xd,0x68,0x9e,0xc1,0x5b,0x7f,0x2a,0x41,0xfc,0x6b,0xa6,0xc1,0xa5,0x72,0x6d,0x42,0xff,0x77,0xc6,0x41,0x5e,0x61,0x82,0xc2,0x87,0x48,0xd9,0xc0,0x14,0x1a,0xed,0x42,0xc3,0x61,0x49,0x42,0xa,0xe8,0x42,0xc2,0xbb,0x7b,0xb8,0xc1,0x3c,0x54,0x97,0xc1,0xc1,0xda,0x65,0xc1,0x10,0x7b,0x40,0xc1,0x5b,0xa,0x8d,0xc1,0xa2,0xb6,0xc2,0x42,0xcd,0x7c,0x3e,0xc2,0x96,0x10,0xed,0x41,0x94,0x57,0xb7,0x41,0x8e,0x7c,0xf9,0x41,0x99,0x28,0x84,0x41,0x49,0x71,0xa8,0xc1,0x10,0x83,0x1d,0x41,0x83,0x59,0xe,0xc1,0xe,0x55,0x6d,0xc1,0x85,0xea,0xcb,0x41,0xac,0xd9,0xb3,0xc1,0x9f,0xcb,0x79,0x42,0xfc,0x82,0xa9,0xc2,0x40,0xc,0x6d,0xc2,0xa5,0x70,0x86,0x42,0xb2,0x78,0x5,0x42,0xa5,0x4b,0x4,0xc1,0x3a,0xd2,0x7f,0x3f,0x3e,0x60,0x29,0x42,0x12,0xb6,0x8b,0x42,0x11,0x1f,0x69,0x41,0xb2,0x5d,0x19,0x41,0xf7,0x90,0x39,0x42,0x97,0xd5,0xb2,0xc1,0x1,0xf4,0x2d,0x42,0x88,0xd4,0x5a,0xbe,0xa,0xa0,0x97,0x40,0x3a,0x34,0x81,0x41,0x27,0x40,0x22,0xc1,0x13,0x92,0xbb,0x41,0x54,0x5c,0xac,0x42,0x1d,0x6b,0x30,0xc2,0x65,0x45,0x1a,0x42,0x52,0x4b,0x10,0x40,0x83,0x1e,0xab,0xc2,0x65,0xfc,0xa5,0x41,0x1c,0x8,0x5a,0x41,0x60,0xab,0xa2,0x42,0x96,0xe0,0xc6,0x41,0x8,0x3e,0xff,0xc1,0x3f,0x3c,0x27,0x42,0x5e,0xe9,0x2d,0xc0,0xa,0xc4,0x68,0x42,0xc1,0x7a,0xc0,0xc1,0xd4,0x73,0xac,0x41,0x9d,0xd1,0x99,0x42,0x35,0x59,0x64,0x42,0x33,0xa9,0xa1,0xc2,0x50,0xf0,0x74,0x42,0x74,0xcc,0xdc,0x3e,0x34,0x13,0xce,0xc1,0xe,0xd0,0x2c,0xc2,0xe,0x9e,0x10,0x41,0x6a,0xe1,0xf,0x42,0xad,0x9c,0x95,0xc1,0x20,0xab,0x9d,0x41,0x27,0xa2,0x70,0xc2,0xfb,0x6c,0x53,0xc2,0x9f,0x82,0x47,0xc2,0xd8,0x25,0xa9,0x40,0xf2,0xa7,0x19,0xbf,0x15,0xcd,0xb6,0xc1,0x3a,0xf2,0xb3,0xc1,0x27,0x48,0xa9,0xc2,0x8b,0x8e,0x9a,0xc1,0x8c,0xc0,0x26,0xc2,0xd4,0x2c,0xcc,0x41,0xf4,0x5,0x38,0xc2,0xab,0x6,0x5c,0xc2,0x3b,0x3f,0xf,0xc2,0x9d,0xba,0x3,0xc1,0xe7,0xa4,0x8d,0x40,0xe0,0x8e,0x9b,0xc1,0x96,0x35,0x2b,0x42,0xf8,0x75,0xca,0x41,0x74,0x3c,0xb0,0xc0,0x8a,0x3d,0x2d,0x42,0x6c,0xd0,0x0,0xc2,0xdb,0xdd,0x43,0x42,0xcb,0x4d,0x3e,0xc2,0x34,0x7a,0x5,0xc0,0x56,0xba,0x5,0xc1,0x5f,0x4c,0x7e,0xc1,0xa2,0x99,0x3a,0xc2,0x94,0x94,0xb3,0xc1,0xd7,0x32,0xd,0x42,0xe,0x77,0xb4,0xc2,0xf4,0x4c,0xf5,0xc1,0x46,0x7d,0x67,0x42,0xe,0xd7,0xa7,0x40,0xe8,0x5e,0x6d,0xbe,0xe,0x4a,0xe3,0x41,0xed,0x10,0x9f,0xc1,0xb7,0xc8,0xe2,0x41,0x79,0x1f,0xba,0xbf,0xfe,0xff,0x9d,0xc1,0x9b,0xf7,0x8b,0x42,0x4c,0x33,0x0,0xc2,0x7a,0xe4,0x66,0xc1,0xea,0x35,0xc5,0xc1,0xee,0x85,0x9a,0x42,0x81,0x99,0x4,0xc1,0x4b,0x45,0xfd,0x42,0x94,0x4c,0xa0,0xc1,0x70,0x6a,0x2a,0xc1,0x0,0x24,0xa4,0x3e,0x3e,0xec,0x20,0x41,0x21,0x9f,0x53,0xc2,0x5b,0x4c,0x63,0x42,0xff,0x11,0x30,0x40,0xee,0x83,0x38,0x42,0x47,0x1b,0x8f,0xc2,0xe6,0xf9,0xf9,0x41,0x9b,0xec,0x8e,0x40,0xb4,0xd,0x4a,0xbf,0xa4,0x25,0x85,0xc2,0xec,0xe5,0x49,0xc2,0x2,0xe2,0x9b,0xc2,0x9f,0xce,0x9,0xc2,0x5f,0x10,0x3e,0x42,0xf4,0xe3,0xdd,0x40,0x35,0xb4,0xd7,0x41,0x72,0xb7,0x87,0xc1,0xd8,0xd0,0xa7,0xc2,0x82,0x1b,0xaa,0xc1,0x8b,0xe3,0xe3,0x41,0x5d,0x6d,0x6a,0x41,0x4e,0x8,0x3d,0x42,0x7c,0x12,0x3e,0x42,0xf5,0x66,0x9a,0x41,0x48,0x35,0x11,0x42,0xc,0x22,0x60,0xc2,0xdf,0xc2,0x28,0x42,0x78,0x3b,0x89,0xc2,0xb4,0x7a,0x66,0x3f,0x59,0x9c,0x32,0x40,0x4c,0x8a,0x7e,0xc1,0x2b,0x37,0x33,0x42,0x18,0xc1,0xfa,0x40,0x78,0xf7,0x8c,0x42,0x79,0xd2,0xd4,0x41,0x41,0x46,0x90,0xc1,0xa4,0xf0,0x68,0xc2,0x34,0xaf,0x8d,0xc1,0x46,0x73,0x86,0xc2,0x52,0x81,0x94,0x41,0xcb,0xa,0x64,0xc1,0x60,0xb3,0x3b,0xc2,0xee,0x40,0x9d,0x40,0xe1,0xc5,0x9f,0xc2,0x3a,0x3b,0x64,0x41,0x4f,0x62,0x99,0xc2,0xd1,0xa,0xed,0x40,0x9c,0x42,0x72,0x41,0x10,0xf3,0xa2,0xc2,0xbb,0x88,0x50,0xc1,0x60,0x30,0xc3,0x41,0x50,0x6d,0x9c,0x42,0xb7,0x2c,0x60,0x42,0x92,0x51,0xe8,0xc1,0x9f,0xfd,0x8d,0xc1,0xa1,0x6a,0x3,0xc1,0x15,0x45,0x71,0xc1,0x98,0x25,0xb4,0x41,0xcd,0xf1,0x36,0xc2,0xd7,0x9f,0x66,0x41,0x71,0xc5,0xa0,0xc2,0x19,0x82,0x8f,0xc1,0x3c,0x40,0xe2,0x40,0xfd,0xdb,0x8e,0xc2,0x5d,0xa2,0x46,0xc2,0x8b,0xfb,0xca,0x41,0x2,0x20,0xe7,0x41,0x3e,0x3b,0x68,0x41,0x39,0x80,0xc1,0xc0,0x48,0x2c,0x56,0xc2,0x9d,0x3c,0xe5,0x41,0x80,0xe9,0x9,0xc2,0x3a,0x86,0x56,0x42,0x5c,0x7b,0xb8,0xc2,0x14,0x60,0xb0,0xbf,0xa9,0x5b,0x22,0xc2,0x2c,0x2e,0x92,0xc1,0xbe,0x72,0x2b,0xc0,0x60,0x27,0xd0,0x41,0x5a,0x3e,0x32,0x42,0x4b,0x32,0x12,0x42,0x81,0x69,0xc3,0xc1,0xca,0x8,0x2,0xc1,0x9c,0x8b,0x41,0x42,0xdf,0x27,0x20,0xc2,0xa0,0xa4,0x7d,0xc2,0x16,0xf6,0xfb,0xc2,0x7d,0x85,0x87,0xc1,0xa9,0x3b,0xda,0x40,0x9b,0x5c,0xd,0xc2,0xd0,0x0,0x4b,0x42,0xcf,0xb9,0x3e,0xc2,0x65,0xf1,0x54,0x40,0x9b,0x59,0xc9,0x42,0xb,0xd5,0xd0,0x40,0x8f,0x49,0xd7,0x41,0x6c,0x4,0xf0,0x41,0x4c,0x3e,0x69,0x42,0x2f,0x4e,0x5,0xc2,0x40,0xbb,0x9,0x42,0xfa,0x96,0xcf,0xc0,0x4e,0x2f,0x7,0xc1,0xb6,0x68,0x88,0x41,0x90,0xf6,0xc3,0xc1,0xe,0xce,0x3b,0x42,0x73,0x1f,0x3,0xc2,0xd6,0x85,0x24,0x42,0xb3,0x1c,0x99,0x42,0xb0,0x1a,0xb,0x41,0xfc,0x9a,0xa4,0x41,0x6,0xd0,0xa8,0xc1,0xdd,0x6e,0x91,0x41,0xc5,0x6b,0x17,0x42,0x38,0x6a,0xa9,0xc1,0xcf,0xcc,0x30,0x42,0x6,0xec,0x8c,0xc0,0x43,0xe4,0x75,0x42,0x28,0x66,0x81,0x42,0x3e,0x93,0x3d,0xc2,0xf,0xaf,0x9c,0xc1,0xe3,0xa,0xe0,0x41,0x9c,0xad,0x9e,0x41,0x6d,0x51,0x48,0x42,0x92,0xaf,0x3,0x42,0x92,0xd7,0xb0,0x41,0x8e,0x94,0xe9,0xc2,0x75,0x24,0x6f,0xc2,0x90,0x4e,0xf5,0x40,0x98,0xeb,0xc1,0xc0,0xe4,0x81,0x38,0xc2,0xa5,0x2a,0xa4,0x42,0xf7,0x55,0xf,0xc0,0xcf,0x8a,0xf5,0x41,0xfb,0x9c,0xd9,0x41,0x48,0xe3,0x62,0xc2,0xb9,0xde,0xc6,0x41,0xad,0x1b,0x1a,0x42,0x84,0x8f,0x80,0xc2,0xa8,0x6,0xc1,0xc1,0x78,0x49,0x85,0xc2,0x9d,0x7a,0x69,0xc1,0x74,0x91,0xd7,0x42,0xfa,0xcc,0xfb,0x41,0x3,0xf4,0x2c,0x42,0x5d,0xe4,0xb,0xc3,0x75,0xb6,0x23,0x42,0x6c,0x23,0xa2,0x40,0x8f,0xc4,0xfa,0xc0,0x7c,0xf8,0xc2,0x41,0x20,0x32,0x47,0xc2,0x24,0x95,0xd3,0x3f,0x88,0x26,0xd,0x42,0xb0,0x7,0x99,0x41,0xc7,0xbc,0x36,0xc2,0xd9,0xb0,0x9,0x43,0x28,0x92,0x8d,0xc1,0x73,0xf9,0xa3,0xbf,0x58,0xe3,0x87,0xc1,0x9e,0xef,0x44,0x42,0xb8,0xd8,0x10,0xc1,0x1f,0xd3,0x61,0x41,0x2c,0x4e,0xe2,0x40,0xb8,0xc9,0x72,0xbf,0xca,0x28,0xdd,0x42,0xa5,0x58,0x9e,0x41,0x6c,0x34,0x53,0x41,0xe6,0x18,0x0,0x42,0x1,0x22,0x3a,0xc1,0xee,0x77,0xa3,0x40,0xf0,0x10,0x60,0x41,0xb,0x33,0x4f,0x42,0x54,0x74,0x0,0x42,0xe,0xf4,0xd6,0x41,0x85,0xc8,0x19,0xc1,0xe6,0x8a,0x1e,0xc1,0x3c,0x2,0x40,0x42,0xbb,0xab,0xce,0xbf,0xe5,0x7b,0x2a,0xc1,0xe1,0xf3,0x9e,0x42,0xa2,0x6b,0xcb,0x41,0xba,0x3d,0x27,0x42,0x29,0x37,0x34,0xc2,0x4,0xd8,0x42,0xc2,0xc4,0x70,0xc6,0xc2,0x94,0xe3,0xd,0x42,0xf0,0x14,0x19,0xc1,0x10,0x30,0xb6,0x40,0x54,0xf8,0x9c,0xc0,0x1a,0xbe,0xa2,0x42,0xf3,0x82,0xb5,0x42,0x6c,0x10,0x58,0x42,0x75,0xfb,0x4,0x42,0xeb,0x70,0x1b,0x41,0x32,0x11,0x31,0x42,0xf9,0x5f,0xa,0xc2,0x47,0x80,0xa3,0xc0,0x8a,0x1d,0x9f,0xbf,0x35,0x83,0x56,0xc2,0x81,0x13,0x50,0xc1,0x9e,0xaa,0x76,0x40,0x2e,0xe1,0x8b,0xc1,0xec,0x6d,0x5e,0xc0,0x83,0x81,0x57,0x42,0x72,0x9b,0xb9,0xc1,0xd8,0xe3,0xfd,0x40,0xf6,0x6,0x4e,0x42,0xe6,0xb7,0xc9,0xbf,0xac,0xa7,0xb0,0xc1,0x18,0x97,0x2d,0xc2,0xdd,0xc2,0xad,0xc2,0x2f,0xcd,0xe0,0xc1,0x29,0x78,0x7,0xc2,0x2a,0x7b,0x4,0xc2,0x50,0xb1,0xed,0x41,0x87,0x4a,0xf3,0xc1,0x98,0x9,0x5,0x42,0xfe,0xa3,0x9d,0xc1,0xf0,0xde,0x85,0x42,0xee,0x8b,0x9e,0xc2,0x10,0xa5,0x2d,0xc1,0x67,0x2d,0xc2,0xc1,0x7f,0x47,0xf1,0x41,0xb8,0xe1,0x2,0x42,0xd6,0x27,0xb4,0x41,0xa5,0x31,0x20,0xc2,0x64,0xb2,0xcd,0x41,0x9c,0x57,0xac,0x41,0x6e,0xdf,0xa,0xc2,0x2c,0xf3,0x23,0xc2,0xce,0x55,0x5,0xc1,0xac,0x98,0x35,0x42,0xe4,0xe4,0xfe,0x41,0xda,0xfd,0x6f,0x41,0x70,0x31,0x47,0x41,0x4c,0x4e,0x5f,0x42,0x6,0xb4,0xcc,0xc0,0xa4,0x1b,0x18,0x41,0x30,0x3d,0x43,0xc2,0xfc,0xf6,0x9,0x42,0x60,0xc0,0xde,0x41,0x7c,0xfb,0x1a,0x41,0x61,0xa4,0x1b,0x42,0xd0,0x6f,0x70,0xc2,0xbc,0xd1,0xb2,0x40,0xae,0x58,0xd4,0x40,0xa5,0x5c,0x6a,0x41,0xaa,0xfd,0x82,0xc2,0xe8,0xdb,0xe2,0x41,0x20,0xff,0xd8,0xc1,0x27,0xac,0x93,0xc2,0xe3,0x74,0x2a,0xc2,0x3a,0x65,0x9,0x42,0x9d,0x64,0xa2,0xc2,0x44,0xdc,0xd8,0xc0,0xaa,0x88,0x16,0x41,0xbd,0x31,0x60,0x42,0xc8,0xae,0x84,0xc1,0xbf,0xd9,0xa,0x42,0x10,0xbc,0x14,0xc2,0x4,0x7d,0x4,0xc2,0xc,0x79,0x89,0x42,0x24,0xfd,0x8c,0x41,0x6c,0xe8,0xa0,0xc1,0x38,0x48,0x58,0x42,0xa4,0xe7,0x8c,0xc1,0x8e,0xad,0x81,0xc1,0x15,0x6a,0x8d,0x41,0x38,0xcf,0x3,0x41,0x42,0xa6,0x31,0x42,0x72,0x11,0x84,0xc1,0x72,0x61,0x54,0xc1,0xbb,0x6c,0x35,0x41,0xa1,0x51,0x1c,0xc2,0xf2,0xed,0x71,0x41,0x96,0x2e,0xcd,0x40,0x25,0x65,0xd,0x42,0x66,0x7,0x42,0x41,0xd7,0xef,0x3a,0x40,0x95,0x8d,0x80,0xc0,0xc2,0xa8,0x15,0xc2,0x9c,0xf,0xd9,0x41,0x59,0x33,0xf8,0x41,0x9b,0x85,0x3b,0xc1,0x24,0x3c,0xb0,0x41,0xf7,0xb6,0x44,0xc2,0x24,0x21,0x7b,0xc2,0xa,0x2d,0x92,0x42,0x4c,0x78,0xb9,0x42,0xcc,0x34,0xd7,0xbf,0xf8,0x58,0xe4,0xc1,0x9e,0xf4,0xee,0xc1,0xaa,0x8e,0xd5,0xc1,0x88,0xcb,0x2c,0xc1,0xd1,0xd7,0x2f,0xc2,0x41,0xf,0xbc,0x3f,0x4b,0x28,0x19,0xc2,0xc2,0x8e,0x7a,0x41,0x3e,0x73,0x15,0x41,0xc7,0x28,0x8f,0x42,0xe1,0x70,0xc2,0x41,0x26,0xa4,0x1c,0xc2,0x36,0x0,0x3a,0xc2,0x7a,0x41,0xcf,0x41,0x56,0x5f,0x16,0x42,0x0,0xe,0xb9,0x41,0x3d,0xf6,0x72,0x41,0xee,0x1b,0xb3,0xc2,0x6e,0xda,0x47,0xc2,0x72,0xc8,0x1b,0xc2,0xb,0x95,0xe6,0x41,0x81,0x6b,0x99,0x40,0x36,0xe0,0x49,0xc1,0xc6,0x5d,0xe,0xc2,0x42,0xeb,0x49,0x42,0xcd,0x18,0xa9,0x42,0x99,0xfa,0x80,0xc2,0x5c,0xcf,0xdd,0x40,0x5a,0xc2,0x2f,0x40,0xc3,0x5e,0xd5,0x41,0x6b,0x85,0xf3,0xc1,0x30,0xec,0x5,0xc2,0xdc,0xa5,0x4,0xc1,0x53,0xdf,0x90,0xc2,0xe8,0x79,0xc3,0x41,0x16,0x26,0x93,0xc2,0xd8,0xe5,0x5a,0xbd,0x93,0x4,0xde,0xc1,0x54,0x92,0xb,0x40,0x63,0x79,0x2,0x42,0xd6,0xd6,0x68,0xc1,0x24,0x0,0xbe,0xc1,0xd8,0xfc,0xd0,0xc1,0xb0,0xd2,0x2,0x42,0xaf,0x2,0xbf,0x40,0xed,0xe1,0x33,0x41,0x0,0x1d,0xe1,0xc1,0xb8,0x3b,0xc0,0x41,0xce,0xa2,0xfe,0xc1,0x96,0xf2,0xff,0xc1,0x2e,0x85,0xa4,0x42,0x20,0xf0,0xd7,0x41,0xee,0x64,0x2f,0x42,0x82,0xfa,0x29,0x42,0x8b,0x93,0xea,0x40,0x3e,0xe4,0x2d,0x41,0x71,0x2e,0x4d,0x42,0x66,0x41,0xb3,0x41,0x15,0x2f,0x96,0xc0,0x92,0xc9,0x6f,0x42,0x74,0xe4,0x9f,0x41,0xf2,0x47,0x59,0x42,0x58,0x97,0xee,0x40,0x63,0x60,0x57,0xc2,0x80,0x63,0xcc,0xc1,0xb0,0x53,0xcb,0x40,0xd6,0xd0,0xeb,0x40,0x9d,0x6b,0x13,0x42,0x48,0x71,0x53,0x42,0xea,0x45,0x23,0x41,0x97,0xf9,0x43,0xc2,0x6,0x50,0xac,0xc1,0x2e,0x8c,0x50,0xc1,0xe8,0x5,0x7,0xc0,0x7,0xf8,0xfd,0x41,0xc,0x8d,0xfa,0x40,0x69,0xad,0x63,0x42,0x3,0x96,0xdd,0xc1,0xba,0x31,0xad,0xc2,0x3c,0x95,0x45,0x41,0xfa,0xcc,0x6f,0xc2,0x5f,0x9d,0x8c,0xc1,0x86,0x56,0xbc,0x41,0x68,0x55,0xe5,0x41,0xa1,0xdd,0x1a,0xc2,0xad,0x1,0x4d,0x40,0xaf,0xf1,0x29,0x42,0xc3,0xe,0x7d,0xc1,0x7f,0xef,0xee,0x41,0xb3,0xaf,0xa6,0xc1,0x32,0xcb,0xdc,0x41,0x5a,0x60,0x2b,0xc2,0xf7,0x51,0x39,0xc1,0x42,0x58,0x1d,0xc2,0x62,0xc5,0xa,0xc2,0xa2,0xea,0x69,0x41,0xd5,0xa5,0xd2,0xc0,0x68,0x33,0xd,0x42,0xf8,0x65,0x9d,0x41,0xd1,0x78,0x3,0x42,0x66,0x6c,0x38,0xc2,0xc5,0x74,0xc1,0xc1,0xb1,0x25,0x78,0xc2,0x95,0xc5,0x1c,0xc2,0x5c,0x87,0x20,0x41,0xf3,0x74,0x64,0x41,0xb4,0x56,0x9b,0x41,0xfb,0x2c,0xa7,0xc0,0xd3,0xce,0xb6,0xbe,0x5e,0xa4,0x9f,0x41,0x77,0x93,0x71,0xc2,0x3a,0x1b,0x1a,0xc2,0x39,0xee,0xa8,0x42,0xd9,0x13,0x14,0xc1,0x62,0x57,0xd0,0xc1,0x9f,0x5c,0xd4,0xc0,0xa4,0x52,0xb6,0xc0,0x56,0x94,0xed,0xc0,0x92,0xd1,0x63,0xc2,0x66,0x64,0x71,0xc0,0x8a,0x29,0x15,0x41,0xe0,0xcc,0xbb,0x3c,0xca,0x2e,0xca,0x41,0xb6,0xda,0x73,0xbf,0xeb,0x79,0x15,0xc2,0xc0,0xec,0x76,0x42,0x1,0x69,0x88,0x42,0xd3,0xf7,0xc1,0xbf,0xb6,0xd6,0xe6,0xc0,0xa5,0xe6,0x8c,0xc2,0x18,0x75,0x2,0x41,0x22,0x99,0x71,0x41,0xdc,0x9,0x7f,0xc0,0xda,0x3c,0x1f,0xc2,0x19,0xd,0x87,0xc1,0x8c,0xb8,0xb3,0x42,0x1e,0x8d,0xc5,0x42,0xd1,0xf6,0xd,0xc1,0x20,0x98,0x1f,0x42,0x8c,0x2d,0xe7,0xc1,0xe8,0x19,0x77,0xc1,0x5c,0x6d,0x66,0xc1,0x6a,0x8f,0xd6,0x41,0x13,0xb7,0xd2,0x42,0x2e,0x68,0x7c,0x42,0x6a,0xc4,0x65,0x42,0x36,0x26,0xfe,0x41,0xe4,0x40,0x5e,0xc1,0x1c,0x27,0x7c,0x42,0xcf,0x24,0x1,0x42,0x94,0x8a,0x50,0x41,0xb6,0x73,0x5,0xc0,0xb9,0x74,0x86,0xc2,0xdf,0xd6,0xe0,0xc0,0x24,0xbe,0x72,0x41,0x4d,0x19,0x32,0xc1,0x7c,0xc1,0x35,0xc2,0x8a,0x1f,0xd6,0xc0,0xdb,0x5f,0x5d,0x42,0x1c,0xcc,0x8e,0xc1,0x77,0x97,0x95,0x42,0xc4,0xfe,0xde,0x42,0xdf,0x6f,0xf6,0xc1,0x8f,0xe8,0x76,0x42,0x8f,0xc8,0x1d,0x43,0x9e,0xa5,0x4c,0x42,0xe8,0x6,0xdd,0xc0,0x32,0xd7,0x68,0xc1,0x2a,0xc8,0x3f,0xc2,0xaa,0xf8,0x52,0xc2,0x91,0x38,0xf4,0xc1,0x8a,0x74,0x1b,0xc2,0xb9,0x4c,0x66,0x42,0xc9,0xb,0xc,0x42,0x8f,0xa6,0xb4,0x42,0x58,0x75,0x7f,0x42,0xe8,0x36,0x73,0x42,0x6e,0x63,0x8f,0xc2,0xa6,0xd7,0xd6,0x40,0xb1,0x82,0xfd,0xc1,0xda,0xa9,0x27,0x41,0x42,0x67,0x22,0xc1,0x6,0x56,0x85,0xc1,0xbc,0x84,0x75,0x41,0xf2,0x7e,0x9b,0x42,0x95,0x5b,0x22,0xc2,0x24,0x64,0xb2,0xc1,0x24,0x8f,0x18,0x42,0xeb,0xe6,0x6e,0x42,0x57,0xe9,0x4b,0xc2,0x70,0x2e,0xe3,0xc1,0xe5,0x77,0x93,0x40,0xaa,0x40,0xeb,0xc0,0x86,0x26,0x9a,0xc1,0xb8,0xe1,0x8d,0x42,0xed,0xae,0xb9,0x41,0xc4,0x18,0x6e,0x42,0xae,0x26,0xc6,0x40,0xb8,0x85,0xf7,0x3e,0xa6,0xe7,0xaf,0xc1,0x93,0x6f,0x8f,0x42,0x13,0x18,0x28,0xc2,0x32,0x58,0x23,0x42,0x70,0xae,0x3e,0x42,0x8c,0xbb,0x2b,0xc2,0xe4,0xce,0x9,0x42,0x30,0x7e,0xdd,0x41,0x15,0xcf,0x28,0xc2,0xe7,0x3a,0x27,0x42,0x19,0x4b,0x23,0xc2,0xad,0xac,0x6c,0x42,0x6a,0xeb,0xb8,0x42,0xf8,0x62,0xd4,0x41,0x18,0x3f,0x96,0x41,0xb7,0x7d,0xac,0xc0,0xc8,0x8e,0x43,0x42,0x82,0x8,0x52,0xc2,0x6d,0xc4,0xa4,0xc2,0xa5,0xe5,0xfc,0xc1,0x9c,0x8,0xa,0x42,0xfc,0xf1,0x6c,0xc1,0x26,0xc2,0xcb,0x42,0x6c,0x96,0xbd,0x41,0x1d,0x32,0x54,0x42,0xfa,0x2a,0x3c,0xc2,0x1e,0x6e,0x65,0xc2,0xad,0x6d,0x28,0xc1,0x8,0xed,0x8f,0xc2,0x26,0x49,0x3,0x42,0xf0,0x1b,0xc0,0x41,0x50,0xae,0x39,0xc2,0x2c,0x51,0xaf,0xbf,0xbe,0x12,0xbb,0xc1,0xf7,0xc,0xd0,0x3f,0x44,0xb7,0xe6,0x40,0x82,0xd,0x8f,0xc2,0xf2,0x64,0x4c,0xc2,0x5b,0x5d,0xc0,0x41,0x5f,0x7a,0xf4,0x40,0x77,0x7a,0x3c,0xc2,0x60,0x63,0xd,0xc2,0x9,0x4f,0x61,0xc2,0x7d,0xc,0x63,0x41,0xdc,0x62,0xf3,0x41,0xfa,0x2c,0x21,0x42,0x44,0xed,0x4b,0x41,0x3f,0xd1,0xd7,0xc1,0x96,0xfc,0xce,0x3f,0x35,0x28,0x46,0xc2,0x3d,0xca,0x74,0xc2,0xd,0x27,0x25,0xc2,0xba,0x85,0x3b,0x42,0xe9,0x38,0xeb,0xc1,0xd1,0x76,0x1e,0xc2,0x22,0x71,0xac,0xc2,0x40,0x85,0x96,0xbe,0xb,0x32,0x67,0xc1,0x59,0xd5,0xd1,0xc0,0xa3,0x39,0xbd,0x42,0x3e,0x5d,0x94,0xc2,0x1a,0x31,0x24,0xc1,0x80,0x9,0x5c,0xbf,0xbe,0x3,0x2a,0x41,0xfd,0x10,0x35,0x41,0xf,0x4f,0x6,0xc2,0xeb,0x86,0x7f,0xc1,0xd1,0x25,0xa1,0xc1,0xa2,0xc4,0x7d,0xc1,0xea,0x1b,0xc2,0xc1,0x13,0xfa,0xba,0x40,0x66,0x66,0xe8,0x41,0x20,0xfd,0x2c,0x42,0x72,0x52,0xde,0xc1,0x41,0x15,0x89,0x41,0xde,0xb3,0x5e,0x42,0x67,0x9d,0x36,0x41,0xaa,0xad,0xa6,0x41,0x85,0x92,0x92,0xc2,0x90,0xbb,0xd2,0xc2,0x69,0x69,0x6b,0x42,0x6,0x71,0x65,0x42,0xf4,0x8e,0xa7,0x42,0x8e,0xeb,0xa9,0xc1,0x16,0xa4,0x28,0xc2,0xc7,0xd3,0x54,0x41,0x2e,0x6b,0x74,0x41,0x92,0x4a,0x87,0x42,0x6e,0x79,0x2b,0x42,0x7a,0x38,0x97,0xc1,0xed,0x6a,0xce,0x41,0x43,0xb5,0xf8,0xc0,0x3f,0xac,0x1a,0xc3,0xde,0xc6,0x2d,0xc2,0xc6,0xe7,0x28,0xc2,0xd1,0x96,0x17,0xc2,0xb1,0xb2,0x0,0xc2,0xae,0x34,0x87,0xc1,0x44,0x15,0x81,0x41,0xc4,0x1c,0x44,0xc0,0x70,0x61,0x6f,0x41,0x30,0x72,0xf3,0x40,0xdf,0x25,0x37,0x42,0x9a,0x8,0xdc,0xc1,0xef,0x96,0xb,0x42,0xbe,0x5d,0x2b,0xc2,0x9b,0xb9,0x66,0x42,0x1,0x14,0x90,0xc2,0x14,0x4f,0xe,0xc2,0x87,0x83,0xcd,0xc1,0x24,0xfd,0x80,0xc2,0x5a,0xc4,0xda,0x40,0x5f,0xf6,0xb2,0x42,0x70,0x2d,0xf2,0x41,0xce,0xdc,0x27,0xc2,0xfd,0xf2,0x6,0x42,0xca,0x4c,0x23,0xc2,0xea,0xbf,0xd5,0x40,0xc9,0x91,0xe0,0xc1,0xcb,0x36,0x25,0xc2,0xe5,0xf0,0x5f,0x42,0xed,0xd1,0x6,0x42,0xb3,0xa3,0x91,0xc2,0xca,0x1e,0x60,0x42,0x52,0xf4,0x3f,0xc2,0x92,0xed,0xfa,0xc1,0x28,0x4b,0x7a,0x41,0x6,0x67,0x80,0xc2,0x36,0x81,0xa5,0xc2,0xc3,0x64,0x9f,0xc1,0x11,0x85,0x9a,0x41,0xdd,0x5c,0x39,0xc2,0x69,0x3e,0xa2,0x42,0x3a,0x8e,0xa1,0xc1,0x2f,0x47,0x24,0xc0,0xca,0x38,0x8f,0x42,0x5b,0x6a,0x49,0xc1,0x11,0x2,0x77,0x42,0xec,0x6b,0x73,0xc2,0xa9,0x5f,0x9f,0x42,0xe0,0xf5,0x1,0x42,0xdf,0xdf,0x72,0xc1,0xc5,0x56,0x83,0x41,0x35,0x46,0xf3,0xc1,0xc6,0x74,0xbe,0x40,0x53,0x5f,0xb2,0x42,0xc8,0x1c,0xc,0xc2,0x54,0x8,0x2c,0x42,0xb0,0xad,0x42,0x41,0x30,0x17,0xb7,0x41,0xee,0x2f,0x4e,0x42,0x1e,0x21,0x27,0xc2,0xfa,0x47,0xd7,0x42,0xe1,0xcd,0x4f,0xc2,0xe2,0xb6,0xf4,0xc1,0x21,0xa,0x39,0xc2,0xe,0xd9,0x56,0x42,0xb3,0x6d,0xdc,0x42,0xb7,0x50,0xb0,0x41,0x3b,0xe5,0x36,0x41,0x80,0x6e,0x44,0x40,0x22,0x52,0x78,0xc0,0x18,0x77,0xc7,0xc0,0x9,0xc3,0x1f,0xc1,0xcb,0x67,0xf9,0xc0,0x98,0x55,0x80,0x41,0xd,0xae,0x23,0xc1,0x81,0xb0,0x6d,0xc1,0xe2,0xf4,0x55,0xc1,0x2e,0x46,0x35,0xc1,0xfb,0xf5,0xaf,0xc1,0x4b,0x8b,0x38,0x41,0xeb,0x88,0x5f,0x42,0x6d,0xc6,0xaa,0xc1,0x12,0x78,0xa1,0xc1,0xd4,0x5,0x78,0x41,0x22,0xb8,0x49,0x40,0x8f,0xd3,0xe5,0x41,0x70,0x51,0x97,0x42,0x38,0xbf,0xe,0xc1,0xec,0x98,0x75,0x42,0xce,0xd2,0x1d,0x42,0x5c,0x26,0xf1,0xc2,0xcb,0x83,0xd2,0xc1,0x2c,0x76,0x29,0x42,0x3a,0x60,0xd6,0xc1,0xaa,0x31,0x48,0xc1,0x95,0x1a,0x20,0x42,0xcb,0xf2,0x63,0x42,0x2,0x6c,0xb7,0x41,0xba,0x5,0xb1,0x41,0xe9,0x6e,0x44,0xc2,0xd2,0x3b,0xa9,0xc1,0x15,0xb0,0x14,0xc2,0x8b,0x25,0xd7,0x41,0x22,0xd4,0x68,0xc2,0x49,0xcf,0x16,0x42,0x97,0xb4,0x5a,0xc2,0xc0,0xdc,0xa8,0xc1,0x10,0x7b,0xdd,0xc1,0x2,0x23,0xc8,0xc1,0x47,0x49,0x20,0xc2,0xe4,0x8,0x1c,0x42,0x70,0x92,0x4d,0xc1,0x24,0x5a,0x31,0xc2,0x29,0x29,0x2b,0xc1,0x8a,0xfa,0x71,0xc2,0xb1,0x91,0x34,0xc2,0x30,0x74,0x8e,0x42,0x2a,0xc2,0x82,0x42,0xe7,0x39,0xae,0x42,0x2d,0x38,0x2c,0xc2,0xa5,0xff,0xd9,0x3f,0x3b,0xff,0x2e,0xc2,0xc8,0x7e,0xce,0x42,0x3c,0x36,0xf,0xc2,0x3b,0x2f,0x1,0x42,0xb6,0xdc,0x5,0xc2,0x9c,0xdf,0x6f,0xc2,0x3,0xe7,0x99,0x42,0xa4,0x35,0x99,0x41,0xf,0x12,0x20,0xc2,0xb5,0x14,0xd1,0xc1,0x4d,0xdc,0x8c,0xc0,0x52,0xb9,0x4b,0xc2,0xa9,0xbe,0x17,0xc1,0xa4,0x7,0x81,0xc1,0x80,0x3c,0x27,0xc2,0x42,0x7b,0x26,0xc2,0x0,0x7,0x48,0xc2,0x7c,0x14,0x3f,0xc1,0x7c,0xd0,0xfd,0xc1,0x38,0x9e,0x8b,0xc2,0x8c,0x3,0x1,0xc2,0x1b,0x1b,0x2b,0x42,0xdc,0x33,0x71,0x40,0x1d,0x6e,0x1c,0x42,0x9c,0xb9,0x8d,0x42,0x3c,0xc1,0x88,0xc1,0x64,0x43,0x4c,0xc1,0xf8,0x2d,0x98,0xc1,0xf,0xeb,0x7b,0xc2,0xd5,0xec,0x7d,0x41,0x51,0x1d,0x8e,0xc1,0xab,0x38,0xcc,0xc0,0xcf,0x76,0xcb,0xc1,0x18,0x99,0xc2,0xc2,0xb1,0xc5,0x1f,0x41,0xd0,0xff,0x41,0x41,0x65,0x79,0x2d,0x3f,0x74,0x3e,0x86,0xc0,0x62,0x9f,0x20,0x42,0x93,0xb2,0xb4,0x42,0x91,0xac,0x6c,0xc2,0x79,0xc,0x6d,0xc2,0x1d,0x7c,0x88,0x40,0x58,0x84,0x9,0x42,0xe0,0x22,0xdd,0xc1,0x71,0x11,0x58,0xc1,0x50,0xd4,0x8e,0xc1,0x21,0x8d,0xc7,0xc1,0x78,0x49,0x0,0xc2,0xcd,0xa0,0xe,0x42,0x74,0xbf,0x9a,0xc2,0xf5,0xb7,0xdf,0x40,0x26,0x77,0xa1,0x41,0x1d,0x15,0x59,0xc2,0xd8,0xe,0x14,0x42,0xe9,0x4b,0xd1,0xc2,0xca,0x3,0x9a,0x40,0xe4,0x35,0x13,0x40,0x64,0xa,0x3d,0xc2,0xe1,0xc1,0x3,0xc1,0xe,0x79,0xa6,0xc1,0x11,0x1,0x38,0xc2,0x5a,0x20,0x23,0xc2,0x5a,0x7e,0xb7,0x40,0x3e,0x4c,0x91,0x41,0x94,0x82,0xc3,0xc1,0xc6,0x4f,0xa0,0xc2,0x4b,0xbc,0x4d,0x41,0x38,0x5c,0x28,0xc2,0x6,0xe5,0xd8,0xbe,0x3c,0xfa,0x58,0xc2,0x2b,0x6e,0xca,0x41,0x33,0x3d,0x13,0xc1,0xd6,0x6f,0xcb,0xc1,0x44,0x6,0xec,0xc1,0xc4,0x37,0xa3,0xc0,0xdf,0x15,0x6,0xc2,0xc6,0x1,0xf,0x42,0xcd,0xf5,0x37,0x41,0x30,0xa,0x3f,0xc1,0x7e,0x0,0x2b,0xc2,0xca,0xa3,0x99,0xc1,0x63,0xae,0xf,0x42,0x5f,0x19,0x50,0x40,0x5,0xe0,0x1d,0xc2,0xde,0x34,0xb,0x42,0xa1,0xe5,0x8f,0xc2,0x3f,0x90,0xa4,0x41,0x79,0x22,0xee,0x41,0x6a,0xa5,0x8e,0x41,0xec,0x4b,0x2e,0x42,0xc0,0xb,0x95,0x3d,0x57,0x34,0xa,0xc2,0x1f,0xe1,0x14,0xc2,0x6,0x76,0x87,0x41,0xdd,0x65,0x23,0x41,0x20,0x5,0xd1,0xc0,0xdf,0xa5,0x9d,0x41,0xde,0x12,0xbb,0x41,0x8,0x98,0x95,0x41,0xec,0xc,0x5e,0xc1,0x79,0x5f,0x5f,0xc2,0x2d,0xfe,0x30,0xc1,0x63,0xec,0x3b,0xc2,0x32,0x8f,0x3f,0xc2,0x90,0x2,0x8,0xc1,0x5a,0xdc,0xe5,0xc1,0x53,0x5f,0x32,0x41,0x2e,0x3a,0xa0,0xc1,0xec,0x26,0x7f,0x40,0xb2,0x82,0x16,0xc2,0x1e,0x21,0xbf,0x40,0xe9,0x1d,0x5,0x42,0x7a,0xab,0xd6,0xc1,0x2e,0xd5,0x83,0xc2,0x3a,0x6d,0xd8,0x40,0x91,0x39,0xed,0x3f,0x72,0x9f,0xf0,0xc1,0x82,0xa0,0xd,0xc1,0x3a,0x93,0xaf,0x41,0x99,0x1f,0x35,0x41,0x60,0xce,0xa7,0x42,0x29,0xb,0x87,0xbf,0x6a,0xe5,0xe8,0x41,0xbe,0xa,0x2,0xc2,0x3c,0x80,0xca,0x41,0xc4,0x5a,0xea,0xc0,0x9a,0x8c,0x8a,0xc2,0xde,0x52,0x1,0xc1,0xf5,0xda,0x56,0xc1,0x88,0x4c,0x24,0xc2,0x4f,0xdc,0x76,0xc2,0x97,0xd5,0x47,0xc1,0xfb,0x17,0x46,0x42,0xc,0x23,0x9c,0xc0,0x23,0xe0,0x2f,0x42,0x22,0x8d,0x32,0x42,0xc7,0x81,0xd7,0xc1,0x52,0x1f,0xda,0xbf,0x79,0x9a,0xa4,0xc0,0xb8,0x72,0xa0,0x3e,0x3f,0x8d,0xd3,0xc1,0xf5,0xf3,0xe3,0xc1,0xf,0x14,0xee,0x41,0xfe,0x28,0xa,0xc2,0x40,0xbe,0xf,0x3d,0xed,0x12,0x9f,0xc1,0x66,0x59,0x51,0xc1,0x4e,0x16,0x48,0x41,0x93,0xf5,0x4f,0x41,0x78,0xde,0xd2,0xc1,0x17,0x31,0x38,0x42,0xc2,0x73,0x6e,0xc1,0x10,0x2b,0x59,0xc1,0xf6,0x95,0x81,0x3f,0x41,0x51,0xb4,0x41,0xca,0x4f,0xa3,0x41,0xce,0x40,0x95,0x40,0xba,0x77,0xa0,0x41,0x86,0x19,0x9d,0xc1,0x3b,0x22,0xe,0xc2,0xf8,0x2e,0xc,0xc2,0xcc,0x98,0x7d,0x41,0xa1,0xda,0xc5,0xc0,0x61,0x7,0x95,0x41,0xef,0x1e,0x4a,0x42,0x1e,0x1e,0x78,0x42,0xe0,0x6e,0x16,0xbe,0x32,0xa5,0xb3,0xc1,0x84,0xff,0x8f,0x41,0x90,0xca,0xf2,0xc1,0xb5,0xff,0x53,0x41,0x3,0x4e,0x0,0x42,0xd8,0x8f,0x9a,0xc1,0x3e,0x5a,0xee,0xc0,0x53,0xc2,0x58,0xc1,0x32,0x33,0x6b,0xc0,0xe2,0x9a,0x7,0x41,0x10,0xaa,0x69,0x41,0x96,0x66,0xaf,0x41,0xdb,0xf2,0x28,0xc1,0x86,0xbc,0xe,0xc2,0x42,0xa4,0xbd,0xc1,0xed,0xf1,0xd8,0x41,0x34,0x4d,0xd9,0x40,0x29,0x71,0xa4,0x41,0xb0,0x0,0x2f,0x42,0xd0,0x9f,0x9d,0x41,0xee,0x75,0x2,0x42,0x7b,0x45,0x80,0x40,0x8e,0x73,0xd1,0xc1,0xd8,0x87,0xc0,0x40,0xfa,0x7f,0x35,0xc2,0xca,0xf0,0xf4,0x3f,0x36,0xf1,0x4b,0xc1,0xee,0x54,0x42,0x41,0x97,0x9c,0xfa,0xc1,0xb7,0x9f,0x9c,0xc2,0xae,0x12,0x84,0x41,0x6c,0xf3,0x15,0xc1,0xc5,0x8c,0x9e,0x41,0x9e,0xa7,0xa6,0x41,0xd1,0x26,0x60,0xc1,0x5c,0xe1,0x6,0x42,0x5f,0xcd,0x99,0x3f,0x55,0xf,0x1c,0x42,0x18,0x92,0xe9,0x41,0xe8,0x31,0xc,0xc2,0xb5,0x54,0x28,0x41,0x77,0xd7,0x27,0xc0,0x4c,0x11,0x1,0xc2,0x4c,0xcd,0x17,0xc0,0x68,0xa8,0x59,0xc0,0x1,0x26,0x10,0x42,0x5b,0x3f,0xa0,0x42,0x8b,0x31,0x15,0xc2,0x1,0x70,0x4d,0xc2,0x7c,0xa,0x12,0x42,0xe0,0x19,0xcc,0xc1,0xa4,0x86,0x39,0x42,0xe0,0x86,0x83,0xc2,0x47,0x56,0x8b,0xc2,0xfa,0x62,0x50,0x42,0xe3,0xaa,0x21,0xc2,0x9f,0xc0,0x14,0x42,0x1c,0xa5,0xd0,0x41,0xf4,0xd1,0x93,0x3e,0xf1,0x82,0x2,0x42,0xe2,0x0,0x1d,0xc2,0xae,0x2c,0x59,0x42,0xe2,0xa2,0x31,0xc1,0x8,0x54,0x38,0xc2,0x28,0xe6,0x24,0x42,0x42,0x89,0x13,0xc2,0xca,0xa3,0x9a,0xc2,0xa3,0x39,0x10,0xc2,0x12,0x7c,0x1b,0xc1,0x78,0xd2,0xbb,0x41,0x9c,0x2b,0x78,0x40,0xfd,0x9b,0x54,0xc2,0xda,0xca,0x36,0x42,0xa8,0xab,0xae,0x41,0xc3,0x9e,0x5b,0x41,0x7b,0xd6,0x46,0xc1,0xe3,0xe0,0x7f,0xc1,0x35,0xbe,0xef,0x40,0xb7,0x34,0x34,0xc2,0x40,0x98,0x2b,0x42,0x53,0x33,0x31,0xc2,0xbe,0xb9,0xee,0xc2,0x68,0xfe,0x4b,0xc2,0xcd,0x3,0x9a,0xc1,0x1f,0x7,0x59,0x40,0xd0,0xfb,0xc6,0x3f,0x25,0x84,0x96,0x42,0x6,0xc2,0xb9,0xc1,0x88,0xc3,0x87,0xc1,0x7c,0x36,0xbf,0xc1,0x68,0xa0,0x93,0xc1,0x5d,0x56,0x8c,0xc0,0x8e,0x48,0x8f,0xc1,0x42,0x34,0xf5,0xc1,0x84,0x1b,0x2a,0x42,0xdc,0x13,0x10,0x42,0xb8,0x7e,0x70,0xc2,0x76,0xba,0x20,0x42,0xa0,0xa1,0x22,0xc1,0xfd,0x8f,0xb5,0x40,0x8,0x91,0x89,0xc0,0x2d,0x92,0xeb,0xc2,0x26,0xd8,0xfd,0x41,0x62,0x46,0xeb,0xc0,0x4c,0x14,0xbb,0xc0,0xd1,0xf0,0x56,0xc2,0x3a,0x79,0xa7,0x42,0x30,0x79,0xb6,0xc1,0x65,0xb3,0xab,0x40,0x1f,0xf0,0x61,0x42,0xb0,0x9e,0x4d,0xbf,0x9c,0x4b,0x87,0xc1,0xd,0xf4,0xcd,0xc1,0x43,0x75,0xdd,0xc1,0x75,0xbf,0x24,0xc2,0xed,0xd2,0x5,0x42,0xf,0xad,0x2e,0xc1,0xa0,0x2f,0xd1,0x3e,0x0,0xb4,0x8d,0x3c,0xf1,0x42,0x40,0xc2,0xf0,0xd8,0x42,0xc2,0x59,0xe7,0x12,0x42,0x5,0x73,0x43,0xc2,0x8,0x4a,0xc1,0xc2,0xd2,0x1c,0x20,0x41,0xed,0xc9,0x8,0xc2,0x1e,0x25,0xe8,0x41,0x79,0x7a,0xb2,0x41,0x25,0xdd,0x5d,0xc2,0x37,0x69,0x70,0x41,0xea,0x10,0xa7,0xc2,0x9f,0x27,0x54,0x40,0x3a,0x9f,0x58,0xc2,0xad,0xde,0x60,0x41,0xb0,0x1c,0xc4,0x41,0x24,0xec,0x71,0x42,0xb,0x64,0xa9,0xc2,0xb9,0xbc,0x5c,0xc2,0x97,0x51,0xf,0xc2,0xeb,0xf3,0x27,0xc1,0x5a,0x96,0xc2,0x41,0xf4,0x29,0x5f,0x42,0xae,0x91,0x2e,0xc0,0xc0,0x92,0x27,0xc2,0x6f,0x3a,0x40,0x42,0xc2,0x28,0x48,0xc1,0x2f,0x5a,0x13,0xc0,0x8b,0xb5,0x24,0x42,0x97,0x4,0x13,0xc2,0xec,0x52,0x22,0xc1,0x45,0x24,0xe,0xc2,0xf1,0xf2,0xa,0x42,0x1c,0xd9,0x77,0x40,0x20,0x79,0xfb,0x41,0x20,0x8,0x4b,0xc2,0x1a,0x39,0x16,0xc2,0xfa,0x80,0xa2,0x40,0xb7,0xea,0xb9,0x42,0xed,0xef,0x61,0x42,0x42,0x2e,0xef,0x40,0x13,0x5f,0x38,0x41,0xf4,0x1b,0x9c,0xc2,0x7e,0x3f,0xba,0x41,0x28,0x31,0x20,0xc2,0x4b,0xcd,0x53,0xc2,0x8d,0x97,0x14,0x42,0xa,0xf0,0x41,0xc1,0x71,0xbf,0x41,0x42,0xd3,0xa8,0xc2,0x41,0x94,0x2c,0x39,0xc1,0x89,0xc9,0x93,0xc2,0xce,0x6f,0xed,0x41,0x66,0xbb,0x48,0xc2,0x78,0x98,0x4e,0xc1,0x97,0x1b,0xfc,0xc1,0x80,0xd1,0x9e,0x40,0x20,0xd0,0x75,0x41,0xe,0x2d,0x79,0x41,0x53,0x6a,0x25,0x40,0x29,0xf9,0xfe,0x41,0xd4,0xb3,0x8a,0x42,0x88,0xe6,0xf4,0xc1,0xd8,0x8a,0x34,0x42,0xb5,0x13,0x35,0xc2,0x6c,0x76,0x87,0xc0,0x80,0xf0,0x69,0x42,0x65,0x27,0x93,0x41,0x8b,0x4d,0x3f,0x42,0x23,0x84,0x66,0xc1,0x17,0xf7,0xb4,0x42,0x66,0x6c,0x17,0x42,0xca,0x17,0xea,0x41,0xb8,0x16,0xb7,0xc1,0xac,0x47,0x37,0xc2,0xda,0x2e,0x93,0x41,0x9,0x4d,0xa3,0x41,0x4d,0xef,0x33,0xc1,0xc3,0xa4,0x16,0x42,0xed,0xb5,0x7c,0x42,0xcd,0x81,0x7d,0x42,0xf9,0x10,0x51,0xc1,0x87,0x44,0x1e,0x42,0x56,0xf4,0xa1,0x42,0x49,0x97,0x80,0x40,0xa0,0x8e,0x35,0xbf,0x2e,0xc1,0x95,0x42,0x6d,0xc2,0xe8,0x42,0xfb,0x4b,0x2c,0xc2,0x30,0xfb,0x11,0x40,0x5a,0xb0,0xcf,0xbf,0x85,0x7b,0xd4,0xc0,0x4e,0x59,0x93,0xc0,0x3a,0xd8,0x2c,0x42,0x3c,0xe3,0x12,0xc2,0xe6,0x51,0xc7,0x40,0x5b,0x59,0xac,0x41,0xb7,0x59,0xd5,0x41,0xc2,0xa4,0x11,0x41,0x57,0xab,0x21,0xc2,0xf1,0x33,0xdf,0xc0,0x72,0xb5,0x48,0x42,0x15,0xda,0x6,0x42,0x1d,0x31,0x83,0xc0,0x27,0x2a,0xd5,0xc0,0x92,0xf3,0x82,0xc1,0x40,0x13,0xa6,0x41,0x8b,0x9a,0x6,0x42,0x50,0x86,0xd9,0xc1,0xa5,0x10,0x1c,0xc1,0x59,0x51,0x23,0xc2,0x27,0x7c,0x59,0xc1,0x97,0x96,0xd1,0xc2,0xf0,0x46,0x8,0x42,0xa5,0x8b,0x23,0x42,0x55,0xf6,0x7,0x42,0xc5,0x22,0x49,0x42,0xd0,0x1f,0x6e,0xc2,0xee,0xd2,0x93,0x42,0xc0,0xf8,0xc,0xc2,0x1c,0x5a,0xf2,0x41,0x0,0xe4,0xfc,0xc0,0x27,0xf,0xe7,0xc1,0x69,0x1c,0x1f,0x42,0x8e,0xaf,0xaf,0x40,0x72,0xdd,0xdf,0x41,0xab,0x42,0x3f,0xc1,0xfa,0x9d,0x20,0xc2,0x11,0x7a,0x8e,0x41,0xae,0xab,0x3,0xc2,0x10,0x3a,0x8a,0xc2,0xc2,0x6d,0x8a,0xc1,0xc,0x16,0xc5,0xc2,0x2e,0x99,0x9d,0xc0,0x96,0x68,0x27,0x40,0xdd,0xc8,0xa5,0xc1,0x5d,0xa,0xc7,0x3f,0xde,0x1c,0x8b,0xbf,0xf3,0xad,0x76,0x41,0xc6,0xa1,0x28,0xc0,0x40,0x49,0xa1,0x40,0xca,0x3e,0x9,0x42,0x26,0x9a,0x16,0x40,0x8e,0x77,0x58,0x42,0x25,0x32,0x84,0x42,0x4b,0xb9,0x86,0xc2,0x40,0x31,0x1f,0xc1,0x12,0xf,0x49,0x42,0x36,0x39,0x33,0xc2,0x74,0xa8,0xda,0x41,0xe8,0x8e,0x3a,0x42,0x17,0x1e,0xac,0x42,0xe5,0xfd,0x39,0x42,0xed,0xb,0xc,0xc2,0x90,0x48,0x68,0x42,0x8b,0x34,0xe6,0xc2,0x38,0xf5,0x84,0xbe,0xb8,0x51,0xed,0x41,0xba,0xa9,0x97,0x40,0x76,0x86,0x8a,0x41,0xdb,0x3,0x9a,0xc1,0x32,0xf0,0x73,0x41,0x88,0xea,0x6,0xc2,0xad,0x20,0x9d,0x42,0x1e,0x38,0x2,0x42,0xa2,0x67,0xcb,0xc0,0x38,0xe7,0xa2,0xc2,0x93,0x2e,0xcf,0xc1,0x18,0xc2,0x63,0x42,0x51,0x61,0xdc,0x41,0xd6,0xd3,0x81,0xc1,0xb7,0x26,0xba,0x40,0x76,0xc5,0x81,0x42,0x73,0x2b,0xa9,0xc2,0x68,0x3e,0x40,0xc1,0x2e,0x7c,0x67,0x41,0x75,0x16,0xf2,0x41,0x16,0x6d,0x1c,0xc2,0x7b,0xf2,0x14,0x42,0x50,0xf6,0x9d,0x41,0x31,0x14,0xa0,0x41,0x1e,0xed,0x33,0x42,0x9e,0xc9,0xa4,0x42,0x70,0x4,0xba,0x40,0x1b,0x6e,0xe2,0x40,0xba,0x4b,0x91,0x42,0xda,0x38,0x8f,0xc2,0xb2,0x2,0x42,0xc1,0xa,0x37,0x8e,0xc1,0xd7,0xa,0x66,0xc2,0xd3,0x76,0x7f,0x41,0x82,0xe4,0x4f,0xc1,0x98,0x93,0x2a,0x42,0x68,0x6f,0xcc,0xc2,0xe,0x1c,0x30,0x42,0xc5,0x56,0x45,0x42,0x62,0x2,0x56,0xc1,0xf2,0x93,0x1,0xc1,0xf2,0x99,0x6f,0x42,0x32,0xed,0xd0,0x41,0x71,0x90,0xdf,0x41,0x59,0x28,0x3b,0xc2,0xf,0xa8,0xcc,0x42,0x30,0x1c,0x69,0xbf,0xf0,0xd3,0x55,0x40,0x57,0xa1,0x58,0x42,0x34,0xee,0x84,0xc2,0x3f,0xe8,0x88,0x41,0xec,0x45,0xbb,0xc0,0xcf,0xa7,0x79,0xc2,0xd4,0xc7,0x28,0x41,0x61,0x1c,0x97,0x42,0xc,0xfd,0x8b,0xc2,0xec,0x58,0xd0,0x42,0xb6,0xb7,0x55,0x40,0x1,0xec,0xb3,0x41,0x10,0xc6,0x10,0x41,0xec,0x6e,0x99,0xc1,0xb7,0x7d,0xa3,0xc2,0xd2,0xdc,0x46,0x42,0x92,0x1d,0x9d,0x41,0xe8,0xb,0x2,0x42,0x80,0x7f,0x21,0x42,0x12,0xe7,0x3a,0xc2,0x37,0xc2,0x69,0x42,0x60,0x61,0x39,0xc1,0x1a,0xdd,0x2,0x42,0xd2,0x28,0x80,0x41,0x84,0x28,0xa1,0xc1,0xdc,0xe9,0x1b,0xc2,0x58,0x76,0x84,0xc2,0x2b,0x52,0xe1,0xc1,0x39,0xdc,0x42,0xc2,0x94,0xb9,0xee,0x41,0xf3,0x9e,0x9b,0x41,0xec,0xaa,0xee,0xc1,0x92,0xff,0xd4,0xc2,0xb5,0x7d,0x99,0x42,0x7c,0x9b,0xc8,0xc1,0x30,0x3,0x8,0x42,0xc1,0xaa,0xd1,0x42,0x55,0xac,0x4b,0x41,0xe5,0xd8,0xa0,0xc2,0xf,0xc6,0x78,0xc2,0x13,0x23,0xf1,0xc1,0xed,0x1f,0x75,0x42,0xca,0x71,0xb6,0xc2,0x66,0x30,0x22,0xc2,0xcc,0xe8,0x2f,0x42,0x2,0xff,0xcb,0xc1,0x17,0xad,0x7d,0xc2,0xc2,0x6e,0x8c,0xc1,0xe8,0xc,0x4e,0xc1,0xf6,0x95,0x34,0xc2,0xd6,0x12,0x5f,0xc2,0x22,0x76,0x2f,0x42,0xaa,0xb9,0x81,0x41,0x88,0xf7,0xb5,0xc2,0xb2,0x9d,0x1d,0xc2,0xcf,0x97,0x37,0xc2,0x7d,0x65,0xe2,0xc1,0x2e,0xb7,0x83,0xc1,0xbd,0x35,0xa2,0x41,0x62,0x94,0x53,0xc2,0xf0,0x31,0x4e,0x41,0x53,0x5c,0x97,0xc2,0x1,0x91,0x81,0xc2,0x53,0x1,0x1c,0xc2,0x8c,0x21,0xab,0x41,0x74,0x91,0x7d,0xc1,0x9d,0x5,0x59,0xc2,0x9c,0x51,0x9d,0x42,0xc0,0x9d,0x9b,0xbe,0x7a,0x7c,0x11,0xc2,0x9,0x3a,0x1,0xc1,0x80,0x3c,0x9d,0xc0,0x74,0x87,0x95,0x41,0xbb,0xda,0x6f,0xc2,0xed,0x7,0xf4,0x41,0xff,0x56,0x13,0xc0,0xae,0x4d,0x6,0xc2,0x6f,0x29,0x4c,0x42,0xf5,0x56,0xfa,0x41,0x8c,0xd0,0x7f,0xc1,0x63,0xa8,0xef,0x41,0x6e,0x2a,0xf7,0xc0,0x70,0x89,0x5d,0x42,0x1f,0x26,0xf0,0xc0,0x54,0xbb,0xda,0xc1,0x3,0x38,0x27,0x42,0x96,0xbf,0x26,0xc2,0xc,0x18,0xca,0x41,0x72,0xff,0x8e,0xc0,0xe0,0x6f,0x43,0x3e,0x39,0x65,0x4c,0xc2,0xd5,0xd2,0xe2,0xc0,0x23,0x9f,0x4,0xc2,0x4c,0x69,0x20,0xc2,0xab,0x3b,0xea,0x41,0x87,0x8d,0x64,0xc1,0xeb,0x9f,0xe2,0x40,0x8a,0x39,0x86,0xc2,0x74,0xef,0x34,0xc1,0x72,0x43,0x72,0xc1,0x1c,0xae,0x69,0xc2,0x1e,0x87,0xa,0xc2,0x7f,0xca,0xc0,0xc1,0x2a,0xdf,0x75,0x41,0x72,0xcf,0x7e,0xc2,0x5e,0xb3,0x25,0xc0,0x22,0x82,0x61,0x42,0x30,0x89,0xd6,0x41,0x70,0xc9,0x8a,0x41,0xf2,0xbd,0x5f,0xc1,0x68,0x5a,0x9c,0xc2,0x5e,0xfc,0x75,0x42,0x78,0x50,0x38,0x3e,0xc6,0x77,0xa8,0xc2,0x97,0x6f,0x91,0xc1,0x90,0x26,0x47,0x42,0x4e,0x47,0x77,0x42,0x24,0x21,0xaa,0xc2,0xde,0x31,0x26,0x42,0xa1,0x99,0x56,0x42,0xf9,0x9c,0x75,0x41,0xe,0x62,0x96,0xc2,0x30,0x6d,0xb3,0xc0,0x0,0x35,0xc5,0x3d,0x20,0xa5,0x6,0x3e,0x94,0x3f,0x2b,0xc2,0xe3,0x56,0x9b,0xc1,0x60,0x82,0x85,0x41,0x40,0x2c,0xe4,0xc1,0xb5,0x59,0x1c,0xc0,0xd8,0x9f,0x88,0xc1,0x66,0x56,0x1b,0xc0,0xfc,0x9b,0x18,0xc2,0x66,0x65,0xdf,0xc2,0x95,0x32,0x66,0xc1,0x41,0x64,0xd0,0xbf,0x30,0xc1,0xa3,0xc1,0x8a,0x2b,0x5c,0x42,0xe6,0xb2,0x4f,0xc1,0x39,0xda,0x4d,0xc2,0x85,0x56,0x62,0xc2,0xec,0xa,0x66,0xc2,0x3e,0xdd,0x36,0xc2,0xfe,0x64,0x14,0x42,0xca,0xcd,0xb8,0x41,0x50,0x18,0xae,0x42,0x78,0xb4,0xcb,0x40,0x8d,0x3,0x9d,0xc1,0xaf,0x80,0x90,0x41,0x38,0xe,0x35,0x41,0xe4,0xf6,0x99,0xc1,0xb6,0xd7,0x73,0x41,0x3c,0xa6,0x2c,0xc2,0x95,0x7e,0x9a,0xc2,0xf9,0x69,0xe0,0xc1,0x66,0xdf,0x20,0x42,0xc5,0x92,0xb7,0x42,0x5d,0x3,0xf7,0xc1,0xf0,0x97,0xf9,0x41,0x6b,0xb4,0xc2,0xc2,0x1e,0xfa,0xdc,0xc0,0x98,0xc6,0xea,0xc0,0xaa,0xc2,0xb1,0xc1,0xaa,0xdd,0x3c,0x41,0x88,0x70,0xf1,0xc0,0xad,0xc1,0xbe,0x41,0xae,0x50,0xbf,0x42,0x32,0x98,0x9f,0x41,0xba,0x49,0x6d,0xc2,0x6e,0xc9,0xd5,0x42,0x10,0x5e,0xf0,0xc1,0x4c,0xe,0x5,0xc2,0x5,0x4e,0x62,0xc1,0x9f,0xbe,0xfc,0x41,0x16,0xc3,0x4f,0x41,0xae,0x65,0x25,0xc2,0x6c,0xcf,0x6,0x3f,0xd3,0xf9,0xa2,0x41,0xef,0xfb,0x65,0x41,0x5a,0x3,0xa2,0x41,0xea,0x1e,0xae,0x41,0xee,0x16,0x55,0x42,0xca,0xfc,0x69,0x40,0x22,0x18,0x85,0x42,0xcc,0x6a,0x24,0x42,0xc5,0xee,0xa3,0x42,0xba,0xdf,0xba,0xc0,0xcf,0xd9,0x9,0x42,0xce,0x13,0xcc,0xc1,0xc2,0x38,0xb8,0xc0,0xe4,0x99,0x2,0x42,0x1c,0xb5,0x9b,0xc0,0x25,0xec,0xc6,0xc1,0x6d,0xf1,0x41,0x42,0xe,0xd6,0x7c,0x42,0x73,0xfe,0x1,0x42,0x39,0x8a,0x4,0xc1,0x7d,0x87,0xe0,0xc1,0xa4,0xd8,0xf1,0xc1,0x13,0xa7,0x58,0x41,0x47,0x66,0x81,0x42,0xdd,0x7d,0xde,0xc1,0x1f,0x21,0x66,0xc2,0x59,0x6d,0xea,0x41,0x58,0xd4,0xea,0xc1,0xde,0x4,0x6,0x42,0xbf,0x94,0xe5,0xc1,0xf7,0xd8,0x22,0xc2,0x2,0x5e,0xd9,0x42,0x56,0x63,0x51,0xc2,0x7a,0xc2,0x40,0xc2,0x48,0x21,0x4b,0xc2,0x72,0x45,0x3a,0xc0,0xea,0x5a,0x81,0xc2,0x37,0x1,0x4d,0xc2,0xaf,0xe,0x77,0xc2,0xec,0x77,0x4c,0x41,0xf3,0x9e,0x37,0xc0,0x87,0xec,0xf8,0x41,0x8d,0x4c,0x2d,0x41,0x34,0x29,0x4b,0x40,0x85,0x8b,0x83,0x41,0x1b,0xd0,0xe6,0xc1,0x91,0x5b,0xe1,0xc1,0xc6,0xdf,0x37,0xc2,0x65,0x92,0x93,0xc1,0x12,0xe0,0x15,0xc1,0xbb,0xfd,0xc6,0x41,0x74,0xd7,0xec,0xc1,0xa8,0xd1,0xdc,0x41,0xc2,0xbd,0xdd,0xc1,0xdc,0x9e,0x3f,0x41,0x84,0x1b,0xe7,0xc1,0x60,0x45,0x7,0xbe,0x68,0xc2,0xd7,0xc1,0xb2,0xa8,0x8a,0xc2,0x4e,0x56,0x59,0x42,0xe6,0xaf,0x53,0x41,0x37,0xd5,0xdc,0x41,0xa5,0x30,0xa6,0xc0,0x6b,0x59,0x0,0x42,0xff,0x77,0xda,0xc1,0x74,0x46,0x41,0xc0,0x34,0xab,0x98,0x41,0x4e,0x1f,0xba,0x40,0x6d,0x39,0xc3,0x41,0x7c,0x68,0x25,0x40,0x4c,0x29,0xad,0xc2,0xd3,0xff,0x1f,0xc1,0x69,0xae,0x33,0x42,0xa8,0x31,0x4e,0xc2,0x87,0x41,0x82,0x41,0xe9,0x6c,0xb1,0xc1,0x4a,0xb3,0x67,0xc1,0x99,0xcf,0x6d,0x41,0x1a,0x5f,0x80,0x42,0xd2,0xe9,0x32,0xc1,0xbb,0xd7,0x1,0x40,0xb6,0xdd,0x15,0x41,0x9b,0x61,0x73,0xc2,0xcc,0xbb,0xde,0xc1,0x1f,0xbe,0x83,0xc2,0x16,0x1c,0x25,0xc1,0xc,0x93,0xdb,0xc0,0x7d,0xfb,0xb2,0xc0,0xd0,0x43,0x12,0x42,0xc8,0x10,0x1c,0x42,0xe2,0x11,0x33,0xc2,0xd2,0x3c,0x81,0xc1,0x7e,0x51,0x93,0xc0,0x7c,0xb8,0x1b,0x42,0x33,0x20,0xd2,0xc1,0xdb,0x57,0xbc,0xc1,0xf8,0x91,0xad,0xc0,0x7d,0x53,0xfd,0xc1,0xdb,0x5b,0x44,0x42,0x20,0x47,0xfc,0x40,0x98,0xa8,0xd3,0xc1,0x9d,0x73,0xc7,0x41,0xcc,0xe5,0x8e,0xc2,0x6b,0x97,0xa4,0xc2,0x1e,0xa,0xa6,0xbf,0xa9,0x2b,0x4c,0x42,0xd6,0xcf,0xeb,0xc1,0x48,0x2e,0xb5,0x41,0x49,0xa2,0x1c,0x41,0x7e,0x9c,0xc4,0xc1,0x98,0xc4,0x5d,0xc1,0xd,0xd4,0x54,0x42,0x48,0x96,0xae,0xc2,0xdd,0x8c,0xc2,0x42,0x96,0xec,0x73,0x42,0x8e,0x73,0xa4,0x40,0x12,0x56,0x75,0x40,0x8a,0x29,0x2c,0x41,0x39,0xc2,0xc,0xc2,0xce,0x14,0x79,0x42,0xda,0x20,0xb8,0x41,0xa8,0xa7,0xcd,0xc1,0xe0,0xed,0x80,0x41,0x7d,0xe0,0x25,0xc2,0xb8,0xd1,0x8a,0x42,0x95,0xbe,0xb5,0x42,0xf2,0x6c,0x17,0x42,0x5a,0x4d,0xf2,0x41,0x3e,0x8d,0x18,0xc1,0xf4,0x3f,0x2a,0xc2,0x19,0xbb,0xa9,0xc2,0xee,0xcf,0xe8,0x41,0x20,0xb7,0x48,0x42,0x4b,0xaf,0x2b,0x42,0x6b,0xf7,0xf9,0xc0,0xa3,0x88,0x1d,0x42,0x46,0xe8,0x7f,0x41,0x57,0xbb,0x55,0x42,0x57,0xd5,0xdd,0xc1,0x98,0x45,0x8a,0xc0,0xa2,0x7b,0xa,0x41,0x8a,0xe5,0x62,0x42,0x73,0x70,0x7c,0x42,0x3f,0xfe,0x4a,0xc2,0x3e,0xcf,0x9a,0xc2,0xc0,0xc1,0x99,0xc2,0x0,0x3c,0xdc,0xc1,0x95,0xc0,0x5e,0x42,0x59,0xf,0x33,0xc2,0xbb,0x3b,0x2f,0xc2,0xd2,0x95,0x60,0xc1,0x84,0x92,0x3d,0x41,0xf4,0x72,0x8b,0x42,0x3c,0x72,0xbf,0xc1,0x7a,0x51,0xa3,0x42,0xa2,0x51,0x88,0x41,0xe0,0x19,0x36,0x42,0x7,0x31,0x81,0xc2,0xdc,0xb8,0xe9,0x41,0x78,0x67,0xec,0xc1,0x72,0x3,0xdc,0xc1,0x78,0x43,0x95,0xc1,0xfc,0x6d,0x0,0xc2,0x9d,0x6,0x87,0x42,0x17,0x92,0x79,0xc2,0x99,0xd4,0x9c,0x42,0xba,0x61,0x2,0x42,0xf4,0xf8,0x37,0xc1,0xe1,0xc,0x1,0xc2,0xd7,0x2c,0x72,0xc2,0xa3,0x93,0x9e,0x42,0xeb,0x33,0xba,0xc1,0x98,0x98,0xf6,0xc1,0x23,0xe6,0x17,0xc2,0x6e,0x58,0xe7,0x41,0x52,0xb2,0x10,0xc2,0xc2,0x39,0x85,0x42,0xe,0xb6,0x5c,0x42,0x60,0xd8,0x12,0x41,0xdc,0x98,0xef,0x41,0xba,0xf0,0x60,0x42,0x42,0x1b,0xda,0x41,0x6,0x8d,0x65,0x42,0x1b,0xc1,0x47,0x42,0xa4,0xdf,0x37,0xc2,0xfc,0x3c,0xbd,0x40,0xf5,0x46,0x23,0xc2,0xb4,0x2f,0x75,0xc1,0x54,0xb6,0xa6,0x3f,0x6c,0x81,0x4a,0x42,0xdd,0x3,0x33,0xc2,0x83,0x74,0x56,0xc0,0xe7,0xf1,0x2f,0x42,0xfb,0x25,0x4a,0x41,0xac,0xc9,0x67,0xbf,0xc3,0xf3,0x50,0x42,0x10,0xb1,0xde,0xc1,0xa5,0x55,0x1c,0xc1,0xdc,0x94,0x5d,0xc1,0x74,0xf5,0xd,0x42,0x0,0x14,0xb1,0x41,0xb8,0x80,0x6f,0xc2,0x4c,0x9a,0x9a,0xc1,0x79,0x87,0x67,0x42,0x3d,0xfc,0x89,0xc2,0xa7,0xa2,0xac,0xc1,0xee,0xb6,0x32,0xc1,0x14,0xbf,0x7e,0xc0,0xcf,0xb3,0xa9,0x41,0x54,0x75,0x48,0x42,0xce,0x79,0x5a,0xc2,0x63,0xc3,0x26,0xc1,0x3f,0xd2,0x9b,0xc1,0x18,0xf4,0xd1,0xc0,0xf1,0xc5,0x4a,0xc1,0xab,0x5a,0x0,0x42,0xc7,0x57,0x3,0x42,0xf4,0xb0,0xe8,0x41,0x4,0x9b,0xbe,0xc2,0x8,0x6e,0xa5,0xc1,0xd7,0x90,0x31,0xc2,0x55,0x6d,0xe,0x40,0xf2,0x50,0x65,0xc1,0xeb,0x35,0x12,0xc2,0x40,0x25,0xf5,0x41,0x67,0x8e,0x92,0x41,0x24,0xa5,0x3e,0x41,0xa4,0x92,0x59,0xc2,0xec,0xe7,0xcf,0xc0,0x14,0x66,0x43,0xc2,0x30,0xe2,0xe3,0x41,0xb0,0xfd,0x77,0xc2,0xf6,0xdd,0x11,0x42,0xf3,0x5b,0x1f,0x41,0x3e,0xe7,0xe3,0xc1,0xe3,0xa9,0x4,0x42,0x3,0x48,0xc5,0xc1,0x38,0xd5,0x81,0xc1,0x8a,0x1,0xaf,0xc2,0x1b,0x4f,0xb,0x42,0x56,0x6d,0x14,0xc2,0x63,0xab,0x4,0xc2,0x6b,0x3c,0x81,0xc0,0xa0,0xf6,0x94,0x41,0x5d,0xae,0x5a,0x42,0xa4,0x7,0x1a,0xc0,0xc3,0x10,0x31,0x42,0x5e,0x49,0x83,0x41,0xab,0x1a,0x30,0x42,0x63,0x6,0x8d,0xc2,0x8a,0xed,0xa,0xc2,0x4a,0x23,0xf6,0xc0,0xe2,0xc7,0x74,0xc2,0x39,0x3c,0x17,0xc2,0x42,0xb1,0x1d,0xc1,0x74,0x75,0x19,0xc1,0x2e,0xd7,0x22,0x42,0x8b,0x37,0xe4,0x41,0xd7,0x39,0x8d,0xc2,0xf8,0x15,0x78,0x42,0x86,0x2e,0x87,0xc2,0x50,0x92,0x3b,0xc1,0x5a,0xb9,0xf3,0xc1,0xfc,0x80,0x8,0xc2,0x4b,0x1c,0x7,0x41,0xce,0xe8,0x17,0x42,0xbb,0x1c,0xad,0xc1,0xc4,0x42,0x66,0xc0,0x97,0xd,0x2f,0xc2,0x82,0x8f,0x22,0x41,0xc2,0x58,0xb9,0x3f,0xf7,0x65,0x56,0xc1,0xc6,0x67,0x93,0x41,0x14,0x94,0x44,0x42,0xca,0x7d,0x5a,0xc2,0x16,0x83,0xd7,0x41,0x66,0xe3,0xa1,0x41,0xf0,0xb3,0xb7,0x3e,0xef,0xa7,0x73,0xc2,0xc6,0x48,0x77,0xc2,0xf3,0x7b,0x92,0xc1,0x9a,0x3c,0x99,0x41,0x5e,0xcb,0x1b,0xc2,0x3d,0x74,0x5d,0xc2,0x8f,0x90,0x82,0xc1,0x44,0xf5,0xa,0xc2,0x2d,0x81,0x7f,0xc1,0xe3,0x75,0x11,0x42,0xe5,0xda,0x84,0xc0,0x31,0xd8,0xc4,0x42,0xce,0xc,0x1,0x42,0x10,0x14,0xbb,0xc0,0xb9,0xe6,0x2c,0x42,0x4a,0xc6,0xc4,0x3f,0x4f,0xaa,0xf2,0x41,0x65,0x7,0x49,0xc2,0x11,0x8c,0x2d,0xc2,0x91,0xae,0xb5,0xc2,0x32,0xc8,0x23,0x42,0x56,0x2f,0xa8,0xc0,0x50,0x8f,0xc8,0x40,0x6,0x49,0x99,0x41,0xac,0xeb,0x73,0x42,0x60,0x6f,0xd8,0xc1,0xe5,0xb1,0x1b,0x42,0xae,0x26,0x1a,0x42,0xb9,0xfa,0xf3,0xc0,0x57,0x9f,0x1a,0x42,0x4c,0x73,0xb8,0x41,0x95,0x27,0x28,0x42,0x52,0xbc,0x93,0xc2,0x89,0xb7,0xf9,0x40,0x1c,0x24,0x98,0x41,0x15,0x67,0x54,0x42,0x88,0x13,0xd4,0x41,0x28,0x96,0x3,0xc1,0xf1,0x92,0xb2,0xc1,0x7c,0xd1,0xa4,0xc1,0x8,0x29,0x96,0xc1,0xbd,0xff,0x5b,0xc2,0xad,0x3c,0x3c,0x42,0x4a,0xe,0x9a,0x40,0x50,0x4f,0xef,0x40,0x35,0x23,0x2a,0x42,0xe4,0x7,0x54,0xbf,0xc,0x9d,0x25,0xc2,0x4b,0x1a,0x62,0x41,0xd0,0xd8,0x0,0x40,0x24,0xdb,0xa5,0xc0,0x2a,0x5e,0x23,0x42,0x5c,0xd,0xf0,0xc0,0x52,0xa6,0x72,0xc0,0xe2,0xdb,0xed,0x41,0x1c,0x73,0xfa,0x41,0x3,0xec,0x99,0xc1,0x6b,0x6b,0x12,0x41,0xb6,0xcc,0xd4,0xc1,0x33,0x53,0x21,0x42,0x68,0x6a,0xa5,0x42,0x2a,0x84,0xe4,0x41,0x1e,0xe2,0xca,0x41,0x2a,0xcc,0x61,0x41,0x96,0x62,0x7b,0xc2,0x4,0x4,0xa0,0xc2,0x70,0x75,0x81,0xc1,0x61,0x73,0xfa,0xc1,0x5e,0xc6,0x22,0x42,0xe8,0xa6,0x80,0x41,0x17,0xdd,0x91,0x41,0x35,0xa6,0x7d,0x42,0xaa,0x58,0xbe,0x42,0x46,0xd3,0x1e,0xc1,0xe8,0x4c,0x78,0xc2,0xfb,0x14,0x4b,0x41,0xaa,0x4c,0xd0,0x41,0xcd,0x1f,0x8e,0x41,0x59,0x83,0xde,0xc1,0xd3,0x6,0xdc,0xc1,0xc0,0x13,0xb3,0xc2,0xd0,0x1d,0x75,0x3e,0x5a,0x86,0x3e,0xc2,0xf8,0xf9,0x5e,0x41,0xe,0x70,0x59,0x42,0x12,0x8,0x43,0x40,0xaf,0xd5,0xd8,0x41,0x76,0xe8,0x63,0x41,0xc4,0x7b,0x84,0xc1,0x38,0x59,0xe0,0x40,0x45,0x97,0xe0,0x41,0xf8,0xc7,0xf8,0x40,0xc8,0xae,0xa9,0x3e,0x4b,0xe,0xb8,0x41,0xe8,0xef,0x39,0xc1,0xcc,0x2c,0x8c,0xc2,0x25,0x0,0x81,0x40,0x27,0x1b,0xe1,0xc1,0x8,0xd7,0xa8,0x41,0x17,0x5,0x91,0x41,0x49,0xfe,0xc,0x42,0x94,0x90,0x13,0x41,0x57,0x72,0xdf,0x41,0x67,0x66,0x54,0xc2,0xd4,0xf8,0x1f,0x42,0xc9,0x60,0x10,0x42,0x31,0xb2,0xbc,0xc1,0xed,0xca,0x50,0xc0,0x59,0xc8,0x7e,0xc2,0xec,0x5,0xa0,0x40,0x1c,0xf9,0xe5,0xc0,0x33,0xaf,0xda,0x42,0x95,0x59,0x26,0x42,0x67,0x7b,0x6c,0x42,0x91,0x1c,0x1,0x42,0x60,0x70,0xcd,0x40,0x20,0x1c,0x64,0x40,0xb4,0x31,0x44,0x41,0xa7,0xeb,0x86,0xc1,0x1d,0xdc,0x69,0x40,0xaf,0x5a,0x49,0xc1,0x54,0x65,0x17,0xc2,0x13,0x71,0xbd,0xc1,0xdc,0x9d,0x45,0x42,0xa5,0x90,0xda,0x41,0xe1,0x83,0x64,0x42,0x84,0xf3,0xeb,0x41,0xc,0x7b,0x85,0xc2,0x51,0xfe,0x25,0x42,0x8,0xda,0xdb,0xbf,0x80,0x9c,0xa7,0x42,0x19,0x79,0x8b,0xc1,0xfa,0xa4,0xa9,0xc1,0xa4,0xed,0x23,0x42,0x0,0xd0,0xb,0xc0,0x63,0x1d,0x84,0x40,0x5c,0x10,0xaf,0xc2,0x1e,0x65,0x9b,0xc1,0x6c,0x87,0x13,0x42,0xa9,0x9b,0x33,0x42,0xe7,0x85,0x56,0xc2,0x84,0xfb,0x2c,0x41,0xc8,0xc0,0xa5,0x40,0xce,0x56,0xb6,0xbf,0x6a,0xa7,0xd4,0xc1,0x5a,0x2e,0x86,0xc1,0x8f,0x3,0x7f,0x41,0x64,0x9f,0x76,0xc1,0xb3,0xfa,0xd2,0xc1,0xeb,0x47,0x77,0xc2,0x7d,0x57,0x3,0x42,0xc,0x11,0x47,0xc1,0xde,0x95,0xb6,0xc1,0xfd,0x98,0x53,0xc1,0x43,0x5e,0x34,0xc2,0x6b,0x55,0x90,0xc2,0x4c,0x52,0x4d,0xc2,0x76,0x17,0xdf,0x41,0x24,0x53,0x2a,0xc2,0x82,0x65,0x1f,0x42,0x56,0xc,0x10,0x42,0x0,0x3d,0x3f,0xc1,0xe1,0x3b,0x27,0xc2,0xb7,0xa4,0xbc,0xc1,0x9a,0x9d,0xb0,0x41,0xae,0xe2,0x17,0xc2,0xdf,0x33,0xaf,0xc1,0x26,0x7b,0x81,0x41,0xc1,0x98,0xb9,0x41,0x80,0x27,0x90,0x42,0xc4,0x3d,0x1,0xc2,0x9b,0xae,0x92,0xc1,0x1c,0x1f,0xcb,0x3f,0xf2,0xce,0xd7,0xbf,0x2d,0xda,0x95,0xc1,0x58,0x15,0xeb,0xc1,0x62,0xf0,0x99,0xc1,0x49,0x2a,0xc6,0x40,0x66,0x5f,0x22,0xc1,0x45,0x11,0x48,0xc2,0x15,0x66,0x62,0x41,0xc0,0xd4,0x6c,0x42,0xd4,0xda,0xf9,0x41,0x6f,0xee,0x37,0xc1,0xa0,0xb6,0x8a,0xc1,0x2c,0x58,0x1a,0xc0,0x5f,0x97,0x34,0x42,0xdd,0xa9,0xca,0xc1,0x1c,0x13,0xcd,0xc1,0x33,0xfe,0xe7,0xc1,0x19,0xb9,0x20,0xc2,0xbd,0x27,0xfe,0x41,0xee,0x2e,0x4,0xc2,0xf7,0x55,0x62,0xc2,0x20,0x36,0xe0,0xc0,0xbc,0xf4,0xca,0xc1,0x27,0xbc,0x45,0x42,0x78,0x12,0x84,0x41,0x24,0xee,0xf3,0xc1,0xae,0xb8,0x24,0x41,0x7e,0xe8,0xb7,0x41,0xa6,0x50,0x61,0xc2,0x2c,0xe6,0x7b,0xc2,0xaf,0xa3,0x44,0x41,0xec,0xd3,0x9c,0x40,0x52,0xab,0xe7,0x41,0xd8,0xb2,0xa5,0x41,0x39,0xbb,0xb0,0xc1,0xb1,0x2b,0xa1,0x40,0x43,0xa8,0xe4,0xc2,0xb1,0x88,0xca,0xc0,0x74,0x35,0xf3,0x41,0x9a,0x7a,0x8a,0xc1,0x5b,0x4b,0xc5,0xc0,0x5,0x5d,0x4e,0xc0,0x10,0x86,0x1d,0xc2,0xfc,0xc6,0x3d,0x41,0xff,0x98,0xf3,0x40,0xe9,0x48,0xa8,0xc1,0xcd,0xc3,0xc6,0xc1,0x0,0x20,0x31,0xc1,0x9d,0x6f,0x8f,0x41,0x3e,0x3b,0x4c,0x42,0x64,0xf4,0x4b,0xc1,0x95,0xb5,0x44,0x42,0x1a,0xbd,0x40,0xc1,0x68,0x6f,0xaa,0xc0,0xb0,0xfd,0x7b,0x42,0x68,0x1b,0xd,0x42,0xfc,0xe2,0x29,0x42,0x12,0x72,0x28,0xc0,0x3d,0x8e,0x94,0xbe,0x40,0xce,0x5e,0xc0,0x4f,0x55,0x43,0x42,0x53,0x42,0xab,0x41,0x14,0x37,0xa5,0x40,0x6e,0x8,0x73,0xc1,0xd4,0x1a,0x48,0x40,0x60,0x49,0xea,0x3f,0xe4,0xc7,0x4d,0x42,0xb8,0xad,0x7c,0xc2,0x20,0x66,0x30,0xc0,0x36,0x67,0x62,0xc1,0x27,0x79,0x17,0x42,0x5b,0xef,0x91,0x41,0x1,0x2e,0xa2,0xc2,0x9a,0x46,0xb4,0x41,0xae,0x93,0xd7,0x40,0x4c,0x67,0x5d,0x42,0x55,0x41,0xff,0xc1,0x5d,0xb4,0x71,0x42,0x55,0x4e,0x96,0x42,0x60,0xb8,0x15,0xbf,0x67,0x8d,0xc,0xc2,0xa7,0x8b,0x1b,0x42,0xf9,0x9e,0x6d,0xc1,0xf5,0x83,0x8,0xc2,0xaa,0x2d,0x72,0x42,0xfd,0x5e,0xd8,0xc1,0x4,0x0,0x38,0x41,0x23,0x7f,0x7,0xc2,0x97,0xa7,0x59,0xc1,0xf4,0x84,0x34,0xc1,0xcc,0xd6,0x38,0xc1,0x5e,0xce,0xd4,0xc0,0x5a,0x51,0x23,0x41,0x79,0x87,0x82,0xc1,0x98,0x28,0xae,0xbf,0xb4,0xee,0x5a,0xc1,0xc0,0xf6,0x64,0xc1,0x54,0x1c,0x9d,0xc1,0xb,0x9b,0xf5,0xc0,0x1e,0x96,0x41,0xc1,0x0,0x82,0x8b,0xbc,0x14,0x9d,0x88,0xc1,0x1a,0xbe,0x5e,0x42,0xa2,0xe3,0xf8,0xc1,0xd8,0xd9,0xd,0x42,0x3b,0xf6,0xb0,0x41,0xaa,0x3a,0x83,0xc1,0x8c,0x1c,0x40,0xbf,0xff,0xd7,0x79,0xc1,0x3a,0x35,0xd,0xc2,0xdb,0x21,0xb0,0xc1,0x12,0x55,0x2d,0x41,0xc7,0x61,0xea,0x41,0xfe,0x1d,0x53,0x41,0x96,0x8a,0xe,0xc1,0x9f,0xc1,0x27,0x42,0x76,0x10,0x99,0x41,0xe4,0xd4,0xc7,0xc0,0xb7,0x65,0x63,0xc1,0xf7,0x5e,0x1d,0xc1,0x83,0x3b,0xe6,0xc1,0x17,0xac,0x5d,0xc2,0xb6,0x58,0x24,0xc0,0xa2,0xbf,0x65,0xc2,0xf7,0xd1,0xc2,0x41,0xce,0xd3,0xc9,0xc1,0xb3,0x3e,0x84,0x40,0x6c,0x77,0x4,0xc2,0xee,0x55,0xcb,0x40,0x3e,0x17,0xa9,0xc1,0xc5,0x94,0x7,0xc2,0xe9,0xa6,0x68,0xc2,0xa4,0x82,0xcc,0x40,0xc2,0x28,0xfa,0xc0,0xee,0xdb,0xff,0xc1,0xd4,0x87,0x5e,0x41,0x80,0xd2,0xb1,0x41,0x3c,0x4e,0x86,0x41,0x84,0xde,0xd1,0x41,0x59,0xac,0x2e,0x42,0x49,0xe7,0xb0,0xc0,0x5d,0x4a,0x4,0xc2,0x64,0xf9,0x8b,0x42,0x53,0x28,0xfb,0xc1,0x32,0xbe,0xe3,0xc1,0x80,0x9e,0xa4,0x40,0xc1,0x0,0x41,0x41,0x13,0x60,0xee,0xc1,0xd7,0x36,0x57,0xc2,0xac,0x95,0xf2,0x40,0x8a,0xdf,0x5d,0x42,0x48,0xa5,0x7c,0x41,0x85,0x68,0xbc,0xc0,0xe0,0x62,0x8d,0x42,0xc,0xb9,0x29,0xc2,0x64,0x93,0x2d,0x41,0x2f,0x73,0xdb,0xc1,0x53,0x9c,0x16,0xc2,0x74,0xda,0xe0,0x41,0xa6,0xca,0x19,0xc2,0x52,0x51,0x2d,0xc2,0x48,0x48,0x98,0xc0,0xc2,0x48,0x41,0xc1,0xe6,0xba,0x84,0x41,0x6f,0x87,0x1e,0x41,0x68,0xa2,0x95,0xc1,0x2e,0xef,0x93,0xc1,0x3e,0x19,0xea,0x40,0x95,0x6e,0x81,0xc1,0x8d,0x70,0xc8,0x41,0xe5,0x11,0x60,0xc2,0x32,0xc9,0xcd,0xc1,0x26,0xfb,0x20,0xc1,0x6b,0x5e,0x46,0xc2,0x22,0x72,0x7a,0x41,0x9f,0x54,0xdf,0xc1,0x13,0x46,0x90,0x40,0x50,0x81,0x85,0x3f,0x66,0x71,0x17,0xc2,0xc4,0x63,0xbf,0x40,0xea,0xc5,0xea,0x41,0x68,0x3a,0xa4,0xc0,0x84,0x3f,0xaf,0xc1,0xd8,0xab,0x23,0xc2,0x4e,0xca,0x86,0xc1,0x93,0x16,0x1d,0x42,0x36,0xbc,0xfa,0xc1,0x24,0xf6,0x4,0x41,0x36,0xfc,0x89,0xc0,0x6c,0x49,0xbb,0xc1,0x61,0xc9,0xee,0x41,0xcc,0x30,0x72,0x41,0x0,0x83,0x96,0x41,0x94,0xae,0xde,0x41,0x98,0xe3,0x37,0x42,0xec,0xa5,0x31,0x42,0xc1,0x5b,0xc1,0x41,0xd6,0xb9,0x3e,0xc1,0x5c,0x31,0xb6,0x41,0xda,0x84,0xee,0x40,0x48,0xf9,0x2d,0xc2,0x90,0xe0,0x32,0x42,0x3e,0xc2,0xbe,0x41,0x9,0xef,0xe7,0x41,0x49,0x8e,0xdb,0xc1,0x9d,0x1d,0x1,0x41,0x70,0x9c,0x37,0x42,0x42,0x3,0x97,0xc1,0x61,0x4f,0x20,0x42,0x72,0x85,0x2a,0x40,0x9e,0x74,0x13,0x42,0xb6,0x3b,0x3,0xc2,0x29,0x96,0x1,0x42,0x0,0x7c,0x83,0x41,0xd3,0x4e,0x46,0xc0,0x44,0x2b,0x3,0x42,0xd2,0x36,0x89,0xc0,0xab,0xeb,0x34,0x41,0xc1,0xb1,0xa8,0x41,0x42,0x5f,0xd,0x42,0xe4,0xad,0xf9,0xc1,0xf8,0x5f,0x14,0xc1,0x2a,0x21,0xf1,0xc1,0x5c,0xb7,0xfa,0xc1,0x8f,0xeb,0x70,0xc1,0x7d,0xed,0x2d,0xc1,0x9e,0x63,0x8,0x40,0x3b,0x61,0x79,0x41,0xa6,0x49,0x96,0xc2,0x29,0xa3,0xa2,0x3f,0x31,0x4,0x4,0x42,0xa0,0xed,0xe9,0xc0,0xd6,0x56,0x46,0x42,0xfc,0x90,0x11,0x42,0x4e,0x1c,0xad,0xc1,0xa3,0xac,0xb,0xc1,0x94,0x9d,0xad,0x41,0x88,0x88,0x5b,0x40,0xa7,0xc8,0xda,0xc1,0xbb,0x64,0x8c,0x41,0x9c,0x1b,0x92,0xc0,0x6,0xb,0x77,0xc2,0xa0,0xc7,0x6b,0x42,0x9b,0xa9,0x5e,0xc1,0xc,0x3e,0xa2,0x41,0xb3,0x25,0x18,0xc2,0xe4,0xfe,0x29,0xc2,0x8e,0x39,0x68,0x42,0x84,0x6f,0xa3,0xc1,0xb6,0xde,0xd,0xc2,0x9a,0x2c,0xed,0x41,0x6f,0xd5,0x80,0x41,0x5f,0x66,0xd7,0xc1,0x5d,0x8b,0x4b,0x42,0xe1,0x4,0x93,0x42,0xa6,0x8f,0xf2,0x40,0x11,0xb7,0x8b,0x40,0xc4,0xd2,0xfd,0x41,0x57,0xa0,0xce,0xc1,0xf8,0x22,0xc5,0xc0,0xb1,0xef,0x2a,0x42,0xb8,0x60,0x0,0xc2,0xfa,0x1d,0xbb,0xc1,0xda,0x88,0xc6,0xc1,0x5e,0x6d,0xa4,0x41,0x5a,0x99,0x14,0xc0,0x64,0x36,0xaa,0x40,0x47,0x9f,0x9c,0x3f,0x39,0x4f,0xed,0x41,0x89,0xec,0xae,0x41,0x82,0x94,0xb3,0xc1,0x3f,0xad,0x20,0x41,0xd0,0x1b,0xe0,0xbe,0xb,0xec,0x28,0x41,0xe7,0x64,0x5d,0x41,0x9b,0xef,0x38,0x42,0x20,0x84,0x86,0xc1,0x60,0x55,0x93,0x41,0x32,0x49,0x12,0xc2,0x2d,0xe6,0xa,0x42,0x62,0xd4,0x5e,0x41,0x5a,0x5d,0xef,0xc1,0xcb,0x24,0xe9,0xc1,0x28,0x2d,0x12,0x40,0x80,0x62,0x5b,0x42,0xd0,0x6,0x4c,0xc1,0x7d,0x2d,0x46,0x42,0x7e,0x41,0xc8,0x41,0xab,0x45,0x84,0x41,0xc8,0x77,0x17,0xc2,0xda,0xd9,0xb9,0xc2,0xf,0x27,0x17,0xc1,0x48,0xe2,0x40,0xc2,0x7a,0x9a,0x2e,0x42,0x3f,0x27,0x78,0xc2,0x9,0xf6,0x5c,0x42,0x84,0xb1,0x22,0x40,0x2,0x14,0x62,0xc2,0xa3,0x11,0xc4,0x41,0xcc,0xdf,0x9a,0x41,0xba,0x7b,0x2e,0xc2,0xfb,0xa6,0x8d,0x42,0x32,0x22,0x5d,0x41,0x97,0x98,0x7f,0xc2,0xc0,0x7a,0x30,0x41,0x96,0xd2,0x2b,0xc2,0x58,0x68,0xa8,0x41,0x2b,0x35,0xf,0x42,0xca,0x2d,0x1d,0xc2,0x60,0x1,0xf8,0xbe,0x3f,0xe8,0x88,0x41,0x16,0xc4,0x5d,0xc1,0x44,0x5d,0x99,0xc2,0x98,0x11,0x0,0xc2,0xfc,0xa7,0x75,0x41,0x38,0x89,0xa5,0x40,0xfe,0x59,0x44,0xc2,0x18,0xd,0xac,0x40,0x48,0x1c,0xa5,0x3e,0x5c,0x2c,0xa0,0xc0,0x3,0x9a,0x80,0xc1,0xda,0xfe,0xe6,0x40,0xcc,0x14,0xac,0xc1,0x6c,0x2e,0xc7,0xc1,0x7,0x8e,0x6,0xc2,0x32,0xc6,0x64,0x41,0xbb,0x19,0xb0,0xc1,0xf,0xd0,0x11,0x42,0x8d,0xdf,0x24,0x42,0x27,0xcb,0x39,0x42,0x9a,0x49,0xd8,0xc0,0xd2,0xad,0xa8,0xc0,0x52,0xeb,0x22,0xc1,0x21,0xc0,0xa6,0xc1,0x8,0x26,0xb5,0x3f,0x74,0x1,0x98,0xc1,0x55,0x24,0xa7,0xc1,0x91,0x4e,0x46,0xc1,0x88,0x81,0x8b,0x41,0x4a,0xa7,0x6,0xc2,0x24,0x4a,0x8,0xc0,0x2,0xad,0xd3,0x41,0x9a,0x55,0x92,0x42,0x7b,0xc1,0x4e,0x42,0x24,0x43,0x34,0xc2,0x1d,0x5f,0xde,0x41,0xf8,0x2,0x1c,0xc2,0x44,0xbf,0x8f,0xc2,0x24,0x40,0xe6,0xbf,0xc3,0xd5,0x77,0xc2,0x91,0xe6,0x7f,0x42,0x9e,0xb1,0xd7,0x41,0xaf,0x97,0x4a,0x41,0x17,0xb3,0xa3,0x40,0xea,0x14,0x3f,0xc1,0xad,0x3e,0xe8,0x41,0xaf,0xa3,0x8d,0x40,0x6f,0x44,0xa7,0xc2,0x12,0x18,0x3e,0x42,0x6e,0x8d,0x58,0xc1,0x45,0x11,0x80,0xc2,0x10,0x12,0x7e,0xc1,0xe1,0xf4,0x4a,0x42,0x6d,0xab,0x5f,0x42,0x7e,0x80,0x49,0x42,0x14,0x6e,0x9f,0x42,0xa,0x35,0xfa,0x41,0xf1,0xbe,0xa2,0xc1,0xba,0xfc,0xc,0x41,0x3a,0x91,0x83,0x42,0xab,0xa2,0xc2,0x42,0x25,0x11,0x8,0x42,0xf9,0x68,0x25,0x42,0x30,0x27,0x78,0x40,0xc2,0x16,0x8e,0xc0,0xa8,0xac,0x70,0x41,0x6c,0xf8,0x4a,0xc1,0x2,0xd9,0x52,0xc1,0xb7,0x92,0xf6,0x41,0xd8,0x84,0xb4,0x41,0xc3,0xa2,0x77,0x42,0x57,0x9c,0x1c,0xc2,0xcf,0x3,0x2b,0xc2,0x9b,0xfa,0x53,0x42,0x76,0xf9,0xf0,0x3f,0x70,0x5f,0x3f,0x41,0xa4,0x6b,0x4a,0x41,0x36,0x95,0x4b,0x41,0x64,0xd5,0x9d,0x41,0x20,0xd7,0x1,0x42,0x4,0xf2,0xd,0xc2,0x7c,0x70,0xbf,0x42,0x2a,0x96,0xe4,0xc1,0xba,0xbf,0xc,0xc1,0x25,0x38,0x80,0x41,0x78,0x10,0x46,0xc2,0x60,0x75,0xd6,0xc1,0x9,0xe1,0x32,0x41,0x58,0xfd,0x5c,0xc1,0x48,0xbf,0x95,0xc0,0xfd,0x64,0x9,0xc2,0x17,0xc7,0xb8,0xc1,0x5c,0x79,0x62,0xbf,0x55,0x1d,0x8b,0xc1,0x1,0x5c,0xba,0x42,0xc,0xce,0xb,0xc2,0xc3,0xb8,0x90,0xc1,0x76,0x4f,0xa8,0xc2,0x27,0x72,0x7f,0xc1,0xe2,0x1,0x35,0xc2,0x44,0x39,0x65,0xc1,0x75,0xb8,0xc0,0x41,0xe9,0xa4,0x7b,0xc1,0xe8,0x1f,0xb5,0xc0,0x23,0xe9,0xc1,0xc2,0x43,0xaf,0x86,0xc2,0x11,0x9f,0x78,0xc2,0x3f,0xa3,0x3,0xc2,0x3c,0xf5,0xe7,0xc1,0x98,0x2d,0xc,0x42,0x6e,0xb4,0xf6,0x41,0x33,0x24,0x97,0xc1,0xf4,0xc1,0xd9,0x42,0x57,0x20,0xf7,0xc1,0xe8,0xa3,0x11,0xc2,0x80,0x3,0x26,0xc2,0xda,0x32,0x7,0x42,0xf2,0x41,0x35,0x41,0x19,0x4,0x29,0xc1,0xf8,0x1a,0xff,0xc1,0x1d,0xf4,0xcc,0xc2,0xbf,0x45,0xef,0x41,0x73,0x5a,0x37,0xc1,0x3a,0xb,0x89,0xc2,0x58,0xc0,0x71,0xbf,0xa,0xd8,0x24,0x42,0xc3,0xa0,0x73,0xc2,0x62,0xed,0x34,0x41,0xfd,0x8c,0x2,0xc2,0xde,0x72,0x40,0x42,0xaf,0x2a,0xd1,0xc1,0x80,0x2c,0x2c,0x41,0xb8,0x55,0xa0,0xbe,0x50,0x24,0x6d,0x41,0xda,0x18,0x9,0x42,0x1c,0xd4,0xd6,0xc1,0x76,0xb8,0xb0,0x41,0xeb,0x39,0x31,0xc1,0xa9,0x29,0x34,0xc1,0xdf,0x31,0x2d,0x42,0xcc,0xe6,0x1,0x42,0x6b,0x1,0x4f,0x40,0xf8,0x5,0x93,0xc1,0x80,0x51,0xa5,0xc1,0xcc,0x56,0xa2,0x41,0x6,0xc4,0x28,0x41,0xe9,0xdc,0xc1,0x3f,0xb3,0x50,0x91,0xc2,0x4,0x7d,0x78,0xc1,0x34,0xbc,0x2d,0xc1,0x4,0xd5,0x7f,0xc0,0x7c,0xe1,0x3e,0x41,0x67,0x53,0x86,0xc2,0x34,0x90,0x9f,0x41,0xfd,0x43,0xb5,0x41,0x95,0x5a,0x67,0x42,0x52,0xd3,0x27,0xc1,0xe7,0xea,0xcd,0xc1,0x42,0x37,0xce,0xc2,0xed,0xa3,0x51,0x42,0x94,0xb8,0x87,0x40,0x5f,0x45,0xb2,0xc1,0x3b,0x15,0xde,0x41,0xef,0x97,0x93,0xc1,0x28,0x60,0x82,0xc2,0x6c,0x73,0x6a,0xc1,0x4e,0x89,0x95,0x40,0x11,0x9,0xc8,0xc0,0x84,0x2b,0x24,0x42,0x3,0xa3,0x51,0xc1,0x52,0xa2,0xd,0x41,0xed,0x2b,0xdf,0x41,0xc9,0x50,0x9b,0x42,0xf9,0x1b,0x24,0xc1,0x95,0x83,0x25,0xc2,0x14,0x6a,0x7b,0xc0,0x10,0xe3,0x8,0x42,0xa,0x4c,0x92,0x41,0x58,0x2b,0x86,0xc2,0xa0,0x9b,0x83,0xc2,0xda,0xd1,0x2d,0xc2,0x4c,0xa2,0xe8,0x3f,0x55,0xfa,0x24,0xc1,0x92,0xf2,0x4b,0xc2,0x71,0xb2,0x2d,0xc1,0xb0,0xf2,0xcc,0x41,0x94,0x59,0x5,0x41,0x15,0xbe,0xa,0xc2,0x29,0x98,0x83,0xc1,0xa9,0xe3,0x7f,0x41,0x34,0x90,0xea,0xc1,0xa6,0x85,0x6b,0xc1,0x2d,0xd5,0xbe,0x41,0x27,0x7f,0x71,0xc1,0xa3,0xda,0x32,0xc2,0xfc,0xdb,0x9a,0x41,0xf8,0xba,0xb8,0xc1,0x32,0x90,0xd2,0x42,0x6b,0x9b,0xab,0x40,0xbd,0xbe,0x8b,0x40,0xb3,0xcd,0x62,0x42,0xff,0x53,0x85,0x42,0x8,0x12,0x94,0xc1,0x5c,0x63,0x24,0xc2,0x43,0x5e,0xc5,0xc1,0x27,0x80,0xec,0xc1,0x50,0xd8,0x12,0xc2,0x5d,0xd5,0x20,0x42,0x49,0x47,0x46,0x41,0x39,0x8e,0x17,0xc2,0xe1,0x6f,0x20,0x42,0xb9,0x86,0x3,0x42,0xac,0x3c,0x2b,0x42,0x27,0xe5,0x7a,0xc2,0x35,0x55,0x3e,0x42,0xa0,0x76,0xd6,0xbe,0x11,0x56,0x29,0x42,0x3d,0x3a,0x7e,0xc2,0xc,0xed,0x9a,0x42,0x14,0x41,0x61,0x41,0xb2,0xf2,0x3d,0x40,0xd3,0x59,0xcc,0x40,0x58,0x7c,0x44,0xc2,0x43,0x67,0x88,0xc2,0x81,0xf8,0x98,0x41,0x22,0x8e,0xf3,0x41,0xe6,0xee,0xd7,0xc1,0xe2,0x80,0x9e,0xc0,0xc7,0x8c,0x6a,0xc1,0x4c,0xfe,0x60,0xc2,0x65,0xe9,0xdc,0xc1,0x8,0xa1,0x29,0xc2,0x34,0xf3,0x4a,0xc2,0x44,0xc9,0x7,0xc0,0x3f,0x2b,0x41,0xc2,0x1d,0xc6,0xce,0x41,0xc7,0xac,0xa8,0xc1,0xae,0x2e,0xb,0xc2,0xd4,0x81,0x4f,0xc2,0x87,0xee,0xa9,0x40,0xbc,0x29,0xa9,0x42,0x1e,0xa3,0x4,0xbf,0x87,0x9a,0x9d,0x42,0x62,0x67,0x14,0x41,0x7b,0x5b,0xa7,0xc2,0xdb,0xdb,0x4b,0xc2,0x32,0x55,0xd,0xc0,0xed,0xeb,0x17,0xc2,0x81,0xd4,0x5a,0x42,0x53,0xea,0x38,0x42,0x4a,0x65,0x33,0x41,0x48,0x6,0x6c,0xc1,0xfb,0x16,0x2b,0x42,0xd2,0x6b,0x9b,0xc1,0xcb,0xb8,0xc8,0x41,0x89,0xcf,0xb5,0x40,0x79,0x92,0x41,0x42,0xf3,0xf9,0x3e,0xc2,0x98,0xeb,0xf3,0x42,0x7,0x3f,0xaf,0xc2,0xce,0x5e,0x3c,0x42,0x64,0xae,0xac,0xc2,0x9d,0xa1,0xe,0xc2,0x37,0xa0,0x5f,0x42,0x1c,0x88,0xc0,0xc1,0x9e,0x28,0x53,0xc2,0x54,0xeb,0x75,0xc0,0x86,0xf8,0x80,0x41,0x9e,0x6b,0xa,0xc1,0x24,0xdd,0x8b,0x42,0x9,0x13,0xa8,0x41,0x56,0xa,0x6c,0x42,0x9e,0x86,0x4,0x42,0xd7,0xd3,0x4a,0x3f,0x9b,0x2b,0x1,0xc2,0xd4,0x27,0x70,0x42,0x98,0x2c,0xa4,0x41,0xec,0x98,0x76,0xc2,0x0,0x25,0x8,0x41,0x36,0xc,0x4,0x42,0x2d,0x4b,0x94,0xc2,0x56,0x1a,0xb7,0x42,0x66,0x9e,0xae,0x42,0xbb,0x24,0x2c,0xc2,0xf7,0x55,0xb0,0x42,0x5d,0x80,0x97,0x41,0x51,0xcb,0x1b,0xc2,0x45,0xf8,0xba,0x41,0x77,0xe2,0x7f,0xc2,0xb9,0xbe,0xc2,0x42,0xb5,0x5,0x2d,0xc2,0x24,0x5e,0xaf,0x41,0xac,0x1b,0x5a,0xc2,0x49,0xf0,0x69,0xc1,0x0,0x13,0x92,0xc2,0xb4,0x85,0x99,0x42,0x52,0xfa,0x52,0x41,0x5b,0x6f,0x87,0xc1,0x5e,0x29,0x53,0xc0,0x59,0xe,0x3a,0x41,0xa9,0x9c,0xc9,0xc2,0x4,0xfb,0x8,0xc0,0x7a,0x79,0x80,0x42,0x6a,0x59,0x90,0xc2,0x5f,0xeb,0xc9,0x41,0x3c,0xea,0x31,0xc1,0xc2,0x86,0xc9,0xc1,0x87,0x67,0xae,0xc1,0x0,0xb5,0x1c,0x42,0x65,0x3d,0xfb,0xc1,0xf1,0xbc,0xf7,0x41,0x15,0x8e,0x97,0xc0,0x93,0x52,0x2f,0xc2,0x85,0xb7,0xc6,0x42,0x7a,0xb1,0x10,0x41,0xb5,0xb4,0x72,0xc1,0x88,0xe8,0xd4,0xc0,0x6a,0x8b,0x41,0x41,0x61,0x1b,0x77,0xc2,0x5e,0x99,0xbc,0x40,0x6a,0x21,0x57,0x42,0x64,0x90,0x2,0xc2,0x41,0xd0,0x7,0x40,0xc9,0x60,0x80,0xc0,0xa7,0x9b,0x6f,0xc1,0xaa,0x9c,0x7,0xc2,0xbd,0x2,0x1c,0xc2,0x81,0xe6,0x3a,0x42,0xc9,0x45,0x54,0xc2,0xbd,0x39,0xc3,0x41,0xd8,0xd0,0x3,0xc2,0x9c,0xd1,0x96,0xc0,0x4a,0x54,0xf4,0x41,0x86,0x88,0x2b,0x40,0x44,0xa5,0x60,0xc2,0x54,0xc8,0x96,0xc2,0x85,0x4c,0xbe,0xc1,0xe6,0xd0,0x87,0x41,0xdd,0xa6,0x1d,0x42,0x4e,0x11,0x8e,0x42,0xae,0x4c,0xd,0x42,0x0,0x2f,0xcc,0x3b,0x3,0xe2,0x2b,0x41,0x80,0xb5,0x77,0x42,0x5e,0x96,0x30,0x42,0x37,0xb6,0x83,0xc2,0x67,0xc5,0x1e,0x42,0x44,0xef,0xd5,0x41,0x6a,0x6d,0x9f,0xc2,0x42,0x35,0x86,0xbe,0x90,0x7f,0x2e,0xc2,0xb,0x34,0xec,0x41,0x28,0x12,0x91,0x42,0xe0,0x2a,0x12,0x42,0xd5,0x82,0x2e,0x42,0x5e,0x39,0x14,0xc2,0x9d,0xbc,0xee,0xc1,0x33,0xad,0x3d,0xc1,0x80,0xdd,0x6a,0xc2,0x60,0xf8,0x76,0x41,0xf8,0x8f,0x35,0x42,0xb8,0xa8,0x6c,0xc1,0xf3,0xa6,0xf6,0x41,0xc0,0x70,0x4f,0xc2,0xa,0xb3,0x17,0xc0,0x30,0x45,0x5e,0xc1,0x34,0x11,0xff,0xc1,0x39,0x9d,0x12,0xc0,0xda,0x48,0xee,0x41,0xc5,0x77,0xfe,0xc1,0x82,0xc7,0xa7,0x41,0x9e,0x38,0xdc,0xc1,0x2e,0x58,0xc6,0xc1,0x8c,0xed,0x86,0xc1,0x8,0x7a,0x4f,0x41,0xd9,0x5b,0xb5,0xc1,0x15,0x3,0x34,0xc2,0xcb,0x5c,0xf4,0x3f,0x88,0x68,0x94,0x41,0x61,0xed,0x5e,0xc2,0xef,0xb7,0x36,0x41,0x76,0x6e,0x9e,0xc2,0x3e,0x9b,0x65,0xc2,0xb9,0x2b,0x36,0x41,0xc4,0x8d,0xe,0x42,0x36,0xbd,0x6f,0x40,0x4e,0x39,0x88,0xc1,0xbd,0xd9,0x50,0x42,0x14,0x34,0x48,0xc1,0x5a,0x9,0x11,0xc2,0x74,0xb0,0x29,0xc2,0xd5,0x57,0x4c,0x41,0x7a,0x37,0x6c,0xc2,0xe2,0x4a,0xc1,0xc1,0x42,0xa9,0xd8,0x41,0x5b,0x9e,0x98,0xc0,0x30,0x22,0xef,0x41,0xee,0x30,0x67,0xc1,0x2c,0x93,0xcd,0x41,0xa7,0xd6,0x23,0xc2,0xbf,0xd7,0xa9,0x41,0xf6,0xcd,0x90,0xc2,0x55,0xc5,0xfb,0xc2,0xe8,0x63,0x5,0xc0,0x44,0xdf,0x2,0xc2,0x8,0x6a,0x8c,0xc2,0x16,0xb7,0x4c,0x42,0x72,0x9d,0xd4,0x41,0x8d,0x6b,0x62,0x42,0xea,0xe0,0x8f,0x41,0x3f,0xef,0x82,0x41,0xab,0x57,0xa9,0x40,0x4f,0x97,0xce,0xc1,0xfc,0x8b,0xb2,0x42,0xb1,0x5d,0x8f,0x41,0x39,0x45,0x20,0x42,0xa3,0xb2,0x1,0x42,0x37,0xe7,0x6f,0xc0,0x62,0x40,0x18,0x42,0x67,0x2e,0x2e,0xc2,0xac,0x30,0x92,0xc1,0xa2,0xb7,0xf8,0xc0,0xc7,0xf8,0x1,0xc2,0x12,0x8,0x81,0x40,0x3c,0xe2,0x6f,0xc1,0x23,0x1e,0x5b,0x42,0x71,0x4b,0x44,0xc1,0x1d,0xe4,0x22,0x42,0x25,0xd7,0xaa,0xc2,0x42,0xdb,0x65,0xc2,0x17,0x3f,0xaa,0xc2,0x3a,0xf2,0x5,0x42,0xbc,0xda,0xda,0xc1,0x6a,0x9c,0xde,0x41,0xd,0x8f,0xb7,0x41,0xc9,0x32,0x43,0x42,0x7b,0x1,0x90,0x41,0x9c,0x3a,0xaf,0xc2,0xd7,0x18,0x43,0x42,0xc4,0x3a,0x64,0xc2,0x73,0x87,0x57,0xc2,0x51,0xc2,0x50,0xc2,0x5,0x70,0x1a,0xc1,0x0,0xc5,0x3e,0x41,0xf,0x6f,0x7,0x41,0xc8,0x65,0x4e,0xc2,0xca,0x9a,0x93,0x41,0x18,0xf,0x2f,0xc2,0xb4,0x28,0x60,0xc1,0xa1,0x31,0x45,0x42,0xdc,0xf3,0x5,0x41,0x66,0xd8,0x80,0xc1,0x4d,0xe9,0x18,0xc2,0x2f,0x80,0xc8,0xc1,0xf3,0x6e,0xb8,0x41,0xb3,0x5f,0x7d,0x41,0x63,0x8f,0xa7,0x41,0xbc,0xb9,0x43,0xbf,0xfc,0xdf,0xeb,0xc1,0x83,0x7f,0xf,0x41,0xf4,0x51,0x9f,0xc1,0x25,0x81,0x1a,0xc2,0xa6,0x40,0xc9,0xc1,0x6f,0x46,0x14,0x41,0xca,0xaa,0x5d,0x42,0xa0,0x2a,0x2d,0x41,0x43,0xdf,0x37,0x42,0x14,0x1f,0x48,0xc2,0x92,0xa4,0x8d,0x41,0x41,0xfd,0x8d,0xc0,0x75,0x2b,0x1c,0xc2,0x91,0x21,0x8e,0x40,0x8b,0x3c,0xf3,0x40,0xc8,0x4f,0xc,0xc2,0x60,0x1a,0x67,0xc2,0x10,0x58,0xe5,0x3f,0x49,0xe3,0xe0,0xc1,0x8a,0xa4,0xc7,0x42,0xcf,0x7c,0x1,0xc2,0x78,0xa3,0x7b,0x41,0x6,0x33,0x4c,0xc2,0xd5,0x85,0x8f,0x41,0xaa,0x4a,0xdc,0x40,0x2c,0xb4,0x9e,0xc2,0xf0,0x1b,0x53,0x42,0x5a,0xaf,0xac,0xc1,0x81,0xeb,0x63,0x42,0x2c,0xb1,0x8e,0xc1,0xd4,0x15,0xc0,0x40,0xf,0x66,0x8d,0xc0,0x37,0xc2,0xf0,0x41,0x7f,0x28,0x28,0x42,0x22,0xfb,0x44,0xc2,0xb,0x32,0xb6,0xc1,0x72,0x39,0x13,0xc2,0x66,0xf2,0xe9,0x41,0x59,0xb6,0x6,0x42,0x1f,0x75,0xa1,0xc1,0x83,0xa3,0x23,0xc2,0xb,0xa4,0x83,0x41,0x26,0x5f,0xb3,0xc1,0x7d,0xe3,0xf7,0x41,0x40,0x72,0x85,0xbe,0x5d,0xb1,0xc0,0xc0,0x10,0x96,0x48,0xc0,0x57,0x20,0xe9,0x42,0xac,0x2c,0x8f,0x41,0x1a,0x49,0x3,0x42,0x1c,0xa5,0x87,0xc2,0x68,0xb3,0x8,0xc1,0xfd,0x11,0x9d,0x41,0x94,0x1,0x3,0xc1,0x8,0xeb,0x64,0x41,0xc,0x87,0x64,0xc1,0xa9,0x11,0x5,0x42,0xf8,0xd5,0x12,0x42,0xdc,0xe,0xc,0xc1,0x40,0x61,0x89,0x42,0x19,0x76,0x89,0x42,0x4e,0x6f,0x57,0xc2,0x0,0x70,0x57,0x41,0x3e,0xcb,0x9d,0xc2,0xc2,0x97,0x8a,0x41,0x17,0x19,0x0,0xc2,0x2a,0xed,0x4a,0x42,0x52,0xb1,0xc5,0xc0,0x1e,0x7,0x96,0xc1,0x66,0xca,0xec,0xc1,0x96,0x4f,0x88,0xc1,0xc1,0x2b,0x9c,0xc1,0x6a,0x7,0x4b,0xc2,0x4e,0xb3,0xba,0x41,0xb,0x55,0x7b,0xc2,0xaa,0x6c,0x5f,0xc2,0xdf,0x9a,0x70,0xc1,0xcd,0x75,0x9f,0x42,0x88,0x35,0xb,0xc1,0x8a,0xb7,0x3d,0xc2,0x47,0x81,0x55,0x41,0x35,0x6d,0x4b,0x42,0xbd,0x45,0x97,0xc2,0xfa,0x38,0xd8,0xc0,0x47,0x4a,0x6f,0xc0,0x3a,0x89,0x1a,0xc2,0x49,0x9c,0x76,0x42,0x81,0x44,0xc2,0xc2,0xfe,0x6d,0x81,0xc2,0xc7,0x65,0x4a,0x41,0x1e,0x66,0xcf,0xc0,0x24,0x1d,0xa0,0xc2,0xa,0x50,0xd4,0xc1,0x27,0x5f,0xf8,0x41,0x32,0x78,0x80,0xc2,0x2,0x69,0x11,0x42,0xd5,0x58,0xe5,0x41,0x65,0x14,0x1,0x42,0x64,0x11,0xe9,0xc1,0x64,0xf0,0xd1,0xc1,0xdc,0x68,0x7,0xc1,0x1e,0x52,0xfa,0x40,0xf3,0xa5,0xd,0xc1,0x1,0x1c,0x80,0xc2,0x5c,0x80,0xe1,0xbf,0x8b,0xd0,0xd7,0x40,0x38,0x28,0x9e,0xc0,0x72,0x29,0x60,0x41,0xd6,0x9f,0xbd,0x41,0xb6,0x95,0x1d,0x42,0x7f,0xd9,0x87,0xc0,0xbd,0x44,0x3b,0xc2,0x5e,0x29,0x59,0xc1,0xb8,0x6c,0x8e,0x42,0x4a,0x73,0x4f,0xc1,0x3b,0x2e,0x20,0xc2,0x9d,0x3d,0x29,0xc2,0xa6,0x6e,0xd6,0x40,0x1b,0x7f,0xab,0x41,0x2d,0x7e,0x5f,0xc2,0x18,0x6c,0x12,0xc2,0x39,0xbb,0xd3,0x41,0x65,0x4,0xf,0x42,0xab,0xf5,0x93,0xc1,0xa,0x9c,0x61,0x41,0xc7,0xc2,0x25,0xc1,0x76,0x6f,0x8a,0xc2,0xa1,0x18,0x6,0x42,0xa2,0x1f,0xbb,0xc1,0x86,0xb5,0xaa,0xc0,0x49,0x93,0x79,0x42,0xd2,0x44,0x24,0xc1,0xa2,0x3d,0xe3,0xc1,0x2b,0xaf,0xb4,0x40,0x75,0x28,0x13,0x42,0x1d,0x59,0x9f,0x40,0xaf,0xf1,0xbb,0x42,0x18,0xc2,0x9e,0x41,0x46,0x32,0xe,0x41,0x1a,0xea,0x4c,0xc1,0x51,0xff,0x16,0x42,0xff,0xc9,0xd,0xc2,0x72,0x8a,0x89,0x41,0x4f,0xaa,0xaa,0x42,0x95,0x7,0xee,0x41,0x75,0xb5,0xa2,0x42,0xe8,0x69,0x57,0xc1,0x33,0xc2,0x69,0x42,0x24,0xb6,0xe8,0xc0,0x58,0x70,0xc2,0xc1,0x37,0x7d,0xa2,0xc0,0x9a,0x94,0x37,0x41,0x52,0x23,0xfb,0xc1,0xee,0xa,0x8a,0xbf,0xf0,0xab,0x5e,0x42,0x7d,0xaa,0x55,0xc2,0xec,0x31,0xe6,0x3f,0x8d,0xa9,0x5,0xc2,0xf4,0x3b,0x8d,0xc1,0x34,0xf8,0x55,0xc1,0xec,0x4f,0x73,0x42,0x46,0x41,0x82,0x41,0xff,0x95,0xb6,0xc1,0x5f,0x8c,0x86,0xc2,0xe1,0xd0,0x48,0xc2,0xa6,0xd4,0x9f,0x42,0x78,0xa3,0x91,0xc2,0x8d,0x9f,0xb3,0x41,0x93,0xc4,0x3f,0xc2,0x8a,0xd3,0x36,0x42,0xca,0x43,0x41,0xc2,0x3a,0x98,0x21,0x41,0xa,0xc3,0x61,0x41,0x70,0xb8,0x72,0x41,0xd,0x9d,0x28,0x41,0x2a,0x3d,0x24,0xc1,0x56,0xb9,0x4,0xc2,0x70,0x95,0x46,0xc2,0x1f,0x8,0x69,0x42,0x6b,0x1d,0xdb,0xc0,0x33,0x2e,0x82,0xc2,0x62,0xc8,0xdf,0xc0,0xd,0x94,0x25,0x42,0xf8,0xa5,0x46,0xc2,0x4c,0x36,0x9a,0xc2,0xc4,0xd9,0x49,0xc1,0x8b,0xdf,0x92,0xc1,0xa,0x7c,0x27,0xc1,0x1c,0xb2,0x2,0x42,0xc5,0xfd,0xcf,0x41,0x32,0xea,0x9c,0x42,0xb6,0xa8,0x54,0x42,0x9c,0xa7,0x6a,0xc1,0x5e,0x3c,0xf,0xc2,0x3e,0x62,0x3b,0xc0,0x8,0xc2,0x14,0x42,0xe6,0x4f,0x99,0x41,0x1e,0x4c,0x8,0x42,0x64,0xb8,0x1c,0x41,0x6c,0x47,0x50,0x42,0x9f,0x7b,0x21,0x41,0x52,0x96,0x88,0xc2,0xd0,0xb1,0x7d,0x41,0x65,0x7d,0x77,0xbf,0x56,0xfa,0xff,0xc1,0xea,0x22,0xc6,0xc1,0x3b,0xba,0x3,0x42,0xe8,0xdd,0xc4,0xc0,0x1,0x6b,0xcb,0xc1,0x35,0x21,0xa9,0xc1,0x30,0x1e,0x68,0x40,0xc4,0xc8,0x85,0xc1,0x3c,0xcc,0xab,0x41,0x46,0x32,0x20,0x3f,0x2b,0x4f,0x3c,0xc2,0x6d,0x22,0x53,0xc2,0xb6,0x5e,0xf7,0xc1,0x94,0x73,0x9,0x42,0xb4,0x90,0xf0,0xc1,0x1e,0x12,0x89,0x41,0x1f,0x1e,0x64,0xc0,0x32,0xfe,0xb2,0x41,0x2b,0xe,0xc2,0xc1,0x19,0xc0,0x9,0xc2,0x3c,0xc,0x7f,0x42,0xdc,0xcd,0xb2,0xc2,0xfc,0x5,0xf8,0xc0,0x4f,0x75,0x0,0x42,0xdf,0x42,0x77,0xc2,0xc3,0x30,0x2d,0x42,0x83,0x12,0x73,0xc1,0x7f,0xce,0xc9,0xc2,0xc6,0xc5,0x85,0xc2,0xc4,0x1a,0xbf,0x40,0xdd,0x7a,0x32,0x42,0x86,0x86,0xdb,0xc1,0xe0,0x50,0x8b,0x3e,0x27,0xa7,0x15,0xc1,0x74,0x58,0x3f,0xc2,0x40,0xe,0x2,0xc2,0x92,0xf8,0x70,0xc1,0xb6,0xa8,0xd7,0x42,0xc,0x37,0x0,0x42,0x17,0x38,0xb1,0xc1,0xec,0x63,0x8a,0xc1,0x4c,0xa3,0xa5,0x42,0xf3,0x58,0xb2,0x41,0x36,0xd9,0x36,0xc1,0xd6,0x32,0x22,0x42,0xc9,0x74,0x27,0xc2,0x54,0xb,0x68,0xc0,0xac,0x2e,0x8b,0x42,0xe3,0xb9,0xbd,0xc2,0x2d,0xd,0x2a,0x42,0xb3,0xb8,0xf1,0x41,0x76,0xcb,0xe8,0xc1,0x63,0x85,0x69,0xc1,0x5a,0xeb,0x4b,0xc1,0xb1,0xa0,0x8a,0x42,0x40,0x69,0x34,0xc1,0xee,0x81,0x18,0x42,0x46,0xfa,0x41,0x42,0x10,0xdc,0xa3,0x42,0x2a,0x0,0x75,0xc2,0x46,0x7d,0x8,0xc2,0xf0,0x23,0x86,0x41,0x3,0x10,0x90,0x40,0x1e,0xca,0x8b,0x3f,0x5c,0xe7,0x3d,0x42,0xfb,0x56,0x29,0x42,0x26,0x2,0xe2,0xc0,0x2b,0x2a,0xad,0x41,0xaa,0x52,0xe,0x42,0x1b,0xcd,0x88,0xc1,0x78,0xcd,0x6f,0xc2,0x40,0x7b,0x6,0x3f,0xc2,0x57,0x96,0xc1,0x35,0x71,0x86,0xc1,0x4d,0xb4,0xe9,0xc2,0x21,0xc4,0x7b,0x42,0x58,0xb4,0x9d,0xc0,0x86,0x2f,0x8,0xc0,0xbf,0xdb,0x71,0x42,0x94,0xdc,0xb1,0x40,0xf8,0xf1,0x37,0xc2,0x90,0x1f,0xee,0x3e,0xae,0xad,0x4e,0x41,0xe2,0xb4,0x81,0xc2,0x57,0x87,0x98,0xc2,0xaa,0x3e,0x80,0xc1,0x7e,0xd9,0x4,0x42,0x6,0x3a,0x9e,0x42,0x52,0xaf,0xa3,0xc0,0x68,0xe4,0xd7,0xc1,0x54,0x10,0xef,0x41,0x29,0x10,0x4c,0xc2,0x50,0xf2,0x44,0xc1,0x6c,0xaf,0xd0,0xbf,0x88,0xcd,0x1,0x42,0x2d,0xf0,0x34,0x42,0xc6,0x18,0x3f,0xc2,0xc6,0x4e,0x1d,0xc1,0x77,0x87,0xc2,0xc1,0x6e,0xc9,0x95,0x42,0x1d,0x77,0x0,0xc2,0x22,0x10,0xd2,0x40,0xfb,0xe,0xea,0x3f,0x5a,0x4,0xba,0xc1,0xb0,0x42,0xc0,0x41,0x1a,0x7d,0xd0,0xc1,0x56,0x4e,0xf1,0x42,0x2,0x24,0x13,0xc2,0x1,0x1c,0x64,0x42,0xd4,0xb3,0xf0,0x41,0xcf,0x12,0x91,0xc2,0xe,0xca,0x22,0xc2,0x9b,0xd5,0xe8,0x41,0xd3,0x58,0xd0,0x41,0xe2,0xd7,0x7a,0x42,0x84,0xe6,0x33,0xc0,0x5d,0x8c,0xa0,0xc2,0x9f,0x5,0x6e,0x42,0xc8,0xe7,0x86,0x42,0xe9,0xc8,0x8d,0x41,0x9e,0x0,0x44,0xc2,0xea,0x55,0x2c,0xc0,0x5b,0x4c,0x43,0x42,0xaa,0xed,0xdc,0xc1,0xb0,0x7f,0x28,0xc1,0x53,0xca,0xdd,0x40,0x7f,0xd3,0xed,0x41,0xb4,0xe9,0xf,0x42,0x48,0x82,0xab,0xc1,0xb2,0x78,0x8a,0xc1,0x2f,0x82,0xa,0x42,0xcb,0x88,0xa8,0x41,0xcd,0x80,0x67,0x42,0xc3,0x2c,0x98,0x41,0x5c,0x7a,0x87,0xc1,0x2e,0x6a,0x71,0x41,0xf8,0x61,0x83,0x41,0xe1,0xb2,0xf,0xc1,0xda,0x77,0xf8,0xc1,0x0,0xeb,0x8e,0x42,0xb8,0x8f,0xb6,0x40,0x7b,0xa,0x25,0xc2,0x8a,0xd,0xcf,0x41,0xfa,0x74,0xda,0x41,0x5e,0x62,0x7e,0xc1,0x40,0x1b,0x26,0xbd,0x84,0x76,0x92,0x42,0x65,0x77,0x82,0x3f,0x8c,0xb6,0xd2,0xc1,0xca,0x7d,0x39,0xc1,0xb2,0x59,0x96,0x41,0x52,0x9,0xf8,0xc2,0x80,0x16,0x27,0xc1,0x9a,0xa6,0xda,0x3f,0x4,0x6,0xdc,0x41,0x85,0x6c,0xa,0xc2,0x5f,0x41,0x1b,0x42,0x2a,0x55,0x72,0x42,0x2a,0xce,0x73,0x42,0x54,0x4a,0xf2,0xc1,0xb1,0xa0,0xcf,0xc1,0x9,0xcd,0x26,0x42,0xd5,0x48,0x81,0xc2,0x71,0x64,0xcb,0x41,0xdc,0x7c,0x64,0xc1,0x43,0x70,0xd9,0x41,0x85,0x5e,0xa3,0x42,0x98,0x1f,0x5a,0xc2,0xa1,0x85,0xe6,0x41,0x49,0x92,0xa4,0x42,0xfa,0x29,0xdb,0x41,0x64,0x7f,0xd5,0xc2,0x5e,0x3f,0xc4,0xbf,0xec,0x7a,0xb7,0x3f,0xed,0xa3,0x38,0xc2,0x90,0xc9,0x84,0x41,0x45,0xf4,0x17,0xc1,0xcf,0x67,0xe,0x41,0xda,0x66,0x20,0xc1,0xc2,0x0,0xac,0xc2,0x9b,0x30,0xec,0xc0,0x14,0xbb,0x7b,0xc1,0xa3,0xf2,0x30,0x41,0x69,0x55,0x36,0xc1,0xab,0x1e,0x6e,0x40,0xa,0x32,0x23,0x42,0xed,0xc1,0xde,0x41,0x28,0x38,0x13,0x3f,0xe2,0x16,0x60,0xc1,0x1e,0x64,0x37,0xc2,0x81,0xf6,0x70,0x42,0x81,0xb8,0xfd,0xc1,0xb8,0x7d,0xb0,0xc2,0x1f,0x97,0x0,0x41,0xb3,0x37,0x49,0xc2,0x53,0x32,0x37,0xc1,0x8a,0x2d,0x97,0xc2,0x2a,0xd2,0x27,0x41,0x68,0xa4,0x0,0xc1,0x97,0x2d,0x7f,0x42,0x87,0x0,0x30,0xc2,0x2a,0x47,0x3c,0x42,0xf8,0x5b,0x8f,0x41,0xbe,0xde,0x56,0x42,0xd1,0xb9,0x47,0x42,0x8c,0x71,0xea,0x40,0xfc,0x3,0x3d,0xc0,0x18,0x20,0x48,0xbe,0x61,0xdb,0xa,0x41,0x51,0x6f,0xf1,0x40,0xf0,0xca,0x85,0x41,0x46,0xbf,0x21,0xc2,0x9b,0xc5,0x33,0xc2,0x71,0x76,0x78,0xc2,0xe9,0xd2,0xa5,0x41,0x1f,0xd,0x91,0x42,0x17,0x77,0x1,0x42,0x6e,0xf5,0x8b,0xc2,0xcb,0xdd,0x8,0x42,0x43,0x5b,0xe0,0xc1,0xd6,0x97,0x33,0xc2,0xec,0xfa,0x30,0x42,0xbc,0xa1,0xf4,0xc1,0x9a,0x10,0x17,0x42,0xec,0x1d,0x62,0x42,0xed,0xcf,0x9a,0x41,0xcc,0xda,0x4f,0x42,0x5b,0x77,0x17,0x41,0xb4,0x59,0x29,0x42,0x4c,0x6d,0xb4,0xc1,0x72,0x32,0x3f,0x42,0xc4,0x67,0x1d,0xc2,0xcc,0x10,0xd5,0xc1,0x7c,0xea,0x8e,0x41,0x11,0x7,0xd4,0x41,0xf6,0x95,0xf9,0xc1,0x26,0x1,0x6c,0x40,0x39,0xce,0x65,0xc2,0xb8,0x3a,0xdd,0xc0,0x9e,0xa,0xc4,0x42,0x5f,0xf3,0xc0,0xc1,0x94,0xe8,0xb5,0x40,0xb5,0xd8,0x14,0x41,0xfe,0x5,0xfb,0x41,0xee,0xe0,0x12,0xc2,0xdc,0x4b,0xe9,0xc1,0x7e,0x4d,0xfc,0x41,0x59,0x79,0xa8,0xc0,0x98,0x26,0xc,0xc2,0x1e,0xd6,0x40,0x42,0x93,0xf2,0x61,0xbf,0x4a,0xe7,0x17,0x42,0xb1,0x77,0x2d,0xc2,0x4d,0x12,0x8,0x41,0xd2,0x2b,0xc4,0x3f,0xef,0x11,0x90,0x41,0x51,0xef,0x3c,0x40,0xac,0x12,0xf7,0xbf,0x38,0xc2,0x57,0xc1,0xa,0x80,0x41,0xc2,0xeb,0x31,0x40,0xc1,0x6f,0x51,0xb,0x42,0x72,0x46,0x44,0xc1,0xac,0xf3,0x2c,0xc2,0x62,0xd2,0xd2,0xc1,0xf5,0xd5,0x95,0x3f,0x20,0xdd,0x2b,0xbe,0x40,0xef,0x6d,0x41,0x4a,0x99,0x97,0x40,0x12,0xa5,0x19,0x42,0x60,0xf6,0xde,0xc1,0x5d,0x8a,0xb0,0x40,0x34,0x28,0x84,0xc2,0xa0,0xfd,0x2,0xbf,0xf5,0x45,0x49,0xc2,0x98,0x92,0x24,0xc1,0x0,0xef,0x46,0x3e,0x66,0x3e,0x34,0x42,0x48,0x9c,0x14,0xc2,0x5b,0x4,0x8,0x42,0xda,0x77,0x3f,0x41,0x66,0x84,0x97,0x40,0x8,0x7c,0xc3,0x40,0xd,0x50,0x3f,0x42,0xd5,0x2e,0x18,0x42,0xae,0x6a,0x35,0xc2,0xd6,0x1,0x7f,0xc1,0x7e,0xfe,0x4f,0xc2,0x22,0x33,0x42,0xc1,0xc1,0x50,0x17,0x41,0x84,0xfa,0xd,0xc2,0xdc,0xc,0x4d,0xc1,0x40,0x97,0x30,0x42,0x45,0xf8,0xab,0xc1,0x3f,0x84,0xc6,0x40,0x2f,0xdc,0xec,0xbf,0x3,0xcc,0xc6,0xc1,0x3f,0xda,0x1c,0xc2,0x44,0x26,0x4f,0xc1,0xe0,0x52,0x14,0x42,0xb4,0x29,0x94,0xc1,0x69,0xdc,0x94,0x42,0x8,0xf1,0x18,0x41,0xb4,0x40,0xea,0x41,0x14,0xc,0x7c,0xc2,0x31,0xb8,0x37,0x40,0x38,0x2f,0x99,0x42,0x30,0x5,0x8d,0x41,0xf4,0x60,0x5c,0x42,0x53,0x37,0x6e,0xc2,0xae,0x9a,0xc9,0xc1,0x63,0x1a,0xc2,0x41,0xd3,0x41,0x99,0x41,0x91,0x4e,0xed,0x40,0x80,0xd9,0xb9,0xc1,0xad,0x4e,0x7,0x42,0x6,0x3d,0x57,0xc2,0x79,0x7a,0x15,0x42,0xd3,0xbd,0x26,0xc2,0x24,0xe,0x8,0x41,0x9,0x47,0x8e,0xc2,0xb4,0xe9,0x1f,0xc1,0xf1,0xed,0x8e,0xc1,0x1a,0x3f,0xe3,0xc0,0x18,0xd4,0x9d,0xc1,0x12,0x93,0x75,0xc1,0xba,0x32,0x13,0x40,0xa2,0x95,0x18,0xc2,0x17,0x15,0x3a,0x40,0x18,0x20,0x1d,0x42,0x4,0x2,0xaa,0x41,0x41,0x23,0xb,0xc2,0x3e,0x5f,0x5,0x41,0x14,0xd,0x51,0xc0,0xef,0x7f,0x4a,0x41,0xa5,0xa9,0x37,0xc2,0x3b,0x65,0x35,0x42,0xd6,0xc5,0xea,0xc1,0xad,0xd4,0x0,0x42,0x68,0xda,0x7f,0x41,0xed,0xc9,0xf6,0xc1,0x6e,0xc0,0x81,0x42,0x6e,0x91,0x95,0x41,0x2b,0xcf,0x13,0x41,0xa4,0x9e,0xd,0x41,0xd7,0x2f,0x43,0x42,0x69,0x43,0x3d,0x42,0x25,0xae,0x5d,0x40,0x18,0xb4,0x2,0x40,0xe0,0xe4,0x4b,0xc1,0x92,0x93,0xd1,0x41,0x1b,0x1f,0xfc,0x41,0x7f,0xc,0x5c,0xc2,0xf6,0x24,0xd3,0x40,0xf0,0xe,0x3,0x41,0xe0,0x44,0x95,0xc1,0x72,0x36,0x5b,0x41,0xe1,0xe0,0x9,0x41,0x94,0xc9,0xb,0x40,0x13,0xb4,0x57,0xc1,0x8e,0xca,0x14,0x42,0x20,0x4b,0x77,0xc1,0xd1,0x82,0x35,0xc2,0x2b,0xc0,0x3e,0x42,0xce,0x85,0xc5,0x41,0xa6,0xfa,0x81,0xc1,0xfe,0xd6,0x51,0x41,0x77,0xd4,0x29,0xc0,0xbb,0xd0,0x31,0x42,0x30,0x52,0x9a,0xc1,0xb8,0x95,0xf1,0xc0,0x4c,0xda,0x1c,0x41,0xa6,0xff,0x44,0xc1,0x1,0xb3,0x2f,0xc1,0xb3,0x9,0x9e,0xc1,0xae,0xe9,0x44,0x41,0xc4,0xcc,0xa,0x41,0xae,0x9d,0x51,0xc2,0xa5,0xd0,0xf9,0xbf,0x79,0x7f,0x95,0x41,0x96,0x40,0x49,0xc1,0x99,0x96,0x25,0x41,0x57,0x4f,0xc1,0xc1,0x28,0x7,0x2c,0x41,0xe9,0x75,0x3f,0x42,0x19,0x4d,0x5d,0x42,0x66,0x18,0x18,0xc1,0xb8,0xd6,0x59,0x41,0x1c,0xfc,0x9b,0xc1,0x68,0xdf,0x60,0x40,0x4b,0xb3,0xab,0x41,0xb5,0x58,0xf0,0xc1,0xfc,0x10,0x24,0x41,0xab,0x4d,0x3b,0x42,0x9c,0xb2,0x69,0xc2,0xf5,0x5d,0x91,0x41,0x67,0x64,0x53,0xc1,0x98,0xa7,0x7c,0xc1,0x1f,0xc2,0xaa,0x41,0xdd,0x2d,0x59,0xc1,0xba,0xf1,0xaa,0x41,0xaf,0x7,0xa,0xc2,0x5c,0x44,0xa5,0xc1,0x26,0xa6,0xba,0xc0,0x40,0x68,0x85,0x41,0xcb,0x2,0x30,0xc1,0xa0,0xba,0x21,0xbe,0xe,0xca,0xf0,0xc1,0xfc,0xf,0xc5,0xc0,0x3e,0xaa,0x74,0x41,0xca,0x3d,0xef,0x40,0x98,0x3a,0x1f,0x3f,0xea,0x93,0xa6,0xc2,0x82,0x90,0xa8,0xc2,0xb3,0x8b,0x25,0xc2,0xca,0x12,0x41,0x41,0xc5,0xf7,0xf,0xc2,0xe1,0x6f,0x1,0xc1,0x67,0xe7,0xd,0xc2,0x14,0xcb,0x36,0xc2,0x20,0x46,0x5a,0xc1,0x2c,0xb6,0xa,0x42,0xec,0x3b,0xf6,0xc1,0xb8,0x9f,0x4c,0xbf,0xb1,0xe4,0xc4,0x40,0x3c,0xe0,0xd9,0x40,0x6a,0x30,0x17,0x42,0x6,0x71,0x51,0xc2,0x77,0x25,0xa2,0xbf,0x63,0x3e,0x0,0xc2,0x75,0xd1,0xeb,0x40,0xa2,0x93,0xea,0xc1,0x90,0x7b,0x5f,0x42,0x64,0xfb,0xa5,0x42,0x9a,0xeb,0xa6,0xc1,0x65,0x99,0xa8,0xc2,0xac,0xec,0x6c,0xc1,0x28,0x76,0x8e,0x3f,0xe2,0x2d,0xb5,0x40,0xe3,0x71,0x8e,0xc2,0x55,0xf6,0x24,0xc2,0x35,0x5a,0x22,0xc1,0x1,0x1b,0x65,0x41,0x94,0xa,0x5,0x42,0x4c,0xa4,0x7b,0xc2,0x2b,0x21,0x2,0x42,0x8d,0xe3,0x5e,0xc2,0xaa,0x1e,0xd,0x41,0xf8,0xf3,0xb6,0x42,0x7,0x73,0x30,0xc2,0x60,0x2c,0x9c,0x42,0x96,0xd5,0xa6,0xc1,0xa5,0x64,0xbc,0x41,0x1d,0xb4,0x38,0x42,0x71,0x4,0xaf,0xc0,0xa,0x5a,0x6f,0x41,0xf0,0x4d,0x28,0x3e,0xe8,0x2f,0x5,0xc2,0x2f,0xcf,0x2,0x42,0x84,0xb8,0x1e,0x42,0x73,0x14,0x2c,0xc2,0x74,0xf5,0xa4,0x42,0x7c,0xf9,0x2f,0xc2,0x1c,0xd0,0x33,0xc2,0x66,0xc7,0x78,0xc2,0xf6,0x7c,0xca,0x41,0xa8,0x10,0x33,0xc1,0x7e,0xdd,0xc6,0x40,0xa2,0xf0,0x97,0xc1,0xed,0xc3,0xd4,0xc1,0xf3,0x6d,0x56,0xc1,0xd2,0x6,0xd5,0x41,0xb9,0x7,0x43,0x40,0x50,0xd5,0x7,0x41,0x76,0x89,0x8e,0xc1,0x35,0x16,0x88,0xc2,0x60,0x7,0xd3,0x40,0x86,0x7f,0x4a,0x42,0x99,0x38,0x87,0xbf,0xa2,0xbb,0xb3,0xc0,0x1e,0xd4,0xac,0xc2,0xc2,0xaf,0x81,0xc1,0x40,0x15,0x65,0x41,0x5a,0x5b,0xe4,0xc0,0xf5,0x88,0xcd,0xc1,0x4,0xe3,0xdd,0xbf,0x1e,0xeb,0xe4,0xc0,0x96,0x7b,0x23,0x41,0xd0,0xdf,0x77,0x42,0x27,0x42,0x38,0x42,0x5e,0x7f,0x5c,0xc0,0x6a,0x6e,0x2,0xc1,0xa8,0x32,0xd5,0x41,0xa9,0xf5,0x98,0x42,0xd0,0x9f,0xa8,0x41,0x96,0x3,0x1,0xc1,0x44,0xc4,0xbe,0xc1,0x13,0x24,0xba,0xc2,0x80,0xbc,0xb6,0xc2,0xe8,0x23,0xfd,0x41,0x99,0xcb,0x1a,0xc2,0x13,0xa1,0x2e,0xc1,0x3a,0x5e,0xfa,0xc0,0x4c,0x1b,0x21,0x42,0xa8,0x36,0x90,0x40,0xa7,0x43,0x95,0x40,0x72,0x7,0xf9,0x41,0x8a,0xc4,0x99,0x41,0x4e,0x68,0x5a,0xbf,0x4f,0xb1,0xd,0x40,0x24,0x54,0x12,0x41,0x9d,0x4f,0x6f,0xc2,0xf0,0xd6,0x3c,0xc2,0x35,0xf5,0x3f,0x41,0xa6,0x35,0xf3,0xc1,0x18,0x16,0xb,0xc1,0xf4,0xa0,0x2d,0xbd,0x75,0xcb,0x32,0x42,0xe7,0xb,0x7d,0xc0,0xdf,0x5d,0x21,0x42,0x26,0x3a,0x34,0x41,0x1b,0x9f,0x21,0xc2,0x26,0x71,0xef,0x41,0x1e,0x9a,0xad,0x41,0x58,0xa3,0xe6,0xc1,0x50,0x99,0x8a,0xc2,0xbc,0xa0,0xbf,0x40,0x2,0xd9,0xc5,0x41,0x4c,0x72,0x49,0x41,0xb8,0xc1,0x8d,0x42,0xbf,0xfb,0xac,0x42,0xe2,0x70,0x9,0x42,0x49,0xdb,0xa7,0x41,0x53,0x3b,0x81,0x41,0x40,0x72,0x4e,0x42,0x53,0x1f,0xef,0x41,0xc7,0xd,0x7b,0xc0,0xf4,0xf5,0x40,0xc2,0x87,0xb7,0xa0,0x41,0xad,0x67,0xb5,0xc2,0xb5,0x83,0x9f,0x42,0xe8,0x17,0x94,0xc2,0x70,0x59,0x24,0xc1,0x7a,0xb3,0x51,0x42,0xfd,0x2f,0x83,0x42,0x84,0x6,0xb9,0x41,0xcc,0x2a,0x13,0x42,0x3b,0x6c,0x10,0x42,0xbc,0x73,0x93,0x41,0xdb,0x59,0x71,0xc2,0xe8,0x54,0x65,0x42,0xfa,0xe8,0x4,0x42,0xcf,0x32,0x20,0x41,0xb4,0x78,0x3f,0xc2,0x2d,0x71,0x5d,0x41,0xe7,0xe9,0x90,0x42,0x54,0xf4,0xe7,0x41,0x9,0x2f,0x37,0xc1,0xf2,0x59,0x22,0xc2,0xfa,0x6f,0x13,0xc2,0x1b,0xbd,0x7,0xc2,0x8a,0x77,0xce,0x40,0x85,0x67,0xae,0x41,0xab,0xbc,0x29,0xc1,0x8e,0x2e,0xb2,0xc1,0x23,0x37,0x26,0x42,0x26,0x9c,0xa3,0xc2,0x56,0x7,0x25,0x41,0x4d,0x54,0xc,0x42,0xc4,0x66,0x40,0x42,0xaf,0x78,0x41,0xc2,0xff,0xd9,0x5c,0xc2,0xe6,0x26,0x2b,0x42,0x55,0xd7,0x3,0xc2,0xe2,0x56,0x28,0x42,0x25,0xd0,0xb1,0x40,0x6,0x69,0xef,0x41,0x9c,0xf4,0x4,0x3f,0x70,0x3e,0x66,0x41,0x94,0xe8,0x46,0xc2,0x39,0xed,0x7c,0x40,0x84,0x98,0x6f,0xc0,0x95,0xdb,0x13,0x42,0x49,0xe9,0xe9,0x41,0xa6,0x20,0x8e,0x42,0x99,0xbc,0x1c,0xc1,0xd4,0x3f,0x9f,0x40,0x92,0x11,0xd5,0xc0,0xed,0x69,0x2e,0x42,0xec,0x3d,0x59,0xc1,0xcb,0xa0,0xb1,0xc0,0xf7,0x5,0xc4,0x42,0x34,0x3c,0xed,0x41,0xf2,0x4a,0x3a,0xc1,0xe2,0xe3,0xaf,0xc1,0xd3,0xb,0xe3,0x41,0x30,0xa8,0xbc,0x3e,0xb9,0x73,0xb1,0xc2,0x62,0x88,0xe7,0xc0,0x81,0x52,0x3c,0x42,0xb1,0xb8,0x5e,0x42,0x51,0xa,0x7b,0x40,0xa6,0xe4,0x74,0x41,0x3d,0x76,0x58,0x42,0xb7,0x7c,0xb,0xc2,0x86,0xf6,0x35,0x41,0x67,0x84,0xfe,0xc1,0x54,0xe2,0xaf,0xbf,0x1e,0xeb,0x39,0x42,0x83,0x72,0xdc,0x41,0xc8,0x23,0xf9,0xc1,0xbf,0xae,0xf0,0x41,0xe,0x1e,0x58,0xc1,0x8a,0x77,0x41,0xc2,0xc7,0x4f,0x6a,0x42,0x92,0xac,0x24,0x42,0xbe,0xc7,0x20,0x42,0x2b,0x35,0x84,0xc0,0x5d,0x6e,0x59,0xc1,0x8e,0x8,0x44,0x42,0x33,0x62,0x14,0xc1,0x36,0xad,0x77,0x42,0xbe,0x77,0xd8,0x41,0xc,0x7d,0x55,0x41,0xc2,0x73,0x85,0xc2,0x2e,0x5c,0xa7,0x42,0x33,0x9d,0x19,0xc2,0x15,0xc7,0x26,0xc1,0x30,0xcc,0x6,0x42,0x6a,0xd2,0x11,0x42,0x54,0xd2,0xb5,0x41,0x2f,0x21,0xb7,0x42,0x3b,0xa4,0xb4,0x41,0xe0,0x21,0x54,0xc2,0xc,0x9d,0xf0,0x40,0xb3,0xb4,0xe2,0xc1,0x31,0x47,0x43,0x42,0x20,0x38,0x23,0xc1,0x8f,0x3c,0xb4,0xc2,0x8b,0xe7,0x8d,0xc1,0xe0,0xaf,0x44,0x42,0x80,0x32,0x29,0x41,0xe8,0xa4,0xa4,0xc1,0x38,0x63,0x40,0xc2,0x66,0xed,0x5e,0x42,0xd2,0x8f,0x38,0x42,0xd0,0xb0,0xb,0x41,0xa,0xc9,0x33,0xc1,0xd8,0x75,0x23,0xc1,0xc0,0x8f,0xb,0xc2,0x4b,0x84,0x16,0x42,0xda,0xd8,0xe9,0xc1,0xc4,0xd7,0x46,0x42,0xe6,0xe5,0x29,0x42,0x92,0xa3,0x39,0xc2,0xc7,0xb5,0x66,0x42,0xb3,0x9a,0x1c,0xc2,0x6d,0x92,0xc1,0xc2,0x1c,0x21,0x7f,0x40,0x90,0x39,0x8d,0x42,0xd0,0x18,0x31,0x41,0xce,0x52,0xab,0xc2,0x29,0x3f,0x83,0xc1,0xd1,0x71,0x2f,0xc2,0xd5,0x1b,0x31,0x42,0xec,0xb8,0xa9,0x42,0x96,0x84,0x6e,0xc2,0x5c,0xcc,0xe0,0x41,0xb7,0x5b,0x1e,0x40,0x4c,0x31,0x38,0x40,0x9e,0x40,0x3,0x42,0xc3,0x5d,0xd5,0x41,0x2b,0xc3,0x9d,0x41,0x34,0xa7,0x33,0x40,0xaf,0xe6,0x46,0xc1,0xaa,0x53,0x89,0x40,0x48,0x70,0xad,0x41,0xa4,0x77,0x3d,0xc0,0xf5,0x1a,0xbf,0xc2,0xa1,0x80,0x83,0x42,0x8f,0xb2,0xe1,0xc1,0xaf,0xde,0xe2,0xc1,0x4,0xad,0x66,0x41,0x73,0x8c,0x2e,0xc1,0x72,0x8,0x75,0xc0,0x69,0x97,0x10,0xc2,0xf1,0x6e,0x98,0xc2,0xe2,0xa,0x82,0xbe,0x46,0xcd,0xbf,0x41,0x46,0xe2,0x4f,0x42,0x15,0x86,0xd3,0xc2,0xfa,0x9c,0x35,0xc2,0x0,0x6e,0xc3,0x40,0x66,0x69,0x6c,0x41,0x45,0xed,0x19,0x41,0xe0,0xc8,0x89,0x41,0x8e,0x50,0xc7,0x41,0x38,0x71,0x24,0xc1,0x13,0xb,0x98,0xc2,0xe1,0x79,0x8d,0xc2,0x6a,0x4e,0x1a,0xc2,0x36,0x74,0x20,0x41,0xd3,0xe7,0x3,0x40,0xe2,0x1f,0x83,0x41,0x5b,0x55,0x28,0xc2,0x88,0xed,0xf3,0x41,0x74,0xbe,0xfa,0xc1,0x24,0xc7,0xef,0x40,0x8f,0x71,0x17,0xc2,0x83,0xdc,0x8d,0x41,0xa7,0x4f,0xd5,0xc1,0xba,0x30,0xa8,0xc2,0x31,0xf4,0xf0,0xc1,0x28,0xda,0x5c,0xc1,0xae,0x5c,0xde,0x41,0x40,0x51,0x2f,0xbf,0xa1,0xa3,0xcf,0xc1,0xa5,0x0,0x63,0xc2,0x88,0xdb,0xa5,0x3e,0xde,0x44,0x50,0xc2,0x11,0x6e,0x50,0xc2,0x4,0x4f,0xa4,0xc0,0x6,0x92,0x3b,0xc2,0xc3,0x73,0xb9,0xc2,0x10,0x99,0xda,0x40,0x11,0xf6,0x1f,0xc1,0x44,0x1b,0xff,0x40,0x68,0x99,0x4b,0x42,0xda,0x36,0x6b,0xc1,0x8a,0x42,0x8b,0x42,0x76,0xe1,0xa5,0xc1,0x9d,0x16,0x1b,0xc2,0xa7,0x17,0xe7,0x41,0x24,0xcb,0xb7,0xc2,0xb5,0xe9,0x92,0x40,0x95,0xbb,0xd8,0xc2,0xf1,0x37,0x80,0xc1,0xe7,0x76,0x14,0x41,0x52,0x2,0x8b,0x40,0xd4,0x87,0x5f,0x40,0xf3,0x56,0x14,0x42,0xbf,0x4,0xe4,0x41,0x63,0x5b,0xbb,0x41,0x3c,0xc3,0x19,0x42,0x1d,0xbd,0x3f,0xc1,0x19,0xa2,0x66,0x42,0x54,0x76,0x9b,0xc2,0xa8,0x4a,0x7e,0x41,0xfe,0x8a,0xcb,0xc1,0x6c,0x40,0x2,0xc2,0xee,0xf6,0x43,0x42,0xe6,0x77,0x72,0x41,0x5d,0x54,0xbf,0xc1,0x60,0x47,0x3b,0x42,0xd5,0xd5,0xb7,0xc1,0xbd,0xd6,0xfe,0x41,0x97,0x1,0x60,0x42,0x69,0xe9,0x7,0xc0,0x15,0x45,0x8,0xc2,0xf1,0x2c,0x29,0xc2,0x62,0xa5,0xb,0x42,0xbd,0x7b,0xa1,0x42,0xae,0x39,0xb9,0xc2,0x1a,0x3d,0x28,0x42,0x12,0xfa,0x4f,0xc2,0xf9,0x5f,0x36,0x41,0x3e,0xc7,0x20,0x41,0xce,0xd1,0xb6,0xc1,0xbc,0x44,0x51,0xc2,0x2a,0x25,0xfd,0x40,0x1c,0x8b,0x96,0x41,0xba,0x64,0x80,0xc1,0xb7,0x9f,0xa7,0x42,0x5a,0xb8,0xc1,0x41,0x9c,0x14,0x83,0xc1,0x61,0xbe,0xfc,0xc1,0xe7,0x66,0x59,0x41,0x83,0x92,0x1f,0xc2,0xc4,0x86,0x51,0x42,0xbd,0x48,0x19,0xc2,0x6e,0x7,0xaf,0xc2,0x27,0x98,0xfb,0xc1,0x3c,0xf,0x4a,0xc2,0xaf,0xca,0x59,0x42,0x3e,0x63,0x98,0xc1,0x51,0x4a,0x84,0x41,0xb5,0x16,0xcc,0xc1,0x53,0x83,0x87,0x42,0x18,0xa4,0xa9,0x42,0x39,0x56,0x8b,0xc2,0x6f,0x1c,0xab,0xc2,0xa7,0xb9,0xeb,0xc1,0x79,0x3b,0xa1,0x41,0xd5,0x17,0x9,0xc2,0xce,0xb2,0xf0,0x40,0x85,0x67,0x11,0x42,0xd7,0x6e,0xb4,0xc1,0x40,0xe,0x9d,0x42,0xbc,0xd9,0xf2,0xc1,0x3b,0xc2,0x14,0xc1,0x78,0xa5,0x19,0xc2,0x96,0xf5,0x12,0xc1,0xcd,0x28,0x85,0x41,0x73,0xda,0xf5,0x41,0xa6,0xe7,0x89,0xc2,0x5e,0x73,0xb9,0xc1,0xbd,0x4a,0x49,0x41,0x25,0xd9,0x8a,0x42,0x8d,0x98,0x69,0xc1,0xf0,0xd3,0xef,0x3e,0xa0,0xfa,0x9,0xc1,0x20,0x59,0x3b,0xc2,0xe1,0x71,0x7d,0xc2,0x8f,0xe8,0xa7,0x41,0xa9,0x4d,0x16,0x42,0xc6,0x5c,0xe0,0xc1,0x38,0x72,0x35,0x42,0xe8,0xe5,0x8e,0xc1,0x6c,0xa8,0xdb,0xc1,0xde,0x63,0x18,0xc0,0xcb,0x4c,0xca,0x3f,0x46,0x3e,0xb9,0x40,0xe3,0xed,0xe5,0x41,0x65,0x60,0x26,0xc2,0xbd,0x45,0x8e,0x42,0x4d,0x5f,0xd,0x41,0xa5,0x68,0xd3,0xc1,0x1e,0x27,0xcb,0x40,0x28,0x9c,0x1b,0xc1,0x65,0x12,0xd5,0x41,0xc6,0xde,0xab,0xc1,0x93,0x1d,0x4,0x41,0x3f,0xcf,0xe6,0x40,0xe0,0xb5,0x1a,0xc2,0xe,0x1e,0x16,0x42,0x93,0x8e,0x9b,0xc2,0xaa,0xa5,0xda,0xc0,0xf8,0xb,0xba,0x41,0x99,0x14,0x39,0x41,0x3a,0xdd,0xb3,0x41,0xd8,0x1d,0x61,0x41,0x8e,0xf4,0xc9,0xc2,0xb4,0x17,0xaf,0x41,0x94,0x6f,0xef,0xc0,0xd2,0xe2,0x92,0x42,0x83,0xb1,0xfa,0x41,0x73,0x21,0x89,0x41,0x9d,0x21,0x55,0xc1,0xf0,0xf0,0x60,0xc0,0xc0,0xa,0x8a,0x42,0x47,0x41,0x13,0xc2,0x79,0x56,0x82,0xc1,0xda,0x6a,0x2b,0xc2,0xb1,0x49,0xd4,0xc1,0xe7,0x50,0x4a,0xc1,0x97,0xe7,0x97,0xc2,0xe0,0x93,0x1b,0xc2,0xfa,0x25,0x2b,0xc2,0xbc,0xbf,0x1d,0x40,0xe9,0x8,0x77,0xc2,0xca,0xfb,0x71,0x42,0x4f,0x40,0xf3,0x41,0x3a,0x84,0xe9,0x41,0x40,0xbb,0xe2,0xc0,0xa0,0xaa,0x55,0xc1,0x5c,0xf,0x29,0xc1,0x97,0xf0,0x3e,0xc1,0xee,0x64,0xb6,0x41,0x54,0xfe,0x83,0x41,0xec,0x97,0xb7,0x41,0x73,0x79,0x27,0xc2,0x13,0xb8,0x35,0x41,0xc0,0x3d,0x13,0x41,0xce,0x97,0x33,0xc2,0x10,0xb9,0x13,0xc2,0x42,0xd4,0x33,0x42,0xc4,0x27,0x6c,0xc2,0x50,0xe0,0xa4,0xc1,0x9,0xb2,0xa8,0x41,0x19,0xae,0xa,0xc2,0x78,0x20,0x33,0xc2,0x5b,0xc2,0xf6,0xc1,0xa6,0x26,0xaf,0x41,0xc0,0x91,0x8d,0x42,0xa2,0xc7,0x90,0x40,0xd5,0xc4,0x88,0x42,0xe5,0xfc,0x3d,0x41,0xb3,0xf6,0xd,0xc2,0xc3,0xfc,0x1d,0x41,0xdd,0xd0,0x4e,0xc2,0x59,0xba,0xfa,0x41,0x66,0xb7,0xf1,0x40,0xb,0x70,0x12,0x41,0xdb,0x23,0x6f,0xc2,0xc6,0x62,0x84,0xc1,0x4a,0xf8,0x83,0xc1,0x53,0x35,0x22,0x41,0x6c,0x77,0xaa,0x41,0x52,0x22,0x6f,0x41,0xfd,0xe6,0x1c,0x42,0x48,0x3b,0x50,0x42,0xee,0x9c,0x7d,0xc2,0xcc,0x2a,0x4f,0xc2,0xb6,0x17,0x88,0x3f,0xab,0x33,0xe4,0xc1,0x62,0x84,0xd,0x41,0xba,0x15,0xf1,0xc1,0x2f,0xf5,0x66,0x41,0xd3,0x1e,0x1b,0x41,0xba,0xfd,0x81,0xc2,0xa6,0x25,0x9f,0xc2,0x7a,0xe4,0x83,0xc2,0xf5,0x27,0xca,0x41,0x4a,0xe4,0x8b,0xc2,0xfc,0x64,0x54,0xc0,0x5,0x65,0xc0,0x41,0xb9,0x64,0x10,0xc2,0xb1,0xcb,0x99,0xc2,0xe0,0x3f,0xf3,0x41,0x2,0x8a,0x3,0xc0,0xb8,0x5,0x4,0x42,0xfd,0x8e,0x97,0x40,0x91,0x64,0x3a,0x41,0x47,0x0,0x14,0x42,0xa4,0x36,0x9f,0xc0,0x5c,0x7f,0x2a,0xc1,0xde,0xc5,0x5b,0x42,0xa3,0xa5,0x5,0xc2,0xa,0x25,0x90,0xbf,0x18,0x64,0x37,0x42,0xe4,0x9f,0x75,0x41,0x6e,0x9a,0xbb,0xc1,0x18,0xae,0x22,0x41,0xff,0x95,0x2c,0x42,0xe6,0xeb,0xa1,0xc1,0x13,0xbe,0x19,0xc1,0x82,0xbb,0x33,0xc2,0xe7,0xa9,0x74,0x41,0xce,0x22,0x1b,0xc2,0x8,0x15,0x5c,0xc0,0xed,0x39,0x37,0x41,0xaf,0xe6,0xe1,0xc0,0x42,0x56,0x80,0xc0,0x52,0x33,0x2d,0xc0,0x72,0x38,0x8f,0xc0,0xc,0x1c,0xdb,0x41,0x2b,0x87,0xb5,0x40,0xd7,0xb8,0x7b,0xc2,0xb,0xd3,0xa2,0xc1,0xa3,0xee,0x20,0xc2,0xb7,0xeb,0xa8,0xc1,0x1f,0xcd,0x1f,0x41,0x3b,0x9,0xb8,0xc1,0x83,0x9b,0x93,0xc2,0x59,0x36,0x8b,0x41,0x86,0x28,0x40,0x42,0x78,0xc,0x96,0x41,0x42,0x82,0xc,0x42,0x1d,0xa3,0x17,0xc2,0xed,0x36,0xcb,0x41,0x25,0xed,0x4d,0xc2,0x12,0x2b,0x6e,0xc2,0xe2,0xa,0x9b,0x41,0x3e,0x66,0xe6,0x40,0x14,0x84,0xd6,0x40,0x22,0xc9,0x55,0xc1,0xda,0xb6,0x98,0x40,0xa2,0x4c,0x53,0xc2,0x4e,0x2e,0x31,0xc0,0xf4,0x4d,0x1d,0x41,0x49,0xb4,0x77,0xc1,0x4a,0xc4,0xa9,0xc2,0x7b,0x42,0x44,0x42,0x2c,0xc3,0x80,0x42,0x4c,0xa2,0x7d,0xc1,0x8c,0x90,0xa,0x41,0xea,0xf3,0x1d,0xc1,0x3,0xce,0xed,0xc0,0xb9,0xa,0x6f,0xc1,0x68,0x6,0x78,0x42,0xf5,0x53,0xc1,0x42,0x39,0xd0,0x89,0x42,0x73,0xbb,0x62,0xc1,0xe9,0xfe,0x22,0xc2,0x8c,0x15,0x4d,0xc1,0xd2,0x73,0x5c,0xc2,0x7c,0x2c,0x8f,0x41,0xd6,0xf3,0xfa,0x40,0x29,0xd2,0x54,0x42,0x80,0xa5,0x90,0xc2,0x54,0x27,0x86,0xc1,0x4d,0x6d,0xbc,0xc1,0x2b,0x5b,0x4d,0xc2,0xc5,0xc8,0x11,0x42,0x7,0xd3,0x88,0xc1,0xbe,0x7e,0x53,0xc1,0xac,0x81,0x6b,0xc1,0xf3,0x1c,0xae,0x41,0xb6,0xb4,0xd,0xc1,0xe2,0xba,0x18,0x42,0x7,0xcc,0xfd,0xc1,0xc9,0x4e,0x5a,0xc2,0xd1,0x35,0xe2,0x3f,0xcd,0xff,0x88,0x42,0xa9,0x62,0x4f,0xc2,0x7f,0x51,0x3e,0xc1,0xcf,0x4d,0x40,0x41,0x4,0x82,0x14,0x42,0xce,0x47,0x29,0x41,0xbf,0x9b,0x9,0xc1,0xf9,0xc3,0x2,0xc1,0xeb,0xf3,0xb1,0x41,0x7e,0x0,0xb8,0x42,0xef,0xe0,0x1,0xc1,0xa3,0x8b,0xa2,0x42,0x22,0x25,0x28,0xc2,0xfb,0x69,0x5f,0xc2,0xce,0x0,0x6a,0xc1,0x53,0x38,0x49,0xc2,0x12,0xeb,0x67,0xc2,0x6,0x25,0x64,0xc2,0x78,0x5e,0x79,0xc1,0x68,0x80,0x8,0xc2,0xe6,0x4f,0xe,0xc2,0x35,0x75,0xc1,0x40,0x25,0x91,0x72,0xc0,0xa0,0x16,0xdd,0xc1,0x38,0x68,0x9d,0xc1,0xd9,0xd7,0x9d,0xc1,0x9c,0xfa,0xad,0xc2,0xe3,0x8d,0x63,0x41,0xdc,0x13,0x4b,0x41,0xa4,0x62,0x89,0x41,0xc8,0x66,0xbd,0x40,0xc4,0x2,0x26,0xc2,0xa8,0x4,0x84,0xc2,0xe6,0x34,0x12,0x41,0xda,0x12,0x79,0xc2,0x42,0x12,0x30,0xc1,0xb,0x16,0x1e,0x42,0x38,0x9d,0xeb,0x41,0xd7,0xb6,0x15,0x41,0xe9,0x33,0xbb,0xc0,0x44,0x6e,0x93,0x42,0x6a,0xa2,0x6e,0xc2,0xab,0x4,0x1b,0xc2,0x82,0x6c,0xc,0xc0,0x93,0xa4,0x1d,0x42,0x4f,0x9c,0x8e,0x42,0x75,0x96,0xc9,0x40,0x1a,0x8f,0x98,0x40,0xc6,0xd5,0x7a,0xc0,0x2a,0x1f,0x72,0xc2,0x7,0xa3,0xc6,0xc1,0x0,0xab,0x2a,0x42,0x3a,0x5e,0x8e,0xc2,0x73,0x57,0xc4,0x41,0x2e,0xfc,0xb5,0xbf,0xb9,0x61,0x89,0xc2,0x3e,0x9,0xf7,0xc1,0x31,0xfa,0x83,0x42,0xb0,0xe1,0x19,0xc2,0x78,0x6b,0xb6,0xc1,0xbe,0xbc,0xb0,0x42,0x64,0xff,0x2,0xc1,0x70,0x12,0xb2,0x41,0x82,0x69,0xa4,0x42,0xb3,0xa4,0x79,0xc2,0x10,0x78,0xb3,0x42,0xaf,0xa7,0xf1,0x42,0x28,0x42,0xcd,0x40,0x82,0x7e,0x56,0x42,0x66,0xd5,0xc5,0x40,0xed,0x2b,0x52,0xc2,0x7e,0x56,0x40,0xc1,0xaf,0x8d,0x19,0x42,0x2c,0x46,0xd3,0xc1,0xd7,0xe4,0xc3,0x41,0xe,0x9a,0xa9,0x41,0x6e,0xe,0x79,0x42,0x28,0x7c,0x35,0xc0,0x9a,0x99,0xdd,0xc0,0x6a,0x6a,0x63,0xc2,0x39,0xd3,0xa0,0xc2,0x64,0x53,0xc7,0x41,0xa6,0x57,0xe2,0xc1,0xca,0xa9,0x76,0xc1,0x81,0xfe,0xb0,0xc1,0xf2,0x7d,0x47,0xc2,0x6,0x73,0x7c,0x42,0x38,0x51,0x17,0xc0,0xf0,0xf4,0xae,0xc1,0xcc,0x4e,0x9,0xc2,0xbc,0xf1,0xe9,0x41,0x8,0xed,0x62,0x42,0x3b,0x41,0x63,0xc1,0xd7,0x12,0x7,0xc1,0xf0,0x6a,0x8b,0x42,0xb8,0x97,0xb0,0xc1,0xea,0xa1,0x22,0x42,0xfe,0x63,0x40,0x40,0xd4,0xc8,0x97,0x3e,0x18,0xc8,0x13,0x42,0xfa,0xb2,0x17,0xc2,0x89,0x21,0x3f,0x42,0xd0,0x18,0x8b,0x41,0xba,0x47,0xaa,0x40,0x7a,0x1f,0x1e,0xc1,0xf8,0x3a,0x5,0x42,0x97,0x27,0xb6,0xc1,0x92,0x5f,0x2d,0x42,0x80,0x86,0xaf,0xbd,0x85,0xcb,0x40,0x40,0x2c,0x14,0x90,0xc1,0xc1,0x11,0x8e,0xc1,0x4e,0xc7,0x6,0x41,0xe2,0x5a,0x49,0x42,0xda,0x6a,0x16,0xc1,0xf8,0xbc,0xdd,0x40,0xdf,0xcd,0xf,0xc2,0xdc,0x19,0x8b,0xc1,0xc5,0x0,0x8f,0xc2,0x9e,0x46,0x41,0xc2,0x3b,0x6e,0x30,0x42,0xc8,0x5c,0x89,0x42,0xdf,0xc6,0x94,0xc0,0xfa,0xdd,0x5f,0x42,0x7,0xf6,0x88,0xc1,0xa4,0x6f,0x40,0xc1,0x51,0xfe,0xaa,0x41,0x26,0x26,0xb0,0x41,0x4f,0xcc,0x32,0xc2,0xb2,0x95,0x57,0x41,0x9f,0xe1,0xbf,0xc1,0xfa,0xbd,0x1c,0xc2,0x76,0xa1,0xfb,0xbf,0x2c,0xf,0x51,0xc1,0x94,0xae,0x90,0xc2,0xe7,0x61,0xa5,0x42,0x4b,0x86,0x8a,0xc2,0x74,0xcd,0x35,0xc2,0x9b,0x3,0x4f,0xc2,0x7f,0x3a,0xb2,0x41,0xb3,0xc,0x9c,0x42,0x25,0x34,0x3a,0xc2,0x9,0x24,0xbf,0x3f,0xaf,0x6d,0xf,0xc2,0xc3,0x11,0x4b,0xc2,0x57,0x8e,0xe7,0xc1,0x15,0xf3,0x4,0x42,0x67,0xd9,0x5a,0xc2,0x4c,0xd7,0xa2,0x41,0xa5,0xfa,0x26,0xc1,0x20,0x54,0x75,0xbe,0x3f,0x43,0xba,0x42,0x5c,0xa7,0x30,0xc2,0xd3,0x99,0x19,0x42,0xec,0x47,0xaf,0xc1,0x15,0x20,0x8c,0x42,0x1a,0x34,0xe0,0xc1,0x9a,0x4e,0xa6,0xc2,0xeb,0xf4,0x2,0x43,0x2a,0xb,0xe6,0x40,0xa0,0x76,0x88,0xc0,0xdf,0xbc,0x74,0xc2,0x53,0x62,0xd,0xc2,0x1c,0x93,0xec,0x41,0xfd,0xe6,0x2d,0x41,0xde,0x8b,0x58,0xc2,0x4e,0x5c,0x84,0xc1,0xed,0x8b,0x38,0xc2,0xab,0x4e,0x4b,0x42,0xce,0x29,0x9,0x42,0x7e,0xfa,0x0,0xc1,0x88,0x70,0x6e,0x42,0x8e,0xc9,0x93,0x41,0xd7,0x2d,0xc8,0xc1,0xdf,0xc6,0x97,0x41,0xf7,0xe4,0x1d,0xc2,0x1c,0xd8,0x32,0xc1,0x80,0x46,0xf5,0xc0,0x46,0x6c,0x97,0x3f,0x66,0x4b,0xf1,0x41,0xfa,0xb5,0xc0,0x41,0xc2,0x2f,0x8c,0x42,0x9b,0x41,0xb2,0xc2,0x20,0xaf,0x54,0x42,0x67,0xf1,0x5b,0x41,0x4c,0x62,0x96,0x42,0xdc,0x70,0x89,0xc2,0x7e,0xb8,0xda,0x40,0xfd,0x76,0x93,0xc1,0x23,0x31,0xaa,0xc2,0x0,0x2c,0xe6,0xc1,0xbc,0x41,0xcd,0x41,0x8e,0xaf,0x1a,0x41,0x8c,0x35,0x60,0x41,0x71,0xcf,0x99,0x42,0x1e,0xc7,0x20,0xc1,0xa6,0x1,0xf9,0x41,0x98,0x3f,0xce,0x40,0x4a,0xc,0xa0,0xc1,0xb1,0x98,0x7b,0xc1,0xd5,0xca,0xe9,0x41,0xb8,0xf0,0xa8,0xc1,0xdb,0x57,0x1e,0xc2,0xf0,0xaf,0x6c,0x41,0x2d,0x3a,0x2c,0x42,0x1c,0x54,0xda,0x41,0x3,0xe4,0xa9,0xc0,0x5b,0xfb,0x4,0xc1,0xdc,0x43,0x86,0xc2,0x76,0x1d,0x56,0x41,0x40,0x75,0x53,0x3e,0x10,0x56,0x12,0xc1,0xb2,0xde,0x86,0x42,0xe7,0x29,0x6f,0x42,0x44,0x7c,0x5a,0xc1,0x60,0xb3,0xdc,0x3d,0xe0,0x97,0x5f,0xbf,0x44,0xf2,0x39,0xc2,0xd4,0x29,0x85,0xc2,0x38,0xbe,0x99,0xc1,0x8,0x6f,0xbe,0x40,0x13,0xe,0x7,0x41,0x70,0xe0,0x8,0x42,0xee,0xa7,0x8d,0xc0,0xde,0x6f,0xa2,0x40,0x80,0x7a,0x0,0x42,0x8f,0x60,0x6d,0xc2,0x2c,0xfe,0x6f,0x42,0x7e,0xd0,0xe1,0x41,0xde,0xfc,0xfe,0x41,0xec,0x93,0x1c,0xc2,0xb2,0x6a,0xd5,0x41,0xdf,0xf4,0xef,0xc1,0x6b,0x5a,0x89,0xc2,0xd1,0xa6,0xad,0x40,0x44,0xf2,0xa0,0x42,0x19,0xb3,0xe9,0x41,0xb3,0xda,0x44,0xc1,0x76,0xa8,0x41,0x41,0xf2,0x9a,0xa9,0xc0,0x52,0xd7,0x97,0xc1,0x91,0x2e,0xa5,0x40,0xc5,0x51,0x70,0x41,0x28,0xa0,0xeb,0x40,0xd2,0xe1,0x94,0xc1,0x9e,0xb6,0xa7,0x3f,0x90,0xe3,0xb,0xc1,0x63,0xe2,0xaa,0xc1,0x3c,0x6a,0x2d,0xbf,0x91,0x61,0xec,0xc1,0x22,0xa,0xe4,0xc1,0x57,0x4b,0xda,0x41,0x75,0xb9,0x32,0x42,0xe7,0xe5,0xce,0x3f,0xa,0x9e,0x51,0x41,0x94,0x6f,0x1d,0x40,0xd,0x93,0x2b,0x41,0xae,0xdc,0x37,0x40,0xd1,0x8c,0x7f,0x42,0xd1,0xf6,0xe1,0x42,0x84,0x25,0xc4,0x40,0x70,0x2f,0x89,0x40,0xe,0xfb,0x77,0xc1,0x17,0xff,0x25,0xc2,0xea,0x1,0x16,0x41,0x58,0xf2,0x55,0xc1,0x60,0x86,0x83,0xc1,0xe2,0x69,0x46,0xc2,0xca,0x95,0x83,0xc1,0x94,0x3e,0xc1,0xc1,0x39,0x8,0x27,0x42,0x3d,0xa4,0xc6,0x41,0xcb,0xc6,0x2b,0xc2,0xc9,0x48,0xc1,0x40,0x2c,0xf3,0xe,0xc1,0x54,0x24,0x55,0x42,0x8,0x8b,0x87,0x42,0xbc,0x2b,0x3c,0xc0,0x8a,0x56,0xb8,0x41,0x7f,0xc2,0x7e,0xc2,0xb9,0xeb,0x8c,0x42,0x98,0x5a,0x29,0x3f,0xc0,0x36,0xba,0xc1,0xed,0xd1,0x5,0x41,0x72,0x80,0x38,0x42,0x56,0x1b,0x24,0xc2,0x13,0x7a,0xe2,0xc1,0x4,0x2f,0x90,0x42,0xaf,0x6e,0xcd,0xc1,0x90,0x53,0xa4,0xc1,0x65,0xaa,0xe6,0xc1,0xaf,0x90,0x3,0x42,0xf8,0xe7,0x0,0x42,0xfb,0x36,0xa4,0x41,0x2a,0x9,0xa,0xc2,0x92,0x66,0x16,0x42,0xc2,0x85,0x1a,0x42,0x2e,0x62,0x80,0xc1,0xaf,0x7d,0x9,0x42,0xa8,0xb2,0x3d,0xbf,0x2c,0x42,0x13,0xc2,0xbb,0xe,0x40,0x42,0xa5,0x2a,0x8b,0x41,0x3,0x9e,0xa6,0x41,0xf8,0xc5,0x32,0x42,0xaa,0x83,0x89,0x41,0xb4,0xfb,0x55,0xc2,0x2a,0xda,0x78,0x42,0x8a,0x2f,0xf5,0xc0,0xb,0x2b,0x15,0x41,0xf5,0xd3,0x78,0x40,0x81,0x4a,0xed,0x41,0xba,0xb8,0x1d,0x41,0xdd,0x78,0xfb,0x41,0xa3,0x97,0x5b,0x40,0xc,0x39,0x64,0xc2,0x28,0xb5,0xd3,0x41,0xe4,0x42,0x67,0x42,0xaa,0x86,0x13,0xc2,0x50,0x86,0x2a,0x42,0x38,0x50,0x44,0xc2,0x64,0x1,0x4d,0xc2,0xfe,0x29,0xf0,0x41,0xa0,0x71,0xa2,0x41,0x1e,0x9d,0xb3,0x40,0xca,0x4,0xa1,0x40,0x20,0xba,0x96,0xc1,0xb9,0x40,0x4d,0x42,0x5b,0xb1,0x61,0xc0,0xf7,0x7d,0xa5,0x42,0x64,0x16,0xf3,0x41,0x99,0x2d,0x57,0x40,0x38,0xb,0xe8,0xc1,0x3b,0x7e,0x38,0xc0,0x67,0x87,0x90,0xc2,0xd5,0x4a,0xb3,0xc1,0x67,0x35,0x2d,0x42,0x53,0x88,0xeb,0xc1,0xcd,0xcc,0x6c,0xc1,0x20,0xfc,0xed,0xc1,0x9c,0x94,0x6,0xc2,0xb6,0x2d,0xa,0x42,0x10,0x5d,0x6e,0x42,0xa6,0xc2,0x23,0x41,0x36,0x81,0x2b,0x42,0xe5,0x1e,0x6,0xc1,0x7a,0xcc,0xbf,0xc0,0x31,0x2a,0xd5,0xc1,0x20,0xf8,0x2,0x41,0xdb,0x22,0x31,0xc1,0x3a,0xa1,0x3f,0xc1,0x3,0x5c,0x5,0xc1,0x6c,0xf8,0xa8,0x41,0xff,0x7,0xda,0xc1,0x5a,0xbf,0x48,0xc1,0x80,0x96,0x4a,0xc0,0xbd,0xde,0xf9,0xc0,0x7c,0x19,0x9f,0xbf,0x16,0x18,0x1,0xc1,0x75,0xc,0x81,0xc2,0x1f,0x85,0x6a,0xc2,0x0,0xe3,0x95,0x41,0x76,0xad,0x7,0xbf,0x7,0xe,0xc2,0xc1,0x24,0x18,0x8c,0xc0,0x7b,0xed,0x45,0x42,0x0,0xdb,0x6c,0xc0,0x39,0x1a,0x6b,0xc0,0xf,0x37,0x49,0x42,0x3c,0x2e,0xbe,0xc0,0x5e,0x74,0x2b,0x42,0xa,0x87,0x86,0xc2,0x5e,0x7a,0x17,0xc2,0x2e,0x97,0x3,0x42,0x40,0x7,0xb6,0xc1,0xed,0x1c,0x1,0xc2,0xcc,0xfc,0x3a,0x41,0x39,0x3e,0x11,0x42,0x24,0x27,0x23,0xc2,0x2,0xd,0x4e,0x42,0x6e,0x9e,0x99,0x42,0x53,0x98,0x80,0x42,0xad,0x5a,0xec,0x41,0x85,0x7f,0xb9,0xc1,0xbf,0x82,0x75,0x41,0xf4,0x6b,0x1c,0xc1,0xa5,0xa5,0x40,0xc1,0x7c,0x64,0x90,0x41,0x67,0x35,0x87,0x42,0x85,0x52,0xbc,0xc1,0x9a,0x37,0x28,0x41,0xb8,0xc8,0x84,0xc0,0x74,0xfc,0x6,0x40,0xf1,0x8,0x85,0x41,0xd4,0x7e,0x50,0x40,0x76,0xa2,0x77,0x41,0xbe,0x7b,0x6f,0x41,0x8f,0xdc,0x1d,0x42,0xb3,0x8f,0x67,0xc1,0xcc,0xa4,0x2e,0xc2,0x26,0xb5,0x49,0x42,0x3d,0xa9,0xcc,0xbf,0xfb,0x47,0xbc,0x41,0x74,0x64,0x8b,0xc0,0xe2,0x9c,0x5b,0xc0,0xce,0x3,0xe,0xc2,0xa0,0xe2,0xe8,0x41,0xf6,0xf1,0xfb,0xc1,0xe6,0x37,0xa,0x42,0xf2,0x8b,0x3f,0xc1,0x38,0x28,0xb8,0xc1,0xa2,0xb2,0x17,0xc0,0x40,0xcd,0x14,0x40,0xe6,0x56,0xa8,0x41,0xa2,0x8e,0x1e,0x42,0xa8,0xbb,0xee,0xbe,0x55,0xa1,0x88,0x40,0xb2,0xae,0xc1,0xc1,0x81,0xd2,0x8f,0x41,0x7f,0xb3,0xa0,0xc1,0x21,0x7,0x6b,0x42,0xe6,0x33,0xb,0x40,0x7,0xe0,0xa,0x42,0xe8,0x2d,0x72,0x41,0x28,0x22,0x2b,0x42,0xc4,0x5e,0x9d,0xc1,0x86,0xf0,0x0,0x41,0x63,0x36,0x93,0x42,0xc0,0x3c,0x15,0x42,0xd3,0xab,0xb5,0x41,0x84,0x94,0x9f,0xc1,0x22,0x34,0x8a,0x41,0xe7,0xbe,0xee,0xc1,0x7c,0x50,0x5e,0x40,0x3d,0xaa,0x89,0x41,0xbe,0x74,0x50,0x40,0xac,0xc8,0x11,0xc2,0xa5,0xf7,0xc6,0x40,0x47,0x3a,0x10,0x42,0x6a,0x70,0xbe,0xc0,0xa6,0xf,0xe9,0x41,0x20,0x25,0x63,0x42,0xf5,0x14,0x9e,0xc2,0xd9,0x5c,0xa3,0xc1,0x2,0xbe,0x8,0x42,0xa,0x4c,0xe7,0x41,0xc8,0x7a,0x98,0xc1,0x1f,0x3d,0xa5,0xc2,0x35,0xed,0x12,0xc2,0x4c,0x38,0xb5,0x41,0x27,0x10,0x31,0xc2,0xf,0xc,0xf3,0x41,0x6d,0xcd,0x30,0x40,0x81,0xc6,0xa6,0x41,0x9,0x78,0x27,0x42,0xa4,0x53,0xa5,0x41,0x3f,0x33,0xc4,0xc1,0xae,0x78,0x33,0xc2,0x14,0x4d,0xbd,0xc0,0xda,0xee,0x8d,0xc1,0xfe,0xf4,0x4f,0x42,0xa2,0x3f,0xe0,0x3f,0x6d,0xa4,0x86,0xc2,0xc0,0x2a,0x98,0xc1,0xd,0x7,0x76,0x42,0x9d,0x54,0x4b,0xc1,0x2,0x5c,0x94,0xc1,0x73,0x85,0xa7,0x41,0x6,0x2b,0x3d,0x41,0x29,0xf,0xe1,0xc0,0xdb,0x27,0x17,0xc2,0x85,0x88,0xa6,0x40,0x60,0x56,0xb7,0x3f,0xe,0x11,0xad,0xc1,0x3a,0xe,0xce,0xc1,0x3c,0xe2,0xae,0x41,0x9e,0x45,0x70,0x41,0x80,0xba,0x10,0xc1,0x36,0xb0,0x6a,0x42,0x24,0xee,0x6d,0xc2,0x1a,0x62,0x85,0xc2,0x9a,0x3b,0xaf,0x40,0xbc,0x68,0x7f,0x41,0x4a,0x22,0x66,0xc2,0x41,0x5e,0xaf,0x41,0x8e,0xbb,0xa0,0x41,0xfd,0x40,0xf1,0xc1,0xde,0x55,0x7d,0x41,0x50,0x90,0x16,0x41,0xf6,0x60,0x23,0x40,0xb1,0x2c,0x26,0x41,0xf9,0x23,0x83,0x41,0xd1,0x31,0xb,0x42,0x98,0x53,0x8c,0xc1,0xa9,0x8a,0xe9,0xc1,0x4e,0x66,0x9,0xc1,0xa8,0x97,0xb9,0xc0,0x94,0x59,0x61,0xc2,0x64,0x56,0x28,0xc1,0xab,0xf2,0x12,0xc2,0xdb,0x8d,0x7b,0x41,0x32,0xee,0x6f,0xc2,0x6c,0xb6,0x7a,0xbf,0xde,0xf0,0x1a,0x42,0x65,0xed,0x1f,0x41,0xae,0x8c,0xd2,0xc1,0x6d,0x88,0x29,0x42,0x16,0x25,0x65,0x42,0x40,0x93,0x2e,0x41,0x9b,0x84,0x70,0xc0,0x40,0xb1,0xf,0x41,0x17,0xab,0x8f,0x41,0xa4,0xbf,0x8e,0xc1,0x6c,0xb6,0x8,0x41,0xf8,0x97,0x52,0xc1,0xc9,0x16,0xa5,0x42,0xfe,0x22,0xb2,0x40,0x95,0x22,0xbf,0xc2,0x15,0x13,0x1d,0x42,0xca,0x2b,0x22,0x41,0xd4,0x7a,0xaf,0xc1,0x7a,0xae,0x16,0x41,0x33,0x85,0x92,0x41,0x49,0x59,0xac,0x41,0x1f,0x46,0x20,0x42,0x71,0x32,0xb9,0xc2,0x9,0xe3,0x85,0x42,0x56,0x4b,0xdd,0xc1,0xe8,0xc5,0x3f,0x42,0xc0,0xb9,0x19,0x41,0x92,0xff,0x5,0xc2,0x1c,0x5b,0x28,0xc2,0x71,0x26,0x89,0xc2,0x1e,0x67,0x30,0x42,0x8d,0x80,0x6d,0x40,0xbf,0xde,0x4,0xc2,0xc,0x2,0x54,0x42,0x39,0x54,0xc8,0xc1,0x69,0x34,0x2a,0xc2,0x8d,0xc6,0xcb,0x41,0xfe,0xb9,0x2a,0xc2,0x32,0x2e,0x8e,0xc2,0x4e,0x6,0x35,0xc2,0xda,0x3b,0xb0,0xc1,0x38,0x78,0x26,0x40,0x21,0x21,0x8f,0x40,0xc5,0xff,0x85,0xc2,0x9e,0x34,0xe1,0x40,0x2a,0xad,0xa0,0x42,0xde,0x66,0x3d,0xc0,0x3f,0xc7,0xc0,0x42,0xc4,0x9d,0x48,0x41,0xe,0xa2,0xe9,0x40,0x26,0x9,0x3d,0xc2,0x6a,0xa3,0xdc,0x40,0xe7,0x81,0x62,0xc2,0x86,0xe1,0x28,0xc2,0x9a,0xfb,0x7e,0x41,0xc2,0xb3,0x98,0xc1,0xe8,0xa9,0x70,0xc0,0xe,0x43,0x18,0x42,0xd3,0x3,0x8f,0x41,0x40,0x89,0xd7,0x42,0x28,0x55,0x8a,0x40,0xb7,0xef,0x6a,0x42,0x1c,0x33,0xcf,0x41,0x70,0x95,0xfe,0x41,0xb8,0x1a,0xf5,0xc1,0x2a,0x19,0x7b,0xc1,0x83,0x1f,0xbb,0xc0,0x45,0x7c,0x25,0x42,0x4f,0x95,0x16,0x42,0xd2,0x35,0xa4,0x41,0xcf,0x5c,0x17,0x42,0x20,0x28,0x95,0xc1,0x9c,0xbd,0xbd,0xc1,0xa1,0x35,0x88,0x41,0x2d,0x90,0x9e,0xc2,0xdb,0xe8,0x4f,0xc2,0xb6,0x51,0xf2,0x41,0xbe,0x5f,0x12,0x41,0x45,0x90,0x34,0xc2,0x64,0xb3,0x5e,0xc1,0xec,0x48,0x88,0x42,0x4e,0xc2,0xd1,0x41,0x92,0xce,0x35,0x42,0xc1,0x4a,0xa7,0x41,0x97,0xca,0x21,0xc1,0x6c,0xd4,0xea,0xc0,0xe,0xb1,0x51,0xc2,0xba,0x7f,0x2,0xc2,0x70,0x75,0x98,0x42,0x7e,0x7c,0xbe,0xc0,0xf6,0x3f,0xdf,0x3d,0xe5,0x9,0x59,0xc2,0x95,0xbe,0xc,0xc1,0x35,0x75,0xe7,0xc0,0x79,0x18,0x5,0xc2,0x87,0x57,0xca,0x41,0xda,0x1d,0x4e,0x41,0x36,0x2d,0xc6,0x40,0x47,0x80,0xfe,0xc0,0x7c,0x40,0xe,0xc2,0xc2,0x30,0x1d,0xc2,0x4f,0x9,0x8a,0x41,0x98,0x13,0xa3,0xc2,0xb3,0xf8,0x94,0xc2,0xa0,0xc6,0x93,0x41,0xdc,0x42,0xe1,0x41,0xdd,0xd9,0x93,0x41,0x80,0x45,0xe6,0xc1,0x2f,0x3f,0x90,0xbf,0x18,0xb3,0x22,0x42,0x4e,0x55,0x6,0xc2,0x69,0xa0,0xaa,0x41,0x84,0xfa,0x15,0x42,0x2a,0xc8,0x28,0xc2,0x34,0x4c,0x5e,0xc0,0x74,0x3e,0xb1,0xc1,0xda,0x92,0xb7,0xc2,0x7c,0x38,0x57,0xc1,0xf0,0x78,0xa0,0xbe,0x6,0x93,0x7e,0x41,0x89,0x45,0xf5,0xc1,0xa1,0x42,0xaa,0x41,0x93,0xe4,0x4a,0x42,0x2a,0x94,0xcd,0x41,0xbc,0x37,0x9c,0x3f,0x54,0x17,0x49,0x41,0x7b,0x70,0x3b,0xc1,0xf8,0x81,0x8a,0xc2,0x52,0x83,0xa2,0xc2,0xe,0x5b,0x41,0x41,0x50,0x2b,0xed,0xc1,0xf2,0xa3,0xd1,0x41,0xe9,0xe7,0xd4,0xc1,0xd8,0xec,0x4c,0x41,0x3f,0x9,0x5c,0xc2,0x9a,0xf3,0xf4,0xc1,0x9f,0x1c,0x8f,0x42,0xa2,0x27,0x1d,0xc1,0x15,0xdc,0xce,0xc1,0xd9,0x31,0x5,0x42,0x54,0xb4,0x60,0xc2,0x73,0x6d,0x91,0xc2,0x86,0xe0,0x15,0x42,0x48,0x4b,0x60,0xc2,0xd9,0xec,0xa,0x42,0x5,0xaf,0x26,0x41,0xfa,0xfb,0xc,0x42,0xe5,0x30,0x8d,0x41,0xfd,0x84,0x1b,0xc2,0xd0,0x7c,0x8e,0x42,0xc5,0x8f,0xa4,0xc2,0x8c,0x70,0x7e,0x41,0xe2,0x49,0xc6,0xc1,0xac,0xff,0xac,0xc0,0x47,0x8d,0x4,0xc0,0x6a,0x70,0xcc,0xc2,0xde,0x6b,0xf6,0x41,0x21,0xc8,0x24,0x42,0xa1,0xdf,0x4f,0x42,0x9e,0xa3,0x65,0x42,0x44,0x6b,0xa8,0x42,0xe4,0x31,0x23,0x42,0x29,0x13,0x45,0x42,0x6a,0x68,0x77,0x41,0x77,0x7c,0x3a,0x42,0xfd,0x65,0x6a,0x41,0xfb,0xdb,0xf1,0x41,0x8a,0x21,0x39,0xc2,0xa,0x4e,0x67,0xc1,0xc5,0xf2,0x8d,0xbf,0xd8,0x3c,0x7e,0xc2,0x98,0x9a,0x94,0x40,0x90,0x7b,0x74,0x42,0xde,0x3d,0x97,0x41,0x99,0x69,0xd1,0xc1,0xc3,0xbd,0xa9,0x41,0xf8,0x37,0x6b,0xc0,0x95,0x77,0x57,0x42,0x6c,0x7e,0x82,0xc2,0x1c,0x34,0x6,0x42,0x0,0x33,0xce,0x3c,0x82,0x18,0x28,0x42,0x32,0xc5,0xc9,0x41,0x26,0x9,0x74,0x41,0x8d,0x8c,0xf,0xc2,0x2b,0xcb,0xa9,0x42,0x50,0xdb,0x37,0xc1,0x5b,0x2b,0xa4,0xc2,0xbc,0x9b,0x6c,0xc1,0xf9,0x27,0x5e,0x42,0x7b,0xb9,0x5f,0x41,0xee,0x54,0xf2,0xc1,0x57,0xeb,0x94,0x41,0x85,0x38,0x30,0x42,0x87,0x58,0x41,0x42,0xf,0x96,0x0,0x42,0x11,0x54,0x77,0x41,0x3c,0x8f,0xcf,0xc0,0xc4,0x30,0x56,0xc1,0x91,0x26,0x84,0x41,0xbf,0xd7,0xb,0xc1,0x1b,0xc,0x81,0x41,0xc0,0x5,0xb2,0x42,0xe6,0xd5,0x1a,0xc2,0xee,0xbf,0x7b,0xc1,0x7a,0x7a,0x48,0xc2,0xfc,0x27,0x2c,0xbf,0x1b,0x19,0xe2,0x42,0x20,0x4e,0xbb,0x42,0x44,0x12,0x88,0x3f,0x77,0xc0,0xba,0xbf,0x72,0x8,0x3f,0xc2,0x2a,0x8e,0xd0,0x41,0x81,0x63,0x86,0x42,0xf,0x35,0x37,0xc1,0x5d,0xac,0x95,0xc1,0x8d,0x0,0x18,0x42,0x1f,0x6c,0xa,0xc2,0x57,0xcc,0x3e,0xc2,0xce,0xe0,0x52,0x40,0x31,0x40,0x5f,0xc2,0xbf,0x17,0x1c,0xc1,0xd4,0xae,0xc4,0x41,0xc,0x1b,0x6c,0xc2,0xb8,0x91,0xb6,0xc2,0x7,0x64,0x90,0xc1,0x3b,0x1b,0x8b,0x41,0x94,0xdb,0xbc,0x41,0x6c,0x1d,0x67,0xc2,0xbc,0xd5,0x13,0x42,0x6c,0xc1,0x86,0x42,0x6e,0x10,0x83,0xc2,0x58,0xe1,0xad,0x42,0x6,0x15,0x59,0x42,0xd7,0x24,0xeb,0xc1,0xab,0x27,0x53,0xc2,0xa7,0x32,0x66,0x42,0xb9,0xe,0x9f,0x41,0xcd,0x8,0xa3,0x41,0xee,0xe2,0xde,0x41,0xd0,0xd4,0x96,0x41,0xdc,0xdc,0x79,0x41,0xc3,0x45,0x16,0x42,0xcc,0xd6,0x31,0x42,0xe9,0x68,0x71,0x40,0xbc,0xf2,0xfe,0xc1,0xcd,0x87,0xad,0xc1,0x6e,0x10,0x45,0x40,0xd2,0xdc,0x78,0xc1,0x9f,0x48,0x65,0x41,0x6a,0x98,0x2a,0x40,0x9c,0x50,0xae,0xc1,0xac,0x3a,0x26,0x3f,0xbc,0xbb,0x9d,0x40,0x2f,0xde,0xdb,0x41,0xe4,0xbc,0x6f,0xc2,0x42,0x97,0x92,0xc0,0x88,0x5c,0x8d,0xc1,0x40,0xe4,0x7a,0xc2,0xd0,0x52,0xc5,0xbf,0xd,0xee,0xd2,0x40,0x2,0x47,0x99,0x42,0x24,0x6b,0xe8,0xc1,0x74,0x9,0xd5,0x41,0x40,0x9d,0x34,0xbf,0x30,0x38,0xa1,0xc1,0x9c,0x67,0xdb,0x41,0xdd,0x49,0x7d,0x40,0xc1,0x57,0x2b,0xc2,0xb,0x33,0xc4,0x41,0xd6,0x3f,0x6e,0xc1,0xb3,0xde,0x28,0x42,0xc3,0xd4,0x8d,0xc1,0xf9,0xc5,0x83,0xc2,0x84,0x52,0x87,0xc2,0xd8,0xa1,0x1e,0x42,0xa3,0xbb,0xaa,0x42,0x5c,0x3a,0x9c,0xc1,0x21,0xf2,0x53,0x41,0x8a,0x63,0xa,0x42,0xe9,0x16,0x96,0x41,0x3d,0xe6,0x53,0xc1,0xf8,0x30,0x4,0xc2,0xef,0x32,0x8d,0xc1,0x61,0x1,0x0,0x40,0xf6,0x60,0x1e,0x40,0x12,0xde,0x39,0x42,0x6e,0x7f,0x91,0xc1,0x5d,0xc6,0x6a,0xc2,0x68,0x86,0xd2,0xc1,0x36,0xcb,0x9d,0xc1,0xec,0x86,0x97,0xc1,0x47,0x46,0x83,0x40,0xf3,0x94,0x72,0xc2,0x42,0x16,0x91,0x41,0xe2,0xae,0xf5,0xc1,0x83,0xf0,0x6f,0xc2,0x17,0x2a,0x32,0xc2,0x58,0xa1,0xef,0xc0,0x13,0x65,0xa3,0xc2,0xc8,0x94,0xa9,0xc1,0x48,0xab,0xf1,0xc1,0x72,0x11,0x51,0xc2,0x3e,0xa4,0xc,0xc2,0x5e,0xa3,0x2a,0xc2,0x39,0xc7,0x8d,0x41,0x4d,0x52,0x8a,0xc2,0xfe,0xb4,0xe6,0xc1,0xcf,0xcd,0x63,0xc1,0x1c,0x46,0x87,0xc2,0x6b,0xd1,0x68,0xc0,0xda,0x42,0x71,0x41,0x8d,0xb8,0x8c,0xc2,0x1e,0x4d,0xd6,0x41,0x2e,0x41,0x65,0xc1,0x36,0x22,0x23,0xc2,0xc6,0x8b,0xcf,0x40,0xbb,0x47,0x97,0xc2,0x18,0x69,0x5,0x42,0x5c,0x2c,0xa2,0xc1,0x61,0x58,0xaf,0xc2,0x7e,0xe5,0x94,0x42,0xc4,0xbe,0x80,0xc2,0xc4,0x4a,0x16,0x42,0x9a,0x47,0x3a,0x41,0x70,0x54,0xd1,0x42,0x18,0xe5,0x28,0x42,0xf0,0x13,0x7c,0x42,0x12,0x74,0x8,0xc2,0x76,0x3b,0x9d,0xc2,0x21,0xaf,0x7,0xc2,0xf2,0xcf,0x64,0x3f,0x6b,0x90,0x28,0x42,0x2,0x49,0x75,0x42,0x24,0xe2,0x45,0x42,0x34,0x90,0xe2,0xc1,0x68,0x2b,0xa2,0x42,0xcb,0xe6,0x43,0xc2,0x1d,0xf4,0x9e,0x41,0x59,0x26,0xa6,0x42,0x3f,0x75,0x80,0xc1,0xc7,0xe1,0x1c,0xc1,0xd3,0x7a,0x38,0xc2,0x19,0x59,0x63,0x41,0x93,0xa8,0x81,0x42,0xe8,0x4f,0x58,0x42,0x5,0x43,0xc1,0xc2,0xd6,0x20,0xc5,0xc2,0x6,0x40,0x52,0x42,0x1c,0x96,0xcf,0x42,0x65,0xb3,0x49,0x42,0x67,0xa8,0xb3,0xc1,0xd,0xd7,0x9b,0x42,0xaf,0x8,0xe6,0xc0,0xee,0x76,0x28,0x41,0x5a,0x5c,0x2,0x40,0xd2,0xe3,0xed,0xc1,0xae,0xfc,0x65,0x42,0x1a,0xc0,0x4d,0x42,0x27,0x33,0x99,0x41,0x2c,0xd5,0x7f,0x41,0xda,0xce,0xee,0xc1,0x39,0xa3,0xea,0xc1,0x50,0x24,0x4d,0x42,0xc2,0x2a,0xe0,0xc1,0x55,0x55,0x87,0xc2,0xf5,0xe,0xa6,0xc2,0xc8,0xf2,0xc4,0xc1,0x5c,0xc6,0xdc,0xc0,0xa3,0xad,0x6,0x42,0x60,0xe6,0x22,0x41,0x2b,0xa9,0xd9,0x41,0xf4,0xd7,0x63,0x3e,0x26,0x38,0x1d,0xc2,0x2b,0x65,0xa4,0x41,0xc1,0x93,0xad,0xc2,0xdd,0x6,0xa6,0xc0,0xad,0x3d,0x88,0xc1,0xee,0xd2,0x28,0x42,0xe,0x2e,0xc,0x41,0x82,0xb2,0x74,0xc2,0xe6,0xfb,0x24,0x41,0x36,0x4c,0x96,0x41,0xae,0x87,0xb9,0xc1,0x4e,0xf9,0x8a,0xc0,0xb0,0x54,0x62,0x41,0x25,0x6a,0x28,0xc1,0xd6,0x59,0x5a,0xc1,0x49,0xa2,0x5f,0xc1,0x6f,0x70,0xb7,0x42,0x87,0xce,0x61,0xc2,0x98,0x74,0x45,0xc1,0xdb,0x25,0x7e,0xc1,0x69,0x73,0x3,0x42,0x0,0x20,0x80,0x42,0xe2,0xf3,0xe4,0xc0,0x2f,0xc8,0x7,0x42,0x54,0x62,0x3a,0x41,0x36,0x0,0x58,0x42,0xc9,0xb1,0x6d,0xc1,0xba,0x78,0x9,0x41,0x2a,0x5f,0x6e,0xc2,0x8e,0x85,0xe5,0x41,0xa9,0xf3,0xe3,0x3f,0xe8,0xc5,0xc4,0xc1,0x17,0xed,0xc3,0x41,0x1b,0xd,0x53,0x42,0xc1,0xb5,0xcf,0xc1,0x1c,0x9a,0x68,0xc0,0xcd,0x19,0x67,0x42,0xc8,0xb8,0xd8,0xc1,0x6d,0x4a,0xc5,0x40,0xe2,0x41,0xf0,0x41,0x20,0x7c,0xb0,0x40,0x52,0xc2,0xb5,0x41,0x48,0x54,0x71,0x42,0x23,0xb4,0x21,0xc2,0x3,0xed,0xb5,0x41,0xd2,0xa2,0xf5,0x40,0x86,0x5,0xa,0xc2,0xa8,0x25,0xd4,0xc0,0xff,0xc5,0xa,0x42,0x77,0x67,0xc,0x40,0x1d,0x15,0x47,0x40,0x9b,0xab,0x2a,0x42,0xfa,0x51,0x7d,0x42,0xb7,0x76,0x8c,0x42,0x52,0xc3,0xb6,0xc1,0x6e,0x3b,0x19,0xc1,0x12,0x38,0xac,0xc1,0x3d,0xfa,0xd,0xc1,0xb5,0xc6,0x26,0xc2,0xb2,0xaf,0x26,0xc0,0xea,0x7d,0x98,0xc0,0xa3,0x72,0xc4,0x40,0x64,0xb6,0x5c,0x42,0x2a,0xb7,0xa2,0xc1,0x28,0x2c,0xbb,0xc1,0xbd,0x8c,0x99,0xc1,0xef,0x3b,0xd1,0xc1,0x78,0x4e,0x6a,0x3e,0xb3,0xe3,0x20,0xc2,0xee,0xb7,0xb9,0xc1,0x4c,0x58,0x58,0xc2,0xa8,0x3d,0x50,0xc2,0x34,0x13,0x9b,0x41,0xf4,0x4e,0xa7,0xc0,0x1f,0xe2,0xf6,0xc1,0xf4,0xdf,0x3,0xc1,0xbf,0xa,0x29,0xc1,0xc5,0xfc,0x39,0x42,0xbe,0x27,0x3a,0x42,0x93,0x1d,0x7f,0x42,0x26,0x1f,0x66,0x42,0x82,0xe4,0x8a,0xc0,0x42,0xdc,0xe1,0x41,0x7e,0x67,0x2c,0x40,0x76,0x6f,0x86,0xc1,0x79,0x35,0x39,0xc2,0x9a,0x17,0x8,0xc1,0xd6,0x9,0x16,0xc1,0xea,0x8c,0xca,0x40,0xdb,0xf1,0x22,0x42,0xae,0x51,0x62,0x42,0xfb,0x3f,0x37,0xc2,0x93,0xf8,0x80,0x40,0x62,0x8b,0x5a,0xc2,0xc4,0x4b,0x42,0x42,0x7b,0x35,0x0,0xc2,0x78,0xd2,0xd8,0xbf,0x8e,0x73,0x37,0x40,0xfa,0xa3,0x80,0xc2,0x23,0x4c,0x10,0x41,0xbc,0x7c,0xb9,0xc0,0x68,0x69,0xb8,0x42,0x76,0x89,0x85,0x41,0x6d,0x93,0x39,0x42,0x24,0xb6,0xab,0x40,0x48,0x93,0x97,0x41,0x6d,0x53,0x25,0x42,0x77,0x13,0x62,0x42,0xf5,0xdc,0xe5,0xc1,0xdb,0x2b,0x89,0xc1,0xf8,0x84,0x4a,0xc2,0xe,0x6a,0xe6,0x41,0x8,0x3b,0xb,0xc2,0xb3,0x99,0xc,0xc2,0x4f,0xf9,0xc0,0xc1,0x20,0xdd,0x56,0xc1,0x5a,0x1d,0xad,0x42,0xbe,0x35,0xb9,0xc0,0xfb,0x2,0x15,0x42,0x54,0x48,0x83,0x41,0x75,0x9d,0xf4,0x41,0xd6,0x75,0x8,0xc2,0x5b,0x9c,0x36,0xc2,0xe3,0xd9,0x68,0xc2,0x6,0xab,0x7c,0xc1,0x60,0x20,0x56,0xc2,0x71,0x6a,0x38,0x42,0xc8,0x6d,0x94,0x41,0xb,0x86,0xaf,0xc1,0x99,0x48,0x1a,0xc2,0x61,0xe7,0xa5,0x40,0xf3,0x5c,0xb4,0x40,0x51,0x30,0x30,0xc0,0x46,0x5f,0x61,0xc0,0x8b,0x24,0x6e,0x42,0x33,0x8b,0xd4,0xc1,0xa,0x4c,0x43,0xc2,0x2c,0x4c,0x8d,0xc2,0xf5,0x55,0x8b,0x41,0xb2,0x38,0x87,0xc2,0xbf,0x7c,0x61,0x42,0x19,0xf,0x25,0xc2,0x1a,0x9b,0x3b,0xc1,0x5a,0xef,0x9d,0xc1,0xce,0x67,0x44,0xc2,0xd,0x75,0xd,0x42,0xe8,0xcb,0x4e,0xc1,0xe6,0xe7,0x86,0xc2,0xf,0xe5,0xab,0x41,0xb7,0xf1,0x56,0xc1,0x92,0x6a,0xef,0xc0,0x9a,0xa8,0x78,0x41,0xec,0x50,0x2d,0xc2,0x49,0x5b,0xf0,0x41,0x40,0x58,0x56,0x42,0x74,0x96,0xd1,0xc0,0x52,0x46,0xb0,0xbf,0x7f,0x3e,0xad,0xc2,0x55,0xa7,0x89,0x42,0xf2,0x44,0x64,0xc0,0xf2,0x75,0xd6,0xc1,0x89,0xcb,0xb3,0xc1,0xc5,0xf2,0x11,0x42,0x3c,0x36,0x6b,0x41,0xac,0x19,0xf6,0xc1,0xd2,0x8b,0xca,0x42,0x71,0x8f,0x6a,0x41,0xc8,0xc1,0x57,0x42,0xef,0x7b,0x3,0x42,0x5b,0x7d,0xae,0xc2,0xa8,0x5a,0x91,0xc2,0x9f,0x5b,0x48,0x42,0xd0,0x9b,0x78,0x42,0xa4,0x7d,0x80,0x3f,0xb2,0x3b,0x80,0x42,0xd4,0xe7,0xb,0x41,0xee,0x8,0x99,0xc1,0xd8,0x43,0x84,0x41,0x19,0x72,0x9b,0x41,0xb4,0x65,0x17,0xc2,0x2a,0x3f,0x53,0xc2,0xcb,0x9c,0x74,0xc2,0x6c,0xee,0x35,0xc2,0x6b,0xdd,0x36,0xc2,0x84,0x95,0xb8,0x42,0xba,0x9,0x6f,0xc1,0x37,0x5,0xe0,0xc1,0xb7,0x49,0x95,0xc1,0x51,0x2b,0x4f,0xc2,0x16,0xdb,0x93,0x42,0x22,0x47,0x2d,0x42,0x66,0x97,0xa0,0x40,0x95,0x55,0x45,0x42,0x22,0x62,0xc1,0x41,0x4e,0x66,0x55,0x42,0xd0,0x8,0xa7,0xc0,0x3e,0xe4,0xd1,0xc1,0x26,0x64,0xe3,0x41,0xbb,0x52,0xe6,0x41,0x18,0x14,0x2d,0xc2,0xd,0x58,0x2c,0xc0,0xf5,0xf0,0xdb,0xc1,0x3a,0x17,0xa6,0x41,0xbc,0x1e,0xb9,0xc1,0xa4,0xc1,0xb9,0xc1,0xcc,0x46,0xae,0xc2,0x5f,0xfa,0x7d,0xc2,0xa6,0x43,0x93,0xc1,0x36,0x4d,0x82,0xc2,0xd6,0x2a,0xf5,0x41,0x40,0x6e,0xa8,0xc1,0xd3,0xef,0x86,0x42,0xcd,0x8f,0xc7,0x41,0xa9,0xcf,0x46,0xc1,0x3d,0xc2,0x96,0x42,0x3c,0x11,0xd8,0x41,0x6b,0x17,0x75,0x41,0x1f,0x38,0x16,0x42,0x53,0xbb,0x1c,0xc2,0xc4,0x12,0xd6,0xc1,0xb0,0xa1,0xaf,0x42,0xa7,0x94,0xa5,0xc2,0xc2,0x9c,0xb,0x42,0xea,0xe,0x5,0x42,0x3a,0xc1,0x55,0xc2,0x7a,0x14,0x7c,0x42,0x23,0x44,0x41,0x42,0x2e,0x80,0xa6,0xc2,0x75,0x44,0x25,0xc2,0x8d,0x49,0xba,0x41,0xf,0x1e,0xfe,0x41,0xc9,0x3f,0xbd,0xc1,0x36,0x95,0x97,0x41,0x60,0x54,0x9d,0x41,0xe9,0x9f,0x56,0x40,0x61,0x23,0xc3,0x40,0xb2,0x89,0x2f,0xc2,0x6a,0x8a,0x95,0x41,0x3a,0x9b,0x6a,0xc1,0xba,0x11,0x16,0xc2,0x44,0x79,0xd5,0xc1,0xfa,0xd8,0xe7,0x40,0xba,0x16,0x9d,0xc1,0x35,0x93,0x74,0x42,0x7e,0xa5,0x38,0xc2,0x89,0xbf,0x90,0xc1,0x53,0x5e,0x9b,0x40,0xae,0x80,0xa,0xc2,0x93,0x6d,0xb,0x42,0x91,0xb7,0xe1,0xc1,0x54,0x61,0x9c,0x40,0x89,0x23,0xcd,0xc1,0x17,0x29,0xa9,0xc1,0x2a,0x5c,0xdd,0xc1,0xc1,0xf8,0x73,0x41,0x63,0x74,0xc0,0x40,0xf2,0x70,0x3a,0xc2,0x34,0xb,0x30,0x41,0x6c,0x5f,0xf2,0x41,0xe4,0xfe,0xee,0xbf,0x89,0x60,0x53,0xc2,0x32,0x6a,0x4,0xc1,0x36,0xaf,0x55,0xc1,0x77,0xce,0x84,0xc2,0x9b,0xa,0x90,0xbf,0x7c,0x8c,0x4c,0x3f,0xf8,0x25,0xbe,0xc1,0x88,0xc6,0xf9,0x40,0x2a,0x3a,0x55,0xc1,0x60,0x45,0x19,0xc2,0x4,0x1c,0x14,0x42,0xe6,0x3c,0xbe,0x41,0x2e,0xb4,0x8c,0xc2,0x8e,0x26,0x20,0xc2,0x45,0x36,0xd4,0xc2,0xc4,0x62,0x59,0xc2,0xf7,0xcc,0xa,0x41,0xc8,0x14,0x79,0xc2,0xea,0xf6,0x51,0xc2,0xf6,0x32,0x36,0x41,0xbc,0x8e,0xbf,0x41,0xbc,0x64,0x11,0x41,0xb2,0x53,0x8c,0xc1,0x7f,0x11,0xc4,0x41,0x5e,0x8d,0x39,0xc2,0xe5,0x97,0xe7,0xc2,0x48,0xd4,0xda,0xc1,0xc0,0x3c,0x70,0xc2,0x28,0x56,0x6a,0xc2,0x2f,0xa2,0xc2,0x41,0x41,0x16,0xc1,0xc1,0xc8,0x1e,0x98,0xc1,0x2f,0xa,0x69,0xc2,0xc6,0x25,0x9d,0xc2,0xba,0x83,0x85,0x40,0x11,0x16,0x20,0x42,0x1e,0xe7,0x47,0x42,0x54,0x4a,0xa0,0xc1,0xd4,0x22,0x8c,0x40,0x31,0xd,0xd6,0xc2,0x98,0x87,0x8f,0xc0,0x4e,0xd1,0x18,0xc0,0xd,0x3d,0xaa,0xc1,0x1b,0x55,0x73,0xc2,0x6f,0x6b,0x31,0xc2,0xf,0x31,0xac,0xc2,0x2,0x2d,0x64,0xc2,0xa6,0xf5,0x39,0x42,0xf4,0xaa,0x9d,0xc1,0xf6,0xf9,0x34,0xc1,0xbb,0x83,0x35,0x41,0x81,0x39,0x30,0xc1,0xb7,0xc4,0x66,0xc2,0xc7,0xca,0xaa,0x41,0xe3,0x63,0x60,0xc1,0xad,0xb7,0xe9,0x41,0x4c,0x57,0x72,0xc1,0x31,0x6e,0x52,0xc2,0x39,0xa7,0x11,0xc2,0x3e,0x83,0xb4,0xc2,0xe7,0x70,0x1a,0xc1,0x3d,0xa2,0x4f,0x42,0xf2,0x46,0x9d,0x41,0x3f,0x61,0x7d,0xc1,0xd3,0x81,0xf6,0xc1,0x6e,0xa9,0x8e,0x41,0xaa,0xc1,0x19,0x42,0xe1,0xca,0x8a,0xc1,0xf8,0xa0,0x26,0xc1,0x5a,0x72,0xbf,0x40,0x22,0x97,0xb4,0xc0,0xb1,0x42,0x6d,0xc1,0x7c,0xc3,0x17,0xc1,0xce,0x93,0x53,0xc2,0x98,0xc1,0x88,0x41,0xa2,0x79,0x85,0x41,0x64,0x2c,0x20,0x42,0x86,0xe9,0x38,0xc2,0xda,0xe7,0xa3,0x40,0x53,0xb8,0x37,0x41,0xcb,0x96,0xf4,0x41,0x2,0x83,0xd2,0xc0,0xf5,0x78,0x25,0xc2,0x98,0x8a,0xf7,0xc1,0xca,0x8,0x9d,0xc0,0x80,0xa8,0xc6,0xbf,0xdf,0xfa,0x84,0xc2,0xb6,0xc6,0x2,0x42,0x67,0xbc,0x21,0x41,0x9d,0xda,0x10,0xc1,0xd0,0x73,0xae,0xbe,0xca,0x65,0x31,0x42,0xd4,0xfa,0x21,0x42,0xaf,0x1a,0x19,0xc2,0x78,0x69,0xa3,0x41,0xe8,0x0,0x94,0x41,0x2d,0x85,0xf3,0xc1,0xd8,0xc7,0x6f,0xc2,0xd5,0x5b,0xde,0xc0,0x91,0xa3,0x42,0x42,0x84,0x67,0x5c,0xc1,0x3c,0xe2,0x4e,0x42,0xfb,0xb2,0x58,0xc1,0x24,0x4f,0x41,0x42,0x25,0x37,0xb,0xc2,0xb4,0x7f,0xfc,0xbf,0xc8,0x5c,0xa6,0xc2,0x28,0x3,0xf4,0x41,0x10,0xf0,0xac,0x41,0x3c,0x2d,0x5e,0xc1,0xf6,0xd1,0x39,0x42,0xec,0x8f,0x5f,0x41,0x13,0xc6,0xb7,0xc1,0x18,0x1d,0x5a,0xc1,0xd2,0xb5,0x7f,0xc1,0xb0,0x20,0xde,0x41,0xe2,0xe,0xf9,0xc1,0xf7,0x63,0xb9,0x41,0xc4,0x8,0x9d,0xc0,0xf8,0xf0,0xf0,0x41,0x5c,0xc5,0x95,0x42,0xa4,0xf5,0xc,0x42,0xaa,0x72,0x31,0xc1,0x14,0x5a,0x3e,0x42,0xb8,0x3,0x7a,0x41,0x37,0xdf,0x19,0xc2,0xd0,0xf5,0x85,0x41,0xcc,0xdd,0x56,0x42,0xb1,0x6b,0x21,0x42,0x63,0xd0,0x82,0x41,0xc8,0x49,0xa0,0x40,0x8d,0xce,0x14,0x42,0xde,0x4c,0x9e,0xc1,0xc2,0x55,0x73,0xc1,0xb,0xc8,0x14,0xc2,0xc4,0x41,0xa9,0x42,0x7a,0xa5,0x99,0xc2,0x7,0xd,0xfa,0xc0,0x36,0xea,0x29,0xc2,0x72,0xc3,0x1e,0x42,0x1c,0x58,0xa9,0x40,0x90,0x23,0x25,0x41,0x77,0x29,0xba,0x41,0xa4,0x8c,0xa8,0xc1,0x80,0x6a,0xd9,0xc1,0x3e,0xcc,0x4a,0xc2,0xe3,0xf9,0x46,0x42,0x13,0x64,0x31,0xc2,0xa7,0x70,0xd9,0x42,0x96,0xc2,0x91,0xc0,0x9,0x6e,0x2b,0xc2,0x22,0x4b,0xe5,0xc1,0xc6,0x7a,0x20,0xc2,0x80,0xba,0x5c,0x41,0x88,0xb6,0x7,0xc2,0xa8,0x97,0x1,0x3f,0x86,0xd0,0x5,0x42,0x10,0x9a,0xa7,0x41,0x92,0x24,0x96,0x42,0x24,0xa5,0x13,0x42,0x3b,0xfc,0x1a,0xc2,0x51,0x22,0xf8,0xc1,0x9c,0xc4,0xa4,0xc1,0x71,0x7b,0x9,0x42,0x5c,0xb5,0x67,0xc1,0xc,0xb5,0x61,0xc1,0x66,0x8f,0x56,0x40,0x9e,0x34,0x3e,0xc0,0xbb,0x3a,0x93,0x42,0x1c,0xa4,0x44,0xc1,0x32,0x7a,0x87,0x42,0x86,0xd8,0x26,0x42,0x86,0x2c,0x94,0xc1,0x49,0x4c,0xb9,0x41,0xdf,0x2e,0xe0,0x41,0x7,0x77,0x39,0xc2,0x40,0x3f,0xc6,0xbd,0x54,0xfa,0x79,0xc1,0xfe,0xe1,0x36,0xc2,0x5a,0x22,0x3,0xc1,0x44,0xaf,0x3a,0x42,0x17,0x37,0x3b,0x41,0x83,0xe4,0x85,0xc1,0xb2,0xb0,0xd8,0x41,0x74,0xcb,0x5d,0xc0,0x55,0x11,0x26,0x42,0x9a,0xc8,0xe9,0xc1,0xe2,0x7c,0x0,0x42,0x33,0xe7,0x17,0x41,0x36,0x7b,0xa,0x42,0x8f,0xb3,0x75,0xc1,0x42,0xa3,0x0,0x42,0xba,0xbe,0x18,0xc2,0xdb,0x56,0x3a,0xc2,0xc4,0x1f,0x85,0x41,0x86,0x4f,0x3e,0xc1,0xfc,0x84,0xd,0x42,0x0,0x13,0x9c,0x41,0xc7,0xcf,0xfd,0x41,0xcf,0xb1,0x5e,0xc1,0x32,0xc,0x58,0xc0,0x94,0x96,0xa3,0x42,0xab,0x87,0xae,0x41,0x7c,0x20,0x34,0xc2,0x8d,0xcb,0x47,0x42,0x9f,0x12,0xf,0x42,0x8c,0xda,0xcb,0xc1,0xc0,0xc1,0x1b,0xc2,0x85,0x81,0x33,0x42,0xd7,0xf6,0xa5,0x41,0x80,0xb1,0x35,0xc2,0xa0,0x3c,0xf2,0x40,0xf6,0xce,0xa0,0x41,0x60,0xa3,0x46,0x42,0x3,0x3d,0x27,0x42,0x85,0x30,0x6c,0x42,0xc6,0xa2,0x91,0x41,0xb2,0x71,0xac,0xc2,0xbc,0x34,0x2f,0x42,0x6e,0xc9,0x25,0x42,0x1a,0x60,0x90,0x40,0x96,0xbf,0xee,0x3f,0xe7,0x8,0xa5,0xc2,0xd8,0x2d,0x8c,0x41,0x2c,0x57,0x19,0xc2,0xd5,0x29,0xef,0x41,0x28,0x19,0xcd,0xc2,0x4b,0xf5,0xc3,0x41,0x89,0x23,0x4f,0x42,0x46,0x49,0x1c,0xc2,0x14,0x21,0x90,0xc1,0x58,0x66,0x40,0x42,0x20,0xae,0x8a,0x42,0x22,0xe2,0xc0,0x40,0x8c,0x68,0x53,0xc2,0xd3,0x3c,0x3a,0x42,0x7c,0x43,0xaa,0x42,0xfc,0xde,0xf3,0xc1,0x55,0xe7,0xbf,0x41,0xe7,0x7,0xa8,0x41,0x34,0x9d,0x36,0xc2,0xc6,0x8d,0x8c,0xc2,0x8c,0x12,0x39,0x41,0xb0,0xa0,0x50,0x40,0x91,0x83,0xb5,0x41,0xdd,0x5b,0x12,0xc2,0xe4,0xc7,0x5b,0xc1,0x71,0xd1,0x63,0x41,0x3f,0xda,0x40,0x40,0xae,0xe9,0x38,0xc1,0xe1,0xde,0x80,0xc2,0xae,0xec,0xaf,0xc1,0x73,0x7b,0xe6,0x41,0xf2,0x81,0xd9,0xc1,0xb7,0x15,0x4b,0xc1,0x42,0xb,0x51,0x42,0x3b,0x95,0xfa,0xc1,0x91,0x61,0x7,0x41,0xed,0x4b,0x40,0xc2,0x6e,0xb6,0xd4,0x40,0xb7,0x23,0x75,0x41,0xfc,0x51,0x3f,0xc2,0xfe,0xec,0x21,0xc1,0x53,0x87,0xd8,0xc1,0x57,0x4e,0xe,0xc2,0x62,0xd8,0x17,0xc2,0x8b,0x53,0xdd,0x41,0x8c,0x28,0x2c,0x42,0xfa,0x2c,0x3f,0xc0,0x67,0x29,0x7c,0xc2,0xb8,0xce,0x76,0x41,0xca,0x57,0x27,0x41,0xfe,0x6e,0xff,0x41,0x58,0xaa,0xea,0x40,0x3e,0xe,0xd0,0xc1,0xd5,0xe1,0x4e,0xc2,0xc7,0xd9,0x91,0xc1,0xc9,0xc3,0xe,0x41,0xea,0x1d,0x86,0x42,0xf9,0xf8,0xb8,0xc1,0xdc,0xab,0xf1,0xc1,0x91,0x4d,0x44,0xc1,0xdf,0x7e,0xe1,0xc1,0x23,0x8a,0x42,0xc2,0x19,0x4,0xab,0x41,0xc,0x99,0xd6,0x41,0xa5,0x49,0xa,0xc1,0x8d,0x4d,0x2,0x42,0x68,0xa4,0x78,0xc1,0xd1,0xde,0x59,0x42,0x2a,0x22,0xdb,0xc1,0x60,0xca,0x32,0xc2,0x70,0x4c,0xea,0x40,0x9f,0x4c,0xb1,0x40,0x3a,0xa4,0x28,0xbf,0xdc,0xef,0x44,0x42,0x8,0x8b,0x6e,0xc1,0xdc,0x80,0x4e,0x40,0x3f,0xdc,0x8b,0xc1,0xef,0x1c,0xb4,0xc2,0x84,0x29,0x60,0x40,0x90,0x70,0x17,0xc1,0xf9,0x21,0xd3,0x41,0xe2,0x44,0x92,0xc2,0x9c,0xfc,0x8c,0x40,0xc,0x9e,0x17,0xc2,0x8a,0xa0,0x96,0x41,0x8e,0x5e,0x22,0x42,0xae,0xf2,0x96,0x41,0xf1,0x24,0x4d,0x42,0xec,0xeb,0xa8,0xc2,0xa3,0xd3,0xf3,0x41,0xc0,0xe0,0x56,0x3d,0x6f,0xea,0x83,0x41,0x23,0xfa,0x4e,0x42,0xb0,0x9b,0x3,0x42,0x31,0x47,0x98,0x42,0xc0,0x26,0xb3,0xc0,0xbc,0x44,0x37,0x42,0xf3,0x13,0xf9,0xc1,0x40,0xa4,0x3e,0x41,0x8,0xce,0x18,0xc1,0x63,0x6f,0x41,0xc2,0x5e,0x3e,0x5e,0x40,0x7a,0x88,0x6c,0x42,0xf7,0x1b,0xa2,0x42,0xd3,0xae,0x80,0x41,0xb0,0x70,0x6,0xc2,0x42,0x65,0x75,0xc0,0x3a,0xe2,0x12,0x42,0xf4,0x1c,0x1a,0xc2,0xc0,0xb9,0xf2,0xbf,0xdc,0xa,0x7f,0x42,0x27,0xf4,0xf9,0x42,0x4c,0xe3,0xac,0x41,0xbc,0x2c,0xaa,0xc2,0x66,0x68,0xc1,0xc1,0x48,0x2a,0x4a,0xc1,0xbb,0x36,0xbb,0x41,0x7a,0xc,0x62,0x42,0x48,0xc,0x29,0x41,0x3e,0x4a,0xcf,0xc1,0x63,0x8e,0xcb,0xc0,0xdd,0x80,0x65,0x40,0xab,0x9a,0x30,0xc2,0xa7,0x61,0xae,0x3f,0xfa,0x39,0x8,0xc2,0x9e,0x40,0xac,0x41,0xea,0x6b,0xe1,0xc0,0xaf,0xee,0xb2,0xc0,0xe,0xcb,0xcf,0xc1,0x65,0xd7,0xe6,0xc1,0xcc,0xfe,0x5e,0xc1,0xf6,0x5e,0xa4,0x41,0xf0,0x35,0xe,0xc0,0xad,0x77,0x6e,0x42,0x70,0x5b,0x6d,0xc1,0xa6,0x1c,0xd0,0xc1,0x6b,0x7a,0x62,0xc2,0x5b,0x32,0xab,0x3f,0x36,0xbf,0x86,0x41,0x58,0xba,0xeb,0xc0,0x10,0x73,0xa4,0xc0,0x3d,0x6b,0x12,0x42,0x3e,0xfa,0xb4,0x42,0x6f,0xfb,0x94,0xc2,0x4f,0x3,0x93,0x42,0xd,0x6f,0x35,0xc2,0x88,0x47,0xf3,0xc1,0x42,0x39,0x71,0x42,0xb,0xe7,0x10,0xc2,0xbe,0xe8,0xbf,0x41,0xa8,0x9b,0x4a,0xc2,0x14,0x2a,0x1b,0xc2,0xa4,0x62,0x7d,0xc2,0x2a,0xb7,0x5,0xc2,0xed,0xdb,0x62,0xc2,0x9c,0xe8,0x70,0x42,0x2a,0xf8,0xb0,0xc1,0x72,0xd6,0xac,0xc1,0x98,0x96,0x84,0x41,0xc,0x19,0x38,0xc2,0xcf,0x9,0xe6,0x41,0xae,0x39,0x24,0x42,0x4b,0x74,0x1e,0xc1,0x2a,0x57,0x54,0xc1,0x87,0x35,0xd2,0xc0,0x78,0xbd,0xda,0x40,0xe,0x58,0x6e,0x42,0xe2,0xd,0x5,0xc2,0xac,0xb5,0x85,0x42,0x5d,0xec,0x10,0xc2,0x72,0x16,0x34,0x42,0xc8,0x4f,0x59,0x42,0x2f,0xa,0xe4,0xc1,0x8f,0x62,0x8a,0x41,0xed,0xf5,0xc1,0x41,0x85,0x71,0x73,0x41,0x15,0xce,0x0,0x42,0x86,0x39,0x2a,0x41,0xf9,0x11,0xb3,0x42,0x85,0xd,0x22,0xc1,0xb2,0x13,0x9,0xc2,0x24,0x8a,0xc,0xbf,0xae,0x73,0x9,0xc2,0xb4,0x7f,0xc4,0xc1,0x80,0xe9,0x19,0x41,0xe0,0x3f,0x15,0x42,0xee,0x16,0xb0,0x41,0x6,0x12,0x93,0x42,0x74,0xd4,0x40,0xc0,0x6b,0x3f,0x1f,0xc2,0x55,0xd,0x64,0xc1,0xb2,0xd6,0xad,0xc1,0xc8,0x1,0x7c,0x41,0x5a,0x9d,0x1a,0x42,0x50,0xe,0x31,0xc2,0x72,0x71,0x6b,0xc0,0xe8,0xb8,0xf0,0x41,0xa9,0x2b,0x3c,0xc2,0x38,0x8a,0x3b,0x41,0x57,0x53,0xe4,0x41,0x22,0xb4,0x3,0x42,0xab,0xf2,0xfc,0x41,0x9f,0xde,0x9a,0x41,0xf6,0x6c,0x4b,0xc2,0x0,0xa5,0x4a,0xc1,0xb8,0xc5,0x6b,0xbf,0xc7,0x4f,0x31,0x41,0x5c,0x3b,0x91,0xc0,0x4a,0x3d,0xdd,0xc0,0xbc,0x9d,0xb5,0x41,0xa0,0xa1,0x72,0xc2,0xc2,0xc3,0x1d,0x42,0x9b,0xca,0x39,0xc2,0x40,0x8f,0x19,0xc2,0xd6,0xb9,0xd0,0x41,0x28,0x9b,0x66,0xc1,0x16,0xb7,0xa7,0x40,0x26,0x7c,0x49,0xc2,0xa,0xfc,0x6e,0xc2,0x20,0x6c,0x5c,0x41,0x56,0x64,0x87,0xc1,0x47,0x7b,0xb6,0x3e,0xd4,0xff,0x85,0xc1,0x8c,0x8c,0x0,0x42,0xd2,0x9f,0x27,0xc0,0x6,0x10,0xc6,0xc0,0x30,0x6c,0x27,0x42,0xea,0xb3,0x52,0xc1,0xa6,0xa1,0xd6,0xc1,0x89,0xa5,0xf0,0x41,0x9f,0x48,0x83,0x41,0x17,0x2,0xb2,0x41,0x4d,0xf,0x99,0x41,0x5,0x7,0x84,0xc1,0x5e,0x62,0x1d,0x42,0x4a,0xcc,0x5,0x42,0xce,0x5f,0xca,0xc1,0x6,0x7a,0xcf,0xc0,0xd2,0xbe,0x4b,0xc2,0xe5,0xa1,0x6b,0xc2,0xab,0xf1,0xd1,0x41,0x36,0x4,0x5e,0xc1,0x72,0xd8,0x45,0xc2,0x97,0x82,0x39,0x42,0xed,0x7f,0xb6,0x41,0x20,0xfb,0x71,0x41,0x8,0x7,0x29,0xc2,0xb6,0xb8,0xe0,0x41,0x2,0x4c,0xb9,0xc0,0x94,0x1a,0xcd,0x41,0x14,0x22,0x6c,0x42,0x4,0xe6,0x55,0x42,0xa,0x28,0xe,0x42,0xb7,0x96,0x81,0x42,0x7,0x8,0x60,0xc2,0xe0,0x96,0xd,0xc2,0x4b,0xa8,0x90,0xc2,0xa8,0x55,0xb5,0x40,0x6c,0xa,0xb9,0xc0,0xa4,0x3c,0x88,0x41,0xa3,0xf8,0x91,0xc0,0xf0,0x27,0x9b,0x42,0xa4,0xf4,0x8d,0x41,0xe3,0x4a,0x95,0xc1,0x42,0xe3,0x9f,0x42,0x2,0x7f,0xeb,0x41,0x93,0x5b,0x9f,0x41,0xc2,0x3a,0x92,0x41,0x98,0x6f,0xa3,0xc1,0xf,0x89,0xf8,0x41,0x9b,0x8b,0xcf,0xc1,0x42,0xdd,0x87,0x41,0x72,0x2f,0x4,0xc2,0xaf,0xa0,0xc,0xc2,0x4c,0xb8,0x99,0x41,0xcd,0x15,0xc0,0x42,0xf2,0x62,0x2c,0xc1,0x81,0x45,0x2b,0xc2,0xbc,0xcb,0xf2,0xc0,0x96,0x54,0x88,0x40,0xed,0x63,0x7e,0x41,0x18,0xab,0xe0,0xc0,0x1,0x35,0x24,0xc2,0x24,0xf9,0x2a,0x41,0xc9,0x60,0xcd,0x40,0xfa,0xbb,0x32,0xc2,0xb8,0x5a,0x9c,0x41,0x70,0xe5,0xa5,0xc1,0x2d,0xd7,0x7e,0xc2,0x19,0x7f,0x1b,0x42,0x9a,0xeb,0x81,0xc1,0x20,0xca,0x1d,0xbe,0x8b,0x91,0xf9,0xc1,0x1,0xcb,0x20,0xc2,0x1f,0x4c,0x13,0xc1,0xd5,0x9b,0xa1,0x42,0xc,0x8a,0xa5,0xc1,0x3a,0xc2,0xb7,0xc1,0xde,0x13,0x93,0x42,0x7d,0xca,0x8d,0xc2,0x14,0x6e,0xe3,0xc0,0xe4,0x4,0x78,0xc2,0xdd,0x88,0x7,0xc2,0x3f,0x4d,0xd0,0x41,0x61,0x77,0x6b,0x41,0x2c,0x3f,0x62,0x41,0x62,0xcc,0x9,0x40,0xec,0xbc,0x81,0xc0,0x17,0x9b,0x27,0xc2,0x3e,0xc5,0x2a,0xc2,0xd0,0x4e,0x0,0x42,0x4a,0xb1,0x4,0xc2,0x2c,0x44,0x95,0xc2,0xac,0xfd,0xa5,0x42,0x24,0x4d,0x9a,0xc2,0xd0,0xc1,0x42,0x42,0x68,0xef,0xa1,0xc2,0x76,0xdc,0x62,0xc1,0x95,0x90,0xa,0xc2,0xc0,0x13,0xd5,0xc1,0xb0,0x64,0x33,0x3f,0x5e,0x76,0x13,0xc2,0x63,0xb9,0x43,0xc1,0xde,0xa6,0xb4,0xc0,0xb8,0x3f,0xe2,0xc0,0x16,0x2,0x9,0xc2,0xa,0xc,0xeb,0x41,0x52,0xc3,0xa4,0xc0,0xd0,0x4f,0xa5,0xc1,0x32,0xdc,0xb0,0xc1,0x97,0xfe,0x8,0x41,0x20,0x48,0xfa,0x41,0xa1,0x54,0xa,0xc2,0x3f,0x4b,0x49,0x40,0xaa,0x5f,0x46,0xc1,0xdd,0x60,0x3f,0x41,0x7e,0xf0,0x78,0xc2,0x33,0x90,0xcc,0xc0,0xc9,0x5b,0xaa,0xc1,0xbe,0xb,0x42,0x42,0x3c,0x6d,0xd3,0xc0,0x4b,0xd8,0x21,0x42,0xe7,0x6b,0x31,0x41,0xfb,0x15,0x82,0x41,0x25,0x76,0xb2,0x42,0x32,0x0,0xc9,0xc2,0x19,0x51,0x9b,0xc1,0xa6,0x77,0x36,0x41,0xfa,0x4b,0x6b,0xc0,0x5,0x25,0x1c,0x41,0xde,0x87,0x49,0xc2,0x5b,0x1,0x60,0x41,0x19,0xb4,0x22,0x41,0x88,0xf7,0xcd,0xc1,0x4f,0x96,0xa5,0xc0,0x7d,0xae,0x29,0xc2,0xaf,0x98,0x2f,0x42,0x61,0x79,0x84,0x41,0x98,0x6d,0xab,0xc0,0x63,0x85,0x92,0x41,0xcd,0x48,0x1c,0xc2,0x41,0x54,0x98,0xc2,0x6c,0x79,0xb0,0x42,0xf4,0x26,0x15,0x42,0x11,0x7b,0x30,0xc1,0x1c,0x88,0xe7,0x41,0x4b,0xef,0x62,0xc1,0x24,0x83,0xe5,0x41,0x90,0x78,0xbe,0xc1,0x19,0xde,0xf6,0x41,0x62,0xf,0xf4,0xc0,0xec,0xcd,0x5,0x41,0x5a,0x3f,0x87,0x42,0xef,0xe2,0x61,0x42,0x83,0xac,0xaf,0xc1,0xbc,0x7c,0x32,0x42,0x3b,0xde,0x15,0x40,0xff,0xdd,0x93,0x42,0x8d,0x4f,0x48,0x42,0x45,0x72,0x4c,0xc0,0x94,0x15,0x33,0xc2,0x2f,0xb5,0x9f,0xc2,0x4c,0x27,0x80,0x41,0x9a,0x80,0x1c,0xc2,0x3f,0xc4,0x20,0xc2,0x10,0xd3,0x6a,0xc0,0x89,0x37,0xef,0xc1,0xe6,0xd0,0xf6,0xc0,0xe,0x2c,0xc3,0xc0,0xeb,0x35,0x74,0xc1,0x75,0x34,0x90,0xc2,0xeb,0x57,0x8f,0xc2,0x70,0x39,0xcc,0xc2,0x8a,0xc2,0x59,0xc1,0x35,0xc1,0x3c,0x42,0xa8,0xfd,0x22,0x42,0x43,0xa1,0x39,0xc2,0x6d,0x81,0x7,0x42,0x76,0xf8,0xb0,0x41,0x1e,0x96,0xfe,0x41,0xec,0x7e,0x39,0x42,0xbe,0x38,0x82,0x42,0x85,0x19,0xb8,0xc1,0xf4,0x11,0xde,0xc1,0x75,0xc1,0xe1,0x40,0x8f,0x9c,0x16,0xc1,0x19,0x10,0x75,0xc2,0xa4,0x7b,0xfb,0xc0,0xed,0x43,0x84,0xc2,0x3,0x8c,0x44,0xc2,0x86,0x8b,0xa2,0x41,0xc9,0xfd,0x65,0x41,0xaa,0x1d,0xf7,0x41,0x50,0x97,0xbf,0x41,0x15,0x8,0x9c,0xc1,0xd4,0x75,0xf3,0x41,0x3a,0x9b,0x31,0xc0,0xe6,0xd7,0x24,0xc1,0x5e,0x7c,0x65,0xc1,0x12,0x12,0xae,0x41,0x79,0x20,0xa6,0xc2,0xc1,0x75,0x57,0xc2,0x7d,0x6b,0x2a,0xc2,0xc0,0xcd,0x3,0x42,0x43,0x1a,0x3c,0xc2,0xf4,0x98,0x26,0x42,0xdf,0xde,0x8d,0x41,0x57,0xc1,0x24,0x42,0x10,0xe7,0xf7,0x41,0x3e,0x4a,0x38,0xc2,0x16,0xa1,0x81,0x41,0x37,0xcb,0xf,0xc2,0x9b,0x72,0x12,0x42,0x1,0x71,0x48,0x42,0xf,0x88,0x37,0xc2,0x9f,0xaa,0xc3,0xc1,0x8a,0x52,0x93,0xc1,0xe5,0x68,0xa2,0xc2,0x96,0xe4,0xbb,0xc1,0x7e,0xec,0x81,0x42,0x50,0xe,0xa6,0xbe,0x21,0xf4,0x87,0x42,0x88,0xa5,0x64,0xc2,0x6f,0xae,0x2b,0xc1,0xd2,0x83,0x14,0xc2,0x56,0x5b,0xe4,0x41,0xfd,0x5,0xb5,0x41,0x35,0x6,0xaa,0x41,0x94,0x2f,0x6c,0xc2,0x79,0xa1,0xa0,0xc1,0xfb,0x19,0xbb,0xc1,0xa7,0xfb,0xcb,0xc1,0x76,0xf3,0xa8,0x41,0xa,0x4e,0x94,0xc1,0x3c,0x16,0xe8,0xc0,0x93,0x30,0x3a,0x41,0x61,0x7e,0x75,0xc1,0x7d,0x57,0x3c,0xc2,0xf9,0x62,0x83,0x42,0x97,0x3c,0x78,0x41,0x4c,0xaa,0x8b,0x41,0x3a,0x25,0xd6,0xc1,0x73,0x5a,0x29,0xc2,0xaa,0x31,0x8,0xc2,0x5d,0x82,0x66,0x41,0xec,0xf,0x20,0xc0,0x6a,0xd2,0x22,0x42,0x46,0xb4,0x4f,0x41,0x30,0x52,0xab,0xbe,0x2e,0x89,0xdb,0x40,0xca,0x6b,0x70,0x40,0x8c,0xd5,0x2c,0xc1,0x9a,0x93,0x1a,0xc1,0xd4,0xca,0x14,0x41,0x75,0xe6,0x3e,0xc1,0x64,0xe1,0x38,0x41,0xf7,0x7d,0xda,0xc1,0xc1,0x96,0xc2,0xc1,0xc3,0x80,0x2c,0xbf,0x86,0x9e,0x34,0x40,0x66,0x36,0x93,0x42,0xed,0xde,0x72,0xc2,0xa1,0xd7,0x2b,0x42,0xba,0x29,0x91,0x42,0xf1,0xbc,0xe4,0x41,0x6,0xac,0x62,0xc2,0xd6,0xdc,0x9b,0xc2,0x11,0x34,0x32,0x42,0x18,0x4e,0x68,0x42,0x7c,0xbc,0x53,0x41,0xfb,0x54,0x97,0xc1,0xd,0xc0,0x13,0x42,0x5b,0xf7,0x23,0xc2,0x0,0x7d,0xb0,0x3d,0xbd,0x8,0xc8,0x41,0x39,0x3a,0x4b,0xc1,0xd2,0xc0,0x4b,0xc0,0x75,0x96,0xb6,0x42,0x46,0x74,0x29,0x42,0xd7,0xd2,0x90,0xc2,0x73,0x2,0x30,0x42,0xda,0x1b,0x8a,0xc2,0xa9,0x9f,0x86,0xc0,0xd7,0x67,0x5b,0x42,0x92,0xe3,0xc5,0xc1,0xd0,0xf1,0x31,0xc1,0x7d,0x9e,0x9,0x42,0x60,0x3a,0x6b,0x41,0xb6,0x89,0x1b,0x40,0x30,0xab,0x19,0x42,0x72,0xe7,0x13,0x42,0xaa,0xf1,0x1f,0x42,0xc6,0x68,0x1d,0x42,0xee,0x3a,0x73,0x41,0x50,0x26,0xc,0xc2,0xb6,0xa3,0x35,0xc0,0x30,0xfb,0x4,0xc2,0xa6,0xfe,0xd,0x3f,0xe4,0xc6,0x47,0x42,0xe,0x2c,0x1b,0xc1,0xa1,0x6a,0x32,0xc2,0xd2,0xd5,0x7a,0xc2,0xba,0xdd,0x83,0x40,0xb9,0x53,0x32,0xc2,0xa7,0x11,0x0,0x43,0x28,0xac,0x9e,0xc1,0xdd,0x75,0xc5,0xc2,0x1d,0xa2,0xf2,0x41,0x49,0xb1,0x8e,0x41,0x76,0x53,0x2e,0x40,0x6e,0x38,0x5a,0xc1,0x75,0xde,0x53,0x42,0xfa,0x64,0x8f,0x41,0x6,0xba,0x89,0x3f,0x82,0xb6,0x1d,0xc2,0xfa,0x1e,0x37,0x40,0xac,0xa3,0xb,0xc2,0xc8,0x9f,0x12,0xc1,0x51,0xe3,0x97,0x42,0x12,0x2c,0xc,0xc2,0x6a,0x12,0x17,0xc1,0x24,0xe1,0xe4,0xbe,0xc9,0x74,0x6e,0xc1,0x6d,0xf3,0x9d,0xc2,0x57,0xac,0x88,0x41,0xe8,0x40,0xfd,0x41,0x9b,0x5a,0x8c,0xc1,0xa8,0x6a,0xf4,0xc1,0x65,0xa,0x1d,0x42,0x8d,0xff,0x45,0x41,0xda,0xd5,0x6,0x42,0xb8,0x14,0xa3,0x40,0xb5,0x27,0x7,0x42,0xa8,0x47,0xe3,0xc0,0xfa,0xe1,0xff,0x41,0xa6,0x42,0x29,0xc2,0x3d,0x83,0x85,0xc0,0x7e,0xe2,0x3f,0xc0,0x48,0x68,0x43,0x41,0x41,0x3,0xa3,0x42,0x2f,0x7f,0x8e,0x41,0xd4,0x7b,0x57,0x42,0xd,0xde,0x8d,0x41,0x84,0xb3,0x5c,0x42,0xa0,0x4f,0xf,0x41,0x9a,0x92,0x81,0x42,0x9a,0x11,0xa1,0xc2,0xa,0x30,0x45,0xbf,0x12,0x14,0x38,0x40,0x3c,0x3,0x83,0xc2,0xaa,0xc6,0x5,0xc2,0x4c,0xe8,0xe1,0x41,0x27,0xfc,0xd6,0x40,0x28,0x3f,0x37,0xc2,0x56,0x78,0x99,0x42,0x24,0x66,0xd5,0x40,0x37,0x2f,0x2a,0xc2,0xfd,0x5b,0xa,0x42,0xa8,0xeb,0x57,0xc2,0xbb,0x26,0xda,0x42,0x48,0xb7,0xe0,0xc1,0x3,0x50,0x56,0x42,0x16,0x60,0xf,0x42,0x95,0xd7,0x69,0x41,0x64,0x20,0x8b,0x42,0xd3,0x1c,0xf9,0x41,0xdb,0xd7,0xc6,0xc1,0xb6,0xba,0x39,0x41,0xf,0x39,0x83,0xc2,0xde,0x8e,0x8e,0x41,0xbf,0x48,0x94,0xc0,0x79,0x44,0x6d,0xc2,0xdd,0xa1,0x35,0x42,0xb1,0xf,0x96,0x41,0x61,0x56,0xf0,0x41,0x4f,0x38,0x56,0x42,0xba,0x79,0x8d,0xc1,0x6f,0x0,0xc7,0xc2,0x94,0x2,0xfc,0xc1,0xd5,0xa4,0x4f,0x42,0xe1,0x33,0x89,0x42,0x7a,0x1f,0x9b,0xc0,0x70,0xcc,0x76,0x42,0xfe,0x7,0x8d,0xc1,0x2e,0x54,0xf5,0x41,0xb2,0xbe,0x13,0xc2,0xa,0x10,0xbb,0xc2,0x22,0x9b,0xce,0xc0,0x60,0x36,0xec,0x41,0x38,0x86,0xf0,0x41,0xc5,0x85,0x94,0xc2,0x5f,0x4d,0x85,0x41,0xf9,0xd5,0x19,0xc1,0xcb,0x7b,0x10,0x42,0xf6,0xdc,0x0,0xc2,0xf,0x6d,0xb1,0x41,0x39,0xbc,0x47,0xc1,0x45,0x16,0x91,0x42,0xf6,0xde,0xb6,0xc0,0xb,0x4d,0xf1,0xc1,0x48,0xa2,0x89,0x42,0x39,0x32,0xbc,0xc2,0x66,0xc5,0x88,0xc0,0x16,0xba,0x1c,0xc2,0x10,0xf9,0xce,0x40,0x75,0xf9,0x77,0xbf,0x75,0x3a,0x1f,0xc2,0x47,0x81,0x3f,0xc1,0x0,0xf5,0x70,0x3f,0x1f,0x4e,0x26,0x42,0x4f,0x56,0x80,0x42,0xa7,0x78,0xb6,0x42,0x74,0x67,0x95,0xc1,0xa2,0x11,0xc7,0x3f,0x38,0x56,0x51,0x41,0x3c,0xae,0x46,0xc2,0x12,0xe5,0x5f,0xc2,0xb5,0xb9,0x19,0xc2,0xef,0xd1,0x57,0x41,0xb8,0xce,0xfc,0x41,0xc1,0x2c,0x90,0x41,0xca,0x8b,0xb5,0x41,0xee,0xae,0x48,0xc1,0x44,0xf0,0xd3,0xc1,0xf2,0xf3,0x16,0xc2,0xa1,0x7f,0x11,0xc2,0x4,0x3b,0x39,0x42,0x3d,0xd6,0x3,0xc2,0x6a,0xd9,0x3,0xc2,0xb8,0x86,0xd7,0xc1,0xda,0xee,0xbe,0x42,0xb4,0x40,0x52,0x42,0x96,0x7f,0x8e,0x41,0xa7,0xcb,0x36,0x42,0x88,0x50,0x6d,0xc2,0x1b,0x76,0x2,0xc2,0xc2,0xa,0xc4,0xc0,0xf0,0x3f,0x37,0x3e,0x70,0x4b,0x24,0xc0,0x3d,0x3d,0x6d,0x42,0xb6,0x9b,0x3,0x42,0xb0,0xfa,0x28,0xc2,0xac,0x85,0x6b,0x41,0x45,0x7d,0xbe,0x41,0xf8,0xd0,0xc9,0x41,0x77,0x92,0xbe,0x42,0x20,0xa5,0x1d,0x3f,0x33,0x15,0x95,0xc0,0x3a,0x4e,0x48,0x41,0xb,0xc5,0x13,0xc2,0x4d,0xfe,0x54,0x42,0x51,0x47,0x8,0xc2,0xaa,0xcb,0x42,0xc1,0x90,0xf9,0x2f,0xc2,0x80,0xe7,0xd7,0x41,0x2e,0xbf,0x6a,0x41,0x86,0x99,0xa0,0xc1,0x86,0x2c,0x4,0x42,0x3f,0x85,0x98,0x40,0x80,0xba,0xc5,0x41,0xef,0xfd,0x7d,0xc1,0x75,0x9,0x8b,0xc1,0x14,0x54,0x5,0xc2,0xd7,0xfe,0xf9,0xc1,0x95,0x51,0x38,0xc1,0xc,0xf0,0x15,0x42,0x78,0x87,0xd0,0xc1,0xb0,0xa6,0x8e,0xc1,0xd2,0x4b,0x20,0xc2,0xc5,0x8a,0x70,0xc2,0xbc,0x21,0x5a,0x42,0x88,0xcb,0x19,0x42,0x1e,0xc0,0x82,0x42,0xf5,0x79,0x71,0x42,0x7a,0x67,0x7b,0xc1,0xba,0xca,0xe7,0xc1,0xb,0xb6,0x28,0xc2,0x2a,0xd,0xe1,0xc1,0x58,0xac,0xd1,0x41,0xb6,0xd7,0x8d,0x41,0xf0,0x1b,0x7a,0x41,0xd6,0x28,0xf3,0xc0,0x2a,0x50,0x2f,0x40,0x1,0xee,0x59,0xc2,0xd1,0x2b,0x73,0xc2,0x4c,0x93,0x5a,0x42,0x6a,0x98,0x81,0x41,0x56,0xb0,0x8f,0x41,0x50,0xee,0x95,0x41,0x7,0xaf,0xfb,0x40,0xe1,0xd4,0xb7,0x41,0xd4,0x3e,0x19,0xc2,0x98,0xb2,0xb5,0xc2,0x3d,0x95,0xf0,0xc1,0xa2,0x40,0x74,0xc1,0x2d,0xfa,0x1c,0x42,0x32,0xb0,0xe8,0xc1,0xb6,0x6c,0x3,0x42,0xac,0x58,0x11,0x42,0xaa,0x57,0x9c,0xc2,0x60,0x79,0x4a,0x42,0x86,0xc7,0x6d,0x42,0x76,0xad,0x51,0x3f,0xfb,0x42,0xe,0xc2,0x3a,0xfa,0x1,0xc3,0x28,0x6b,0x84,0x3f,0x49,0xc5,0x24,0xc2,0x98,0x93,0x6a,0xc2,0xba,0x2,0xfe,0x41,0xaa,0xf7,0x3a,0x41,0xf5,0x81,0x50,0xc2,0xe0,0x36,0x4c,0x41,0x6a,0xbd,0x17,0x40,0x44,0xaa,0xc8,0xc1,0x68,0x1,0x87,0xc1,0xc7,0xb6,0xef,0xc1,0x68,0x65,0x47,0xc2,0x5b,0x32,0x4c,0x42,0xac,0x94,0x26,0xbf,0x52,0xbf,0xa,0x41,0x26,0x26,0xdb,0xc1,0xd4,0xb7,0x8d,0xc1,0xb9,0xeb,0xf,0xc2,0x6d,0x37,0xa2,0xc1,0xa1,0x65,0xbb,0x42,0xa7,0x9a,0x5f,0xc2,0x78,0x7e,0x0,0x41,0xe,0x49,0x46,0xc2,0xcc,0x31,0x4f,0x42,0x80,0x5,0xa7,0xc1,0x3c,0x6e,0xee,0xc1,0x35,0xd2,0x10,0x42,0xa0,0xb2,0x6d,0x41,0x9,0xa7,0xc0,0x41,0x69,0x14,0x17,0xc2,0x1d,0x28,0xb8,0xc1,0x6e,0xe5,0x8d,0xc1,0x39,0xdd,0x6f,0x42,0x35,0x36,0x40,0xc1,0x3a,0x74,0x8d,0x41,0x84,0x96,0xa4,0xc0,0xe8,0x3a,0x97,0x42,0x55,0xd6,0x1e,0x42,0x59,0xa3,0x3b,0x42,0x42,0xaa,0xa8,0xc2,0x72,0xcb,0x0,0x42,0x2b,0x5f,0x45,0xc2,0xec,0x4b,0x3e,0x42,0x6d,0x96,0x60,0x41,0x68,0xad,0x11,0xc2,0x37,0x5c,0x3c,0x42,0x37,0xc1,0xdf,0x40,0x23,0x25,0x78,0x41,0x9c,0xcf,0x69,0xc1,0x74,0xa1,0x28,0x42,0x49,0xca,0x18,0x41,0xef,0x5b,0x24,0x41,0x72,0xa1,0xd,0xc2,0xa,0x9f,0x7,0x42,0x55,0x1b,0x89,0xc2,0x1d,0x16,0x5d,0xc1,0xf,0x10,0x6f,0xc1,0xba,0x61,0x63,0x3e,0xc1,0xe6,0xd0,0xc1,0xa1,0x91,0x8e,0x41,0x45,0xc5,0x3c,0x42,0xd2,0x85,0x6b,0xc1,0xe,0x47,0x90,0x42,0x85,0x0,0x65,0x41,0x46,0x45,0x72,0xc2,0x1e,0x82,0x75,0x42,0xf0,0xeb,0x90,0xc1,0xbf,0x9,0xd1,0x41,0xa,0xf1,0x57,0xc0,0x85,0xbc,0x4b,0x42,0x14,0xb1,0x5f,0x40,0xe8,0x19,0xcb,0x3f,0x63,0xd0,0xc2,0x41,0x53,0x6a,0x4e,0x42,0xc4,0x40,0x8b,0xc1,0x7f,0xad,0x15,0x40,0xfc,0xa6,0xe4,0xc1,0xf4,0x29,0x86,0x41,0x3c,0xc,0xac,0x3f,0xad,0xe4,0xe8,0xc1,0xec,0xdd,0xaf,0x42,0xea,0xf0,0xc9,0x40,0x65,0x45,0x8f,0x41,0xdc,0xdd,0x9b,0x40,0x8e,0xbc,0x99,0x41,0x16,0x7c,0x39,0xc2,0xe0,0x20,0x5d,0xc1,0x9a,0x3a,0x1e,0x42,0xd3,0x27,0x87,0x41,0x1a,0xf9,0x1,0x42,0xea,0x14,0x8e,0xc2,0xc8,0x98,0xd0,0x40,0x53,0x48,0x40,0xc2,0xc2,0x31,0xa4,0xc0,0xa8,0xef,0x89,0xc1,0xec,0xf0,0xb9,0x40,0x98,0x61,0x53,0xc1,0xe7,0xfd,0x2d,0x41,0x79,0x5c,0xa8,0xc0,0x94,0xdd,0x6b,0x41,0x5e,0xfc,0xb4,0x41,0x20,0x15,0x8f,0x3d,0x77,0x1b,0x9e,0xc2,0x2f,0xc7,0x2d,0x42,0x4a,0x9c,0xb2,0x41,0xb2,0xe6,0xbf,0xc1,0xae,0x95,0x1b,0x42,0xde,0x37,0x8a,0xc1,0xd7,0x36,0x27,0xc2,0xe6,0x60,0xda,0xc2,0xd7,0x66,0xed,0xbf,0xda,0x4b,0x9e,0xc1,0x5e,0x69,0x8a,0x42,0x65,0x23,0xdf,0xc0,0xe0,0xf2,0x27,0xc2,0x88,0x4c,0x52,0x42,0x15,0x94,0x1e,0x41,0x57,0x46,0xf,0xc2,0xf4,0x8e,0x28,0xc2,0x17,0xa2,0x2f,0x42,0xdd,0xf5,0x10,0xc2,0x4c,0x3d,0x86,0x40,0x5,0x9f,0x28,0xc1,0x30,0x23,0x23,0xc2,0x7,0x2e,0x81,0xc1,0xfd,0xec,0x2e,0xc1,0x76,0xbe,0x1e,0xc1,0x18,0xa9,0x43,0xc0,0x6,0x3e,0xb6,0x41,0xc0,0xe5,0x71,0x40,0x2b,0x8d,0xf4,0xc1,0x0,0xb4,0xac,0xc1,0xc5,0x1c,0x59,0xc2,0x1c,0x9c,0xe3,0xc1,0xdf,0xf6,0x75,0xc1,0x82,0x6f,0xef,0x41,0xed,0x49,0xa,0xc2,0x4a,0xed,0x4d,0xc2,0x64,0xeb,0x42,0xc2,0x78,0xe7,0x3c,0x42,0xb7,0x40,0x74,0xc2,0x1,0x25,0x70,0x41,0x14,0x73,0x94,0xc1,0xe9,0xf5,0x5,0xc2,0x2e,0x59,0xde,0xc0,0x5,0xad,0x8d,0x42,0xca,0x49,0xdb,0x41,0xaf,0xf5,0x8,0x41,0xec,0x74,0x4d,0x41,0xe8,0x8f,0x66,0xbf,0x12,0xdc,0xe0,0xc1,0xd7,0x58,0x2e,0xc2,0xa1,0xe3,0x20,0x40,0x29,0xb9,0x1e,0xc2,0xd9,0xe8,0x9f,0x42,0x7a,0x3,0x34,0x42,0x5e,0x74,0x2f,0x42,0x67,0x84,0x77,0xc2,0xa,0xf2,0x72,0xc1,0x81,0xef,0x4e,0xc2,0x32,0x5d,0x15,0xc2,0x5d,0x5d,0x6b,0x41,0xc7,0x59,0x98,0xc0,0x64,0xc8,0xb,0x41,0x17,0x25,0x84,0x40,0xa8,0x14,0xeb,0x41,0xde,0xaf,0xbc,0x41,0x20,0x61,0xca,0xc1,0x94,0xff,0x9f,0x41,0xaf,0xd6,0x18,0x42,0x64,0xfa,0x38,0xc0,0x9f,0x49,0xc,0xc2,0x8f,0xae,0x1a,0xc2,0x91,0x94,0xa2,0x41,0xc,0xa5,0x74,0xc1,0x36,0x68,0x10,0xc2,0xba,0x5c,0x35,0xc1,0x9e,0xf8,0x88,0xc2,0xc6,0x69,0xf5,0xc0,0x9e,0xca,0x1b,0x42,0x6d,0x74,0xd3,0x42,0x34,0x13,0x15,0x42,0xa3,0x0,0x20,0x41,0xcc,0x2e,0x25,0xc2,0x17,0xf0,0x61,0x42,0x57,0xc2,0xfc,0x41,0x3b,0xd4,0x27,0xc1,0xff,0x1f,0x5b,0x42,0x38,0x26,0xba,0x41,0x5c,0x96,0xe2,0xc1,0xb2,0xb3,0x24,0xc2,0xd6,0x7d,0xc6,0xc1,0x30,0xd3,0xf1,0xc1,0x2c,0x35,0x25,0x42,0x2c,0xad,0xbb,0x40,0x98,0x40,0x10,0x42,0x51,0x3c,0x2c,0x42,0x8b,0x46,0x9f,0xc0,0x45,0x51,0xbb,0x41,0x31,0x8d,0x2e,0xc2,0xab,0xda,0x13,0xc1,0x7f,0xd0,0xe4,0xc1,0x2b,0x71,0x7,0x42,0x84,0xcb,0x19,0x41,0x59,0xa3,0xf1,0x3f,0x26,0xfe,0x39,0x42,0x1,0x68,0xf,0xc2,0xa1,0xb2,0x1,0xc2,0xe0,0xdc,0xb0,0x42,0x3,0xa1,0x33,0x42,0x74,0xc2,0x11,0xc1,0x44,0x16,0xc4,0xc0,0x36,0x92,0x3f,0xc1,0x2d,0xb3,0x1f,0x42,0x67,0xfe,0x67,0xc2,0xf6,0x15,0x92,0x41,0xf1,0x97,0x2c,0xc1,0xe3,0x22,0x4,0x42,0x8e,0x52,0x45,0x3f,0xdc,0xc6,0xad,0xc0,0x58,0xc9,0xfb,0xc0,0x50,0xa6,0x37,0xc2,0x6f,0xfa,0x84,0xc1,0xb0,0x1b,0x62,0xbf,0xa4,0xba,0xef,0xc0,0x3c,0x6d,0xaf,0xbf,0x70,0x50,0xd1,0xc1,0x42,0xe0,0x33,0x42,0xcd,0x74,0xa0,0xc1,0x67,0x2e,0xa4,0x41,0xee,0xcb,0x9d,0xc2,0xc6,0xef,0x42,0x41,0xb6,0x87,0x8b,0xc2,0x71,0x50,0x5,0x41,0x60,0x3f,0xa6,0xc2,0xe0,0xd,0xd5,0xc1,0xee,0xe0,0x5,0xc2,0x2c,0x3e,0xa4,0x41,0xe6,0x6b,0x6,0x41,0x84,0xf2,0xed,0x41,0x60,0x21,0x34,0x42,0xd1,0x13,0xce,0x41,0x3d,0x8d,0x89,0x41,0x76,0xb9,0xc2,0xc1,0x88,0xf5,0xd8,0x3f,0x53,0xc0,0xfa,0x41,0x8e,0xbf,0x30,0x41,0x34,0x10,0xd8,0xc1,0x20,0x84,0xdc,0xc0,0x75,0xe3,0x6a,0xc1,0xc7,0xa4,0x28,0xc2,0xd1,0xbf,0x59,0xc2,0x89,0xc8,0x5b,0xc1,0xc1,0x1e,0x1c,0xc2,0xbe,0xbb,0x4d,0xc2,0x45,0x1,0xac,0x41,0xaa,0xf8,0x5f,0xc1,0xc5,0xd4,0x25,0x41,0x12,0x68,0xae,0x3f,0xfd,0xc8,0x1d,0x41,0x1f,0x2,0x68,0xc2,0xc6,0x7d,0x8d,0x41,0xf3,0x16,0x1e,0xc2,0xe4,0x86,0xe8,0x41,0xf,0x8f,0x97,0x41,0x7a,0xed,0xaf,0xc1,0x62,0x1d,0x64,0x41,0x97,0x38,0x10,0xc1,0x5a,0xf4,0x1e,0xc1,0xd2,0xb3,0xbf,0xc2,0xbd,0xbb,0x48,0x42,0x54,0xeb,0x12,0x41,0x64,0x3f,0x16,0xc2,0x6b,0x70,0xee,0x40,0x85,0xc8,0x94,0x41,0x4d,0x8a,0x4,0xc1,0xa6,0xd0,0xff,0x41,0xd7,0xbe,0x78,0x42,0xb8,0xef,0x99,0x41,0xac,0x1,0x61,0xc1,0x50,0xd8,0xe2,0xc1,0x20,0x4b,0x5,0x43,0x78,0x4b,0x2f,0x3f,0xa9,0xd,0x7b,0x42,0x9b,0x37,0x4e,0x42,0xc4,0xa1,0x2e,0xc2,0x18,0x88,0x80,0x42,0xa2,0xae,0x94,0x40,0xe0,0xaf,0xa4,0x41,0x9c,0xe3,0x9d,0x41,0x3d,0xc3,0x60,0x41,0xd6,0xa2,0x40,0x41,0x99,0x28,0x30,0xc1,0x3a,0x4e,0x8c,0xc1,0xcc,0x6,0x4b,0xc1,0xa,0x4c,0x23,0xc2,0xd4,0xcb,0x5,0xc2,0x3e,0x6a,0x16,0xc2,0x9c,0xdc,0x65,0xc0,0xc7,0x68,0xce,0x42,0xf5,0x52,0x98,0xc2,0x33,0xb,0x36,0x41,0x30,0x1a,0x89,0xc0,0xb5,0x44,0xdd,0x41,0x58,0x74,0x2,0xc0,0xae,0x54,0x5d,0xc2,0x71,0xc0,0xa1,0xc1,0xfa,0x89,0x62,0xc1,0x28,0x88,0x33,0xc2,0x9e,0x74,0xc5,0x41,0xf3,0x44,0x69,0xc2,0x9f,0x8a,0xc9,0x41,0xa4,0xe,0x24,0x42,0xa0,0x2,0x37,0xc2,0xb9,0x18,0x7,0xc2,0x4d,0x6b,0x3e,0xc0,0x43,0x31,0xf2,0xc1,0x71,0xb7,0x5f,0xc1,0x34,0x1e,0x61,0x41,0x23,0x3,0x47,0x42,0x43,0xb7,0xc9,0x40,0x4c,0x14,0x21,0x42,0x5a,0xa3,0xde,0x41,0x36,0xe0,0x3a,0xc2,0xb3,0xa4,0x60,0x42,0xf0,0xad,0x74,0xc0,0xf1,0xf2,0x3b,0xc2,0x83,0xd,0x64,0x41,0x24,0x74,0xa8,0xc1,0xc2,0x8c,0x8b,0xc2,0xf7,0xb4,0x7b,0x41,0x75,0x98,0x7f,0x42,0x82,0xc9,0x61,0x41,0x22,0x2a,0x20,0x42,0x6b,0xb0,0x58,0xc2,0xa,0xe9,0xd,0xc2,0xd6,0xf6,0xba,0xc1,0xa7,0x65,0xe3,0x42,0xa6,0x5f,0x9b,0xc2,0x6,0xd9,0x59,0xbf,0xbc,0xe2,0x18,0x42,0xe9,0x55,0x28,0x42,0x3b,0x1d,0x6c,0xc2,0x25,0xc6,0x11,0x42,0x46,0xb8,0xe2,0xc0,0x51,0x10,0x4c,0xc2,0x5a,0x65,0x5d,0x42,0xe0,0x99,0x24,0xc2,0xdb,0xa6,0x85,0xc1,0x6f,0xdd,0x93,0x42,0x44,0xe1,0x2a,0x42,0xa5,0x1f,0x2f,0xc2,0x38,0x99,0xe5,0xc1,0xc5,0x5,0x35,0x42,0xf4,0x1b,0x5c,0xc2,0xce,0x45,0xbe,0x41,0xc9,0x67,0xf7,0x41,0xf3,0xc1,0xbe,0x41,0x8,0xdc,0x15,0xc2,0x5d,0x21,0x5a,0xc2,0xc7,0xbc,0x73,0x41,0xa6,0x6,0xba,0x42,0x46,0xa9,0x85,0x41,0xd4,0x14,0xf1,0xc1,0xad,0xc6,0xf7,0xc0,0x56,0x5,0x9c,0xc1,0xc7,0x5e,0x19,0x41,0x2a,0xfe,0x6e,0x41,0xa5,0xce,0x25,0xc2,0x15,0xee,0x96,0xc1,0x35,0x2e,0x72,0x42,0xa4,0xf1,0xab,0xc1,0x7b,0x36,0x7e,0xc2,0x8,0xfe,0x15,0x42,0xed,0xd3,0x9d,0xc0,0xdc,0xd0,0x6,0xc2,0x68,0xe7,0x37,0xc2,0xe,0x28,0xab,0xc1,0xe1,0x8c,0x9a,0x41,0x98,0xe6,0xb7,0x41,0xed,0xc3,0xe5,0xc1,0xea,0x8f,0xfc,0xc0,0x9f,0x88,0x9,0x42,0xd1,0xb4,0x68,0xc2,0xfb,0xcf,0xc5,0xc1,0xd7,0xfa,0x31,0xc1,0xb6,0xb4,0x6f,0xc2,0x81,0x97,0xa3,0x41,0x24,0x31,0x2,0x42,0x2,0x38,0xe2,0x41,0xe1,0x8d,0xd6,0x41,0xe5,0xc6,0x8f,0x40,0x9c,0x56,0x18,0xc2,0x80,0x9,0xc5,0x3f,0xbc,0x94,0xc0,0x42,0x94,0x8,0x3,0x42,0x38,0x1c,0xd8,0x42,0xc1,0xa5,0x54,0xc2,0x6,0x88,0x33,0x42,0xcf,0xb4,0xb9,0xc1,0xd2,0x54,0xa,0x42,0xf6,0xc1,0x5,0x41,0x66,0x5d,0xb2,0x42,0xc,0xed,0xaa,0x42,0x38,0x89,0x1d,0x42,0x81,0x1f,0x9d,0x41,0xb5,0x54,0xbb,0xc1,0x52,0x38,0xd2,0x40,0xbe,0xe5,0xe1,0x40,0x67,0x1f,0xae,0xc2,0x8c,0xcb,0x5a,0x42,0xdd,0x21,0xb,0x42,0xc,0x24,0x2f,0xc2,0x12,0x72,0x73,0x40,0x67,0xa5,0x86,0x42,0xed,0x24,0x6c,0xc2,0x84,0xde,0x13,0x42,0xa,0xb,0x56,0xc2,0xfe,0xc1,0x35,0x42,0x45,0x1f,0x74,0x41,0xb0,0xc2,0x30,0xc2,0xb2,0x83,0x8e,0x41,0xc2,0x42,0x46,0x42,0x26,0x6e,0x90,0xc2,0x41,0x6,0xba,0xc1,0xbe,0x58,0x8f,0x42,0x35,0xe7,0x5a,0xc1,0x94,0x35,0xbf,0x41,0x4b,0xfc,0xb1,0xc2,0x7e,0x39,0xbd,0x42,0x94,0xf4,0x99,0x41,0xa5,0xbc,0x96,0xc1,0x5,0x8d,0x54,0x42,0x2d,0x40,0x6c,0xc0,0x7c,0x54,0xd,0x42,0x34,0xc3,0x7d,0x42,0x46,0xac,0xb2,0xc2,0xeb,0x4b,0xf3,0x41,0xed,0x1,0xb2,0x41,0x42,0xea,0x45,0xc2,0x57,0xa5,0x6a,0x41,0xf9,0x87,0xab,0xc2,0x22,0x5f,0xb1,0x42,0x29,0x42,0x6c,0xc2,0xf3,0x15,0x80,0xc2,0x8c,0xfe,0x2,0x40,0x48,0x7f,0x83,0x41,0x73,0xb0,0x17,0x42,0xec,0x81,0x65,0xc2,0xdd,0xc,0xb6,0x42,0x64,0x89,0x2a,0x42,0x9c,0xae,0x9c,0x42,0xa,0x2c,0x2,0xc2,0x8,0xfa,0x24,0xc2,0xfa,0x7d,0x3a,0xc2,0xca,0x8d,0xb4,0xc0,0x31,0x2,0x26,0x42,0x2e,0xa,0x3d,0x42,0x1f,0x9c,0x2b,0x42,0x2b,0x8,0x35,0x41,0x5c,0xc6,0xf,0xc1,0xf8,0x3b,0x18,0xc2,0x3b,0x13,0x5c,0x42,0x17,0x89,0x94,0xc1,0xeb,0x43,0xa8,0xc1,0x9c,0x7d,0x84,0xc2,0x71,0xf6,0xbe,0xc1,0x63,0x8d,0x8e,0xc2,0x32,0xad,0x7a,0x42,0xb2,0x5a,0x5c,0xbf,0xe4,0xb9,0xba,0xc1,0x7e,0x3b,0x49,0x41,0xa2,0x2c,0x4d,0xc2,0x46,0x68,0x28,0x42,0xe,0x4a,0x4d,0xc1,0xc0,0xd9,0xe5,0xc1,0xf9,0xd,0x14,0xc2,0xe8,0x7b,0x12,0x40,0x84,0x83,0x97,0xc1,0x58,0x13,0x12,0x42,0xd3,0x15,0x50,0xc2,0x6c,0x3c,0x18,0x42,0x9f,0xbd,0x2b,0x42,0x9,0x68,0xcf,0x3f,0x71,0xd8,0xaf,0xc1,0x8e,0x6,0x89,0xc2,0x46,0xc6,0x88,0x42,0xba,0xa8,0xba,0xc1,0x70,0x5a,0x87,0xbe,0x16,0x32,0xb7,0xc1,0x8e,0x3f,0x9a,0xc2,0xc6,0xff,0x84,0xc2,0x79,0xd6,0x28,0xc2,0x4,0x3f,0x7c,0x3e,0xee,0x54,0x93,0x40,0xea,0xa,0xa0,0x42,0x46,0x69,0x9d,0xc2,0x6c,0xb,0xcf,0x41,0x71,0x13,0x45,0x41,0x6d,0xdf,0xd,0x42,0xc,0x40,0xb0,0x41,0x8e,0xc1,0xff,0x42,0x91,0xf5,0xc1,0xc1,0x20,0x6c,0xa8,0x41,0xe2,0xc2,0x2a,0x42,0x11,0x1f,0x11,0xc2,0xa3,0x25,0x7e,0x42,0xd2,0x6a,0x2b,0xc2,0xb8,0x54,0xe1,0xc1,0xe2,0x4f,0x15,0x42,0x93,0xc7,0x5f,0x42,0xf6,0x34,0x4,0x42,0x9b,0x85,0x43,0xc1,0xe1,0xbd,0x6b,0xc2,0xb0,0x44,0x2c,0x42,0xf8,0x19,0x8,0x42,0xa4,0xe8,0x28,0x42,0x59,0xe7,0x64,0xc1,0xdc,0xbd,0x50,0x41,0x2a,0x7f,0x65,0x41,0xbe,0xc,0x9,0xc0,0x23,0x81,0x69,0xc2,0xd1,0x0,0xd,0x42,0x30,0xf8,0xaa,0xc1,0xf2,0xf4,0xc1,0x41,0xfb,0xd7,0xe8,0x41,0xe4,0xb8,0x68,0x41,0x6b,0x80,0x4e,0x41,0xac,0xdb,0x26,0xc2,0xf9,0xe7,0x9f,0x41,0x32,0xc,0x14,0x42,0x3c,0xb9,0x11,0xc1,0x84,0x6b,0x7f,0x42,0xcb,0x88,0x0,0x42,0xc8,0x84,0x78,0xc2,0x25,0x14,0xa8,0x41,0xfc,0x4d,0x57,0xc2,0x18,0xdb,0xfc,0xc0,0xe2,0xe6,0x9,0xc2,0x73,0x8a,0xb8,0x41,0x2d,0x80,0x8,0xc2,0x7a,0x11,0x6e,0xc0,0x83,0x42,0x98,0x42,0x69,0x2d,0x25,0xc2,0x8a,0xd9,0x91,0xc1,0x68,0x6e,0x1e,0xc1,0xa1,0xf2,0x9a,0xc0,0x83,0xa1,0x1f,0xc2,0x28,0xbc,0x5b,0xc2,0xb4,0x98,0xca,0xc1,0x65,0x7b,0x9,0x41,0x82,0x89,0xbf,0x3f,0x87,0xdf,0x31,0xc2,0x8f,0xcc,0xa4,0x41,0x27,0x54,0x9a,0xc0,0xe4,0xbe,0x46,0xc2,0xc2,0xa,0x10,0x41,0x60,0xa7,0xc7,0xc0,0x58,0xa1,0x3a,0xc2,0x62,0x50,0xb5,0x41,0x68,0x9f,0x43,0xc1,0x3e,0x6,0x9a,0xc2,0x96,0xfa,0x6,0x42,0x2c,0xe9,0xbc,0x40,0x5c,0xe7,0x2b,0xc2,0xee,0x1f,0xdd,0xc1,0x22,0xb4,0x27,0x41,0x74,0xd0,0x2,0x42,0x3b,0xec,0x7c,0xc2,0xce,0x27,0x16,0xc2,0xc8,0xbb,0x9c,0x42,0xa9,0x81,0x1f,0xc2,0x11,0xe8,0xa2,0xc1,0xb9,0xe8,0xd8,0xc0,0xc4,0xbb,0x59,0xc0,0x7a,0x2c,0xa3,0x41,0xb2,0x8a,0xa8,0xc1,0x55,0x38,0x2a,0xc2,0xe0,0xea,0x28,0x42,0xc2,0x40,0xd6,0xc0,0x6c,0x3c,0xd7,0x41,0xb0,0xc3,0x9c,0x40,0xca,0xf1,0xeb,0xc0,0xd6,0x19,0x50,0xc2,0x92,0x6e,0x7f,0xc1,0x8a,0x38,0x1a,0x42,0x7c,0x67,0x37,0x41,0x21,0xea,0xa0,0xc1,0x6c,0x8,0x20,0xc2,0x47,0xd0,0x46,0xc2,0x80,0x5c,0x91,0x3c,0xbf,0xca,0x6d,0x41,0x78,0x7,0x95,0x41,0x59,0xb,0x9e,0x41,0xd3,0x22,0xf,0x42,0x42,0x97,0x5,0xc2,0xd0,0x4,0x15,0x42,0xaf,0x5a,0x5b,0xc1,0x54,0x65,0x8,0xc1,0xa,0xf2,0xd6,0xc1,0x85,0x43,0x4a,0x42,0x6e,0x85,0x37,0xc2,0x92,0x51,0xcf,0xc1,0x1a,0xdd,0xab,0x3f,0x70,0x46,0x6d,0xc2,0xd2,0xce,0x2,0xc2,0xb6,0x7b,0xa7,0xbf,0x3d,0xf2,0x5c,0xc1,0x65,0x71,0xa0,0x41,0x46,0x2c,0xbc,0xc0,0x6d,0xe5,0x9,0xc2,0xbe,0x9a,0x6c,0xc1,0xfe,0xf7,0xb8,0xc1,0x16,0xd,0x5a,0x41,0x1b,0x39,0xc5,0x40,0xf5,0x1a,0x7d,0xc0,0x60,0x5b,0xd2,0xc1,0xd2,0x24,0x31,0x41,0x55,0x87,0xda,0x41,0x5,0xea,0x2e,0xc1,0xac,0xdf,0x53,0xbf,0x5e,0x76,0xfa,0xc0,0xb2,0x42,0x1b,0x41,0xad,0x50,0x8f,0x41,0x7e,0x2,0xa8,0x41,0xc5,0xd7,0xf7,0xc1,0xb0,0x65,0xf8,0x41,0xeb,0x3a,0x96,0xc0,0xba,0xa8,0x48,0xc2,0x38,0x39,0x25,0x3f,0x57,0x21,0x88,0xc2,0x5c,0x97,0x8b,0xc1,0x17,0xb5,0xff,0xbf,0x1f,0xe2,0xd1,0x41,0x19,0xba,0xde,0xc1,0xdd,0xbd,0xdd,0xc1,0x74,0xda,0xe0,0x41,0xd8,0x5c,0xef,0xc1,0x34,0x5d,0x2,0x42,0x96,0xbf,0x86,0xc1,0xca,0x7f,0xb1,0xc1,0x2c,0x98,0x1d,0xc1,0xfd,0xb9,0xa0,0x41,0xdc,0x18,0x8c,0xc0,0x35,0xa9,0x16,0xc2,0x21,0x34,0x14,0x41,0x46,0x65,0xe2,0xc1,0xbe,0x73,0x9b,0xc2,0x9a,0x87,0x55,0x41,0xf8,0x57,0x9b,0xc1,0xef,0xc,0x18,0x41,0x2,0xd3,0x9,0x41,0x7a,0x9a,0x4,0xc0,0x12,0xda,0x97,0x42,0xa2,0xa6,0x19,0xc2,0x7d,0xb4,0x15,0xc2,0xa,0x5d,0x54,0xc2,0xff,0x88,0x16,0x42,0xb8,0x58,0x9b,0xc0,0xe5,0x3f,0x68,0x41,0x5,0x95,0x4d,0xc2,0xdf,0xcb,0xd4,0xc1,0x58,0xe5,0x60,0x40,0xa5,0xa5,0x92,0xc2,0x7,0xda,0x45,0xc2,0x34,0xa5,0x7,0x41,0xe5,0x72,0x32,0x42,0xa8,0x56,0x39,0xc1,0x39,0x1b,0xa7,0xc1,0xc0,0xe6,0xd,0x3d,0x71,0x30,0x73,0xc1,0xb9,0xc7,0x99,0xc1,0x20,0x8c,0x54,0xc2,0xb8,0x63,0xe1,0x40,0x9e,0x97,0xe0,0x40,0xa2,0x98,0xcc,0xc0,0x9e,0x84,0xd,0x42,0x30,0xe8,0x25,0x40,0x86,0xb1,0xb9,0xc1,0x9e,0xf8,0xba,0xc1,0x20,0x19,0x91,0x41,0xd8,0xbe,0x6b,0x42,0x5d,0x59,0x7d,0x41,0x58,0x87,0xda,0xbf,0x70,0x71,0xcb,0xbf,0x54,0xf3,0x33,0xc2,0x32,0xba,0x0,0x41,0xda,0x5c,0x4e,0x42,0xfa,0x68,0xf4,0xc1,0x3f,0xbd,0x3b,0x42,0xe,0x43,0x7a,0x41,0x4d,0x9b,0x7b,0x41,0xe8,0xef,0x85,0x40,0xe0,0x73,0xd6,0xc1,0x3b,0xfd,0x69,0xc1,0xa3,0x38,0x22,0x42,0xfa,0xbc,0x8,0x42,0xf8,0x37,0xfb,0xc0,0xc,0x24,0xa8,0xc0,0x4a,0xbf,0x66,0x42,0x6b,0xca,0x4b,0xc2,0x4f,0xe3,0x0,0xc2,0xa4,0x57,0xcc,0x40,0x9d,0xc6,0xfa,0xc1,0x5,0x69,0x30,0x42,0x1e,0x20,0xb4,0x41,0xca,0x36,0x88,0xc1,0xba,0xfd,0x1b,0x40,0x66,0xc8,0xf5,0x41,0x13,0x74,0x5f,0x40,0x10,0x53,0xe3,0x41,0xeb,0x8c,0x21,0x41,0xe6,0x7a,0xb4,0xc0,0x24,0xda,0x20,0x42,0xbb,0x92,0x32,0xc2,0x30,0xc9,0x39,0x41,0xf7,0xad,0xa1,0x42,0xdd,0xb5,0xd3,0x41,0xdb,0x3d,0x1d,0xc2,0x25,0x27,0xc,0xc2,0x82,0xf9,0x3d,0xc2,0x67,0x78,0x67,0xc2,0x49,0xe0,0xb6,0x42,0x6a,0x1b,0xbe,0xc0,0x2c,0x29,0x4a,0xc2,0x42,0x30,0xa1,0x42,0xaf,0x66,0xd1,0xc0,0x94,0x8a,0xab,0xc2,0x23,0xfc,0x15,0xc2,0xec,0xd1,0x35,0xc2,0xd7,0xd7,0x8f,0x40,0xf,0x41,0xbe,0xc2,0xe4,0xa,0x91,0xc1,0x54,0x43,0x17,0xc2,0xeb,0x49,0x3e,0x42,0x70,0xa,0x54,0x42,0x74,0x38,0x20,0x40,0x19,0x8,0x1d,0x42,0x23,0xf7,0x95,0xc1,0xad,0x59,0xeb,0x41,0x9e,0x44,0xc,0xc1,0xbf,0xc4,0xc1,0xc1,0xf4,0x7f,0x5a,0x41,0x11,0x50,0x88,0x42,0x2f,0x62,0xa7,0xc0,0xf7,0x83,0xb8,0xc1,0xc7,0x78,0x16,0xc1,0x92,0x9b,0xad,0xc1,0x31,0x1e,0xc,0xc2,0xc,0x90,0xa2,0xc1,0x9d,0xbe,0x6a,0x42,0xbc,0xb4,0xcb,0x40,0xde,0x90,0xac,0xc2,0x49,0xec,0xd0,0xc1,0x81,0xb9,0x3,0x42,0xe2,0x5b,0x9f,0xc0,0x6d,0x32,0x7e,0x41,0x2a,0x74,0x81,0x42,0x7f,0x76,0xc9,0x41,0xa5,0xe4,0x97,0xc1,0x33,0xa0,0x4d,0xc2,0x93,0xbf,0x47,0x42,0x5c,0x6f,0x19,0xc2,0x66,0x16,0x52,0x42,0x55,0xc3,0x93,0xc2,0x7b,0x17,0xcb,0x41,0x66,0xad,0x3a,0xc1,0xad,0xb3,0x5c,0xc2,0x26,0xf2,0xc,0x42,0xc0,0x8e,0x0,0xc2,0xa8,0xa8,0x96,0xc1,0xf4,0xf3,0xec,0x41,0xff,0x81,0x83,0xc2,0x7b,0xea,0x74,0x42,0xd0,0x40,0x27,0xbd,0xed,0x83,0xa3,0xc2,0x23,0x80,0x4b,0xc2,0x38,0xc7,0x7c,0xc1,0x3c,0xe0,0xba,0x41,0xae,0xdf,0xf6,0xc0,0x59,0xa5,0xa,0x42,0xd8,0xed,0x8c,0xc1,0xb7,0xbd,0x78,0xc1,0x52,0xa8,0xc9,0x40,0xb,0xe0,0x1c,0x40,0xff,0xe2,0x6b,0x42,0x38,0x95,0xb3,0xc1,0x77,0xd6,0x1c,0xc1,0xb,0xf,0xb6,0x41,0x6b,0xec,0x2f,0x41,0xee,0x36,0x1a,0xc2,0x4e,0xbb,0xc6,0xc2,0xa4,0xb6,0x9e,0xc1,0x9f,0x17,0x94,0x40,0xa6,0x70,0xd4,0xc1,0x38,0x6f,0x6,0x42,0x99,0xbe,0xa2,0xc2,0xdc,0x7,0x7c,0xc1,0xc1,0xcc,0x25,0x42,0xd6,0x4c,0xa3,0xc2,0xa7,0x8d,0xe3,0x42,0x6b,0xeb,0x74,0xc2,0x45,0xaf,0x49,0x42,0xa4,0xa7,0x1f,0xc2,0xf5,0x45,0x2b,0x41,0x77,0x27,0x3c,0x42,0xc8,0xbd,0x91,0x42,0xba,0xc7,0xa,0xc3,0xf3,0xb3,0x9a,0x40,0x93,0x39,0x80,0xc0,0xa0,0x1b,0xb7,0xc1,0x50,0x54,0x17,0x42,0x6,0x5d,0xca,0x41,0x6e,0x73,0xee,0x41,0xc,0xe7,0xeb,0xc0,0x5f,0x5f,0x9d,0x42,0xa2,0xf7,0x3c,0x41,0xbd,0x44,0x74,0xc1,0x3d,0x1a,0x18,0x41,0xa1,0xd1,0xd3,0x41,0x90,0x13,0xbc,0xc2,0x1,0xf7,0x95,0x41,0x6,0xe1,0xcd,0xc2,0xea,0x75,0x5b,0x41,0x95,0x3f,0x52,0x42,0x8c,0xb7,0x8,0xc2,0x41,0x8c,0xef,0x41,0xf2,0x83,0xf1,0x41,0xc1,0x50,0xa9,0x42,0xa0,0xbf,0xfb,0x3f,0x4d,0xed,0x91,0x42,0xa4,0xc9,0x93,0xc2,0x1d,0x60,0xa2,0xc2,0x2a,0xa7,0x3b,0xc2,0xc3,0x2c,0x15,0x41,0x55,0x2f,0xc4,0xc0,0xe1,0xe5,0x3f,0x41,0xa3,0x3c,0xa0,0xc0,0xad,0xb3,0x7c,0x42,0x6,0xbe,0x3,0xc2,0xb9,0x30,0x0,0x42,0xd,0xa1,0x4,0xc2,0x5e,0xa2,0xef,0xc1,0x43,0xa,0x0,0x42,0x71,0xfb,0x28,0xc2,0xfb,0xc2,0xa4,0xc2,0x75,0x7b,0x95,0xc1,0xba,0xd9,0xb1,0x42,0x23,0xb3,0xdf,0x41,0xa8,0x32,0x48,0xc1,0x71,0xdd,0xbd,0x41,0xa0,0x3d,0x16,0x42,0xea,0x6,0xe7,0xc1,0x52,0x1,0xfe,0xc1,0x59,0x76,0xc9,0x42,0x55,0xfb,0x0,0xc3,0xec,0xa8,0x7c,0x41,0xe7,0x73,0xff,0x41,0x84,0x81,0xa5,0xc1,0xb4,0x3,0xa1,0xc1,0x9a,0xf8,0x44,0xc1,0xf4,0xfe,0x5,0xc2,0x6,0xa0,0xdd,0x41,0x33,0x52,0x29,0x41,0xf9,0xe6,0x87,0xc2,0x2c,0x10,0xd2,0xc1,0x5e,0xa0,0x36,0x42,0x3f,0xff,0xa0,0xc2,0xad,0x5c,0xb2,0x3f,0x6c,0x11,0x8a,0x41,0xba,0xdd,0x73,0x42,0x1f,0x6e,0x0,0xc2,0xec,0xab,0x8e,0xc1,0xe8,0xa4,0xc9,0xc1,0x56,0xce,0x9d,0xc1,0xbc,0xa6,0xb,0x42,0x4e,0x37,0x73,0x42,0xae,0x2f,0xf9,0x41,0x36,0xad,0xb9,0xc2,0xfe,0x44,0x3,0x42,0x12,0x56,0x8e,0xc2,0xed,0xf0,0x94,0xbf,0xe0,0x8f,0xb,0x40,0x55,0x3d,0x17,0x41,0x90,0xa5,0x91,0xc1,0x1e,0x75,0xaa,0x41,0x2c,0x62,0xea,0x41,0x10,0xee,0x6,0x42,0x4a,0x14,0x26,0xc1,0x58,0x57,0x13,0xc2,0x1b,0xb5,0x95,0xc1,0xc,0xe4,0x6c,0x42,0xc5,0x81,0x5c,0xc2,0x69,0x3b,0xb1,0x41,0x82,0xfc,0xda,0x41,0x2,0x69,0xe8,0x3f,0x48,0xc6,0x4d,0xc1,0x20,0xe4,0xc9,0x41,0x6c,0x1,0x1c,0x42,0xcd,0xd,0x54,0xc2,0x91,0x3b,0xb1,0x41,0x2c,0x72,0xb8,0xc0,0x36,0xac,0xb6,0xc1,0x6b,0xb3,0x9,0xc2,0xf0,0x1c,0x51,0x42,0x88,0x4f,0x3e,0xc2,0x91,0x74,0x40,0x42,0xac,0xbf,0x1,0xc2,0xc2,0xcc,0x22,0xc2,0x3b,0xb0,0x90,0x42,0xa1,0xf9,0x94,0xc1,0xad,0xf3,0xae,0x41,0x1c,0x91,0x95,0xc2,0x39,0xed,0x8b,0x42,0xc2,0xf5,0x9c,0xc1,0xa4,0xf7,0xe0,0x40,0xed,0x46,0x3,0x42,0x0,0xab,0x61,0xc1,0x38,0x90,0x5a,0x42,0xe5,0x7a,0xd0,0x41,0x5c,0xf8,0x3b,0x41,0xae,0xb9,0x99,0xc2,0x4e,0xff,0x84,0x42,0x48,0xd2,0x5,0x42,0xdc,0xa6,0x76,0xc2,0x79,0x7d,0x8f,0xc2,0xc5,0xe,0x40,0xc2,0x71,0xeb,0x26,0xc2,0x92,0x71,0x31,0x42,0xee,0xf8,0x14,0xc2,0x60,0xe7,0x77,0xc2,0x51,0xc8,0x36,0x42,0xc1,0xf2,0x5c,0xc2,0x31,0xc5,0x8c,0x41,0x7c,0x6e,0x51,0xbf,0xf3,0xa0,0x2a,0xc2,0xd2,0x62,0xc2,0xc1,0x70,0x70,0x79,0xc1,0xe3,0xd,0x59,0xc2,0xb8,0x55,0xde,0x41,0x2e,0x2c,0xad,0xbf,0x6d,0x79,0x36,0xc2,0xab,0xea,0xc4,0xc1,0x73,0xce,0xb0,0xc2,0xf9,0x6b,0x27,0xc2,0x32,0x13,0xee,0xc2,0xba,0xab,0x84,0x42,0xd9,0xd4,0x50,0x42,0x82,0xd2,0xa2,0x40,0x9e,0xd8,0xf2,0x41,0xdd,0x7f,0x2f,0xc1,0x64,0xb3,0x34,0x41,0x9e,0xca,0xdd,0xc0,0xdf,0x40,0x33,0xc2,0x3a,0xcd,0x43,0x42,0x86,0x66,0x20,0x42,0xe5,0xb0,0x3e,0xc2,0xc0,0xd5,0x5e,0xc1,0x3a,0x7f,0x44,0xc2,0x76,0xa5,0x1c,0x42,0x68,0xac,0x64,0x42,0x6c,0xde,0x8f,0xc1,0x5c,0xee,0xf5,0xc0,0x8d,0xe5,0xbb,0xc0,0xd4,0xa,0x2c,0x42,0x42,0x11,0xe4,0x42,0x35,0x17,0x52,0xc0,0x7d,0xd8,0xf8,0xc1,0x62,0xb4,0xea,0xc1,0xe2,0x57,0x4,0x42,0x74,0xc4,0x84,0xc2,0x3,0xf7,0xc4,0xc1,0x7e,0xfd,0x13,0xc1,0x88,0x15,0xd2,0xc1,0xa9,0x75,0xa7,0xc1,0x4,0x64,0xed,0x40,0x12,0x78,0x3e,0x42,0x54,0xf7,0xfd,0xc1,0xc5,0x2a,0xab,0xc1,0x40,0x9,0x3c,0xc0,0x7e,0xaa,0x99,0x42,0xd2,0x7,0x81,0xc2,0x3b,0x52,0xa1,0xc1,0x60,0x1d,0x58,0xc1,0x9c,0xe0,0xcc,0x41,0x59,0xc6,0xb0,0x42,0xc4,0xbf,0xeb,0x41,0xce,0xed,0x5b,0x41,0xb5,0xad,0x9f,0x41,0x35,0xed,0xbe,0xc1,0x44,0xf7,0x44,0xc2,0xef,0x53,0x3c,0x42,0x1a,0xef,0xc1,0x41,0x8b,0x6,0x68,0xc2,0x99,0x70,0x8b,0x42,0xe4,0x61,0xde,0x41,0x0,0xc1,0x30,0xc2,0x45,0x6d,0xc4,0x40,0xd3,0xda,0x2f,0x42,0x95,0x38,0x92,0xc1,0x9d,0xcf,0xae,0x41,0xea,0x2a,0x34,0x41,0x94,0xdd,0xbb,0x40,0x8e,0x5d,0xec,0x41,0x70,0x1e,0xa5,0x41,0x4e,0x30,0x5,0xc2,0x62,0x1e,0x45,0x42,0xbc,0xa6,0x95,0x42,0x7c,0x2a,0xb8,0xc1,0x6,0xda,0x83,0xc1,0x4c,0x8b,0x58,0xc2,0xcc,0xa6,0x9,0x42,0xdc,0xd5,0xa4,0x42,0xff,0x49,0x8c,0x40,0x3c,0xd0,0xcd,0xc1,0x7d,0x1a,0x1d,0xc2,0x15,0x1a,0x22,0xc1,0x98,0x47,0x8,0xc2,0xec,0x8a,0xdb,0x41,0x1,0x5a,0x16,0xc2,0x99,0xc3,0x49,0x42,0xb8,0xc0,0x76,0x42,0x43,0xca,0x9d,0x42,0x1a,0xcc,0x61,0x42,0x7f,0x42,0x70,0xc1,0x88,0xa1,0xb1,0xc1,0x5b,0x81,0xa2,0xc1,0x9c,0xb3,0x8c,0x40,0x4d,0x9e,0x8f,0x41,0x44,0x87,0x7d,0xc0,0x43,0x96,0x49,0x41,0x24,0x2e,0x1,0xc2,0xd6,0xf2,0xf2,0xc1,0x60,0xb,0x4a,0x42,0x19,0xe,0xd,0x42,0xa0,0x2c,0xc4,0x41,0x9d,0xb9,0xb0,0x41,0xc3,0x3e,0x3f,0x40,0x92,0x95,0xb,0x42,0x91,0x99,0x8c,0x42,0x6,0x17,0xa1,0x41,0xc1,0x64,0x82,0xc2,0xb8,0x54,0x18,0xc1,0x42,0xb2,0x32,0x41,0xc,0x9b,0x47,0xc2,0x4c,0xf7,0x63,0x42,0xd0,0x2c,0xdb,0xc1,0x94,0xd2,0x79,0xc0,0xd9,0x46,0x48,0x42,0x59,0xc5,0xa7,0xc2,0x7,0x87,0x9d,0xc1,0xaa,0xb6,0xf,0xc2,0xe4,0x14,0x31,0xc1,0x0,0x31,0x81,0x41,0x65,0x65,0x2e,0xc2,0x1f,0xc3,0x8d,0xc1,0xa0,0x28,0x37,0x42,0x2a,0x7a,0xbc,0x42,0x23,0xfe,0x79,0x42,0x3f,0x68,0xe4,0xc1,0xf1,0xdd,0x31,0x42,0xbe,0xbd,0x31,0x42,0x79,0xa2,0x30,0x41,0xa5,0x35,0x91,0xc2,0xdb,0x9f,0xa5,0x41,0x15,0xad,0x0,0x42,0x88,0x33,0x72,0xc2,0x35,0x30,0xd8,0x3f,0x7e,0x4b,0x26,0x41,0x37,0x12,0xe7,0xc1,0x9,0x3a,0xf8,0x41,0x8c,0xd1,0x8b,0xc1,0x66,0xc4,0x92,0xc2,0x72,0xa3,0x28,0xc2,0x68,0xd0,0x9a,0xc2,0x1e,0x47,0x55,0x42,0xbf,0xea,0xf2,0x41,0x27,0x71,0x13,0x42,0x96,0x9a,0xd6,0xc1,0xdf,0x7d,0x40,0x41,0xab,0xae,0xcb,0xc1,0xdc,0x26,0xd,0xc2,0xd1,0x3c,0x4d,0x42,0x24,0x63,0x9c,0x41,0x7c,0x8b,0xb,0x42,0xb,0xfe,0x7f,0xc1,0x57,0xe5,0x37,0xc2,0x37,0xc1,0x82,0xc2,0x24,0xec,0x7f,0xc1,0xe5,0xc,0x9b,0xc2,0x96,0x15,0x3b,0x41,0x5c,0x92,0x9,0x42,0xd2,0x18,0x4d,0xc2,0x7b,0x3,0xfd,0x41,0x1,0x1b,0xc3,0xc1,0xc7,0xdd,0x47,0xc1,0x3a,0xea,0x89,0xc1,0x6c,0xca,0x62,0xc1,0xbc,0xf8,0x16,0xc2,0x85,0xd9,0x93,0x41,0x1d,0xf0,0x22,0xc1,0xa0,0x28,0x31,0x40,0xe6,0x6,0x96,0x42,0x55,0xe0,0x8e,0x41,0xe9,0xd7,0x53,0xc2,0x66,0x2a,0x44,0xc2,0xfa,0xac,0xbd,0xc2,0x20,0x5c,0x52,0xc0,0xef,0x8e,0x99,0xc2,0x9c,0x32,0xf3,0x40,0xe2,0x3a,0x1f,0xc2,0xff,0xdc,0x9e,0x42,0x8d,0x54,0xcc,0x41,0x69,0xf7,0xd,0x42,0x82,0xe2,0xa7,0x40,0xa8,0x37,0x8f,0x41,0xab,0x1,0x88,0x41,0x40,0x91,0xb5,0xc1,0x20,0xbd,0x4,0xc1,0x6c,0xae,0x6a,0xc0,0xd5,0x57,0x1d,0xc2,0x0,0x40,0x21,0xc2,0xff,0xab,0x9e,0x41,0xe6,0x85,0x41,0xc2,0x7e,0xe9,0xc2,0xbf,0x1e,0xff,0x2e,0x41,0x18,0xa6,0x5d,0x42,0x32,0xb4,0x54,0x42,0x17,0xa2,0x15,0xc2,0xa2,0xc2,0x1,0xc2,0xc4,0x6f,0xcf,0x42,0x42,0x42,0x22,0xc2,0x5f,0x7,0xf9,0x41,0x6,0x61,0x70,0x42,0xaa,0xa3,0x90,0x42,0xdc,0x5a,0xcd,0x41,0x67,0x42,0x93,0x42,0x7f,0xbb,0x72,0x42,0x22,0x2f,0x1c,0x42,0xc2,0xf6,0x57,0xc2,0xb6,0x67,0xc9,0xc1,0xb3,0x70,0x21,0xc2,0xae,0x18,0xcb,0xc0,0xbb,0xac,0x83,0xc1,0x99,0x14,0xd9,0xc1,0x1e,0x73,0xc5,0xc1,0x88,0x4d,0x6e,0x42,0x88,0xb3,0xad,0xc2,0x8e,0xb2,0xd2,0x41,0x65,0x9a,0x1e,0x42,0x65,0xa0,0x8e,0xc2,0x85,0x70,0xa6,0x42,0x2d,0x8c,0xa2,0x42,0xd2,0x9,0x73,0xc1,0x44,0xd,0xf4,0xc0,0x27,0x15,0x80,0xc2,0x2d,0xb8,0x27,0x41,0x8a,0x60,0x56,0x41,0xf5,0x28,0x4c,0x41,0x73,0xd1,0x88,0xc2,0x1f,0x78,0x47,0x42,0x88,0x29,0x3f,0xc2,0xfa,0x91,0x79,0x42,0xd2,0x14,0xdd,0x41,0x94,0xca,0xfd,0xc1,0x5c,0x30,0x56,0xc0,0x4a,0x55,0xa9,0xc2,0x47,0xb3,0x84,0xc2,0x4a,0x17,0x32,0x42,0xee,0x9e,0xd0,0x41,0x23,0x73,0x9,0x40,0x6f,0x95,0xb6,0x41,0x76,0xd6,0xd1,0xc1,0xa2,0xf6,0x6c,0x42,0x5d,0xf9,0x60,0xc2,0xea,0xa9,0x68,0x42,0xf5,0xba,0x89,0x41,0xd2,0x60,0xc2,0x42,0x44,0x45,0x84,0x41,0xcc,0x42,0x4d,0x41,0xc,0xc2,0x76,0x42,0x2b,0x8,0xe,0x41,0xa4,0x19,0x91,0x41,0x2d,0x99,0x45,0xc1,0xd3,0x59,0x90,0x42,0xfe,0x9d,0x3e,0xc1,0xbc,0x4f,0xda,0x41,0xc7,0xa0,0x3b,0x42,0xca,0x41,0x4e,0x40,0x1f,0xad,0x6b,0x41,0x80,0x46,0x7f,0xc1,0x0,0xd6,0x2e,0x40,0x99,0x30,0x2a,0xc2,0x4a,0xef,0x83,0xc1,0xb6,0x6c,0x7e,0x42,0xba,0xc8,0x5e,0x41,0x52,0x27,0x7b,0xc1,0xe0,0x4c,0x71,0x41,0x8c,0x76,0x30,0x42,0xb0,0xf4,0xfa,0x41,0xcb,0xd7,0x88,0x42,0xf6,0x65,0x46,0xc1,0x6e,0x64,0x87,0x40,0xee,0x95,0xaf,0x40,0x51,0x78,0x1d,0x41,0xba,0x3f,0x8a,0xc2,0x88,0x99,0x9a,0x42,0x5c,0x3c,0x44,0xc2,0xab,0x37,0xf7,0x40,0xb,0x6,0x49,0x41,0x8e,0xd5,0x1a,0x42,0x36,0xee,0x0,0x41,0x85,0x7,0x52,0xc0,0x18,0xac,0x83,0xc1,0x4c,0x90,0x97,0x41,0xac,0xcf,0x90,0x40,0xfe,0xdd,0x63,0xc1,0xca,0x80,0x5b,0xc1,0x2c,0x91,0xa3,0x40,0xb0,0xf7,0x48,0xc0,0x79,0xda,0x2e,0x42,0x11,0xbb,0x14,0x42,0x55,0x80,0x69,0xc2,0x86,0xb4,0xe3,0xc1,0x2d,0xb5,0x98,0x3f,0x4b,0x9e,0xc1,0x41,0xab,0x1c,0x21,0x42,0xb8,0xff,0xfe,0x41,0xd4,0xec,0x44,0x41,0x7d,0x1,0x26,0x41,0x7e,0xad,0x79,0x40,0x90,0xf7,0x35,0xc0,0x77,0x39,0x80,0xc2,0x45,0x79,0x6c,0xc2,0x4b,0x54,0xc7,0x41,0x66,0xf0,0xbc,0x41,0xea,0x2f,0x2d,0x41,0x34,0x25,0xa3,0x42,0xf8,0xc3,0x15,0x42,0xb6,0x51,0xb1,0xc2,0x64,0xe0,0x33,0xc1,0xf8,0x29,0xab,0xc1,0xa6,0xd8,0x24,0xc2,0xbc,0xa,0x6d,0x42,0x1d,0x50,0xd1,0xc0,0x5f,0xa6,0x4b,0x42,0xab,0x2f,0x22,0xc0,0x8,0xd0,0xab,0xc0,0xa0,0x61,0x3b,0xc2,0xcb,0x3e,0xb5,0xc0,0x1f,0x2c,0xa7,0x41,0x3a,0x61,0x54,0x42,0xb,0x42,0xd8,0x41,0x6d,0xb7,0x69,0xc1,0xf1,0x49,0x6,0xc2,0x3b,0x1b,0xa4,0xc2,0xb3,0xae,0x87,0xc1,0x9b,0x18,0x42,0xc2,0xdc,0xe6,0x38,0x42,0xf0,0x78,0x42,0x40,0x2c,0xd,0x50,0xc2,0xac,0xd0,0x8d,0x42,0x43,0xbe,0x83,0xc2,0xfe,0xef,0x7e,0xc2,0x8d,0x30,0xb8,0x41,0xc8,0x2f,0x7b,0xc1,0x76,0x5a,0x5,0xc2,0x9a,0xd9,0xad,0xc1,0x8f,0xe8,0x63,0xc2,0x13,0x70,0x28,0xc1,0xb3,0x5a,0x79,0x42,0x0,0x17,0x9,0x42,0xc2,0x8c,0x71,0xc2,0x91,0x7b,0x1c,0x42,0xfe,0xc,0x82,0x42,0xa0,0x6f,0x39,0x41,0x2e,0xb6,0xd4,0xc0,0x3a,0x1,0xf6,0xc1,0x6b,0x1f,0x51,0x42,0xb7,0xe2,0x6a,0xc2,0x7e,0x7a,0x20,0xc2,0xf3,0x62,0x31,0xc2,0xc6,0x6b,0x2c,0xc1,0x97,0x84,0xab,0xc0,0x8e,0x39,0x86,0xc1,0xa8,0x29,0x1d,0xc2,0x8d,0x65,0x77,0xc2,0x4,0x17,0xe5,0xc2,0x38,0x36,0x8f,0x41,0xb0,0x85,0x21,0xc2,0xa6,0xe2,0x2e,0x42,0xa,0xb,0x43,0xc2,0xc,0x96,0xd1,0xc1,0xa0,0xb9,0xa1,0x40,0x72,0x78,0x9f,0xc1,0xe,0xed,0x50,0x42,0xda,0x44,0x1c,0xc2,0xa5,0xbf,0x8e,0xbf,0x7c,0x94,0x26,0xc2,0xd2,0xb9,0x4a,0xc2,0x45,0x92,0xa7,0xc1,0x3c,0xfe,0x80,0xc1,0x2c,0xbe,0xef,0xc1,0xcc,0xee,0x30,0x42,0x14,0x35,0xa4,0x41,0xe8,0x66,0x53,0xc2,0xe5,0x14,0x9d,0xc1,0xbc,0x29,0x12,0xc0,0xb1,0x99,0x8b,0xc2,0x79,0xa,0x96,0xc1,0x2c,0x3,0x8e,0x41,0x8e,0xb3,0x3e,0x41,0x7b,0xdc,0x4d,0x42,0x9a,0x42,0x79,0xc1,0x8d,0x45,0xce,0xc1,0xa2,0x5d,0x7d,0x42,0x5a,0xf6,0xd4,0xc1,0xa0,0x33,0x87,0xc2,0x2,0x7b,0x14,0xc1,0x73,0x22,0xa2,0xc1,0xcb,0x43,0xdf,0x41,0xa3,0x46,0x4c,0xc2,0x99,0x0,0xb7,0xc1,0x61,0xdc,0x43,0xc2,0x58,0x87,0x39,0x42,0xb6,0x5a,0x2b,0x42,0x97,0xdc,0xbb,0x41,0x99,0x4d,0xd4,0xc1,0x1c,0x68,0xf1,0x41,0x4d,0xbb,0x12,0xc2,0x87,0x1f,0x66,0xc1,0xa8,0x9e,0x19,0xbf,0x4,0xe2,0xff,0xc1,0xbd,0x3d,0x30,0xc1,0x6,0x31,0xee,0x40,0x58,0x57,0xa0,0x41,0x2b,0x2d,0x8e,0x41,0xfb,0xff,0x76,0xbf,0xb2,0xe4,0x60,0x41,0x32,0x6a,0x36,0x42,0x22,0xea,0x7,0xc0,0x65,0x5e,0x60,0xc1,0x14,0x3c,0x6,0xc2,0xe3,0x8c,0xa2,0x42,0x93,0x6d,0x63,0xc2,0x4f,0xc4,0x4a,0x41,0x1e,0x33,0x87,0x42,0xca,0x40,0xcb,0x41,0xc0,0x3f,0xf1,0x42,0x32,0x41,0xa7,0x41,0xab,0x90,0x82,0x42,0xc8,0xb9,0x6f,0x42,0xf9,0x16,0x3a,0xc2,0x87,0xc1,0x58,0xc2,0xcc,0x42,0x80,0x41,0xa6,0x33,0xae,0x40,0x68,0x2b,0xa6,0xc1,0x4a,0x51,0x52,0x42,0x48,0x4,0x73,0xc1,0x23,0x5d,0x25,0x40,0xf0,0x54,0x35,0xc1,0x78,0x3,0x1a,0xc1,0xc6,0x94,0x12,0x42,0xe,0xf1,0xc4,0xc0,0x51,0xd9,0x5,0x42,0xd1,0x3f,0xec,0x3f,0x43,0x66,0xcf,0x41,0xe5,0xef,0x51,0x42,0x43,0x59,0x9f,0xc1,0x99,0x66,0xdd,0xc0,0x8e,0x83,0xe5,0x3f,0x96,0x5e,0x3e,0xc2,0x1c,0xd1,0xe7,0xc2,0x7a,0x77,0xb0,0x41,0xf8,0x5e,0x7,0xc1,0xe4,0x96,0x2c,0xc2,0x2c,0xcf,0x60,0x42,0x8c,0x22,0x5,0x42,0x4e,0x2,0x4b,0x42,0x27,0xb,0x21,0x42,0x1b,0xd9,0xcd,0xc1,0xe5,0xf1,0xf9,0xc1,0x29,0x9f,0x9,0xc1,0xa,0xc5,0x24,0x42,0x69,0x9b,0x31,0x42,0xb5,0x3e,0x34,0xc2,0xf5,0xc1,0x7f,0xc1,0x42,0x9a,0x9d,0xc2,0x42,0xec,0x8,0xc1,0x62,0x11,0x96,0x42,0x70,0xb0,0xe6,0x41,0xe0,0xde,0x7f,0xc2,0xd0,0xac,0x7,0xc1,0xc8,0x67,0xfb,0x42,0x95,0x50,0x5a,0x42,0xfc,0xf7,0x97,0xc1,0xbd,0x11,0x31,0x41,0x64,0x7f,0x80,0x42,0xd,0x71,0x55,0x42,0xb,0x2f,0x8a,0xc2,0xa9,0x83,0xda,0x41,0x9a,0xb3,0xa5,0xc1,0xd7,0xa1,0xa1,0xc1,0xe,0x85,0xf9,0x41,0xa4,0xfc,0x42,0xc2,0xd2,0x36,0x54,0xc2,0x32,0x65,0x98,0x40,0x81,0x82,0x23,0x42,0x4f,0x6b,0xf9,0x41,0xf8,0x58,0x40,0xc2,0x6a,0x2d,0x1d,0xc1,0x4d,0x72,0xbf,0x40,0xa,0xf3,0x68,0x42,0x1,0x7,0x6b,0x42,0x6c,0x24,0x60,0xc2,0xbe,0x98,0x2b,0x41,0xfe,0x19,0x45,0xc2,0xa1,0xa4,0x2e,0xc2,0xf2,0xde,0x3b,0xc2,0xc9,0x90,0x8e,0xc0,0x8e,0xdd,0xc9,0xc1,0x82,0x2a,0x7e,0x41,0xe1,0x43,0xd2,0x41,0x63,0x68,0x2c,0xc1,0x57,0xa4,0x7d,0xc2,0x2,0x6a,0x8c,0x41,0xf8,0xa2,0x30,0xc2,0xe,0xb,0x84,0xc2,0xbe,0x8e,0x55,0x42,0x54,0x23,0x80,0xc2,0x54,0x73,0x72,0x41,0x5f,0x29,0xb3,0xc1,0x2,0x59,0xdd,0xc1,0x28,0xe8,0xe3,0x41,0xbf,0xa4,0x62,0xc1,0xe8,0x94,0x82,0xc1,0x7,0x28,0xb9,0x41,0x45,0xd8,0x9f,0x41,0x8d,0x5,0x5b,0xc2,0x3b,0xdc,0x3b,0x42,0x57,0x8a,0xd,0xc2,0xcd,0xd,0x73,0x42,0x58,0xe4,0x1c,0xc2,0x4a,0x19,0xb6,0x41,0xb7,0x61,0x31,0x42,0xbb,0x87,0xff,0xc1,0xe3,0xb0,0x67,0xc1,0xb,0xd,0xa3,0xc1,0x66,0xbb,0x35,0xc2,0x61,0xfb,0xed,0xc1,0x2b,0xe3,0xfd,0x41,0x52,0xe9,0xce,0x41,0x2f,0x3f,0xaf,0x41,0x5a,0x71,0x9a,0xc1,0x59,0x3c,0xf3,0x41,0xcc,0x9d,0x8,0xc2,0x7c,0xf,0xe,0xc2,0x69,0xd0,0xa5,0x42,0xc1,0x8e,0x19,0x42,0x80,0xd4,0x7,0x42,0x54,0xaf,0xe3,0xc1,0x80,0xad,0x59,0x41,0xaf,0x33,0x8a,0x42,0x7f,0xb0,0x5e,0x42,0x48,0xcf,0xfd,0xbf,0xe9,0x9d,0xd1,0xc1,0xc,0x41,0x9f,0x42,0x92,0x11,0xa0,0x41,0xc,0x11,0xd1,0xbf,0xb2,0xb2,0xc5,0x40,0xa7,0x1d,0x4d,0x41,0x6b,0xa2,0x11,0xc2,0x76,0xc,0x8d,0xc1,0xe8,0xe2,0xa8,0xc0,0x1e,0xbf,0xf1,0x41,0x3,0x47,0x55,0x42,0x4a,0x5e,0x8,0x42,0x2a,0x6e,0x60,0x42,0x21,0x2,0xbf,0xc1,0xd4,0xc,0xd0,0x41,0xb8,0xc1,0x2b,0xc0,0x28,0x3,0x15,0x42,0xbf,0x61,0xb1,0x42,0x5d,0xf2,0x4d,0xc1,0x29,0x45,0xb8,0xc1,0xda,0xfb,0x1c,0xc2,0xd8,0x76,0x75,0x40,0x38,0x90,0x44,0xc1,0x6c,0xc7,0xc3,0xc1,0x32,0x14,0x4a,0x42,0x39,0x99,0x48,0xc1,0xeb,0x43,0x6,0x42,0x48,0x6,0x47,0xc0,0xc7,0x30,0x4b,0xc2,0x57,0x85,0x26,0xc2,0xb6,0x86,0x97,0xc2,0xc9,0x62,0x61,0xc2,0x5c,0xc,0x48,0x40,0xda,0xf1,0x6d,0xc2,0xaf,0x28,0xcd,0xc1,0x9a,0x1,0x2b,0xc1,0xe,0xe9,0x13,0xc2,0x15,0x44,0x13,0x42,0x41,0xa4,0x82,0x42,0xde,0x94,0x3f,0x42,0x7a,0xe0,0xc2,0xc1,0xd3,0x2c,0x80,0xc2,0xbe,0xc6,0x7a,0xc1,0x6f,0xf1,0x67,0x41,0x1f,0x72,0x22,0x42,0xcc,0xc0,0x30,0x42,0x12,0x1a,0x35,0x42,0x7c,0xd6,0x60,0x40,0xf1,0x55,0xf9,0xc1,0x82,0x84,0x40,0x40,0xb4,0x4a,0x1a,0xc0,0xf8,0x26,0x8e,0xc2,0x56,0xcd,0xf8,0xbf,0x82,0xc0,0xf,0x41,0xf7,0xf3,0x9,0xc2,0xaf,0x77,0xb0,0x42,0x90,0xde,0xd0,0x42,0x8c,0xdb,0x5f,0xc2,0xe4,0xc2,0x36,0xc2,0x9a,0xb0,0x84,0x42,0xd9,0xb6,0xf2,0x41,0xc4,0x9f,0xe1,0xc1,0x5f,0x8a,0xf,0x42,0x21,0xd,0xfd,0xc1,0xe4,0xc8,0x50,0xc2,0xb0,0x7a,0x22,0xc2,0x56,0x6b,0x77,0xc1,0x69,0x31,0xa0,0xc1,0x1b,0x4b,0xf0,0x41,0xa9,0xd2,0x92,0xc1,0x78,0xf5,0x98,0x42,0x38,0xd8,0x1b,0xbf,0xc,0x37,0x75,0x3f,0x5f,0x92,0x39,0x41,0x18,0xe3,0x52,0xbf,0xdf,0xd2,0x9f,0x41,0x2d,0xfc,0x1d,0x41,0xb9,0xa1,0x95,0x42,0xd6,0xb0,0xe,0xc1,0xa7,0x15,0xb8,0xc2,0xe0,0x53,0x24,0x42,0x7e,0x50,0x6d,0xc2,0xa2,0xa5,0xf1,0xc1,0xe9,0x95,0xc,0x41,0x29,0x6c,0x97,0xc1,0x56,0x85,0xbd,0x41,0x8d,0x63,0x8f,0x41,0x4b,0x8e,0x31,0xc2,0xde,0x3d,0x84,0x41,0x94,0xa1,0xae,0x3f,0xb3,0xff,0x1b,0x41,0xfe,0x26,0x82,0xc2,0x2a,0xc1,0x9b,0xc2,0xfd,0x4a,0xb2,0x42,0x2d,0x6d,0x87,0x41,0xca,0x2c,0x54,0x41,0x56,0x24,0xf3,0x41,0x28,0xf2,0x82,0x42,0x7b,0xa0,0x1b,0x42,0x1c,0x60,0xda,0xc0,0xd4,0xf8,0x25,0xc2,0xb6,0x50,0x98,0xc1,0xf2,0xe3,0x88,0xc1,0x76,0xc1,0x96,0xc0,0xf0,0xf3,0xe6,0xc1,0x34,0xd,0xc,0xc2,0xa8,0xc2,0x17,0xc2,0x10,0xfa,0x40,0x42,0x4a,0x9a,0xdb,0x40,0x7f,0x71,0x7,0x42,0xa5,0x4f,0xaa,0xc0,0x88,0xac,0x33,0xc2,0x29,0x9f,0x9e,0xc0,0xbc,0x36,0xa7,0x41,0x37,0x3f,0x2f,0x42,0x16,0x5d,0xbe,0xc1,0xc0,0x2a,0x3,0xc0,0x66,0x80,0x85,0x40,0x29,0xce,0x90,0xc1,0xec,0x20,0x4a,0xc1,0xc2,0x29,0x4,0xc2,0x1c,0xa,0x3b,0xc2,0x79,0xe,0x3,0x40,0x4e,0xe2,0xa2,0xc1,0xa8,0x65,0x89,0xc2,0x32,0x54,0x43,0xc2,0xca,0x92,0x2c,0xc2,0xbc,0x68,0xab,0xc0,0xce,0xb9,0xd4,0xc1,0x91,0x11,0x9d,0x41,0x80,0x4d,0x22,0x41,0x88,0x55,0x2b,0x42,0x92,0x22,0xc9,0x40,0x9c,0x11,0xd9,0xc1,0x1,0xca,0xc4,0x42,0x94,0x44,0x6e,0xc1,0x8c,0x49,0x7a,0xc2,0xd9,0x27,0xcb,0xc1,0x1c,0xa5,0x60,0xc2,0x91,0xd4,0x47,0xc2,0xb1,0x83,0x88,0xc2,0x92,0x8b,0x4c,0x42,0xee,0x2c,0x7,0x41,0x42,0x7b,0x79,0x42,0x88,0x69,0xf,0x42,0xb1,0x54,0x57,0x42,0xa2,0xb9,0x4e,0xc2,0x7e,0xb7,0x9c,0xc1,0x85,0x39,0xba,0xc1,0x2,0xa,0x8c,0xc2,0xe2,0xf8,0x26,0xc2,0xa6,0xe7,0x8f,0x40,0xca,0x17,0xda,0x41,0x4,0x26,0x96,0x40,0x1d,0xa9,0xaa,0x41,0x72,0x9f,0x71,0xc1,0x80,0x6a,0xab,0xc1,0x77,0x11,0x4,0x42,0x78,0x4b,0x1a,0x42,0x0,0xb8,0xe6,0xc1,0x2b,0x8b,0x5,0x41,0x8c,0x17,0x68,0xc1,0x68,0x70,0xdc,0xc1,0x80,0x68,0x15,0xc2,0x62,0xd3,0xff,0x41,0x69,0x2b,0xc,0x42,0xa0,0xea,0x85,0xc0,0x56,0xc5,0xf,0x42,0xcc,0xc3,0x83,0xc0,0x60,0xd2,0xe2,0xc1,0xbb,0xc2,0x66,0x41,0x21,0xc8,0xfa,0xc1,0xaf,0x64,0x15,0x40,0x81,0xbc,0x2a,0xc2,0x5a,0x85,0x19,0x42,0x6d,0xae,0xa0,0xc2,0xf8,0x6d,0x46,0x42,0xc4,0x5d,0x1f,0xc2,0x48,0x98,0x6,0x42,0x24,0x52,0xc2,0x40,0xd5,0x7a,0x55,0xc2,0xa7,0xa5,0x81,0x42,0x76,0xde,0xc6,0x42,0x67,0x79,0x22,0xc2,0x73,0x9f,0x7c,0x42,0x5d,0xb,0x21,0xc2,0x8e,0xb2,0xaa,0x41,0x5c,0x74,0xa8,0xc1,0xb2,0x2b,0x84,0x42,0xae,0xbe,0x3f,0x42,0xa4,0x41,0x1,0x3f,0xd7,0x2e,0xbb,0x41,0xef,0xe7,0xc3,0x42,0xce,0xab,0xd,0x42,0x7c,0x50,0xcb,0x41,0x62,0x5e,0xb6,0x41,0xd4,0x51,0xb5,0xc1,0x3a,0x72,0xc,0xc2,0x8e,0x56,0x94,0x3f,0x70,0x64,0xe,0x42,0xa3,0x2a,0x26,0x42,0x5d,0xf6,0x32,0xc2,0x8b,0x1e,0xa2,0x3f,0xe0,0xe4,0x2b,0x41,0xd4,0x36,0xef,0x40,0xa2,0x6a,0x24,0xc0,0x7a,0x1a,0x9,0x42,0x50,0x6c,0xa1,0x42,0x71,0xe2,0x8d,0x41,0x3e,0x40,0xfc,0xc1,0xa9,0x86,0xd1,0x41,0xa7,0xad,0x46,0x42,0xb0,0xb0,0xf1,0x41,0x1b,0xd3,0xb9,0xc0,0x4d,0xeb,0xb7,0x40,0xbb,0x5d,0x10,0x42,0x76,0x64,0x72,0x41,0x88,0x46,0xd4,0xc0,0xfb,0xad,0xc0,0xbf,0xb8,0x65,0xd4,0x42,0xfa,0xf1,0x88,0x42,0xf6,0xb4,0x14,0x42,0x5c,0x4d,0x66,0x42,0x42,0x85,0x1f,0xc2,0xa3,0x36,0x28,0x41,0xcf,0xf4,0xcd,0xc1,0xb6,0x5,0xb1,0x41,0xc4,0xc0,0x8b,0x41,0x29,0x65,0x63,0xc2,0xdd,0x94,0x89,0x42,0x8e,0x8e,0xd3,0xc1,0x9e,0x3d,0xfa,0x41,0x1e,0xf7,0x5d,0x42,0x67,0x82,0x88,0xc2,0xb2,0xbf,0x86,0x42,0x91,0xdf,0xf9,0xbf,0x9a,0xa1,0x81,0xc1,0xb,0x6c,0x8c,0xc1,0x92,0xba,0x87,0xc2,0xd7,0x7f,0x62,0xc1,0xfd,0x9b,0xc4,0x41,0x69,0x2,0xfb,0xc1,0xe4,0x74,0x2a,0x42,0x55,0x35,0xce,0x41,0xef,0x23,0x36,0x41,0x5c,0x41,0xa8,0xc1,0x6,0x8f,0x36,0x41,0xf7,0x51,0x55,0xc1,0x7a,0xb8,0x1b,0x41,0xa1,0xb,0xe0,0x40,0xe,0x88,0x6a,0xc1,0x60,0xc,0x19,0xc2,0x46,0x8e,0xb6,0x41,0x81,0xed,0x41,0x41,0x39,0x12,0x45,0x42,0x96,0xc2,0x41,0x41,0x40,0xce,0x70,0xc2,0xd6,0xae,0xb9,0xc1,0x25,0xe7,0x17,0x42,0xf5,0x8d,0x68,0x41,0x10,0x29,0x43,0x42,0xfa,0x12,0xf6,0xc0,0xd9,0xca,0x9b,0xc1,0x72,0xb0,0xac,0x41,0x3f,0x6b,0xbf,0xc1,0x97,0x0,0xbd,0xc1,0x9f,0x49,0xba,0x41,0xd4,0x51,0x5e,0x41,0xdd,0xbe,0xd3,0xc1,0x7a,0xa2,0x28,0x42,0x2d,0xc6,0x2c,0x41,0x70,0x25,0x9b,0xc1,0x48,0x5d,0xe0,0x41,0xf2,0xc6,0xee,0xc1,0xf7,0x5d,0xe9,0x41,0x88,0x66,0x66,0x42,0x92,0xa2,0x1,0xc1,0x8d,0x75,0xe,0x42,0x60,0xac,0x93,0x41,0x68,0x1c,0x7b,0xc1,0x61,0xa9,0x4,0xc0,0xc3,0x80,0x13,0x41,0x6f,0x82,0x41,0x41,0xea,0x25,0xe5,0xc0,0x44,0xfe,0x3,0xc1,0x7c,0x60,0x74,0x41,0x52,0x76,0x1f,0xc2,0xf4,0xd7,0x65,0xc1,0x2,0x39,0xec,0x40,0xe3,0xeb,0xf5,0xc1,0x12,0x1d,0x88,0x3f,0x48,0x1d,0xaa,0x41,0xd0,0xb6,0xd1,0x41,0x50,0x64,0x9c,0xc1,0x8e,0x45,0x4a,0xc1,0x1b,0x17,0x97,0xc2,0x22,0x3f,0x63,0x42,0x1c,0x99,0xc6,0xc1,0x98,0xaf,0x4,0xc1,0xf2,0x15,0xf9,0xc1,0xe0,0x3c,0x44,0xc1,0x0,0x6,0xfa,0x41,0x25,0x3a,0x6e,0x41,0x38,0x36,0x3,0xc1,0xa,0x50,0x29,0xc1,0x8e,0xcb,0x54,0x41,0xd9,0x2f,0x92,0xc1,0xe2,0xe3,0x81,0x40,0x2b,0xe7,0x64,0x42,0xf4,0x9c,0x12,0xc2,0xc1,0xef,0x6a,0xc1,0x3f,0xa8,0x73,0xc1,0xe6,0x8a,0xa1,0xc1,0x39,0xe1,0xfc,0xc1,0xfe,0x7c,0x96,0xc1,0x4e,0x72,0xa1,0xc0,0x7a,0x1,0xed,0xc1,0x28,0xe6,0x6c,0x41,0x3e,0xde,0xcc,0xc1,0xb,0x2f,0xc8,0xc1,0xf8,0x28,0x91,0x3f,0x15,0xe3,0xb,0xc2,0x4d,0xe5,0x2d,0x42,0x32,0xb6,0x15,0x41,0xc2,0x83,0x7e,0xc2,0x9b,0x2b,0x9a,0xc1,0x60,0x74,0x68,0x42,0x8c,0x65,0xeb,0x40,0xca,0x35,0xe2,0xc1,0x8b,0xf9,0x53,0xc2,0x1d,0x54,0xf6,0xc0,0x29,0xbf,0x89,0xc0,0xa9,0xc,0x5b,0xc1,0x57,0x43,0x48,0x41,0x4,0x3e,0x22,0x41,0xa2,0xa1,0x6,0xc2,0x86,0xfc,0xcd,0xc1,0x1e,0x65,0x4c,0xc1,0x8c,0xca,0xb3,0xc2,0x5,0xfb,0xf,0x42,0xbb,0x27,0x32,0xc0,0x2a,0x3c,0xe1,0xc1,0x86,0xe8,0x19,0x41,0xd6,0x8a,0x5e,0x42,0x1b,0x4c,0x8c,0xc1,0xb0,0xfe,0xef,0xc0,0x31,0x0,0x62,0x41,0x8,0x39,0xc5,0x41,0xb5,0x5c,0x13,0xc2,0x2b,0x40,0xa3,0xc1,0x27,0xe5,0x8,0xc2,0x6c,0xf1,0x7,0x42,0x4,0xde,0x1b,0x42,0xcc,0xf0,0xc7,0xc1,0x8,0x91,0x50,0x42,0x42,0xa6,0x25,0x42,0x62,0xfd,0x84,0xc0,0x7f,0x31,0xf8,0xc1,0xf8,0xdc,0xa8,0x41,0x79,0xd5,0xfe,0xc1,0x1d,0x84,0x10,0xc1,0xf5,0x7,0x96,0xc1,0x2c,0x27,0x37,0xbf,0x16,0x58,0x4c,0xc2,0x82,0x5f,0xc5,0x40,0x95,0x40,0x48,0x41,0x43,0x82,0x57,0xc2,0xe7,0x2d,0x5a,0x41,0x6d,0xdc,0xe9,0xc0,0xe,0x27,0xc2,0xc1,0xe3,0x10,0xde,0x40,0x74,0xca,0x3,0xc1,0x36,0x96,0xa8,0x41,0x2a,0x87,0x1f,0x41,0xae,0x9e,0x80,0x41,0x7f,0x4e,0x3d,0xc2,0xfd,0x35,0xdf,0xc1,0xc,0xb6,0x19,0x42,0x4e,0xa,0xb9,0x40,0x33,0xab,0x44,0xc2,0x38,0xf7,0xab,0x42,0x2b,0xee,0x5d,0xc1,0x9,0xb7,0x6,0xc2,0x9a,0x44,0xa8,0xbf,0x1,0x45,0xc,0xc2,0xa3,0x26,0xcb,0x41,0x83,0x6c,0x98,0xc1,0x4,0x76,0x4a,0x42,0xa8,0x4c,0xdb,0xc1,0x1,0x28,0x73,0x42,0x63,0x1d,0x86,0x3e,0x4c,0x37,0x4a,0x41,0xf1,0xb8,0xe,0x42,0x3f,0x58,0xe,0xc2,0xa6,0x4b,0x6,0x42,0xa4,0x45,0xb4,0x42,0x3f,0xe5,0xf,0xc2,0x2,0x6f,0xa2,0xc1,0x52,0x5a,0x2d,0xc2,0x7c,0xea,0x62,0x42,0x5e,0x52,0x76,0xc2,0xe1,0x31,0x6a,0x42,0x31,0x29,0x5e,0xc2,0x98,0xc5,0xc6,0xbe,0xaf,0x98,0xa3,0x41,0xe7,0x6,0x9,0xc2,0x8c,0x7a,0xb6,0xc1,0x28,0xcf,0x40,0x41,0x1e,0xa6,0xaa,0xbf,0x21,0x53,0xdb,0x41,0x1b,0xd7,0x97,0xc0,0x59,0xb6,0xee,0x41,0x5c,0x86,0xc2,0x41,0xee,0xc9,0x73,0x41,0xa0,0x8a,0xac,0xc1,0xd5,0x16,0xf5,0xc0,0xdd,0x4a,0xac,0x41,0x7,0x2d,0x8c,0x41,0xe4,0xd5,0x77,0xc2,0x17,0x99,0x95,0xc0,0x78,0x9a,0x26,0xc2,0x82,0xe1,0x77,0x42,0x5c,0x28,0x9a,0xc2,0xd8,0xf7,0x4a,0xc1,0xc,0x32,0xf1,0xc1,0xe1,0xf,0xab,0x42,0xa4,0xe3,0x70,0x42,0xb3,0x12,0x81,0xc2,0x45,0xac,0xcf,0xc1,0x7c,0x28,0xcd,0xc1,0x38,0xe1,0x5d,0xc2,0xe9,0xb2,0xf,0xc2,0xa4,0x57,0x4a,0x41,0x30,0x6a,0x21,0xc2,0xdd,0x2a,0xc4,0x41,0xb6,0xaa,0x4e,0x42,0x36,0x66,0x18,0xc2,0x33,0x5c,0x6e,0x41,0x68,0xfb,0x7c,0xc0,0x81,0x77,0x80,0xc1,0xa1,0x25,0xf3,0xc1,0x45,0x5f,0x56,0x42,0xbc,0x3b,0x6,0xc1,0x3c,0xcb,0x98,0xc2,0x81,0xba,0xba,0x42,0x1,0x4e,0x8e,0x42,0xd5,0x21,0x9a,0xc2,0x73,0xd3,0xac,0xc1,0xce,0xcf,0x6e,0xc2,0xa0,0x7e,0x2f,0x41,0xe1,0x71,0x28,0xc0,0xd4,0xf4,0x95,0xc2,0x49,0x0,0x88,0x42,0x85,0x9b,0xd8,0xc0,0xba,0x93,0xd9,0x41,0x89,0x74,0xab,0x42,0x5,0x0,0xc7,0xc0,0xbf,0xa,0x43,0x42,0x78,0x47,0x24,0x42,0x8d,0xa0,0xd2,0x41,0x69,0x20,0xb2,0xc1,0xdd,0x7d,0x84,0xc0,0xd6,0x2a,0xae,0xc1,0x2d,0x87,0x63,0xc1,0xcf,0x53,0xb6,0xc1,0xc7,0x7a,0x2d,0xc1,0x29,0x4d,0x37,0x42,0x8a,0x8a,0x37,0x42,0xb6,0x41,0x43,0xc2,0x8d,0xcd,0x9f,0xc2,0xd9,0x98,0x57,0xc2,0x81,0x2e,0xa3,0x3f,0x44,0x18,0x37,0xc2,0x27,0xc4,0x8f,0xc2,0x1e,0x86,0xb3,0x3f,0xc4,0x78,0x48,0x42,0xa,0xc7,0x12,0x42,0xc9,0x5b,0xe6,0xc0,0xfc,0x1b,0xfd,0xc1,0x90,0x3,0x96,0xbe,0x15,0xc,0xda,0x41,0x44,0xea,0x96,0xc2,0x5e,0x9a,0x85,0x3f,0x3c,0x4e,0x4e,0x41,0x14,0x63,0xb0,0x41,0x9d,0xba,0xe,0xc2,0xb8,0x17,0xa,0xc1,0x5d,0x43,0xa7,0x41,0x88,0x83,0xac,0xc1,0x70,0x72,0x4,0x41,0xf,0x4,0x41,0x42,0x20,0x42,0x96,0x42,0x14,0x28,0xef,0xc1,0x79,0xe9,0x7,0x42,0x4e,0xca,0x72,0xc1,0xf7,0x62,0x75,0x42,0xc8,0xa3,0x79,0xc2,0x5f,0xf3,0x49,0xc2,0x75,0xcc,0x7a,0x42,0x2c,0x72,0x47,0x42,0xde,0x8c,0x16,0x42,0xe8,0xed,0x1b,0xc1,0xa1,0x74,0x17,0x40,0xba,0x73,0x86,0xc2,0x9c,0xc5,0xd6,0xc1,0xb4,0xc0,0x88,0x42,0x62,0x9c,0x33,0xc2,0xd4,0x3d,0x6b,0x42,0x45,0x23,0x2f,0xc1,0x18,0xf0,0xb0,0x41,0x70,0xb6,0xc,0xbe,0x2d,0x83,0x13,0xc2,0xce,0x5c,0x8b,0xc2,0xc7,0x69,0x35,0x42,0xf2,0x81,0x1b,0xc2,0x0,0x6c,0xa7,0xc1,0x7f,0xa7,0x21,0xc2,0x9,0xb4,0xd9,0xc1,0x26,0xb4,0x8e,0x42,0xf8,0xf7,0x51,0xc2,0x28,0xc2,0x20,0xc0,0xff,0x2f,0x52,0x42,0x80,0xee,0xfd,0x41,0xde,0x17,0x1f,0x42,0xe8,0xae,0xbf,0xc1,0xe8,0xaf,0x8e,0xc2,0x49,0x24,0x85,0x42,0xc2,0xd5,0xd9,0xc1,0x5,0x58,0xd2,0x40,0xfa,0xa1,0x6e,0x41,0xdc,0x3c,0x95,0xc1,0x55,0x28,0xd1,0xc2,0xe9,0x3a,0x11,0xc0,0xc9,0xcf,0xb9,0xc2,0xac,0x3b,0x25,0xc2,0xe0,0xcd,0xbc,0x42,0x46,0xef,0x5a,0xc1,0xfa,0x3c,0xbc,0x41,0x5a,0xd5,0x61,0xc2,0x6a,0xa2,0x33,0xc2,0x34,0xe0,0x76,0xc1,0x8b,0x28,0xb7,0xc1,0x7f,0x3d,0xe,0x42,0x74,0xa1,0xd0,0xc1,0x70,0x75,0x8a,0xc1,0x64,0x10,0xa3,0xc1,0x70,0x8f,0x34,0x42,0x44,0xe1,0x10,0xc2,0xd2,0xe4,0x4a,0xc1,0x19,0x49,0x2e,0xc2,0xb8,0x55,0x83,0x42,0x55,0x24,0x20,0xc2,0xa2,0x61,0x92,0x40,0xda,0x59,0x1,0xc2,0x45,0xb2,0x8c,0xc2,0x1a,0x9e,0x3a,0xc2,0xac,0xf8,0xa7,0x41,0xff,0xbe,0xbf,0xc0,0x97,0x2,0x69,0xc2,0xe4,0x1d,0x35,0x41,0x83,0xfb,0x4a,0x41,0x9e,0x50,0x12,0x42,0xfa,0x6b,0x33,0xc2,0xaa,0x63,0xd7,0xc1,0x64,0x5a,0x55,0x42,0xfc,0x23,0x88,0x42,0x68,0x90,0x81,0x40,0x44,0x94,0x70,0xc1,0x5c,0x3,0x32,0xc1,0x65,0x86,0x34,0xc2,0x6a,0xe8,0xc0,0x40,0xab,0xad,0x4,0xc2,0x2e,0xe,0x34,0xc1,0x17,0xf4,0x8d,0x41,0x9c,0x84,0xe0,0xc0,0x12,0xdf,0xf9,0x40,0xb4,0x9b,0xe3,0xbf,0x34,0x1,0x25,0xc2,0x3f,0x24,0xe5,0xc1,0x81,0xb7,0x7f,0x42,0xf8,0x89,0x3,0x41,0x79,0x76,0x7,0xc0,0x8,0x82,0x54,0xc1,0x5b,0x94,0x74,0x42,0x90,0xc6,0x75,0xc2,0x8a,0xa5,0xca,0x41,0x1f,0x65,0x93,0xc2,0x6b,0x80,0x6,0xc3,0x1b,0x6e,0x82,0x42,0x13,0x7,0xd0,0xc1,0x77,0xf1,0x4f,0xc1,0xef,0xe5,0x1e,0xc1,0xe7,0x17,0xa6,0x41,0x4f,0xd8,0x2a,0x42,0x4c,0x73,0xe,0x42,0x13,0x74,0xf,0x42,0x9,0xfc,0xb6,0x41,0xa9,0xb6,0xf7,0xc1,0xf7,0xd9,0x5a,0x42,0x3a,0x66,0x1d,0xc2,0xe4,0x3b,0xc6,0x41,0xde,0xad,0x95,0xc0,0x1,0x2a,0xf4,0xc1,0x32,0x18,0xa0,0xc1,0xd6,0xc,0x96,0x3f,0x53,0x76,0x9a,0xc2,0xab,0x15,0x65,0x42,0x74,0x1c,0x76,0x41,0x2c,0x35,0xee,0xc1,0x4a,0x80,0xd,0xc2,0xaa,0x15,0x52,0x42,0x5,0xcb,0x47,0x42,0x26,0x7d,0x2d,0x41,0xcd,0x6,0x16,0xc1,0x53,0xf0,0x9,0xc2,0xb0,0x30,0xc2,0x3e,0x67,0x11,0xbe,0xbf,0x4c,0x7b,0xc6,0xc2,0x7b,0xd9,0xad,0x42,0x14,0x64,0xc5,0x42,0x92,0x17,0xf9,0x41,0x89,0x5b,0x1d,0x42,0x8a,0x74,0xcd,0x41,0xc6,0x70,0x8b,0x41,0x75,0x71,0x86,0xc2,0x30,0xf6,0xc2,0xc1,0x68,0x62,0x70,0x42,0xf5,0x78,0xcf,0x40,0x91,0x13,0x36,0x42,0x5e,0x5f,0xee,0xc1,0x55,0xdf,0x8b,0xc2,0x70,0x71,0xc3,0x40,0x34,0xb6,0x8e,0xc2,0xc1,0x70,0xc3,0x41,0x5a,0x38,0x38,0x40,0x17,0x82,0x60,0xc0,0xe9,0x9a,0x8b,0xc0,0x6e,0x66,0xa3,0xc0,0xf1,0x9e,0x4c,0x41,0x59,0xa5,0x25,0x42,0xeb,0xc2,0xd,0x42,0x2a,0xe9,0x5b,0x41,0xcd,0x11,0xb2,0x41,0x28,0x8a,0xd2,0xc1,0x6c,0x5a,0xd7,0xc0,0x7d,0x91,0x39,0x42,0xe5,0xf6,0xd,0xc2,0x6e,0x81,0x4b,0xc1,0xf3,0xfa,0x70,0x41,0x4e,0xf8,0xd0,0xc1,0x1c,0xa3,0x2,0x40,0x9f,0x15,0xaf,0xc1,0x99,0x71,0xa7,0x42,0x6f,0xf9,0x68,0xc0,0x68,0x74,0x6c,0xc2,0x1a,0x72,0x1c,0x42,0x7e,0x5e,0xa9,0xc0,0x70,0xa5,0x80,0x42,0x88,0x7c,0x94,0x41,0x7f,0x4a,0x25,0xc1,0x3b,0x88,0x1c,0x41,0xab,0x53,0x5e,0x41,0x17,0x7e,0xae,0x42,0x5a,0xb5,0xa8,0xc2,0x68,0x8,0xcf,0x42,0x3b,0x98,0x8f,0xc2,0x3c,0xc5,0x93,0xc2,0xe2,0x75,0x84,0x42,0xad,0x62,0x8,0xc2,0x5c,0xf7,0x1,0x42,0x75,0xca,0x75,0x42,0xcb,0x42,0x34,0xc2,0x2a,0xa,0x66,0xc2,0xd1,0x56,0xfb,0x41,0x23,0x42,0x9d,0xc2,0x1a,0xcd,0x7f,0x41,0xa1,0xd9,0x30,0x41,0xfb,0xee,0x64,0xc2,0x70,0xe8,0x3,0xc1,0xfc,0x75,0x86,0x42,0x9e,0xae,0xcd,0xc1,0x1c,0xa4,0x34,0xc1,0x58,0x6,0x1f,0x42,0x7c,0x4e,0xa3,0x41,0x12,0xc4,0x91,0x42,0xa0,0x5c,0xa7,0xc0,0xe,0x1c,0x73,0x42,0x50,0xae,0x6a,0xc2,0xda,0x7f,0x77,0xc2,0x88,0xb1,0x2d,0xc0,0xa4,0x24,0x86,0x41,0x39,0x2d,0x81,0xc2,0x34,0x51,0x1e,0x42,0x3f,0xc8,0x1d,0x42,0xd0,0xea,0xb1,0xc1,0xba,0xaa,0x99,0x41,0x2e,0xf3,0x31,0x42,0xbc,0x4a,0x88,0xc2,0xa0,0x76,0x7,0xc2,0x8b,0x7,0xab,0x41,0x40,0xcb,0x4f,0xc1,0x88,0x4,0xe2,0x41,0x1b,0x95,0x3,0x42,0x83,0x5b,0x7d,0x42,0x54,0x79,0x54,0x41,0x61,0xd0,0x8e,0xc1,0x48,0xd8,0xa8,0xc2,0xd5,0xc5,0x8d,0x41,0xac,0xd4,0xe6,0x40,0xfa,0x3b,0xdb,0x41,0xe8,0x35,0xe1,0x3f,0x5e,0x5f,0x48,0x42,0xce,0x45,0x4a,0xc1,0x36,0x3b,0xa2,0xc1,0x33,0x5,0x2c,0x42,0x71,0x73,0x59,0xc2,0xfa,0xa,0x2e,0x41,0xe2,0xbb,0x99,0x41,0xec,0xeb,0x3a,0x40,0x25,0xec,0x40,0x42,0xd6,0x7,0x9a,0xc2,0x1b,0xf6,0xa6,0xc2,0x66,0x76,0x9e,0x42,0x8c,0xa,0x66,0xc2,0x6,0x7a,0x17,0x42,0x7b,0xf1,0x39,0xc2,0x6f,0x9,0xaa,0x41,0xd4,0xf2,0xd8,0x42,0x28,0x66,0xb6,0x41,0xd5,0x1f,0x9c,0x41,0x7d,0xa6,0x4d,0x42,0x0,0xf0,0x93,0x42,0xfe,0xf,0xe6,0x41,0x16,0xe0,0xa1,0x41,0x36,0xb9,0x2b,0x42,0xe,0x6,0xf0,0xc1,0xe9,0xcb,0x36,0x42,0xf2,0x70,0x15,0x41,0xdb,0xfe,0x22,0x42,0x93,0xb,0xec,0xc2,0x2,0x32,0x75,0xc1,0xad,0x83,0x63,0xc1,0x80,0x9,0x25,0x41,0x8b,0x73,0xae,0xc0,0x74,0xb0,0x68,0x42,0xda,0x1d,0x43,0xc1,0x26,0x4e,0xd1,0x42,0xfc,0x24,0x9,0xc1,0x52,0x23,0x53,0xc2,0x94,0xdb,0xe8,0xc1,0xea,0xd4,0xb3,0xc2,0x77,0x5f,0x96,0x42,0xa9,0x76,0x91,0x42,0xa,0x40,0xca,0x41,0xbb,0x18,0x16,0x42,0xbf,0x13,0xa2,0xc2,0x3a,0x1,0x2e,0x41,0x6c,0xa,0x16,0xc1,0x94,0x23,0x3b,0xc2,0x10,0x7f,0xc0,0x40,0x75,0x25,0x7a,0x42,0x32,0xa9,0x1b,0xc1,0xcf,0xcd,0x8d,0x42,0xc,0xc8,0x4b,0xc2,0xe,0x9b,0xed,0xc1,0x7a,0x37,0x71,0xc1,0x70,0xc4,0x3d,0xc2,0x4c,0xb4,0xa2,0xc1,0xeb,0xc,0x75,0x42,0xf4,0xda,0xbf,0x41,0xa3,0x12,0xe2,0xc0,0x2d,0x67,0x7c,0x42,0x8c,0x8,0x2b,0xc1,0xd0,0xdc,0x1,0xc1,0xef,0xdc,0xa1,0xc2,0xa8,0x21,0x50,0x42,0xb8,0x86,0x41,0x41,0xb9,0xef,0x4d,0x42,0x96,0x2e,0xf0,0x40,0xf0,0xde,0xa4,0xc0,0x20,0x66,0xf2,0xbd,0xab,0x56,0xdf,0xc0,0x59,0x5d,0x3,0x42,0x55,0xf7,0x5e,0xc1,0x1,0xef,0x3d,0x42,0x97,0x3f,0xc3,0x41,0x80,0x7a,0xed,0x3d,0xac,0x65,0x46,0xc1,0x72,0x22,0xa8,0x40,0xd5,0x34,0xf9,0x41,0x16,0xd0,0x26,0xc2,0x4a,0x42,0x23,0x42,0x95,0xfd,0xed,0x3f,0xa0,0xcd,0x5a,0x40,0xb9,0x42,0xcc,0xc0,0x69,0xa3,0x2d,0x42,0x24,0xe,0x8a,0xc1,0x40,0x8a,0xc,0x42,0xd0,0xa9,0x6a,0x42,0x3e,0x6,0x5,0x41,0x38,0xf6,0xc5,0x42,0x2c,0xa2,0x3e,0x3f,0x32,0xe4,0x30,0xc2,0xa6,0x62,0xd4,0x40,0x9c,0x3f,0x18,0xc0,0x30,0x58,0x9f,0x40,0x6e,0x6e,0xa5,0x40,0x20,0x1b,0x21,0x42,0xa7,0xce,0x39,0x42,0x6c,0xad,0xb7,0xc1,0xa8,0xf8,0x93,0x42,0x34,0x3d,0x96,0x42,0x18,0x38,0xad,0xc1,0x81,0x64,0x0,0xc1,0x20,0xe1,0xe8,0x3e,0xd4,0x15,0x50,0xbf,0xe9,0x23,0x91,0x42,0xb1,0x44,0xf0,0xc1,0x24,0xc3,0x85,0x42,0x98,0xa0,0xbf,0xc1,0x1b,0xf1,0x81,0x42,0x2,0x62,0x8b,0x42,0x52,0x6b,0x81,0x41,0xb0,0x3e,0x64,0xc2,0xb5,0xe0,0x8b,0xc2,0x71,0x4,0x6b,0x41,0x5d,0x7c,0xba,0x3f,0x74,0x77,0xd0,0x41,0x76,0xbb,0xdc,0x41,0x92,0xad,0x4b,0x42,0x7e,0x4d,0xbf,0xc1,0x43,0x1e,0x72,0xc1,0x44,0xbd,0x85,0xc2,0xa0,0xea,0xc0,0x3e,0x8b,0x93,0x57,0x42,0x96,0x4,0x70,0x42,0xac,0x27,0x6e,0x42,0xfb,0xe0,0xc,0x42,0x68,0xdc,0x5e,0x42,0xf7,0xc0,0x97,0xc2,0xd2,0x24,0xa7,0x41,0x7c,0xbf,0x34,0x41,0x35,0xf3,0x39,0xc1,0x58,0xd7,0x8c,0x42,0x26,0x9c,0x20,0xc2,0x98,0xa1,0x9f,0x41,0x96,0x64,0xcf,0x41,0xbc,0xbe,0xd5,0x41,0x3c,0x28,0x78,0xc1,0x76,0x73,0x62,0x41,0xa,0x16,0x2b,0x42,0x37,0x81,0x91,0x41,0xa1,0x99,0xf5,0x41,0xa6,0x92,0xff,0xc1,0x66,0x1f,0x91,0xc2,0x10,0xc4,0x9b,0xc1,0xa6,0x89,0x1d,0xc2,0x5d,0xb6,0x1c,0xc2,0xf2,0xf5,0x4,0x42,0xde,0x30,0x7d,0x40,0xac,0x63,0xac,0xc0,0x8a,0x6e,0x79,0x42,0xa1,0x1b,0x4c,0xc2,0x56,0xe9,0xbd,0xc1,0x22,0x77,0x83,0xc0,0x27,0x58,0x49,0xc2,0x1c,0x4b,0xdd,0xbf,0xc8,0x11,0x24,0x41,0x17,0x70,0x27,0xc2,0xd0,0x9c,0x15,0xc2,0xf0,0x67,0xa2,0x42,0x1e,0x8d,0x98,0x42,0x29,0xff,0x8e,0xc2,0xd0,0x31,0xab,0x42,0xb6,0x3b,0xfb,0x41,0xfb,0x53,0x90,0x41,0x3e,0x75,0x6c,0xc1,0x32,0x4,0x85,0xc2,0xb1,0xe6,0xd0,0x40,0x32,0x8c,0x11,0xc2,0xb6,0xbf,0x95,0x41,0xd4,0x21,0x11,0x42,0xc7,0x51,0xaa,0xc1,0xe9,0xf7,0xf7,0x41,0xf6,0x99,0x68,0x40,0xd1,0x8c,0xa5,0x42,0xc5,0x5b,0x6,0xc1,0x83,0x11,0x6a,0xc2,0xcd,0xf1,0xa3,0x42,0xd0,0x44,0x74,0xc0,0xb1,0x8f,0xf5,0x40,0xc5,0xc4,0xb9,0xc2,0x92,0x2c,0x52,0xbf,0x59,0x8c,0xfa,0xc0,0x3f,0x9f,0x9e,0xc1,0x55,0x24,0x68,0xc2,0x11,0x53,0x66,0x41,0x3a,0xe5,0x91,0xc2,0x4b,0xd1,0x9c,0xc0,0x8b,0xe1,0xf0,0xc2,0xc4,0x2e,0x49,0xc2,0x4,0x7d,0xd5,0x41,0x6e,0x9,0xc1,0x41,0x8d,0x3c,0x1,0x42,0x8a,0xd7,0x2,0x41,0xb8,0x5e,0x89,0xc1,0xd4,0x28,0x9b,0x41,0xb7,0x2a,0x89,0xc2,0x3c,0xcf,0xbe,0xc1,0x0,0xe8,0x4,0x42,0xf3,0x30,0xd2,0x41,0xc,0x42,0x71,0xc2,0x57,0xe9,0x4c,0xc2,0xa4,0xdb,0xb8,0x41,0x79,0xa9,0xb2,0xc2,0x13,0x3d,0xed,0xc1,0xf3,0xfa,0x97,0x41,0x56,0x39,0x73,0xc2,0x90,0x1c,0x18,0x42,0x41,0xf3,0xe4,0xc2,0x8c,0x3b,0xd5,0xc2,0x3e,0x75,0x1e,0xc1,0xb8,0xda,0x6f,0xc2,0x1c,0xad,0x99,0x41,0xc2,0x61,0x18,0x42,0x6,0x9f,0x94,0xc1,0xa2,0x45,0xab,0xc1,0x61,0xc5,0x31,0x42,0x94,0x83,0xdf,0xc1,0x71,0x7c,0x4a,0xc1,0x30,0xbd,0x83,0xc1,0xce,0xdd,0x7b,0x42,0x2e,0xdd,0x45,0xc2,0xa5,0x99,0xcc,0x42,0x56,0xa2,0xd1,0xc0,0xec,0xbf,0x82,0xc1,0x80,0x3,0x8f,0x40,0xd3,0xc,0x81,0xc1,0x16,0x5,0xe,0x42,0xac,0xa,0xa0,0x41,0xd1,0xc4,0x88,0xc2,0x9e,0x23,0xd7,0xc1,0xce,0xcf,0xd6,0x41,0xdd,0x8c,0x50,0x42,0x98,0x54,0x8e,0x40,0x77,0x6a,0xb2,0xc1,0xcd,0xf,0xc,0x42,0x27,0x67,0x7,0x42,0x23,0x4f,0x19,0xc2,0xdb,0xdb,0xb2,0x42,0x38,0x64,0x72,0xc2,0xd,0x8e,0xc1,0x41,0xc6,0xcc,0x5c,0x40,0xd9,0x2c,0x4c,0x42,0xb4,0xfb,0xea,0xc1,0x52,0x89,0x99,0xc1,0x28,0xf3,0x93,0xc1,0xd7,0xad,0xef,0xc1,0xed,0x90,0x49,0x42,0x58,0x63,0x36,0xc2,0x27,0x8e,0x10,0xc2,0x91,0x26,0x70,0xc2,0xad,0xe0,0xe,0xc1,0x22,0x40,0x98,0x40,0x89,0x4b,0xb4,0x42,0xe4,0x74,0xcb,0x40,0xe0,0x5f,0x33,0xc2,0xc6,0xeb,0x22,0xc2,0x9e,0x7b,0xa3,0xc1,0xf0,0xef,0xe0,0x40,0xdc,0xdc,0xdc,0x40,0x2d,0xd3,0x14,0x40,0xd5,0x99,0xb2,0x41,0x5a,0xc9,0xfc,0x41,0x30,0x25,0x75,0x41,0x3e,0x39,0x66,0xc1,0x21,0x9e,0x18,0x42,0x5,0xab,0xc9,0xc1,0x1,0x9c,0x59,0x41,0x77,0x4b,0x20,0xc2,0x0,0x8a,0x10,0x40,0x73,0xcc,0x83,0x41,0xe5,0x5a,0x43,0x42,0xf2,0x50,0xdf,0x40,0x9b,0xa9,0x53,0x42,0xac,0xca,0xb9,0x41,0xb6,0x9,0x2f,0x41,0x83,0x83,0x2f,0xc2,0x19,0x6a,0x81,0x41,0xb5,0x51,0x19,0xc2,0xe5,0xa6,0x96,0x42,0x1f,0xed,0xbf,0x42,0x13,0x1c,0x80,0x42,0xdc,0x77,0x79,0xc2,0xc1,0xd6,0xc6,0xc2,0x55,0x3e,0x3f,0x40,0x5a,0xe8,0xae,0x40,0xc5,0x75,0x52,0x42,0x7,0x33,0xc6,0xc0,0x9,0xdf,0xbe,0x41,0x6,0x65,0x1a,0xc2,0x38,0x56,0xe4,0x41,0x35,0x3b,0xa8,0x42,0xc2,0xce,0x89,0xc2,0x5,0x1f,0x97,0x41,0x78,0x41,0xab,0x41,0x16,0xd0,0x95,0x42,0x47,0xb9,0x1a,0xc2,0x28,0x2a,0xcf,0x41,0x20,0x8c,0x52,0xbe,0x2c,0x8a,0xec,0xc1,0x38,0x37,0xb0,0x42,0xc4,0xaa,0xa5,0xc2,0x37,0xd3,0x1d,0xc1,0x46,0xdb,0x39,0x42,0xd8,0x73,0xfd,0x41,0xe7,0xf3,0x63,0xc2,0x8c,0xd7,0x37,0x41,0x8a,0xae,0x46,0x42,0x61,0xdf,0x1a,0x41,0xb0,0x65,0xaf,0xc0,0x4d,0x79,0x2c,0x42,0xfe,0xde,0xa3,0x41,0x3a,0x1c,0x2e,0x3f,0x82,0xe4,0xe,0x42,0xb2,0xc5,0x3a,0x41,0xba,0x90,0x6a,0x41,0x90,0xb9,0x88,0x42,0xf2,0x55,0x53,0xc0,0xce,0xb3,0xb0,0x40,0x79,0x91,0xc7,0x41,0x8f,0x58,0xf,0xc2,0xf5,0xb3,0x80,0x42,0x4,0x18,0x4c,0x42,0x2f,0x62,0x79,0xc2,0xba,0xa7,0xbc,0x41,0x27,0xc5,0x5f,0xc2,0x5b,0x7b,0xe0,0x40,0x84,0x33,0xe5,0x41,0x5e,0xf3,0x8e,0xc1,0xc8,0x64,0x95,0x3e,0x18,0xd2,0xf4,0xc1,0xd7,0xfb,0xb6,0x41,0xf2,0x32,0x65,0x41,0x14,0xc3,0xf6,0xc1,0xa,0x1e,0x22,0xc2,0x6b,0xf7,0x64,0x42,0x3,0xa8,0xbe,0x41,0x53,0x17,0x2b,0x42,0x9f,0x95,0xa2,0x41,0xf8,0x89,0xd2,0xc0,0x2c,0x4c,0x62,0xc2,0x60,0x67,0x8d,0x41,0x76,0x69,0xec,0x41,0x92,0xde,0xae,0xc2,0xb4,0xf7,0x76,0xc0,0x48,0xfe,0xc6,0xbe,0x30,0xa3,0xc4,0xc2,0x11,0x85,0x6e,0x42,0xa9,0x3d,0x3a,0xc0,0xc5,0xef,0xb9,0x42,0x58,0xdc,0xbf,0x41,0x35,0x7b,0x88,0xc1,0x47,0x9d,0xae,0xc1,0x28,0x56,0x91,0xbf,0x8e,0xb7,0x94,0x42,0x44,0xe5,0x55,0xc2,0xba,0xdf,0x8a,0xc2,0x66,0x85,0xc8,0xc2,0xca,0x4b,0x9d,0x41,0xbb,0x90,0xf5,0xc1,0x20,0x97,0x69,0xc1,0x72,0x10,0xd,0xc1,0x84,0x83,0x79,0x42,0x7f,0x45,0xd7,0xc0,0x69,0xfb,0x8c,0x41,0x8d,0x85,0x86,0x42,0xe9,0xe9,0x70,0xc2,0xd9,0xd0,0x7b,0xc2,0x26,0x2,0xfc,0x41,0x51,0x35,0xab,0x40,0xef,0x7c,0xd5,0xc2,0xf9,0xa1,0x58,0x40,0xbb,0x58,0x1d,0x42,0x3a,0xd9,0x93,0x41,0x24,0x11,0xa9,0xc0,0xa,0x9f,0x8,0xc2,0x44,0xfd,0xc7,0xc1,0x4a,0x79,0x18,0xc2,0x59,0x11,0xb,0xc2,0x19,0xe6,0x57,0xc2,0x62,0xdd,0x8c,0xc1,0x81,0x2c,0x7b,0xc2,0x84,0xab,0x32,0x41,0x91,0xbf,0x17,0x41,0x4c,0x10,0x1e,0x42,0x6c,0xe,0x54,0xc2,0x94,0x7b,0xd5,0xc0,0x80,0x62,0x86,0xbd,0x10,0x20,0x20,0xc1,0x6b,0x1b,0xae,0xc0,0x82,0x1f,0x5c,0x40,0xed,0xa5,0x1,0x42,0x72,0x59,0x68,0x42,0x7e,0xb6,0x8e,0xc1,0xfc,0xbb,0x1f,0xc2,0x1e,0x2b,0x7a,0xc2,0x39,0x58,0x88,0xc1,0x43,0xeb,0xe0,0x41,0x7b,0xfa,0x4f,0xc2,0xb9,0xe,0x50,0x42,0x73,0x4d,0x25,0xc2,0x68,0x35,0xe5,0xbf,0x37,0xe,0xd0,0x41,0x64,0xf7,0x88,0xc0,0x69,0xd4,0x70,0x42,0xe6,0xb2,0x96,0x42,0x19,0xc3,0x89,0x42,0x3c,0x45,0xb4,0xc2,0x72,0x64,0xa6,0x42,0x16,0x3f,0x16,0x42,0x68,0x46,0x94,0x41,0x10,0x62,0x22,0x42,0xac,0xf3,0x6b,0x42,0x64,0xf2,0x32,0xc1,0x29,0x53,0x98,0x42,0xe7,0x41,0x16,0xc2,0xf9,0xbb,0x88,0xc2,0xae,0x52,0xa8,0xc1,0x9e,0x66,0x41,0xc2,0x3d,0x3e,0xa0,0xc1,0xdd,0x71,0xef,0x40,0xd0,0xf4,0xcf,0xc2,0x72,0x25,0x7f,0x41,0xd1,0xe1,0x3e,0x41,0x6e,0xdd,0xcf,0xc2,0x41,0x36,0x10,0xc2,0xf3,0x15,0xb0,0x42,0x6f,0x11,0x18,0x42,0xac,0xb5,0xba,0x40,0x57,0x4,0x1b,0x41,0xd8,0x7d,0xf7,0x41,0x9c,0xc6,0x8b,0x3f,0xa6,0xbc,0x3e,0xc2,0xaf,0x4f,0x69,0x41,0xca,0xc4,0xb0,0x41,0x8d,0x96,0x48,0x42,0xfe,0x5d,0xf,0x42,0x2d,0xde,0x2,0xc2,0xda,0x8,0x9a,0x41,0x63,0x59,0xcd,0xc0,0xd0,0x9,0xb6,0xc1,0xce,0x8c,0x98,0x41,0xde,0x1b,0x54,0xc2,0xc6,0x30,0xfd,0xc0,0xe2,0x8d,0xd4,0xc0,0xfd,0x53,0x94,0xc1,0x2c,0x1f,0x6e,0x40,0x9,0x1,0x99,0x42,0xf3,0x1e,0xca,0x42,0x2c,0x45,0xd8,0x41,0x2c,0xec,0x2c,0x42,0x78,0xab,0x15,0x41,0xeb,0xd1,0x13,0xc2,0x61,0x4e,0x85,0x42,0xe7,0xe1,0x95,0xc1,0x1e,0xf6,0x23,0x42,0xd5,0x1c,0xd7,0x42,0xb0,0x4b,0x92,0xc2,0xf0,0x30,0x76,0xc0,0x6,0xdf,0x28,0x41,0x0,0xb1,0xcc,0x41,0x8,0x97,0xd4,0x42,0xe2,0x5,0x5,0x42,0xbf,0x89,0xca,0xc1,0x94,0xc3,0xef,0xc1,0xd1,0xa0,0x4f,0xc1,0xf8,0xe2,0xcc,0x40,0x5a,0xa5,0x91,0x42,0xa9,0x96,0x32,0xc2,0xf0,0x87,0x55,0xbf,0xe4,0xb0,0xe3,0xc2,0x9e,0xf1,0x4e,0x42,0xe0,0xa4,0x92,0x41,0xa8,0xf1,0x18,0xc1,0x96,0x2e,0x42,0x41,0x8,0xa0,0xec,0xc1,0xac,0x53,0x97,0xc1,0x46,0x14,0xcc,0x40,0x56,0x31,0xad,0xc1,0x36,0xcc,0xd7,0xc1,0x38,0x77,0xd6,0xc1,0x55,0x73,0xa,0xc2,0x26,0x4f,0xe5,0xbf,0x4c,0xad,0x1f,0xc1,0x0,0x35,0x2,0x41,0x6,0xad,0xcb,0xc2,0x86,0xb1,0xe1,0x41,0x71,0x52,0xc,0xc2,0xf1,0xe5,0x84,0xc1,0xc6,0xc7,0x10,0x42,0xfb,0x93,0x3b,0x42,0x6c,0x1d,0x8d,0xc2,0x17,0xa0,0x45,0xc2,0x9a,0x5e,0x2d,0x42,0xd7,0xda,0x62,0xc2,0xb4,0x3c,0x19,0x41,0x53,0xf1,0xa9,0x41,0x5a,0xa4,0xbd,0x41,0x77,0x52,0x15,0xc3,0x94,0x55,0x4e,0x41,0x6c,0x4,0x98,0xc1,0xdc,0x3d,0x47,0xc1,0x13,0x82,0x2d,0xc2,0x20,0xf3,0xd8,0x41,0x9b,0xf1,0x8a,0x42,0x3d,0xc,0xe,0x42,0xd0,0x78,0x7e,0x42,0x6d,0x64,0x7f,0xc2,0xe,0x6d,0x22,0x42,0xa6,0x1d,0xc2,0xc2,0xff,0x6,0xff,0xc1,0x3b,0xbc,0x74,0x42,0x26,0x6e,0x6b,0x40,0xf5,0x90,0xb9,0x42,0xbc,0xb,0x9c,0xc2,0xe,0x8c,0x6,0x42,0x9b,0x98,0x2f,0x42,0x96,0xed,0xe5,0x41,0x75,0x4d,0xd,0xc2,0x7c,0x84,0x8f,0x41,0x1,0x86,0x7f,0x41,0x8e,0x3e,0x8b,0xc2,0x90,0x30,0x95,0x42,0x6b,0xa0,0x81,0xc2,0x2c,0x18,0x32,0x42,0xcb,0x5e,0xbf,0xc1,0x1e,0x2c,0x67,0x41,0x97,0xe,0xa9,0xc2,0xde,0x25,0x93,0xc0,0x13,0xda,0xc7,0x41,0xb3,0x17,0x74,0xc1,0x74,0xe1,0xbc,0x41,0xca,0x50,0xea,0x41,0x6a,0x9f,0xc1,0xc1,0x35,0xfe,0xe7,0x41,0x31,0xcc,0x1f,0x42,0x4d,0x8f,0xd0,0xc1,0xa2,0xc2,0x2d,0x42,0xa7,0x85,0x8e,0xc2,0x6a,0xdd,0x24,0xc2,0xbc,0x87,0xc,0x42,0xc0,0xbb,0xba,0xc0,0xd2,0xae,0xa8,0x40,0x77,0x9,0x77,0xc2,0xee,0x17,0x2d,0x40,0xce,0x1c,0x18,0x42,0x63,0x32,0x34,0xc1,0x44,0x97,0x8d,0xc2,0xdd,0xb8,0xed,0x42,0xa2,0x8f,0x18,0x41,0x46,0x23,0x4d,0x42,0x9,0x91,0x23,0x42,0x5b,0xe6,0x79,0xc0,0xe5,0x25,0x8,0x41,0x84,0xe7,0xb0,0x41,0x5c,0xff,0x2e,0x41,0xe8,0x55,0x1d,0xc1,0x53,0x5,0x76,0x41,0x78,0x68,0xa0,0x41,0xd8,0x85,0xa9,0xc1,0x9,0xa0,0xa5,0xc1,0x4,0xd9,0x2b,0xc2,0xca,0x93,0x31,0x42,0x81,0xe0,0x44,0xc1,0x29,0xf8,0x21,0x42,0x35,0x5e,0xfe,0x41,0x34,0xa2,0x4c,0xc2,0x4a,0x1a,0x2e,0xc1,0x83,0xb,0xa0,0x40,0x7f,0x7f,0x2d,0xc2,0x47,0xa5,0xe5,0xc1,0x4a,0xbe,0x1e,0x41,0xf,0x17,0x4,0x42,0x82,0x61,0x21,0x42,0x7e,0x19,0x6a,0xc1,0xe4,0x1a,0x26,0x42,0x12,0x16,0xdd,0xc1,0xce,0xf8,0x67,0x41,0x87,0x5b,0x23,0x42,0xa,0x23,0xeb,0xc1,0xbb,0x6b,0xcd,0xc1,0xb0,0xc,0xd9,0x41,0x37,0x39,0x79,0x42,0x78,0x92,0x40,0xc2,0xf6,0xc5,0xba,0x41,0x42,0x4a,0xa2,0x41,0x9d,0x1c,0x38,0x42,0xc0,0x30,0xfe,0x41,0x50,0x90,0x12,0xc2,0xbd,0x52,0xfb,0x40,0xba,0xfb,0xb6,0x41,0x2e,0x41,0x32,0x42,0x83,0x7c,0xd3,0xc1,0x54,0xdc,0x62,0x42,0x2e,0xb,0xad,0x40,0x90,0xc4,0x70,0x41,0xbe,0xa4,0x31,0x42,0xc4,0xc1,0x35,0x3d,0x72,0xe8,0x19,0x41,0x67,0xcb,0x57,0x40,0x7c,0x2a,0x3a,0x42,0x8b,0x31,0x90,0xc2,0x6c,0xc5,0x38,0x42,0x4b,0x4f,0xc7,0x41,0x45,0x1,0x16,0x42,0xf6,0xfc,0x48,0x42,0x20,0x2a,0x16,0x40,0x6b,0x71,0x91,0xc2,0xe7,0xa6,0x3d,0x42,0xab,0x27,0x91,0xc2,0x72,0xb5,0x18,0x42,0x5c,0x45,0xb1,0x40,0xf8,0x19,0x16,0xc1,0x93,0x47,0x63,0x41,0x29,0xf1,0xab,0xc2,0x6a,0x7,0x28,0x42,0x72,0x63,0xf2,0xc0,0xc5,0xbe,0x85,0xc2,0xdb,0xf2,0x8d,0xc1,0x81,0x85,0x72,0xc1,0x51,0x8,0x5e,0xc2,0x41,0xbe,0x64,0x42,0x7,0xd,0xb3,0x40,0xb2,0xef,0xdf,0x41,0x34,0x4d,0x88,0xc2,0xbd,0x1e,0xe2,0xc1,0x1b,0xd0,0x13,0x42,0x8c,0x7e,0x1,0xc2,0x1e,0x27,0xff,0x41,0xc7,0x69,0x5,0xc1,0x9c,0xf6,0xc7,0xc1,0xee,0x4f,0x6c,0xc1,0xad,0x68,0x48,0xc2,0xe,0x56,0x81,0xc0,0xd4,0x8e,0xb1,0xc1,0xa0,0x7f,0xe7,0xc2,0xc2,0x4,0x8c,0xc2,0x1a,0xf0,0xd5,0x40,0x32,0xad,0x3a,0xc2,0x1c,0xf1,0xfd,0x41,0x1a,0xc,0xf6,0xbf,0x9e,0x70,0x95,0xc0,0x34,0x8d,0x27,0xc1,0x4b,0x3e,0xb0,0xc1,0xca,0xf7,0xd6,0xc1,0x8a,0xf7,0x76,0xc2,0x45,0x20,0x4a,0x40,0xfc,0xed,0x81,0xc1,0x27,0xa8,0x71,0x41,0xc9,0xfe,0xf8,0xc0,0xb1,0x4a,0x47,0xc1,0xf2,0xe1,0x4b,0xc2,0xd8,0xe7,0xd6,0xc1,0x9f,0xd9,0xc5,0xc1,0x72,0x4,0x6a,0xc2,0x7c,0x92,0x5a,0xc2,0x5e,0xca,0x8c,0xc2,0x87,0x2a,0xe2,0xc0,0xe3,0x68,0x25,0x41,0xea,0x26,0x2d,0xc2,0xce,0xa,0x13,0x41,0x89,0x72,0x31,0x42,0x82,0xa4,0xeb,0xc0,0x64,0xc7,0x11,0xc0,0x15,0x6c,0x74,0x41,0x6e,0xfd,0x17,0xc2,0x37,0xf4,0x76,0xc0,0xa5,0x3c,0xa8,0xc0,0x2,0x7c,0x8b,0xc1,0xf8,0xa8,0xf8,0xc0,0x2,0xec,0x7d,0x41,0x95,0xb1,0xe5,0xc1,0x4e,0xbe,0x39,0xc2,0x95,0xa0,0xc8,0xc1,0x40,0x42,0x1c,0x41,0x5a,0x95,0x2,0xc1,0x6f,0x1f,0x55,0x42,0x2c,0x84,0x90,0xc1,0xff,0x82,0x3d,0x41,0x7e,0xb4,0x1d,0xc1,0x9a,0xf4,0x33,0x41,0x15,0xb2,0xd7,0xc1,0xfc,0xe3,0x45,0xc2,0xcd,0x5b,0x1,0xc1,0xab,0xc0,0x87,0xc1,0xb2,0x5f,0x63,0x41,0xaa,0x21,0x36,0x42,0xe7,0xcb,0x82,0x42,0x80,0x3,0x85,0xc1,0x10,0x8c,0x74,0x3d,0x48,0x7a,0x66,0x3f,0x1c,0x8a,0xde,0xc1,0x0,0xf1,0x57,0xc2,0xe2,0x57,0x51,0xc2,0xd4,0x50,0xb3,0xc2,0xf5,0x16,0x10,0xc2,0x99,0xf,0x17,0x42,0xe7,0xa3,0x12,0xc1,0x45,0x46,0xe9,0x41,0x86,0x9e,0xe,0xc1,0xdb,0x13,0x46,0xc1,0xb6,0xb9,0x7d,0x42,0xed,0xc4,0x7c,0x42,0xfc,0x43,0xf4,0x3f,0xb3,0x5,0x9c,0x41,0xc4,0x73,0x67,0x40,0xc6,0x8d,0x3b,0xbf,0x95,0x3c,0x2a,0x41,0x6,0x45,0xd4,0xc1,0x2a,0xc5,0xae,0x40,0xae,0x0,0x94,0x41,0x5c,0x2d,0x39,0x42,0xc7,0x3e,0x2f,0x42,0xcb,0xe4,0x2b,0xc1,0xe7,0x71,0x14,0x42,0x21,0xa5,0x3d,0xc1,0x14,0x4a,0x8d,0x40,0xbc,0x50,0x1d,0x42,0x67,0xf8,0x67,0xc1,0xe7,0x5,0x40,0x42,0x96,0xb0,0x68,0x42,0x2b,0xca,0x76,0xc2,0xc0,0xc6,0xb,0x3d,0x2a,0xaf,0x1e,0x41,0xd7,0xd7,0x20,0x42,0xa5,0xfb,0x32,0x42,0x4a,0xce,0xdc,0xc1,0xcd,0xb9,0x7c,0xc2,0x65,0x54,0x3b,0xc2,0x9b,0x1d,0xc4,0x41,0x2e,0xae,0x30,0x42,0x6a,0x99,0xd,0x42,0x8d,0x2b,0x15,0xc2,0x74,0x54,0x24,0xc2,0xba,0xe3,0xc5,0x41,0x12,0x7f,0xba,0xc1,0xe2,0xb6,0xd4,0x41,0x89,0x57,0xb9,0x41,0x38,0x2d,0x7,0x42,0xdb,0x81,0xea,0xc1,0x86,0xfd,0x75,0xc1,0xc8,0x5,0xa7,0xc1,0x39,0x4d,0x74,0xc1,0xf3,0x90,0x69,0xc2,0xbd,0xcb,0x9f,0xc0,0x59,0xc0,0xac,0xc1,0x40,0xc6,0x41,0x3f,0x61,0x58,0x86,0x42,0x9b,0xad,0x6,0x42,0xd0,0x81,0xed,0xc0,0xaa,0xf1,0x3,0xc1,0x5f,0x30,0xb9,0xc1,0xad,0x28,0x58,0xc2,0xb5,0xc7,0xee,0x41,0x40,0x71,0x6a,0xc1,0x97,0x83,0x6f,0x41,0x2,0xb6,0xff,0xc1,0x8c,0xc9,0xa9,0x41,0x29,0x58,0xf1,0xc1,0x6f,0xff,0x54,0xc2,0xe7,0x23,0xb9,0xc2,0x5d,0x39,0x2d,0x42,0x39,0xa0,0x5f,0x42,0x70,0x9c,0x81,0xc0,0x81,0xa7,0x98,0x42,0xb2,0x77,0xa5,0x41,0x8a,0x57,0xb6,0xc1,0xc9,0x3d,0xc,0xc2,0xa4,0xb2,0x89,0x41,0x8,0x2d,0x5f,0xc1,0x87,0x9b,0x53,0xc2,0x8b,0x54,0x20,0x41,0x29,0x94,0xe1,0x3f,0xa0,0xd0,0xc2,0x3d,0xa1,0x8b,0xa5,0x41,0x70,0x31,0xd6,0xbd,0x76,0xf5,0xb9,0x41,0x6a,0xaa,0xf,0x42,0xfa,0x50,0xa6,0x41,0x46,0xcb,0x1f,0x42,0x50,0x37,0xb9,0x41,0xda,0xc9,0x8b,0xc1,0x4e,0xda,0xad,0xc1,0x7d,0x36,0xb6,0x41,0x17,0x7c,0x94,0xc1,0xa1,0x72,0x7b,0x42,0x99,0x64,0x7c,0x42,0x80,0x65,0xe8,0x40,0x88,0x6a,0xcc,0xc1,0x6,0xdb,0xa7,0x41,0xb3,0xbb,0x89,0xc0,0x1,0xc7,0x8,0xc2,0x34,0x17,0xb6,0xc1,0x21,0xce,0xb0,0xc1,0x66,0x3f,0x69,0x41,0x7c,0x27,0xaf,0x41,0xca,0x8c,0x63,0xc2,0xe,0xab,0x35,0x41,0xd5,0x97,0x54,0x42,0x85,0x4e,0x79,0x42,0x4,0x6a,0x85,0xc1,0x8a,0xdf,0x27,0x41,0x3e,0xfb,0x90,0x42,0xf2,0xa8,0xcc,0x41,0x39,0x92,0x2e,0xc2,0x52,0x81,0x3b,0x42,0x40,0x9d,0x7a,0x40,0x76,0x70,0x26,0xc2,0xc0,0xc1,0xf4,0xbd,0x5d,0x35,0x6,0xc1,0x7b,0x33,0x84,0xc0,0x4c,0x14,0x6b,0xc1,0xa,0xc7,0x63,0x42,0xc0,0xe1,0x3,0xc1,0x36,0x78,0x94,0x41,0x6e,0x6d,0x91,0xc2,0x14,0x7,0x15,0x42,0x71,0xcf,0xf5,0xc1,0x4c,0xdc,0x6d,0x42,0x8e,0x5d,0x58,0xc2,0x17,0xea,0x6d,0xc2,0x13,0x9a,0x45,0x42,0xb6,0xd,0x65,0x41,0x3,0x7a,0x76,0xc1,0x6c,0xd,0xea,0xc1,0x76,0x57,0x4c,0xc0,0x1b,0x6e,0x87,0x42,0x32,0x80,0x47,0xc2,0xb2,0xe4,0x4,0xc1,0x4a,0x42,0xf7,0xc0,0xc1,0x46,0xe,0xc1,0xb9,0x4b,0xb1,0x42,0xcb,0x6c,0xd,0x42,0x70,0x70,0xc4,0xc2,0xe0,0x77,0x60,0xbf,0x26,0xcb,0xba,0xc1,0x30,0xf3,0x1b,0x41,0xa1,0xed,0x12,0x41,0xcb,0x7f,0x2b,0x42,0xf9,0xa,0x33,0x42,0xc0,0x78,0xeb,0x41,0x70,0x23,0xa,0x41,0x28,0x89,0xb6,0xc1,0x28,0xfd,0x28,0xbe,0xac,0xdc,0x9a,0xc1,0x2c,0x62,0xba,0xc2,0xbb,0x3,0x5d,0x42,0xa6,0x21,0x21,0xc3,0xcf,0x7,0x81,0xc2,0xaf,0x82,0xa7,0xc2,0x28,0xf,0xac,0x40,0x0,0x8c,0x14,0xc2,0x7c,0x41,0x5d,0x42,0x3b,0xe,0xb3,0x42,0x28,0x47,0x61,0x40,0x1,0xa5,0x25,0xc1,0xdf,0x38,0x8,0xc2,0x84,0x43,0xca,0x41,0x9,0x72,0x82,0xc2,0xdc,0x43,0xb0,0x42,0x28,0x3b,0x34,0xc2,0xc6,0x8c,0x3b,0x42,0xa,0x6f,0x6c,0x41,0xed,0x5f,0x8,0xc2,0xfc,0xaa,0x6f,0x40,0x84,0xb2,0xe9,0xc1,0xe,0x6e,0x81,0x42,0x2b,0xd,0x19,0x42,0xf4,0xe7,0xdb,0xc1,0xb9,0x4a,0x7f,0x41,0xc5,0x9b,0xe,0xc1,0x83,0x4f,0xb8,0xc1,0x72,0x92,0xc6,0xc2,0xf9,0x70,0xd7,0x41,0xd7,0x27,0x37,0x42,0x27,0x1e,0xae,0x42,0xe4,0x33,0x7f,0xc1,0x5,0x39,0x83,0x42,0xc,0x2,0xce,0x41,0x8f,0x4,0xa1,0x42,0x7d,0xf7,0xa,0xc2,0x8a,0x2f,0x60,0x41,0x16,0x44,0x45,0xc1,0x4d,0x1f,0x1b,0xc1,0xb0,0x38,0xa,0x42,0xcc,0x14,0xff,0xc1,0x3e,0xa2,0x37,0xc2,0x5e,0xe3,0xc8,0xc0,0x49,0xd4,0x88,0xc1,0x2,0x2f,0xf8,0x41,0x3e,0xa9,0xf8,0x41,0x3b,0x1,0xc5,0x41,0x8,0x74,0x7f,0xbf,0xb,0xde,0x5d,0xc2,0x2f,0x42,0x51,0x42,0xbe,0x4d,0x7,0x42,0x2c,0x59,0x90,0x42,0xc9,0x90,0x11,0xc2,0xcc,0x4e,0x22,0x42,0xf6,0x36,0x84,0xc2,0xb,0xf3,0xad,0xc2,0xc8,0x4,0xb0,0xc1,0x38,0x2c,0xd6,0xc1,0x4a,0x41,0x69,0xc2,0xd9,0x4b,0xb7,0x41,0x63,0x1f,0x20,0xc2,0xaa,0xca,0x3c,0x40,0xb1,0x5f,0xa7,0x42,0x4f,0x12,0xde,0xc1,0x10,0x8b,0x1b,0xc2,0x14,0x1f,0x24,0x41,0xab,0xb2,0x6e,0x42,0x1a,0x0,0x91,0x42,0xaa,0xe8,0x61,0xc2,0x42,0xa2,0x32,0xbf,0x5c,0x5c,0xba,0xc0,0xa5,0xe1,0xe9,0xc1,0xea,0xf1,0x1c,0xc2,0x26,0x7a,0xc7,0xc1,0xd3,0x77,0xde,0xbf,0xb1,0x3e,0x11,0x41,0x14,0xa3,0xcc,0x41,0x1f,0xfc,0xb5,0x42,0xb6,0x91,0xda,0x41,0xb9,0x8e,0x1c,0x42,0x1e,0x67,0x8a,0x42,0x7e,0xd9,0x71,0x42,0xff,0xfc,0x1d,0xc2,0x4f,0x2e,0x92,0xc2,0xd9,0x9,0x39,0xc1,0x72,0x35,0xd5,0xc2,0x39,0xd4,0x74,0x41,0x2c,0x26,0x80,0xbe,0x90,0xbc,0xf8,0xc1,0x60,0x19,0x6,0x42,0x4d,0xa7,0xad,0x41,0xcd,0x94,0x58,0x42,0x1f,0x6,0x93,0xc1,0xe6,0xc7,0x5e,0x41,0x1c,0xba,0xd1,0x40,0xc9,0x3e,0x6c,0x41,0x11,0x20,0x9a,0xc2,0x7b,0xef,0xa4,0x3f,0x3e,0xbe,0xad,0x41,0x38,0x6e,0x10,0x41,0x32,0x10,0x8c,0xc2,0x2a,0x6f,0xa0,0x42,0xa2,0x7d,0x5,0x43,0x23,0x3b,0x7a,0xc1,0x19,0xbb,0x14,0x41,0x8e,0x36,0x27,0x42,0xb3,0x10,0x97,0xc2,0xa8,0xf5,0x7b,0xc2,0x1f,0xed,0x16,0xc2,0xcc,0x76,0x8a,0xc2,0xd3,0x9,0xce,0x41,0xc4,0xeb,0x7d,0xc0,0x66,0x54,0x67,0xc2,0xe3,0x47,0xaf,0x41,0x56,0xea,0xb6,0xc1,0x12,0xb8,0xb3,0xc1,0x30,0xd4,0xbe,0x40,0x75,0x2f,0x49,0xc2,0xde,0xb6,0xc3,0xc2,0x96,0xa7,0xa1,0x42,0xc3,0xd4,0x83,0x42,0x25,0x24,0xcf,0xc1,0x6b,0x39,0xbf,0xc2,0x3c,0x6a,0x9d,0x41,0xc1,0x75,0x1c,0xc2,0x74,0xef,0x3a,0xc1,0x22,0x3d,0x6f,0x42,0x9c,0xd1,0xa8,0x42,0x3d,0x1f,0x8d,0xc0,0x48,0x2c,0x1c,0xc2,0x28,0x4d,0x2d,0xc2,0xdf,0x2f,0xad,0xc2,0x5c,0x81,0xfe,0x41,0x4f,0xfe,0x26,0x42,0x49,0xcd,0xd7,0x41,0x29,0x96,0x9b,0x40,0xed,0x1,0x4f,0xc1,0xc1,0x64,0x9d,0xc2,0xbc,0x8c,0x3c,0xc2,0xff,0xa4,0xd,0xc2,0xf8,0x1f,0x42,0x41,0x6e,0xdc,0x63,0xc2,0xe7,0xe6,0xe9,0xc1,0xf5,0xad,0x87,0xc2,0x17,0x17,0xf7,0x41,0x62,0x3d,0xca,0x41,0xad,0xb6,0xa7,0x41,0xab,0x8c,0xbf,0x41,0x75,0xcf,0x53,0xc2,0xd0,0x87,0x99,0xc1,0xa6,0xe0,0xdf,0xc1,0xef,0xa3,0x9b,0xc2,0x17,0xb5,0x47,0xc2,0xce,0x74,0xb4,0x41,0x58,0x7d,0x84,0x41,0xa6,0x6d,0x34,0x42,0xa7,0x34,0xb3,0xc2,0xab,0x54,0x37,0x42,0x7b,0x72,0xca,0x41,0xed,0x99,0x35,0xc1,0xe9,0xdd,0x2b,0x42,0x36,0xf,0x6,0x42,0xaf,0x58,0x5b,0xc2,0x38,0x69,0x3f,0xc2,0x11,0x45,0x49,0xc2,0x3e,0x6a,0x19,0xc2,0xaf,0x7e,0x48,0xc2,0x64,0x16,0x65,0x42,0xc7,0x85,0x3f,0xc2,0x97,0x20,0x53,0xc2,0x3b,0x96,0xc,0x41,0x76,0x81,0x84,0x42,0xff,0x38,0x58,0xc2,0x7d,0xa7,0x15,0x42,0x7e,0xa1,0x88,0x41,0x78,0x1,0x60,0xc2,0xe4,0x1b,0xa7,0xc2,0xe3,0x74,0x1e,0xc2,0xb1,0xc1,0x5f,0x42,0x15,0x7,0xb,0xc2,0x3e,0x28,0xfe,0x41,0x1c,0xa4,0xb0,0xc2,0xf3,0xdb,0x3b,0xc1,0xa0,0xbd,0xa,0xc2,0x2d,0x2e,0x82,0x41,0x2,0xc8,0x59,0x41,0xb9,0x7e,0xe6,0xc1,0x25,0xd0,0x27,0x42,0x93,0x13,0x4b,0x42,0x64,0x41,0xfa,0x41,0xd8,0xa1,0xc,0xc2,0xb1,0x73,0x42,0xc1,0xf0,0x49,0x54,0xc0,0x97,0x2e,0x4,0x42,0x55,0x7b,0x8f,0x42,0xd2,0x67,0xc4,0x41,0x33,0xeb,0xfb,0x41,0xae,0x3b,0xa2,0xc2,0x23,0xf6,0x4e,0x41,0x3e,0x7f,0x5,0x41,0x6a,0xfa,0xaa,0xc0,0x8c,0x7d,0xc3,0x41,0x60,0xd6,0x68,0x42,0xd7,0x81,0x86,0xc1,0xd9,0x78,0xd1,0xc1,0x7c,0x9,0x3b,0xbf,0x66,0xf6,0x51,0xc2,0x9a,0x37,0xf5,0x40,0x92,0xd8,0xa6,0x42,0x5c,0xbf,0x0,0x41,0xa4,0xed,0x50,0x41,0x7a,0x6e,0x3a,0x41,0xf1,0x4a,0x9e,0x40,0xe4,0x22,0xfe,0x41,0xaa,0x52,0xa0,0x42,0x6b,0x11,0xa7,0xc1,0xe5,0x9a,0xa3,0x41,0x86,0x5a,0x10,0xc1,0x68,0xbd,0x27,0x42,0xf0,0x46,0x3b,0xc2,0x3b,0xe3,0x39,0x41,0xb6,0xb0,0x1b,0x41,0x3c,0xbb,0x3d,0x41,0xd0,0xaa,0xda,0xc1,0xef,0xb2,0x86,0xc2,0xbf,0x47,0x60,0x42,0xba,0x82,0x68,0x40,0x1,0x5a,0x97,0x42,0xf2,0x2a,0x33,0x42,0x68,0x59,0xd4,0xc2,0x9b,0x4a,0xf2,0x41,0x6b,0x5,0x19,0x42,0x74,0x35,0x4f,0xc1,0x29,0x47,0xa8,0x41,0x74,0x76,0xf9,0xc0,0xb4,0xf,0xa5,0xc1,0x2f,0xcd,0x21,0xc2,0x5c,0x61,0xa9,0x42,0xa7,0xb3,0x2f,0x42,0x1e,0x66,0x52,0xc2,0xa6,0x13,0x93,0x42,0x58,0x14,0xa6,0x41,0x38,0x58,0xa,0x42,0xa2,0xd7,0xdf,0xc0,0x26,0x37,0x82,0xc2,0x30,0x68,0xfc,0x41,0x64,0xf1,0x23,0x42,0x71,0x2,0x3e,0x42,0x26,0x96,0xe1,0x40,0x33,0xb3,0x5f,0xc2,0x9b,0xde,0xf7,0x42,0x8,0x16,0xd3,0xc1,0x40,0x36,0xbf,0x41,0xf4,0xc9,0x2a,0x42,0x34,0x2e,0x4c,0xc2,0x94,0xda,0x4e,0x42,0x90,0xa0,0xe0,0x40,0x10,0x98,0xd,0xc1,0xc4,0x29,0x96,0xc1,0x3d,0x95,0x24,0xc2,0x9d,0x9f,0x6,0x42,0xc4,0xda,0x11,0xc1,0x20,0x9d,0x3,0x3e,0x84,0xcd,0x78,0xc1,0x70,0x93,0x31,0xc1,0x67,0x6c,0xd9,0xc2,0x20,0xe6,0xda,0xc1,0x8e,0x1e,0x8f,0xc2,0x50,0xae,0xa9,0x41,0x89,0xb,0xed,0x3f,0x70,0xfb,0x68,0xbd,0x92,0xa8,0x9f,0x40,0xbc,0x8c,0x68,0xc1,0xd,0x5a,0xaf,0x3f,0xad,0x62,0xf6,0xc1,0x68,0x47,0xea,0x3e,0xb1,0x35,0xf6,0x41,0x6d,0x5d,0xe5,0x41,0x47,0xfb,0x3e,0xc2,0x9a,0x64,0x5d,0xc2,0xdc,0xe2,0x38,0xc1,0x5c,0xe3,0x81,0xc1,0x4e,0x34,0x19,0x42,0xd,0x7f,0x92,0x42,0x1,0xa1,0x77,0x42,0x5c,0x4a,0x3a,0xc1,0xb7,0xc8,0xe6,0x41,0x9e,0x8e,0x33,0xc2,0x45,0x8e,0x2,0x41,0x18,0xc,0x10,0xc2,0x73,0x75,0x15,0x42,0x6,0x69,0x9e,0x42,0x38,0x77,0xc0,0xc0,0xa6,0x5d,0x9e,0x41,0xa,0x2e,0x26,0x42,0x7,0x38,0x79,0xc1,0x9a,0xa,0x78,0xc2,0x0,0x89,0x4b,0xbc,0xa6,0x1d,0xbb,0x41,0x4,0x83,0x4,0xc2,0x6f,0xde,0xaf,0x42,0x29,0x26,0xd6,0xc1,0xb1,0xad,0x7a,0xc1,0xff,0x89,0x92,0xc2,0x4f,0x14,0xb0,0x41,0xe9,0xed,0xa8,0xc2,0x20,0x30,0x93,0x42,0xd6,0xfc,0x74,0x42,0xb3,0x11,0x1d,0x41,0xdb,0x7f,0xc3,0x40,0xec,0x78,0x88,0x41,0xf4,0xac,0xb6,0x41,0xf0,0xd6,0xce,0xc1,0x3b,0xbd,0x49,0xc2,0x82,0xd7,0x35,0x41,0x71,0x70,0x88,0xc1,0x56,0xaa,0xc1,0xc1,0x1d,0xf2,0x48,0xc2,0x86,0xc9,0xaf,0xc2,0x92,0x39,0x91,0xc1,0x6,0xfc,0x1e,0x41,0x9e,0x41,0x8b,0xc2,0x50,0xd2,0x11,0x42,0xf6,0x78,0x44,0xc2,0x84,0xc0,0xbc,0x40,0x8c,0xcf,0x86,0x42,0xe2,0xf4,0x79,0xc2,0x63,0x50,0x18,0x42,0x88,0xb6,0xce,0xbf,0xb7,0x95,0x2b,0x40,0x5e,0x18,0xbf,0x41,0x49,0x52,0xcb,0xc1,0x22,0xbc,0x41,0xc2,0xb5,0x19,0x9e,0xc1,0xe9,0x2f,0x91,0x41,0x8e,0xb2,0x51,0x42,0xec,0xa7,0x46,0x40,0x10,0xf0,0x6d,0x41,0x57,0x86,0x83,0x42,0xbe,0xf,0x5a,0x42,0xf5,0xa8,0x58,0x41,0x82,0xae,0xc2,0xc1,0x26,0x9a,0x5c,0xc1,0xde,0xc,0x7c,0x40,0x74,0xbe,0x3,0x42,0x11,0x2d,0x2c,0x42,0xa7,0xd6,0x39,0x40,0x6c,0x75,0x5a,0xbf,0x94,0xcd,0xa2,0xc1,0x64,0xfc,0x8b,0x42,0x4c,0xd5,0xbe,0x42,0xec,0x3b,0xb,0xc2,0xf3,0xee,0x95,0x42,0x38,0x4e,0x3,0xc2,0xea,0xc1,0xf,0xc2,0x23,0x26,0x13,0xc2,0x8b,0x1a,0x20,0x42,0xcc,0x63,0x96,0xc1,0x72,0xde,0x3e,0xc0,0xa0,0xa1,0xcc,0x41,0xe0,0x3,0xe4,0xbf,0x2a,0x2,0x7c,0xc1,0xc4,0x22,0xcf,0xbf,0x1e,0x1f,0xfc,0xbf,0x32,0x24,0x2c,0xc2,0x36,0x19,0x15,0xc2,0xd4,0xb1,0xf,0x41,0x75,0xd3,0xbc,0x41,0x93,0x9e,0x82,0xc2,0x2f,0xb5,0xc0,0xc1,0x78,0xb,0xda,0x41,0xc,0x80,0x3a,0xc2,0x1,0xbd,0x27,0x42,0x27,0x7e,0x5,0xc1,0xcd,0xb9,0xc2,0x40,0x13,0xa7,0xca,0x40,0x6d,0xb3,0x57,0x42,0x40,0xd1,0x27,0x40,0x4c,0xc9,0xf8,0xc1,0x8c,0x7a,0x92,0x41,0xa2,0x66,0xc4,0x41,0xc9,0x9f,0x3d,0xc2,0x12,0x68,0x8,0xc2,0x41,0x7d,0x5b,0x42,0x9a,0xb7,0x49,0x42,0xa8,0x17,0xf4,0xc1,0x37,0x90,0x91,0xc1,0x5,0xd4,0x72,0x42,0xc1,0xad,0xb4,0x41,0xe7,0xe8,0x68,0x41,0x74,0x4b,0x49,0x42,0x22,0xd2,0xa7,0x41,0xaf,0x49,0x9d,0x42,0x0,0x10,0xa2,0xc1,0xf4,0xa3,0x31,0xc2,0x9c,0xf4,0x1d,0xc1,0x30,0x50,0xe2,0xc1,0xd8,0x3d,0x58,0x41,0x86,0x38,0xdb,0x40,0x6b,0xe0,0xcf,0xc1,0x6a,0xd9,0x19,0xc2,0xfc,0x80,0xb5,0x42,0x12,0xdd,0x5a,0x41,0xec,0x37,0xa8,0xc1,0x67,0x71,0x8d,0x40,0xc9,0xa,0x15,0x42,0x66,0x3e,0x0,0xc0,0xd6,0x94,0x1d,0xc2,0x42,0xf9,0x8,0x41,0xcf,0xb2,0x18,0xc0,0x5a,0xde,0x5a,0xc1,0x8e,0x68,0xaa,0xc2,0xc6,0x4a,0x54,0x42,0x82,0x7,0xe,0xc2,0xc9,0x68,0x85,0x41,0x4e,0x96,0xc1,0x3f,0x92,0xc7,0xdc,0xc1,0x88,0x4d,0x41,0xc2,0x7a,0x9f,0x86,0x40,0x74,0x49,0x6b,0x3e,0xaa,0x9,0xd4,0xc1,0xb6,0xc,0x7,0x41,0x17,0x6a,0x2,0x42,0x7e,0xeb,0x83,0xbf,0x28,0xf4,0xeb,0x41,0x94,0xd5,0x60,0x42,0xe,0x60,0x8c,0xc1,0x9d,0xbf,0xfb,0xc1,0x82,0x92,0x5a,0xc2,0x6,0x70,0x2,0xc2,0x91,0x68,0xfe,0xc1,0x36,0xca,0xa9,0x40,0xb5,0x8e,0xd0,0x41,0xbe,0x7e,0x8e,0x41,0xd6,0xc0,0x36,0x41,0xd9,0xca,0x59,0x42,0x0,0xa8,0xc3,0x3b,0x83,0x6,0x1,0x42,0xf1,0x11,0x2b,0xc2,0x22,0x5b,0xe5,0x40,0x22,0xff,0x6e,0x41,0xde,0x9b,0xf7,0x3f,0x90,0xd0,0x16,0xc0,0xb6,0x9b,0x1b,0xc2,0x17,0xab,0x33,0xbe,0xe9,0xf4,0xce,0xc1,0xd8,0x38,0xa3,0x41,0x40,0x49,0x18,0x3f,0xee,0xd3,0xbc,0x42,0xc6,0x18,0x34,0x42,0x9c,0x3f,0x4e,0xc2,0x9c,0x18,0x0,0xc2,0xb5,0x99,0xf5,0x42,0xc,0x81,0xa9,0x41,0x9d,0x9f,0x60,0xc2,0xb5,0x79,0x66,0xc1,0xa8,0xf5,0xf3,0x40,0x92,0x39,0xf4,0x41,0xaa,0x7,0xf5,0xc1,0xa8,0x59,0xbf,0x41,0x70,0xad,0x58,0x42,0xcf,0x49,0x23,0xc2,0x44,0x8,0xaf,0xc2,0xf1,0xc3,0xdb,0xc1,0x2d,0xce,0x7c,0x41,0x86,0xe2,0x6b,0xc1,0x6,0xcd,0x57,0x42,0x1e,0x24,0x43,0x41,0xbc,0x67,0x64,0xc1,0xb3,0x26,0x6f,0xc2,0xac,0xd1,0x2f,0x41,0xd6,0xa3,0x5,0x42,0x89,0x8f,0x4d,0xc2,0xcd,0x72,0x88,0x42,0x38,0x1b,0x2,0xc1,0x38,0x8b,0x21,0x41,0x90,0x93,0x83,0x41,0xd5,0x61,0xa0,0x41,0x29,0xcf,0xe,0xc2,0x1a,0x18,0xb2,0x41,0xca,0x4c,0xf7,0xc1,0x90,0xe0,0xf,0xc2,0xe2,0x4f,0x1b,0x42,0xc5,0xec,0x3f,0xc2,0x28,0x23,0xcc,0xc0,0x4,0xe8,0xda,0x41,0x36,0x7b,0xae,0x41,0xaa,0x38,0xe3,0x41,0x4,0xd4,0xa3,0x41,0xe4,0x3b,0x9a,0xc2,0xa4,0xf4,0xb0,0x41,0x6b,0xe,0x6c,0x42,0x4a,0xcd,0x4c,0x42,0x9a,0xaf,0x45,0x42,0x9b,0x3c,0x69,0xc1,0x9,0x42,0xee,0xc1,0x5f,0x1a,0xaf,0xc2,0xbc,0x48,0x8a,0xc2,0xea,0x73,0xa3,0x42,0xef,0x65,0x65,0x42,0x1,0x7f,0x2a,0xc2,0x13,0x15,0x4e,0xc0,0xa4,0xd7,0xab,0x42,0x55,0x9f,0x14,0x42,0xad,0xaf,0x49,0xc1,0xe9,0xfb,0x5,0xc1,0xa1,0x73,0xc5,0x3f,0xe,0xba,0x57,0x42,0x96,0x5c,0xee,0xc1,0xa9,0xaf,0xb4,0xc1,0x8a,0x8f,0x9d,0xc2,0x78,0x91,0xa7,0xc1,0xda,0x88,0xa0,0xc1,0x7c,0xab,0x44,0xc1,0x64,0xdb,0x1b,0xc1,0x25,0xbf,0xce,0x40,0x4b,0xe3,0x95,0x42,0xb1,0x6a,0xe0,0x41,0x75,0xb0,0xb,0x42,0xf8,0xd1,0x8d,0xbe,0xaa,0x3e,0x2f,0x42,0xf1,0x3d,0x7c,0xc0,0x95,0x2a,0x6d,0xc1,0xbf,0xd9,0xcf,0xc1,0x54,0x29,0xe9,0xc2,0x93,0xef,0xc8,0xc2,0x7b,0x23,0x29,0xc2,0x49,0xc7,0x69,0x41,0xb7,0x8f,0x4d,0x41,0x6,0xe1,0x8c,0x41,0xde,0x6e,0x95,0x42,0xe,0x3b,0x9,0x42,0x40,0xdf,0x3,0x42,0x59,0xc3,0xe,0xc2,0x4f,0x9d,0xc4,0xc1,0xcf,0xcb,0xa3,0xc2,0x3f,0x6a,0x9b,0xc2,0x2,0x36,0x81,0xc0,0x56,0xc9,0x18,0x42,0x69,0x8c,0x8c,0xc2,0x62,0xe8,0x25,0x42,0x17,0x3e,0x14,0xc2,0xba,0xeb,0x90,0x42,0x79,0xc3,0x42,0x42,0xbb,0xac,0x9c,0xc2,0x7e,0x48,0x97,0xc1,0x50,0x89,0x99,0x42,0x60,0x45,0x84,0xc1,0x9b,0xfc,0x84,0x42,0x92,0x92,0x4c,0xc2,0x8f,0x9e,0xb2,0x42,0xc6,0xc7,0x10,0x42,0x59,0x9c,0xc0,0xc1,0xcc,0x1,0x3a,0x41,0x9b,0xf7,0x26,0xc2,0x76,0x7a,0xbf,0xc2,0x12,0x34,0x1f,0x42,0x65,0xb5,0xf4,0xc0,0x25,0x2a,0x5b,0x42,0xab,0x83,0x76,0x42,0x78,0xac,0x82,0x3f,0x33,0x82,0x1e,0xc2,0x24,0xa8,0xa1,0xc1,0x83,0x10,0x8f,0x42,0xd5,0x31,0xe,0xc2,0xdd,0xc,0x1a,0xc2,0x8a,0xb1,0x7a,0x42,0xdc,0xdc,0x5c,0xc1,0x9e,0x23,0x7d,0x41,0xaf,0xb4,0x7a,0xc2,0xc5,0x96,0x5a,0x42,0xdc,0xc0,0x12,0x42,0x46,0x9,0xb2,0x42,0x56,0xce,0x15,0x42,0xc1,0x12,0xe9,0xc1,0x28,0xbb,0xd0,0x41,0x76,0xe5,0x44,0x41,0x5f,0x69,0xc8,0x41,0xc9,0xbf,0xa,0xc1,0xe0,0xef,0x30,0x42,0x55,0x78,0xbe,0xc1,0xca,0xa,0x81,0xc1,0x52,0x43,0xe4,0xc2,0x21,0xc8,0xd3,0x42,0x47,0xa3,0x6e,0xc1,0x11,0x2b,0xb4,0x41,0x91,0x9d,0x77,0x42,0x68,0x17,0x5c,0xc0,0x69,0x27,0x15,0x42,0x23,0xc4,0x4e,0xc2,0x46,0x73,0xa8,0xc1,0xb7,0xc0,0xd,0x42,0x1a,0x3f,0x94,0xc2,0xc8,0xed,0x4e,0xc1,0x76,0x79,0x3,0xc2,0x4,0x3c,0x88,0x42,0x44,0x79,0x37,0xc0,0x56,0xbb,0xf1,0x3f,0xf7,0x46,0x77,0xc2,0xbe,0x8c,0xec,0x41,0xfb,0x79,0x61,0xc2,0x74,0x0,0x8,0xc2,0x9e,0x68,0xd6,0xc1,0x20,0xaf,0x72,0xc2,0x5b,0xb6,0x6d,0xc2,0xde,0x74,0xe9,0x41,0x4a,0x0,0x1f,0xc2,0x86,0xbf,0xec,0xc2,0x44,0xe7,0x83,0xc0,0xf8,0xa5,0x7,0xc3,0x22,0x97,0x50,0x42,0x90,0xbd,0x74,0xc2,0x82,0x24,0x54,0x41,0x45,0xb9,0x37,0x41,0xc1,0x5,0x79,0x41,0xa7,0x55,0xc,0xc1,0x58,0xd9,0x2a,0x42,0x8e,0x54,0x5a,0xc2,0x62,0x6c,0x97,0xc1,0x77,0x8f,0xd1,0xc0,0x75,0xb,0x2f,0x42,0x52,0x76,0x25,0x42,0xb4,0x4,0x7e,0x42,0xcf,0xab,0x55,0x41,0xb0,0xdc,0xdb,0x41,0x3f,0x26,0x81,0xc1,0x19,0xd6,0x5,0x42,0x30,0x41,0xed,0x41,0x3e,0x2f,0x5c,0xc2,0x2,0x3d,0xce,0xc0,0xa5,0x53,0x88,0xc2,0x54,0x54,0xd4,0xc0,0x8e,0x86,0x7f,0x40,0x50,0x54,0x35,0x42,0x60,0xc0,0xd8,0x40,0x56,0x39,0xb6,0xc2,0xf7,0xa2,0xa2,0x40,0xcb,0x19,0x23,0x42,0x71,0xeb,0xab,0x42,0x54,0xb8,0x57,0x42,0x3c,0x63,0xd8,0x41,0x70,0xf,0xd6,0xc1,0xaf,0x1,0x23,0x42,0x42,0x69,0x64,0xbf,0x74,0xe6,0x0,0x42,0xeb,0x6,0x0,0xc2,0x66,0x32,0x6d,0x42,0xed,0x90,0x18,0xc2,0xe5,0x2e,0x70,0xc2,0x10,0x5f,0x2a,0xc2,0xec,0xfc,0x8a,0x42,0x49,0x6e,0xa6,0x42,0x98,0xb3,0x11,0x42,0xa4,0xc9,0x26,0x42,0x35,0x48,0x83,0x42,0x27,0x28,0x3e,0xc1,0x2b,0x61,0xb8,0xc1,0x90,0x3a,0x77,0xc0,0xba,0xfa,0x1,0x41,0xaa,0x5e,0xb9,0x41,0xc0,0x29,0x7,0x42,0xef,0xd6,0xa5,0x42,0xb,0x90,0x4a,0x42,0x46,0xcd,0xed,0x41,0xde,0x81,0x6f,0x42,0x9a,0x9f,0xd4,0x40,0xce,0x96,0xc2,0xc1,0xac,0x7b,0x2e,0x42,0x4a,0xa1,0x55,0x42,0xd3,0xb7,0x78,0xc2,0x6a,0x52,0x87,0x40,0x9f,0xc4,0x14,0x42,0x9a,0xc1,0xd4,0xc0,0xe2,0x6b,0x9a,0xc0,0x2f,0xe7,0x85,0xc2,0x7f,0xce,0x8b,0xc0,0x65,0x88,0xbb,0x41,0xe2,0xd6,0x9b,0x40,0x1b,0xff,0x89,0xc2,0xc1,0x19,0x95,0x42,0x87,0xba,0x96,0x41,0xfe,0xf5,0xb0,0x41,0x4b,0x2e,0x58,0x42,0xdd,0x36,0xde,0xc2,0x18,0x70,0xd8,0xc1,0xc2,0xf2,0xc5,0x3f,0x19,0x3d,0x84,0x42,0x80,0xc1,0x1e,0xc2,0xa7,0x81,0x45,0x42,0x8c,0xf8,0x39,0x42,0x7c,0xcf,0xc5,0x42,0xc9,0x41,0x41,0xc2,0xad,0x14,0x17,0x42,0xb7,0x65,0x45,0xc1,0x99,0x54,0x8c,0xc2,0x4c,0xec,0x8e,0xbf,0xfd,0x8,0xbd,0x41,0xe2,0xd1,0xe8,0xc1,0xcb,0x5d,0x4,0xc2,0xeb,0x18,0xc0,0x42,0x94,0x85,0x72,0xc1,0x18,0x54,0x3e,0x42,0x3e,0xfe,0x25,0x42,0xbf,0xa1,0x91,0xc1,0xe0,0x43,0xe9,0x40,0x8e,0x90,0xe4,0x42,0xb8,0xea,0xc2,0x41,0xc4,0x9b,0x16,0x42,0xc2,0xff,0xde,0x41,0xa6,0x60,0x2c,0xc2,0x98,0x4,0xae,0x41,0xc5,0x57,0x41,0x41,0x2a,0x18,0xcf,0xc1,0x7a,0xb4,0x98,0xc2,0xee,0xa2,0x95,0x3f,0xde,0x1f,0x3,0x40,0x76,0x22,0x27,0xc2,0x21,0x7f,0xc1,0x42,0xf8,0x54,0x1b,0x42,0x54,0xfd,0xf9,0x41,0x29,0x24,0xf,0x41,0x22,0x7e,0x9e,0xc1,0x1c,0x4c,0xfa,0xc1,0xf5,0x76,0xa3,0xc2,0x60,0xd0,0x90,0xc1,0xf3,0xc5,0x90,0x40,0xa7,0x83,0xf0,0xc1,0xe3,0x9e,0xec,0xc1,0xff,0x98,0x8c,0x42,0x5e,0x93,0x61,0xc1,0xac,0x15,0x27,0x42,0x7,0xb3,0x84,0xc2,0x97,0x73,0xa0,0x42,0x82,0xa4,0x13,0x42,0x8d,0x95,0x7e,0x42,0xe6,0xb5,0x55,0x42,0x78,0x48,0x9a,0xc0,0xc3,0x9b,0xbf,0xc1,0x36,0x7d,0xeb,0x3f,0xa0,0x2b,0x34,0x42,0x95,0xb4,0x26,0x42,0x38,0x3d,0xc,0xc2,0xf2,0xb7,0xa5,0x41,0xd7,0x57,0xa7,0x41,0x19,0xe1,0x25,0xc2,0xdd,0xc3,0x6f,0x3f,0x8b,0xf9,0x93,0xc2,0x8,0xb2,0x5b,0x42,0xd6,0x6,0x17,0xc2,0x3a,0x99,0x86,0xc2,0x78,0x89,0x51,0x41,0xe4,0x2b,0x37,0xc2,0xc7,0x2d,0xc9,0xc1,0x2c,0x7a,0xa,0x42,0x8e,0xf0,0xe,0x41,0x7e,0xdd,0xd5,0xc1,0x6b,0xfd,0x44,0xc0,0xbe,0x23,0xfa,0x40,0x15,0xbf,0x5,0xc2,0xa6,0x69,0x49,0x42,0x96,0x7d,0x61,0xc1,0x4a,0x62,0x6e,0x42,0x6b,0x65,0xac,0xc2,0x18,0x11,0x91,0x42,0x32,0x22,0x8f,0xc1,0x9f,0xa8,0xd8,0x41,0xec,0xa,0xa8,0xc1,0x18,0xcb,0x7f,0xc1,0x70,0xd9,0x5c,0xc2,0x1f,0x47,0x93,0x40,0x80,0xb8,0x3b,0xc2,0x70,0xc9,0xfb,0x41,0x1f,0x1d,0xde,0xc1,0xfc,0x4c,0x26,0xc0,0x9e,0xea,0x59,0xc2,0x38,0x7d,0xcd,0x41,0x1c,0xc6,0x8b,0x42,0x70,0x39,0x18,0xc2,0x38,0xaf,0x11,0x42,0x12,0x83,0x86,0x42,0x4e,0x46,0x32,0x42,0x7,0xfe,0x85,0xc0,0x82,0xcf,0xd,0x3f,0xc1,0xe0,0xb,0x42,0x82,0xf7,0x14,0xc1,0x59,0xea,0xcd,0x41,0xc,0x7f,0x58,0xc0,0x1,0x9a,0x7,0x40,0x3a,0xec,0x3c,0x42,0x3b,0x5,0x5,0x42,0xb7,0xa6,0x9f,0x41,0x4d,0x2b,0x3c,0x42,0x27,0x39,0xd,0x41,0x66,0xf3,0x8,0xc2,0xb6,0x3f,0x37,0x41,0xee,0x99,0x64,0xc2,0x83,0x7a,0x1b,0x41,0x30,0x12,0x99,0xbd,0x26,0xf,0x57,0x41,0x7c,0x4a,0xa1,0xc1,0xc2,0xda,0x1c,0xc2,0xe3,0xc,0x97,0x42,0x38,0x8e,0x30,0xc0,0x13,0xe5,0x93,0x42,0xe0,0xa8,0xa2,0x42,0x12,0xcf,0x72,0xc2,0xc2,0x31,0xf9,0xc1,0x41,0xd3,0x53,0x42,0xa4,0x7b,0x19,0x41,0x56,0x75,0x53,0x42,0xa5,0x89,0x7a,0xc2,0xa5,0x9c,0x2c,0xc1,0x28,0xff,0xe5,0x41,0x58,0xb9,0x89,0xc0,0x0,0x60,0xae,0x42,0x86,0xc2,0xae,0xc0,0xb0,0x3f,0x53,0xc2,0x46,0x2b,0xb4,0xc1,0x15,0x85,0x5,0xc2,0x5e,0xe,0x2a,0xc2,0x44,0x1c,0x6b,0xc2,0xbc,0x37,0x69,0x42,0x9a,0xe7,0xfd,0x41,0x55,0xac,0x3c,0x41,0x54,0x43,0x44,0xc1,0xaa,0x59,0x83,0xc2,0x9c,0x3c,0x57,0x41,0xdc,0x70,0xb2,0x40,0x41,0xcc,0x4f,0xc1,0x64,0xfb,0x60,0x42,0xaf,0x39,0x89,0x41,0x9b,0xae,0x3f,0x42,0xcc,0x19,0x21,0xc1,0x6e,0x3d,0x9a,0xc1,0x29,0xc5,0x6c,0x42,0xae,0x49,0x36,0x42,0x34,0x55,0x96,0xc1,0x56,0x1d,0xbe,0x41,0xb8,0x44,0xa4,0xc1,0x3f,0x4a,0x4c,0xc1,0x92,0xfe,0x92,0x41,0xa4,0x86,0x33,0x41,0x4,0x49,0x27,0x42,0xb,0x68,0x56,0xc1,0xf3,0xe5,0x39,0xc0,0xb3,0xa7,0x2,0x42,0xd0,0x48,0xf2,0x41,0x7b,0x23,0x58,0x42,0xef,0x5f,0xab,0x40,0x25,0x4c,0xce,0x41,0xf4,0xaf,0x5d,0x40,0x60,0xb0,0x8f,0xc2,0x54,0xee,0x7b,0xc1,0xe3,0x76,0xbd,0x41,0x85,0xe,0x90,0x41,0xd,0xcc,0x35,0xc1,0x84,0x51,0x51,0x41,0xfd,0x31,0x8d,0x42,0xa1,0x5e,0x3,0x42,0x3a,0x95,0xf5,0xc0,0xba,0xfa,0x4d,0xc2,0xa9,0x6a,0x3a,0x40,0xa5,0xfd,0xa7,0xc1,0x8d,0x32,0x33,0x42,0xbc,0x32,0x95,0x41,0x47,0x41,0xd,0xc2,0x2a,0xe6,0x4f,0xc2,0xae,0x70,0x61,0x42,0x3d,0x95,0xee,0xc1,0xbb,0xe5,0x59,0xc2,0xa5,0xff,0xc2,0x41,0x8,0x94,0x41,0x42,0xb8,0xfb,0x94,0x41,0x67,0x84,0x83,0x40,0xdb,0x9a,0x19,0x42,0x5a,0xd2,0x17,0x42,0x9c,0x7d,0xcb,0x41,0xa8,0xbd,0xbc,0x42,0xb6,0x5e,0xe,0xc1,0xcd,0x34,0x2a,0xc2,0xfc,0x99,0x92,0xc1,0x68,0x89,0x1d,0x42,0x12,0x48,0xca,0xc2,0x7a,0x35,0x29,0x41,0x94,0x13,0xd,0xc2,0x32,0x6c,0x81,0xc1,0x70,0x33,0x23,0x41,0xd4,0xc,0x1b,0x41,0x92,0x3a,0xc6,0xc1,0x36,0xbf,0xcc,0x41,0x20,0x20,0xdf,0xc0,0xc4,0x64,0x56,0xc2,0xe0,0x86,0xac,0x42,0xab,0x23,0x26,0xc2,0x3d,0x2b,0xa9,0x42,0x67,0xf9,0x88,0xc0,0xe9,0x54,0x84,0xc2,0x20,0x65,0x48,0x41,0x13,0xdb,0x63,0x42,0x13,0x8a,0x40,0xc1,0x9,0x81,0x23,0x42,0xc2,0x22,0x78,0xc1,0x94,0x1e,0x71,0x42,0x6a,0x58,0x47,0xc1,0x6c,0x20,0x3d,0x42,0x0,0x61,0x67,0x42,0x60,0xd0,0x25,0xc2,0xde,0x91,0x2,0x40,0x4c,0xf,0xf,0x42,0x7d,0x3b,0x1,0xc2,0xd8,0x2a,0xd7,0x41,0x73,0x21,0x2,0xc0,0x7c,0xf0,0x7a,0xc0,0xf0,0xf5,0x2f,0xc2,0x1c,0x50,0xdf,0x41,0xc8,0x76,0xb,0x42,0x4c,0xd0,0x86,0xc1,0xba,0xe7,0x2f,0xc2,0xf3,0x1f,0xcd,0xc0,0xf0,0x3a,0xa6,0x41,0x22,0xb4,0x9c,0xc1,0x54,0x1b,0x8f,0xc0,0xc2,0xa9,0xcb,0x41,0xaa,0x55,0x81,0x42,0x10,0xae,0x30,0xc1,0x90,0x2c,0x18,0xc2,0x7,0xb8,0x3b,0x42,0x7f,0xdb,0xab,0x41,0x8a,0xf2,0xa,0x42,0xe2,0xad,0xb6,0x41,0xd0,0x71,0x8c,0x41,0x83,0x6,0x15,0xc2,0x9e,0x17,0x32,0xc1,0x18,0x92,0x87,0x41,0x22,0x9c,0x8b,0xbf,0x14,0xba,0xda,0x41,0x70,0x1e,0xf8,0x41,0xb6,0x6d,0x48,0x41,0x35,0x3f,0x60,0x42,0xb,0xf,0x6,0xc1,0x15,0x15,0x97,0xc1,0xfb,0x63,0xb3,0x41,0x7e,0x52,0xab,0x41,0x8a,0xd0,0x28,0x41,0x16,0xd3,0xd6,0x41,0x17,0xe6,0x4c,0x42,0x10,0xd6,0x76,0x42,0xc,0x32,0xc6,0x41,0x3a,0x20,0xd,0x42,0x92,0xa8,0xa7,0xbf,0x72,0xd,0x3c,0x40,0x3a,0xf2,0xd1,0xc1,0xd6,0x2d,0xa,0xc2,0x9f,0x99,0x8f,0x42,0x7d,0xce,0x68,0xc2,0xfd,0xa2,0xcf,0x42,0xb9,0xd0,0x10,0x42,0xda,0xd7,0xaf,0xc1,0x50,0xca,0xee,0x41,0x9b,0xf9,0x96,0xbf,0x4f,0xe8,0xfd,0xc1,0x16,0xc7,0xea,0xc0,0x97,0x37,0x77,0xc0,0x43,0xcf,0xd8,0xc1,0x34,0x2a,0x4f,0x42,0x14,0xeb,0x52,0xc0,0xeb,0xcf,0xe1,0x41,0x2c,0x53,0xa8,0xc1,0x92,0xf4,0xd5,0x41,0x90,0x16,0x8d,0xc1,0x97,0xef,0x90,0x42,0xe6,0x31,0x0,0xc1,0x5c,0xf2,0x66,0xbe,0x3c,0x8b,0xbb,0x41,0x1,0xae,0x5b,0xc1,0xb2,0xb5,0x3,0x42,0xbd,0x96,0x94,0x40,0x36,0xb2,0xc9,0x3f,0xa3,0xe3,0xc8,0xc1,0x80,0x9d,0x5,0xbe,0xb,0xe,0xc,0xc2,0xf0,0x46,0x8f,0x41,0x64,0xd2,0xe7,0xc0,0x50,0x8b,0x8f,0xbf,0xd7,0xe6,0x4b,0x42,0x33,0x1a,0x53,0x42,0xb0,0xd7,0x7,0x40,0x3c,0x6a,0x4d,0xc2,0x77,0xc3,0x43,0x42,0xf8,0xb5,0xd,0xc1,0x58,0x18,0xca,0x41,0xad,0x3,0x25,0x42,0xbf,0x4c,0x96,0xc0,0x2a,0xbf,0x77,0xc2,0x18,0xd0,0x8f,0x41,0x3d,0x86,0x82,0xc2,0x4e,0x6b,0x1b,0x42,0x82,0xa9,0x6d,0x40,0x2c,0xb7,0x61,0x41,0xfa,0xff,0x2,0x41,0xcf,0x1e,0x7f,0xc2,0xbb,0xb5,0xfc,0x40,0x80,0x4a,0x41,0x40,0x63,0x6b,0xde,0x41,0x35,0x9d,0xd1,0xc1,0xd7,0x82,0x8e,0x41,0x27,0x9e,0xb2,0x41,0xd8,0x3,0x44,0x41,0xf2,0xcf,0x41,0xc2,0x97,0xd8,0x2c,0xc1,0x33,0xf,0x71,0xc1,0x92,0xe2,0xf3,0xc1,0xa5,0x4,0x94,0x41,0x47,0x29,0x28,0xc0,0xc,0xad,0x98,0xc0,0x8a,0x49,0xb0,0xc1,0x68,0x8,0x49,0xc1,0x3,0x4c,0x70,0x41,0x50,0xd7,0xba,0xc1,0xf6,0xa1,0xe0,0x41,0x3a,0x51,0xe2,0xc0,0xb0,0x35,0x1b,0xc2,0x82,0xc9,0x36,0x41,0x4c,0x2a,0xe4,0x41,0xf3,0x94,0x7a,0x42,0xb4,0xa5,0xbe,0x41,0xc4,0x19,0x80,0x41,0x22,0x73,0x2e,0x42,0x51,0xfd,0x2,0xc2,0xc2,0xab,0xbc,0x41,0x26,0x7a,0xa2,0x40,0x5c,0xe7,0x40,0x42,0x8e,0x15,0x1c,0xc2,0x59,0xe7,0xef,0xc1,0xca,0x5e,0x90,0x3f,0x79,0x96,0xd9,0xc1,0x80,0x4b,0x47,0xbf,0xa1,0xa0,0x24,0x42,0x29,0x56,0x5f,0xc2,0x61,0x3,0xa2,0xc2,0xf4,0xdc,0x5e,0x42,0xce,0xe1,0x0,0xc2,0xa4,0xa1,0x27,0x41,0xa6,0x2b,0x7a,0xc2,0x6c,0x76,0x8b,0xc1,0x0,0xe,0x1f,0xc2,0xe0,0x17,0xf9,0xc1,0xb5,0x4a,0x1,0xc2,0x4e,0xa1,0x70,0xc2,0xd7,0x17,0x59,0x41,0xc2,0xd9,0x44,0x41,0xa5,0x69,0x92,0x41,0xb4,0x1a,0x12,0xc2,0x9a,0x1,0xdc,0x41,0xa7,0x91,0xe7,0x41,0x15,0xb1,0xef,0xbf,0xf2,0x30,0x38,0xc2,0x2a,0x35,0xd,0x42,0x76,0x40,0xee,0xc0,0xe5,0x97,0xe,0xc2,0xdf,0x6f,0xbd,0x40,0xcc,0xa6,0x30,0x41,0xfb,0xae,0x3b,0x41,0x20,0xeb,0x3d,0xc1,0x40,0xcc,0x8f,0xc1,0x2a,0x85,0x2,0xc2,0xfa,0x5,0xb2,0x41,0x61,0xb2,0xed,0xc1,0xec,0x74,0x16,0x42,0xf,0xbe,0xf5,0x3f,0x57,0xaf,0xcc,0xc1,0x10,0x87,0x4c,0xc1,0xd5,0xd0,0x8,0xc1,0x4f,0x9f,0x5e,0xc2,0x25,0x58,0xed,0x41,0xe4,0x56,0x12,0x42,0x81,0x41,0xa5,0xc1,0x7f,0xdd,0xa7,0xc1,0x70,0x6b,0xfa,0x41,0xb8,0x30,0x88,0x42,0xf4,0x2b,0xd9,0xc1,0xe3,0x34,0x85,0xc1,0xc1,0x5f,0x84,0xc2,0xc4,0xc6,0x89,0x42,0xf2,0x44,0x39,0xc2,0x8a,0x9e,0x76,0x40,0xbc,0x15,0x23,0x41,0x4d,0x8f,0x91,0xbf,0x20,0x1e,0xb9,0x41,0x4,0x84,0xb0,0xc1,0xac,0xb3,0x16,0x42,0x9d,0xa9,0x7a,0x42,0x68,0x88,0x62,0x42,0x4e,0x90,0xc9,0xc1,0xd0,0xc7,0x31,0x42,0x96,0x24,0xc6,0x3f,0x50,0xbd,0x24,0xc2,0xba,0x37,0x63,0x42,0xab,0xec,0xf5,0x41,0xa1,0x1b,0x72,0x42,0xec,0xa6,0x29,0xc1,0xa7,0xd4,0xca,0x40,0xb2,0x6f,0xf3,0x41,0x78,0xf5,0x2a,0x42,0x33,0xee,0xf5,0x41,0x23,0x9a,0xb8,0x42,0x99,0x97,0xba,0x42,0x2f,0x21,0xe,0x42,0xa4,0x91,0x4b,0xc1,0x60,0x67,0x39,0xc2,0xdc,0x19,0x73,0xbe,0xe0,0x4a,0x43,0xc2,0x77,0x87,0xdc,0x42,0x3b,0x1a,0xb3,0xc1,0xdb,0x3e,0x99,0xc0,0x47,0xae,0x8e,0x42,0xb1,0x4f,0x66,0xc2,0x8e,0x92,0x46,0xc0,0x58,0x97,0x30,0xc2,0x52,0x6,0x30,0xc2,0x50,0xc2,0xa,0x42,0x6,0xdf,0xf0,0x40,0x54,0x5a,0xfa,0x41,0x30,0x98,0x1a,0xc1,0x56,0x36,0x61,0x40,0x4e,0xdd,0x74,0x41,0x6f,0x24,0x53,0x41,0xc4,0xc1,0x2f,0x40,0x62,0x57,0x9b,0xbf,0x43,0xe5,0xaf,0x41,0x98,0xf3,0x8,0x42,0xdf,0x1e,0xa0,0xc0,0x72,0xa5,0xec,0x42,0xbc,0xc,0x8b,0x41,0xbd,0x1d,0x33,0xc2,0x67,0x82,0x6d,0xc2,0xc6,0x93,0x4c,0xc1,0x90,0x64,0x6d,0x42,0x27,0xd7,0xc2,0x41,0xce,0xf5,0x58,0xc2,0x77,0x33,0xc7,0xc1,0x69,0x71,0x71,0x41,0xc2,0x7e,0xdb,0x41,0xee,0xd7,0x39,0x40,0x70,0xdd,0x86,0xc1,0x21,0xa2,0x59,0x42,0x71,0xaa,0x3d,0x42,0x2a,0x56,0xb6,0xc2,0x1a,0xa7,0xfd,0xc1,0x70,0x98,0xef,0xc1,0xd1,0xc4,0xbb,0x42,0xac,0xd6,0x57,0xc2,0xcf,0xa0,0xd9,0x41,0xbc,0xcb,0xe1,0x41,0x5,0x5f,0xa6,0xc1,0x34,0x5,0x67,0xc2,0xca,0xf2,0xce,0x41,0xcd,0xde,0x91,0x40,0x9d,0xf6,0xa1,0x41,0x43,0xba,0x8a,0x42,0xda,0x63,0xab,0xc1,0x59,0xb7,0xc0,0x41,0xe4,0xa1,0x24,0xc1,0x46,0xa5,0xaf,0xc1,0xc2,0x97,0xb7,0xc2,0xa,0x46,0xc6,0xc2,0x26,0xeb,0x55,0x41,0x90,0x7c,0xd1,0xc2,0xa2,0xc8,0xb7,0x41,0xa3,0x8,0x14,0x41,0xba,0x4f,0xaa,0xc1,0x27,0x10,0x3b,0x42,0x36,0x62,0x18,0x42,0x6d,0x48,0x69,0xc2,0x9f,0xee,0x5,0x41,0x80,0x28,0xd1,0xc1,0x2a,0xa,0x94,0x41,0xa3,0x3d,0xf,0x42,0x93,0xa4,0xeb,0xc1,0xb9,0xc0,0x4,0x42,0x50,0x76,0xa4,0x41,0x8f,0x9,0x8f,0x42,0xae,0x86,0x20,0x42,0x83,0xe3,0xfc,0xc1,0x0,0xaf,0x7c,0x40,0x9e,0x25,0x68,0xc2,0x96,0xc8,0x19,0xc2,0xd,0x85,0x14,0x41,0xfb,0xe,0x9d,0xc0,0x27,0xa3,0x38,0x42,0x4e,0x30,0x29,0x41,0x13,0x54,0xb7,0x42,0x1a,0x1d,0x35,0x42,0x20,0xe0,0x38,0xc1,0x14,0x51,0x97,0x42,0x2,0x23,0x76,0xc1,0x6e,0xa8,0x40,0xc0,0xc9,0xb5,0x16,0x42,0x38,0x7,0xb8,0x41,0x58,0x6e,0xd4,0xc0,0x43,0x51,0xc4,0x42,0xf0,0x23,0xb7,0x41,0x76,0x5d,0x28,0xc1,0xb5,0x21,0xfa,0x41,0x8a,0xa2,0xb3,0x41,0x4d,0x8e,0x92,0xc2,0x52,0xfb,0x98,0x41,0xa,0xa9,0x23,0x41,0x8e,0xc8,0x12,0x41,0xb1,0xb0,0xb8,0xc1,0xb0,0xd9,0xc5,0x42,0x82,0xb4,0x42,0x42,0xe,0x2c,0x54,0xc2,0xc5,0x39,0xa5,0x41,0x34,0xf1,0xce,0xc0,0x7a,0x37,0x97,0xc0,0x78,0xc8,0x94,0x41,0x7,0x36,0xf6,0x41,0x4d,0xf6,0x26,0x42,0x16,0xdc,0xa5,0xc0,0x96,0x3d,0xc4,0x41,0x66,0x7c,0x38,0x42,0x7d,0x24,0x36,0x41,0xc6,0x54,0x6,0x42,0x4e,0xa5,0x2,0x42,0x5a,0xd0,0x28,0xc2,0xe2,0x8,0x59,0xc2,0xbc,0xf6,0x1a,0x42,0xa0,0x64,0x35,0x3f,0x52,0x65,0x65,0x40,0x4c,0xae,0x8e,0x41,0x92,0x50,0x48,0xc2,0xaf,0xb8,0x87,0xc1,0x98,0xcb,0x14,0xc2,0x70,0xd3,0x77,0x41,0xf1,0x9d,0x62,0xc1,0xa,0xa3,0xe3,0xc1,0x40,0xa3,0x14,0x42,0x5c,0xfb,0x77,0xc1,0xd8,0xd1,0xe7,0xc1,0xfa,0xe3,0x9,0x42,0xc7,0x64,0x3c,0x42,0x86,0x77,0x3c,0x42,0xc1,0x9e,0x1c,0xc2,0xcb,0x62,0xbc,0xc1,0xed,0x8b,0x99,0xc2,0x3d,0x75,0x9f,0x42,0xb,0xc9,0xe0,0xc2,0x7a,0x61,0x3e,0x42,0x30,0x89,0x6e,0xc1,0x22,0x73,0xa,0x41,0x3d,0x74,0xe5,0x41,0xde,0x9e,0xb8,0xc1,0x82,0x41,0x17,0xc2,0x11,0xde,0x59,0xc2,0x4d,0x61,0xef,0xc1,0x63,0xaa,0x99,0xc2,0x62,0x8,0x90,0xc1,0x97,0xa,0xf2,0x40,0xcc,0xd6,0x7b,0xc0,0xc4,0x9,0x92,0xc2,0xdf,0x88,0xaf,0x41,0xa8,0xf5,0xe2,0x40,0x48,0xc5,0xa5,0xc1,0x37,0x86,0x97,0xc2,0xfb,0xf,0x72,0xc2,0xe,0xd7,0xdd,0x41,0x6,0x1d,0xc5,0x41,0xa3,0x39,0x8f,0x41,0x44,0xec,0x9b,0x42,0x9c,0xe3,0x8c,0xc1,0x6a,0xdb,0x7,0xc2,0xe5,0x22,0x32,0xc1,0x98,0x61,0x31,0xc2,0xce,0xee,0x25,0xc0,0x33,0x9c,0xbf,0xc1,0xf7,0x68,0x50,0xc1,0x32,0xda,0x8b,0xc1,0xa,0xd,0x81,0xc2,0xf2,0xd7,0x6a,0xc1,0x70,0x41,0x31,0xc0,0x83,0x5d,0x0,0xc2,0x76,0xef,0x7c,0x41,0x14,0x6,0xe,0xc2,0xd9,0x60,0xa2,0xc1,0xfa,0x61,0x51,0xc0,0x5,0x94,0x8a,0xc2,0x11,0x5,0xd1,0xc0,0x18,0xc0,0x9d,0x41,0x6b,0x2a,0xc4,0x41,0x76,0x31,0xd,0x41,0x48,0x7f,0x45,0x3f,0xde,0x58,0x51,0xc1,0xa6,0x48,0xb5,0xc1,0x17,0x70,0x46,0x42,0x74,0xe7,0x94,0xc2,0x44,0x45,0x84,0x42,0x7a,0xf6,0x90,0xc1,0x2f,0x24,0x21,0xc2,0x3c,0xbc,0xb3,0xbf,0xa1,0x4d,0x5,0xc3,0x37,0xea,0x89,0xc2,0x60,0x4c,0x3c,0xc2,0xac,0x7b,0x0,0x40,0xdc,0xf6,0x83,0x3f,0x6,0x7d,0xc5,0x41,0xb7,0xfd,0x9,0x42,0xb7,0x37,0x6c,0x42,0xb,0x32,0x26,0xc2,0xe1,0xd6,0x1e,0xc1,0xb2,0x8e,0x32,0xc0,0x74,0x42,0xb,0xc3,0x30,0xba,0x30,0xc2,0x9a,0x41,0x7e,0xc2,0xce,0x72,0x2c,0x41,0x77,0x17,0x10,0x42,0xae,0x58,0x2d,0x42,0x2f,0x2d,0xf7,0xc1,0xdb,0xbb,0x5,0xc1,0x70,0xf8,0xfa,0xc1,0x82,0x9e,0x36,0x42,0x3,0xe9,0x93,0xc1,0x9e,0xbc,0xb4,0x41,0x35,0x6e,0x73,0xc2,0x10,0xc6,0x6e,0xc2,0x13,0x8,0xb7,0x41,0xee,0x8,0x7e,0xc1,0x71,0x1,0x10,0x42,0x83,0xdc,0xc0,0xc1,0x2c,0x52,0x1b,0xc2,0xaa,0x6f,0x6e,0x40,0xd7,0xdf,0x78,0xc2,0x1c,0x19,0xeb,0x41,0x2f,0xb2,0xee,0x42,0x23,0xde,0x70,0xc1,0x44,0xeb,0xef,0x42,0xa8,0xd,0x40,0x40,0x6e,0x73,0xbe,0xc2,0xa7,0x30,0x90,0xc2,0x60,0x1e,0x2f,0xc2,0x22,0xc7,0xb0,0xc2,0x5,0x1c,0xb4,0x41,0x87,0xcd,0xcb,0x41,0x6a,0x67,0x3d,0x42,0x2a,0x0,0x3a,0x41,0x30,0x75,0xcd,0xc1,0x7b,0x61,0xa1,0x41,0x74,0xdd,0x53,0x42,0x68,0x0,0x30,0x42,0xf3,0x89,0x65,0xc1,0xac,0xb2,0xa9,0xbe,0x30,0x7b,0xcb,0xc1,0xea,0x24,0x95,0xc1,0x29,0x86,0x92,0xc2,0x6e,0xd5,0x9f,0xc2,0x92,0x83,0x92,0xc2,0xbe,0xad,0x86,0x42,0xfe,0xfd,0x26,0x42,0x7d,0x42,0xf9,0xc1,0x23,0x1c,0xa4,0xc2,0xf3,0xf0,0xb7,0xc1,0xba,0x8,0xca,0xc1,0x31,0x44,0xc1,0xc0,0x86,0x23,0xb3,0x42,0x5c,0x2b,0x2d,0xc2,0xe,0x27,0x44,0x42,0x1,0xaa,0xe,0x43,0x2a,0xc7,0x33,0xc2,0x15,0x80,0x84,0xc2,0xc6,0xa1,0xc3,0xc1,0x49,0x46,0x6,0x42,0x60,0xc7,0xb5,0x42,0x6e,0x51,0x8b,0xc1,0x6c,0x7d,0x2c,0xc2,0xa9,0x92,0x47,0xc2,0xd2,0xdf,0xbb,0x41,0xaf,0xf4,0x74,0xc2,0x46,0x3f,0x8c,0x41,0xaa,0x7a,0x70,0x40,0x96,0x25,0x87,0xc0,0x6b,0x9b,0x35,0xc2,0x41,0xec,0x13,0x42,0xfa,0x6e,0x3c,0xc0,0x93,0xab,0x67,0xc2,0x7e,0x9b,0x3a,0xc1,0x2e,0xc2,0xb2,0x41,0x68,0xa0,0x5,0x40,0xe9,0x56,0x24,0x42,0x8,0x5a,0x3f,0x3f,0xed,0xc0,0x9,0xc0,0x8c,0x89,0x84,0xc1,0xf4,0xfc,0x18,0xc2,0x71,0xbd,0xf,0x41,0xda,0xed,0x3a,0x41,0x2f,0xfd,0x31,0x41,0xe1,0x6a,0x98,0x42,0x56,0x5e,0x31,0xc2,0x44,0xf5,0x79,0xc1,0x42,0xe3,0x2b,0xc2,0x4,0x75,0x39,0x42,0xaf,0xc3,0x68,0x42,0x73,0xfb,0x9f,0xc2,0x88,0x7,0x59,0x41,0x80,0x12,0x36,0xc2,0x84,0xb2,0x63,0xc0,0xaa,0xbd,0x8f,0x41,0x19,0xc6,0x80,0xc1,0xd2,0xf9,0xb5,0x41,0x9a,0xd6,0x51,0x42,0x1e,0x69,0x3a,0x42,0xce,0xa5,0x31,0x41,0x48,0x8b,0x29,0x41,0x62,0x11,0x2b,0xc1,0xba,0x40,0x1c,0x42,0xf6,0x8c,0xcc,0xc1,0x8e,0xd4,0xce,0x41,0xb8,0xae,0x87,0x41,0xd5,0xfe,0x7a,0x42,0x14,0x7f,0x62,0xc2,0xcd,0x8e,0x89,0x41,0xfb,0x1c,0x34,0x42,0xb5,0xd2,0x91,0x41,0x6,0xb1,0xc7,0x40,0xdc,0x7d,0xc1,0x41,0x44,0xc3,0x7,0x42,0xc8,0xf,0xde,0xc0,0x9f,0x9,0xd3,0x42,0x11,0x91,0x5c,0xc1,0xd9,0xf,0x8e,0x41,0xeb,0x2c,0x3e,0x42,0xf5,0x1,0x6d,0x42,0x13,0x85,0x97,0x41,0xff,0x21,0x1c,0x41,0x24,0x8e,0x8f,0x41,0x11,0xf6,0xcc,0xc1,0xa3,0x84,0x78,0xc1,0x25,0xb6,0x62,0xc2,0x58,0xaf,0xb9,0xc2,0xcc,0x3c,0xe2,0xc1,0x4,0x49,0x52,0x41,0x63,0xd7,0x1c,0x42,0xa1,0xff,0xab,0xc2,0xdb,0x97,0x38,0x42,0xa4,0x2f,0x14,0x40,0x25,0xbc,0xad,0x42,0xfc,0x3b,0x2a,0x41,0x7f,0xed,0x1b,0x41,0x49,0xf4,0x45,0x42,0x3a,0x9e,0x15,0x42,0x6a,0x7c,0xa3,0xc1,0x9d,0xf7,0x3a,0xc1,0xcc,0xb1,0xab,0x42,0x24,0x79,0x30,0xc2,0xc,0x61,0xbc,0x41,0x7f,0x28,0x35,0x41,0xa7,0x31,0x18,0x42,0xaa,0xd,0x83,0xc1,0x33,0x76,0x1,0x41,0xf8,0xe0,0x2c,0xc2,0xec,0x49,0xf5,0xc0,0xa,0x9c,0xc8,0xc0,0x20,0xa1,0xc,0xc1,0x16,0xfa,0xa9,0x41,0x13,0xba,0x82,0xc2,0x93,0x3a,0xbd,0xc0,0x58,0x7e,0x8,0xc2,0x84,0x8c,0xe7,0xc1,0x3c,0x5c,0xd2,0xc0,0xd8,0xc0,0x53,0x41,0x90,0x62,0xab,0x42,0xca,0x91,0xd6,0x41,0x79,0x2b,0x2e,0x41,0xe4,0xe5,0x92,0xc1,0xe6,0x63,0xed,0x40,0xd4,0x8c,0x3,0xc2,0x56,0x2d,0xbe,0xc1,0x7c,0x51,0x67,0xc2,0xc4,0x73,0x50,0x42,0xda,0x2c,0x30,0xc1,0xfb,0xca,0x0,0xc2,0x39,0xef,0x19,0x41,0x58,0x96,0xf0,0xc0,0xe,0xd9,0x94,0xbf,0xbc,0x36,0x1c,0x41,0x89,0x3f,0xc1,0xc1,0x4a,0x3c,0xeb,0xc1,0xfc,0x9c,0x4,0xc1,0x9a,0xb3,0x6f,0xc0,0xb5,0x91,0x55,0xc1,0x74,0xf6,0x7d,0x42,0x82,0x57,0x11,0xc2,0x20,0xdf,0xb4,0xc2,0x2f,0x45,0x7,0xc2,0xbc,0xee,0xfd,0xbe,0xa2,0xab,0xa5,0x41,0x5c,0x9b,0x54,0xc2,0x69,0x3d,0x96,0x40,0xe4,0x3c,0x3,0xc2,0x8a,0x7a,0xbf,0xc1,0xd6,0x3a,0xf7,0xc0,0x85,0xad,0xb,0xc2,0xbb,0x54,0x4,0xc2,0x86,0x3e,0x5e,0x41,0x42,0x2b,0x77,0xc1,0x66,0xef,0xb2,0xc0,0x4c,0x4a,0x49,0xc1,0x5c,0x43,0xcd,0xc1,0xff,0x2b,0x8a,0xc1,0x53,0xe7,0xff,0x41,0xe7,0xc,0x29,0x42,0x63,0x74,0x22,0x42,0xbe,0x62,0x29,0xc2,0xfa,0xe7,0x30,0x42,0xc2,0x39,0xd9,0xc1,0xd2,0x16,0x5f,0x42,0x52,0x47,0x20,0xc2,0x76,0x4c,0x91,0xc2,0x9f,0x7e,0xe2,0x42,0x94,0x36,0xd4,0xc2,0xb5,0x1,0x97,0xc2,0x18,0xa5,0x7a,0x41,0xd4,0xb9,0x64,0x42,0x1,0x83,0xd8,0xc0,0xf8,0x16,0x3,0x40,0x31,0xee,0xab,0x41,0x92,0x41,0x85,0x40,0xd8,0x8a,0x6d,0xc2,0x3a,0x68,0x45,0xc2,0x42,0x1b,0x65,0xbf,0x18,0x84,0x70,0x42,0xe0,0x64,0x91,0x40,0x91,0x4,0xe6,0x41,0xa7,0xb2,0xf0,0xc0,0x10,0x1c,0xc6,0x40,0xcb,0xb2,0x68,0xc1,0x30,0xa1,0x52,0x41,0x72,0xbf,0xc9,0x41,0x5a,0x49,0x50,0xc2,0x7d,0xfc,0xb1,0x42,0xb9,0x34,0x16,0x42,0x30,0xed,0x6c,0x41,0x63,0x32,0x5a,0x42,0x93,0xa7,0x5c,0xc2,0x8a,0x1e,0xac,0x41,0xf2,0xca,0xa1,0x3f,0x18,0x26,0x89,0x3f,0x1c,0x49,0xe,0xc2,0x6a,0xae,0x91,0x40,0x2c,0x49,0x44,0xc2,0x50,0xe6,0x34,0x42,0xe,0xb2,0xe5,0xbf,0x73,0x3b,0xcc,0xc1,0xe5,0x89,0x24,0x42,0xa9,0x70,0x53,0x41,0xd7,0x8c,0x80,0xc2,0xec,0xe6,0xc,0x41,0x94,0x28,0xfe,0x41,0x6d,0x3a,0xc4,0xc1,0x7d,0xd3,0xe1,0x41,0xc2,0xfc,0x4b,0x41,0x72,0x84,0x3b,0xc2,0x90,0xbc,0x48,0xc2,0xde,0x71,0xb2,0x42,0x43,0x46,0xe8,0x41,0x51,0x82,0xe6,0x42,0x24,0xba,0xc6,0xc1,0x4f,0x24,0x84,0x41,0x21,0x2a,0x9e,0x42,0x4b,0x95,0xc6,0x41,0xf9,0x6d,0x4d,0xc2,0x4c,0x8b,0x8c,0x42,0x2c,0x1b,0x64,0x42,0xb5,0xf,0x79,0x41,0xe0,0xac,0x6,0x42,0xdd,0xd3,0x98,0x41,0x16,0x5,0x8d,0x41,0x90,0xb3,0x9e,0xc1,0x90,0x3c,0xc4,0xc1,0x3f,0xea,0x8d,0x3f,0x9e,0x7b,0x3a,0xc1,0x6b,0x4,0x8a,0xc2,0x1c,0x1e,0x1b,0x42,0xe4,0x83,0x19,0x42,0xf2,0x5e,0x88,0xc2,0xc4,0x52,0x82,0xc1,0x91,0x56,0x8f,0x40,0xd9,0xcd,0x43,0x42,0xcf,0xe,0x9b,0x42,0xdb,0xd3,0x4b,0xc2,0x6e,0xbf,0x1f,0xc2,0x74,0xc5,0x92,0x41,0x24,0x7a,0x80,0xc2,0x99,0xda,0xbc,0xc1,0x66,0x23,0x93,0x42,0x2,0x7f,0xb,0xc2,0x8c,0xd4,0x8e,0x42,0xbb,0xf8,0x2b,0xc2,0x5,0xc0,0xc7,0x42,0xf5,0x24,0xce,0x42,0xe1,0xe6,0xe,0xc2,0x7c,0x6c,0xd3,0x41,0x38,0x9a,0x52,0x40,0x4a,0xcd,0x56,0x42,0xae,0x7f,0x5,0x42,0x4,0xe6,0x7,0xc1,0x6,0xc4,0xf,0xc1,0x80,0x42,0xa7,0x41,0x70,0xe2,0xfd,0x41,0x28,0x39,0x5c,0x3f,0xe6,0x6,0x15,0xc1,0x5a,0xbf,0x9c,0x42,0x1e,0x3f,0x30,0xc1,0x46,0x25,0xac,0xc2,0x25,0x3e,0x30,0x41,0x54,0xc2,0xa9,0x42,0x9e,0x72,0xeb,0x42,0x20,0xac,0xb3,0x42,0x80,0x93,0xa,0x42,0xa0,0x3,0xd2,0x41,0x3,0xc8,0x5f,0x42,0xad,0x9b,0x1,0x42,0x8,0xf7,0xd6,0xc2,0xf4,0x8c,0x9d,0x41,0x98,0xf9,0x73,0xc1,0x2f,0xba,0xbb,0x41,0xa8,0xa,0x3e,0x42,0xa2,0x36,0x2,0x42,0x68,0xf1,0xba,0x41,0x7e,0xf,0x49,0xc1,0xcb,0xbb,0xa7,0xc1,0x9a,0x2b,0xca,0x41,0xaf,0x44,0x0,0xc2,0x51,0x68,0x19,0x42,0x50,0x44,0x2,0x41,0x7a,0x7c,0x33,0x41,0xe,0x24,0xc1,0xc2,0x13,0x6f,0x84,0x42,0x48,0x33,0x4c,0xc0,0x1b,0x82,0x46,0xc1,0x96,0x79,0x3b,0xc1,0x78,0xb,0x6,0xc2,0x7b,0x44,0xc6,0x41,0xdd,0xf6,0x73,0xc2,0xe5,0x8a,0x85,0xc2,0x64,0x5c,0x55,0xc1,0x2d,0xdc,0xef,0x3f,0x73,0xf5,0x12,0xc1,0x22,0x3a,0x99,0x42,0xb,0x57,0x3a,0x42,0xe6,0x64,0xbd,0x41,0x4,0xef,0x30,0x42,0x4a,0x86,0x3f,0xc2,0xec,0xd6,0x67,0x41,0x8f,0xa1,0x91,0xc2,0xf5,0xa8,0x31,0x42,0x7b,0xe6,0xf,0xc2,0x96,0x57,0xa4,0xc1,0x78,0xe9,0xc5,0x3f,0xd9,0x80,0xf9,0xc1,0x43,0x85,0xa6,0xc2,0x91,0xa1,0x9,0xc0,0x61,0xe2,0x96,0x41,0x7b,0x20,0x7,0x41,0x8f,0xe2,0x86,0x42,0x30,0x23,0x6a,0xc2,0xf8,0x16,0xfc,0xc0,0x6d,0xac,0xd1,0x3f,0xe2,0xce,0x9d,0x42,0xf3,0x33,0xe9,0x41,0x89,0x41,0xb4,0x42,0x8f,0xd7,0xb,0x42,0xe0,0xa2,0x42,0xc2,0xac,0xb5,0x7e,0x42,0xf,0xe9,0x56,0xc2,0xe,0x4b,0xce,0x41,0xc2,0xce,0x48,0x42,0x27,0xae,0xd,0x42,0xb6,0x5,0x78,0xc1,0xe1,0x22,0x95,0xbf,0x38,0x4a,0x2c,0x42,0x71,0x57,0xf,0xc2,0x91,0xed,0x96,0xc1,0x2e,0x97,0x9b,0xc1,0x35,0x9d,0x8,0x41,0x49,0x4b,0x8a,0xc1,0x45,0xf4,0xdc,0xc0,0x7f,0x74,0x46,0x41,0x78,0x56,0x24,0x42,0xc6,0x7f,0x7,0xc2,0xe,0x63,0x14,0xc0,0xe4,0x4f,0x9f,0xbf,0x35,0x1e,0x85,0x41,0x9c,0x62,0xf8,0xc0,0x6d,0xa8,0x88,0x42,0xb6,0x4c,0x82,0xc1,0x9b,0x9c,0xa3,0x41,0xe9,0x5b,0xcd,0x41,0x39,0xaa,0xaf,0xc1,0x17,0x39,0x4b,0xc2,0x10,0xb9,0x5c,0xc2,0xe1,0xa2,0x7c,0x41,0x79,0x73,0x73,0xc2,0xa2,0xea,0x85,0xc2,0x86,0x4a,0x20,0x42,0xd0,0xcb,0x94,0x42,0xeb,0x58,0x4f,0xc2,0xbb,0x50,0xa6,0xc1,0x23,0xc8,0x9e,0x41,0x9e,0xaa,0x9a,0x41,0x67,0x9f,0x9e,0xc2,0x23,0x5,0xa2,0x41,0x46,0x2f,0x1f,0x40,0x88,0x2a,0xa6,0xc2,0x78,0xb8,0x5f,0xc1,0x30,0xb2,0xfb,0xc0,0xd8,0x8a,0xd4,0x41,0x70,0xff,0x2d,0xc2,0x4b,0x8c,0x3c,0x42,0x62,0x49,0xde,0x40,0x44,0x21,0x29,0x42,0xc4,0x7f,0x5,0x42,0x2f,0x88,0xf1,0xc1,0x54,0xf6,0x68,0x41,0x5c,0x3,0x80,0xc0,0x3b,0x58,0xb8,0xc1,0x88,0x22,0x54,0xc2,0x30,0x30,0x19,0xc2,0xc1,0xb4,0x75,0xc2,0x26,0x18,0x30,0xc1,0xb0,0x99,0x65,0x40,0xbb,0x3,0x19,0x42,0x90,0xe2,0xad,0x42,0x78,0x77,0x25,0xc0,0x34,0x64,0x2a,0x42,0x40,0xe5,0x68,0x41,0xe,0x43,0xaa,0x41,0x25,0xf9,0x5f,0xc1,0x48,0xc0,0xbb,0xc2,0x42,0x5f,0xe3,0x40,0x2c,0xa6,0x4c,0x40,0xe8,0x49,0x21,0xc1,0xd1,0xb4,0x17,0x42,0xf7,0x28,0xb3,0xc1,0x3e,0x6b,0xc3,0x40,0x7e,0x58,0xfa,0xc0,0x4f,0x32,0xd8,0x41,0x55,0x28,0x1,0x42,0xc6,0xb0,0x11,0x42,0xda,0x73,0x49,0xc1,0x2c,0xbc,0x9f,0xc2,0x1c,0xad,0x3d,0xc2,0x5,0x83,0x85,0x42,0xd2,0x2f,0x22,0xc1,0x64,0x59,0x30,0xc2,0x60,0xe4,0x0,0xc2,0xe3,0x79,0x98,0xc2,0x92,0xc6,0xeb,0x40,0xf5,0xd1,0x5b,0xc2,0x97,0x3d,0x9,0x41,0x98,0x38,0xb,0x41,0x4e,0x7c,0x64,0x41,0x9e,0x1c,0x8a,0x42,0x6a,0x1f,0xcb,0x41,0x64,0x74,0xc9,0xc1,0x9f,0xa6,0x2d,0x42,0xcc,0xf5,0xb3,0x41,0xae,0xbc,0x58,0xc2,0xc2,0xa4,0x53,0x42,0x8c,0x10,0xe1,0xc1,0x77,0x2d,0xa8,0x40,0x3e,0xe6,0xb0,0xc1,0xc4,0x6c,0xb6,0xc1,0x3e,0xdc,0xd6,0xc1,0xc0,0x3a,0x4e,0xc0,0x44,0xf6,0xfd,0xc1,0xe0,0xe,0x5,0xc2,0x73,0x60,0x1c,0x42,0x93,0x33,0xa3,0xc1,0x28,0x12,0x50,0xc2,0xb3,0xa4,0x7a,0xc1,0x44,0xd7,0x97,0xc2,0x67,0x29,0xc3,0xc2,0x36,0xe3,0x9e,0x41,0xc4,0x57,0x8,0xc2,0x4f,0x59,0x97,0xc1,0xf5,0xef,0x49,0xc1,0x2,0x10,0x88,0xc1,0x3a,0x42,0x81,0x41,0x72,0xaa,0x2f,0x41,0x3e,0xc2,0xcf,0x42,0x95,0x6f,0x52,0xc2,0x3,0xde,0x7e,0x42,0x4c,0x5e,0x5f,0x42,0xb3,0xd1,0x6c,0xc1,0x86,0xfc,0x4,0xc2,0xeb,0x78,0x9b,0xc1,0xff,0xe,0x24,0x42,0xac,0x45,0x12,0xc1,0x5e,0xfd,0xb7,0xc1,0xc,0x7e,0x7a,0xc2,0x8e,0x7c,0xa,0x42,0x79,0x2b,0x50,0x42,0xff,0xa6,0x9d,0xc1,0x68,0x7d,0x1,0xc2,0x41,0xe,0x73,0x42,0x1c,0xd1,0xa6,0x41,0x5e,0xb5,0xe9,0xc2,0x2e,0x2b,0x25,0x42,0x62,0xbc,0xa4,0x40,0xd3,0x9d,0xa2,0x41,0x8e,0x64,0xd,0x41,0x8d,0xad,0x2c,0x42,0x97,0xb5,0x27,0x41,0xf2,0xd6,0xf2,0xc0,0xe6,0x18,0x2a,0x42,0x11,0x45,0xa0,0x41,0x12,0xd0,0x68,0x41,0x4a,0x12,0x70,0x42,0xc3,0x4d,0x47,0xc2,0x42,0x6a,0x70,0x41,0x70,0xe5,0x83,0x41,0x1f,0x55,0xf,0xc2,0x1e,0x40,0xa0,0x42,0x9f,0xd9,0x89,0xc2,0x3f,0x53,0x3e,0x42,0x3b,0x25,0x8b,0x42,0x28,0x48,0x84,0x42,0x6e,0xab,0x28,0xc2,0xe5,0x54,0x3a,0x42,0xc2,0x48,0x97,0xc1,0x6c,0xa7,0x46,0xc2,0xe4,0x2,0xe8,0xc1,0xb,0xe8,0xda,0xc0,0x7f,0xcd,0x1f,0x42,0x3,0xde,0x19,0x42,0x5e,0xd2,0x49,0x42,0xa7,0xac,0xc4,0xc1,0x85,0x86,0xa9,0xc1,0xd2,0xca,0xaf,0xc1,0xd0,0x73,0xc,0xc0,0x68,0x7e,0xf2,0xbf,0xb8,0xac,0x39,0x41,0x41,0xe4,0x50,0x42,0x90,0x5d,0x10,0xc2,0x7c,0x34,0xba,0xc0,0x11,0xbe,0x51,0x42,0x24,0x35,0x87,0x40,0xd1,0x59,0x43,0x42,0x3f,0xa5,0x59,0xc1,0x36,0x66,0x19,0xc2,0xc6,0xe9,0xa1,0x41,0xc4,0x15,0x34,0xc2,0x41,0xbd,0x8a,0x42,0x26,0x14,0x1f,0x42,0x5b,0xb6,0x9e,0xc1,0x54,0xe4,0x47,0xc1,0xc3,0xc1,0xa5,0x42,0x32,0x2a,0xcc,0xc1,0x2e,0x8f,0xf9,0xc1,0x4,0xb5,0xb8,0xc1,0xee,0xd7,0x12,0x42,0x44,0x57,0xc2,0xc1,0xc3,0x32,0x16,0x42,0x8f,0xe2,0x79,0x42,0x4f,0xee,0x6,0xc2,0xf1,0x24,0xf2,0xc1,0x2b,0x4c,0xbf,0x42,0x37,0xe2,0x97,0x41,0xbc,0xd,0x86,0xc0,0x3e,0xdd,0xcf,0x42,0x6c,0x9a,0x9d,0xc0,0xd4,0x0,0xda,0xc1,0x9d,0x4b,0xbf,0x42,0xd6,0xd4,0x46,0x41,0x67,0x64,0x97,0xc1,0x21,0xc2,0x9b,0xc2,0x93,0xe9,0x34,0x42,0xbf,0x6f,0xef,0xc1,0xb2,0x59,0x83,0xc1,0xaa,0x63,0x9e,0xc1,0x42,0xad,0x1b,0x42,0x17,0x67,0x1e,0xc2,0x7b,0x4b,0xe4,0xc1,0xd8,0x24,0x28,0xc2,0xd6,0xd8,0x1d,0xc2,0xbf,0x61,0x3,0xc2,0x4a,0xb2,0xfd,0xc0,0x1a,0x77,0xba,0x41,0x5a,0x33,0x22,0x42,0x8e,0x53,0x2a,0x42,0x7,0xa9,0xec,0xc1,0xe6,0x78,0xb1,0x3f,0xca,0x8d,0x2f,0xc2,0x45,0xd3,0x78,0x41,0x8a,0xae,0xc,0x42,0x48,0xcc,0xc3,0x41,0xa6,0xa3,0xb,0x42,0xe1,0x31,0xcf,0xc1,0xe0,0x1c,0x14,0x41,0xb3,0x16,0xad,0x41,0xf1,0xa,0xd0,0x41,0xf2,0xfa,0xdb,0x40,0x3a,0xf5,0x14,0xc0,0xac,0x54,0x20,0xc2,0xbf,0x26,0xce,0x42,0x6d,0xe8,0x1d,0xc2,0xfe,0xed,0xab,0x40,0xf0,0xbb,0x2a,0x42,0x52,0x94,0x72,0x41,0xad,0x1a,0x5f,0xc1,0xf6,0x46,0x12,0x42,0xb6,0xf9,0x86,0x41,0xcc,0x36,0x1d,0xc2,0xeb,0xb5,0xdd,0xc1,0x52,0x2b,0xaa,0xbf,0x98,0xae,0xb9,0xc1,0x8b,0x57,0x2f,0xc2,0x66,0xd5,0x13,0x42,0xe,0xf5,0x4a,0xc2,0x1d,0x1c,0x28,0x42,0x42,0x3a,0xb3,0x41,0xcc,0x3d,0xe8,0x41,0xda,0x2,0xb,0xc2,0x64,0x7f,0x6a,0xc2,0xf8,0xb3,0x67,0x40,0xf4,0x8c,0x84,0xc1,0x53,0xe6,0xa4,0xc1,0x6b,0xbd,0xc0,0xc1,0xb1,0xac,0x2,0x43,0x89,0x63,0xa0,0x41,0xcf,0x88,0x6a,0x41,0xe2,0x50,0x3b,0xc2,0x1a,0x83,0x0,0xc0,0x91,0x17,0x49,0x42,0x22,0x47,0xf5,0x41,0x5e,0xb8,0x6d,0xc0,0xa6,0x2d,0xb4,0xc0,0x20,0x18,0x17,0x42,0xd6,0x17,0x26,0xc1,0x9f,0x9d,0xa4,0xc1,0x4,0xb,0xd2,0x41,0x7,0x2,0x17,0xc2,0x32,0xb1,0x9a,0x42,0x4f,0x7e,0x2f,0x42,0x4a,0x2d,0xbb,0xc2,0x56,0x41,0x95,0x41,0xee,0x3e,0x91,0x42,0x82,0x5b,0x87,0x41,0x60,0xb0,0x6f,0x41,0x95,0xf6,0xd,0xc1,0x5f,0xfb,0x9d,0x41,0xd6,0x0,0x19,0xc2,0x3b,0xbb,0x46,0x42,0x5e,0x34,0x8f,0x40,0x99,0xd3,0x21,0xc2,0x41,0x5a,0x2e,0x41,0x34,0xd0,0x2e,0x41,0x74,0xa4,0x17,0xc2,0x7e,0x6,0xf9,0x41,0x2c,0x2c,0x8c,0x41,0xba,0xa7,0xa6,0x41,0x6c,0x28,0xba,0x41,0x60,0x45,0x7,0xc2,0xbd,0xb6,0x81,0xc2,0x4f,0x10,0xac,0x42,0xb0,0x89,0x4d,0x40,0x45,0xe8,0x8,0xc2,0x65,0xc2,0x93,0xc1,0x25,0x62,0x1a,0x42,0x96,0xa,0xa0,0x42,0x5b,0xf2,0x24,0x42,0xf7,0x35,0x89,0x42,0xce,0xd3,0x67,0xc2,0x7c,0xdf,0xbd,0xc1,0x1d,0xd1,0x8c,0xc1,0x71,0xb,0x2c,0x41,0x3c,0x4,0xd7,0xc1,0xf6,0x3a,0x3d,0x42,0xf2,0x42,0xf7,0xc0,0x5c,0x8a,0xa3,0x40,0x32,0x42,0xb0,0xc0,0xea,0x30,0x78,0xc2,0x22,0x54,0xc2,0x41,0x97,0x61,0xc2,0x41,0x98,0x26,0x73,0xc1,0xaf,0x7d,0x94,0x41,0xcb,0x4e,0x9e,0x41,0xe1,0xaf,0xe6,0x40,0x5,0x75,0x5d,0xc0,0x6a,0xd2,0x8b,0x42,0xc9,0xfc,0xf4,0xc1,0xf3,0xbb,0x8f,0xc2,0x89,0xea,0x2d,0x41,0x38,0x5d,0x55,0xc1,0x3,0x25,0x86,0xc2,0xe,0x1a,0x70,0x3f,0x5b,0xb2,0x41,0x42,0x50,0x84,0xfe,0xbe,0xca,0xc3,0x51,0x41,0xef,0xe1,0xa4,0xc0,0x4e,0x1a,0x8f,0x42,0x6c,0x30,0x89,0xc0,0x5b,0xa4,0x82,0x42,0x7a,0x2b,0xe,0xc2,0xfd,0xe9,0xaf,0x41,0x8,0x1d,0xc8,0x41,0xb0,0x57,0xf1,0xc1,0xd4,0xf7,0x1c,0xc0,0x6,0x62,0x63,0x41,0x76,0x53,0x3,0x42,0x19,0x22,0xb5,0xc2,0x14,0x65,0xfa,0xc1,0x0,0x75,0xb8,0x3e,0x40,0xc3,0x24,0x42,0x2e,0xb9,0xe2,0xc0,0x2f,0x39,0xa6,0x41,0xa3,0xef,0xcc,0x42,0x3c,0x4b,0x92,0x41,0x33,0x28,0x84,0x41,0xd2,0x35,0xa7,0xc2,0x64,0x7c,0xcd,0xbf,0x69,0x81,0x2a,0x41,0x3,0x42,0xdb,0x41,0x28,0xd2,0xb,0x40,0xda,0x24,0xb7,0x41,0xba,0xa1,0xc9,0x41,0xa9,0x87,0xf4,0x3f,0x20,0x24,0x24,0x42,0x72,0x48,0x5e,0x41,0x6b,0x1d,0xe5,0x41,0x78,0x5,0x5a,0x41,0x21,0xb5,0x36,0x42,0xf4,0x6d,0x32,0x42,0x3b,0xa2,0x41,0xc2,0x31,0x14,0xbd,0xc2,0x7d,0x3f,0xc9,0x41,0x58,0x26,0x94,0x41,0xee,0xd9,0x29,0x42,0xbf,0x74,0x43,0xc2,0x52,0xa8,0xda,0x41,0x66,0xc0,0xc2,0xc1,0xb,0xd4,0x47,0x42,0xeb,0x18,0x1a,0xc1,0xd4,0xfb,0xee,0x41,0xb4,0x44,0x9c,0x40,0xcc,0x35,0x9d,0x42,0xb7,0x37,0x2e,0xc2,0x43,0xe7,0xcb,0xc2,0xbc,0x8,0xd,0xc2,0x7d,0x9,0x18,0x41,0xfe,0xc6,0xbc,0x41,0x3c,0x6,0xb3,0x40,0xa6,0xbc,0x32,0x41,0xf1,0xfa,0x87,0x42,0xd4,0x44,0xe4,0x41,0x1,0x8f,0x13,0x42,0xd7,0x7f,0x89,0x41,0x70,0x6c,0x62,0xc0,0x86,0x57,0x6c,0xc0,0x92,0x17,0x60,0xc2,0xf8,0xcd,0x5,0x3f,0x90,0xb0,0x9a,0xc2,0x17,0x73,0x86,0xc2,0x4d,0x1d,0x5f,0xc2,0x7a,0x9a,0x37,0xc2,0x7,0xd0,0xa3,0x41,0xcd,0x4e,0x6c,0x42,0x4d,0xdf,0x19,0x42,0x6,0x46,0x8,0x42,0x42,0x35,0x26,0x42,0x89,0x1b,0x91,0xc2,0x31,0x4,0x69,0xc2,0x14,0x91,0xc4,0xc1,0xa8,0x43,0xcf,0x40,0xa8,0xbb,0x9,0xc2,0xa7,0xa7,0x8e,0x42,0x43,0xec,0xd8,0x40,0xc9,0xe4,0x2b,0xc2,0x40,0x89,0x81,0xc2,0xca,0xc3,0x2a,0x41,0x28,0xd9,0x31,0xc0,0x82,0x16,0x15,0x42,0x7d,0x7,0xfd,0x40,0xe0,0x39,0x8e,0xc2,0xe4,0xa4,0x5d,0xc2,0x60,0x18,0x92,0xc1,0x81,0x90,0x9c,0xc1,0xbd,0xa9,0x89,0x42,0xf3,0xb2,0x21,0xc2,0x72,0x3a,0x5,0x42,0x61,0x88,0x5c,0xc1,0xe1,0x22,0xa,0xc2,0x6,0x76,0x52,0xbe,0xc8,0x31,0x20,0x42,0xf4,0x9c,0x7a,0xc2,0xe2,0x8,0x38,0x41,0x14,0x1d,0x1c,0xc2,0x8,0xeb,0x43,0xc2,0x25,0x5f,0x30,0xc1,0xa9,0x6f,0xa9,0x41,0xec,0xbb,0x7c,0x42,0x61,0x49,0xc5,0x41,0xb8,0x68,0x89,0x42,0x6c,0xf5,0x88,0xc2,0x2c,0xf9,0x42,0x41,0x39,0xbe,0x6e,0x42,0xaa,0xfd,0xa8,0xc2,0x22,0x73,0xf5,0x40,0xe5,0x2b,0x3c,0x41,0x1f,0x48,0x67,0x42,0x87,0xd3,0x1b,0xc1,0xb4,0x15,0xb0,0xc1,0xdf,0x20,0x14,0x42,0x5d,0xbd,0x12,0xc0,0x86,0xe4,0x5e,0x42,0xba,0x91,0xe2,0xc1,0x30,0xe1,0x0,0xc2,0x8e,0xa8,0xc4,0xc1,0x2c,0xe3,0xa3,0xc0,0x20,0xa8,0x5d,0xc1,0x76,0xfb,0x50,0x40,0xd7,0x36,0xed,0x41,0x6a,0x3d,0x68,0x41,0x2a,0x51,0xdc,0x41,0xc,0x30,0xd,0xc2,0xb9,0x1d,0x48,0x40,0x77,0x48,0x50,0x42,0x70,0x2f,0xa1,0x41,0xd,0x10,0x88,0xc1,0x46,0x71,0x11,0xc1,0xe4,0x2d,0x46,0xc2,0x4e,0x45,0xf4,0xc0,0x63,0x5f,0x7c,0xc1,0x7f,0x6c,0x1f,0x41,0x1,0xfd,0x44,0x41,0xb0,0xa6,0x4b,0xbf,0x79,0xf2,0x83,0x42,0x62,0xe6,0x2c,0xc2,0x2f,0xa8,0x81,0xc2,0x26,0x61,0x45,0x41,0xe0,0xac,0x18,0x41,0xf0,0x87,0xba,0x41,0x1f,0xc0,0xdc,0xc1,0x70,0xc4,0x9b,0x41,0x58,0x9c,0x5c,0xc2,0x8a,0x3d,0x1b,0x42,0x47,0x54,0xc1,0x40,0xca,0xdf,0x31,0x41,0x14,0xc7,0xbf,0x41,0x46,0x7d,0x18,0xc2,0x3b,0xc8,0xeb,0x41,0x63,0x1e,0xa8,0x41,0x8a,0xd7,0x36,0xc1,0x68,0xb8,0x9e,0xc1,0x19,0xc1,0x10,0xc2,0xc3,0xd7,0xbd,0x41,0xac,0x48,0xb3,0x41,0xe2,0x8e,0x4a,0x41,0x64,0x30,0xc0,0xc1,0xa6,0x73,0xdd,0xc1,0x1,0xb7,0x28,0xc2,0x98,0x3b,0x60,0xc2,0x49,0x2a,0xe,0xc2,0x3e,0xce,0xc7,0xc1,0x92,0x68,0x44,0xc1,0xb7,0xf0,0xb7,0x41,0xdc,0xe6,0x6f,0xc2,0xe,0xbc,0xc9,0x41,0x2,0xd0,0xad,0x41,0xc6,0x72,0xe3,0xc1,0x3c,0xad,0x92,0x41,0x6c,0x16,0x72,0xc0,0x68,0x95,0xc1,0xc1,0x82,0x40,0xbb,0x3f,0xad,0x13,0x92,0xc1,0x8,0xb1,0xda,0xc1,0x47,0xa,0x16,0xc2,0x9,0xb9,0x42,0x42,0xc5,0xa7,0xc9,0x41,0xd4,0xc5,0x30,0x41,0xe1,0x6f,0x13,0xc2,0xa4,0x73,0x14,0x41,0x20,0x3a,0x42,0xc2,0x20,0xe6,0x75,0x41,0x0,0xb,0xf8,0xc1,0xe0,0x4a,0x2a,0xc1,0x6,0x90,0x21,0x42,0xf,0xf1,0xbf,0x41,0x1f,0x57,0x36,0xc2,0xf0,0x1a,0x99,0x3e,0xf0,0xbf,0xd7,0xc1,0xe0,0xb1,0xc4,0xc1,0xf,0x44,0x84,0xc1,0xfa,0x84,0x3b,0xc1,0x62,0xeb,0x28,0x41,0xf6,0x68,0xc9,0x41,0xad,0x64,0xe5,0x41,0x41,0xc3,0xb9,0xc1,0xca,0x7,0xaf,0x40,0x8e,0xf8,0x44,0x42,0x77,0xb2,0x8a,0xc1,0x74,0xa,0x1f,0x3f,0x34,0x3d,0x60,0x40,0xd2,0xb6,0x47,0x42,0xda,0xe4,0x82,0xc2,0x15,0x1,0x86,0x41,0x5c,0xe4,0x84,0x41,0xcd,0xb5,0xcf,0xc1,0xa6,0xf3,0x15,0x42,0xba,0xb4,0x54,0x42,0xba,0x19,0x4d,0x41,0xc,0xae,0xfb,0xc0,0xa3,0x54,0xb3,0xc1,0x4a,0x40,0xdc,0xc1,0x74,0xec,0x45,0xc2,0x4,0x67,0x5e,0xc1,0xde,0xec,0x37,0xc2,0x17,0x74,0x12,0x42,0x4c,0x96,0xe7,0x41,0x3c,0x2b,0x6b,0x41,0x41,0xe5,0xce,0x40,0xd0,0x52,0x39,0x41,0x69,0x95,0xce,0xc1,0x42,0x1e,0x39,0x42,0x3e,0x88,0x83,0x41,0x30,0x5d,0x48,0xc1,0x1e,0x61,0x1f,0xc1,0xf5,0xc6,0xdd,0xc1,0xf9,0x6,0x1e,0xc2,0x44,0xec,0xe1,0xc1,0x84,0xc4,0x41,0x40,0xd7,0x89,0x1f,0x40,0x2b,0x80,0x16,0xc1,0xc6,0x40,0x99,0xc1,0xa0,0xa3,0xbc,0x41,0x13,0x91,0x11,0xc2,0x98,0xb1,0x60,0x41,0x87,0xb5,0x1e,0x42,0x27,0x6e,0x10,0xc2,0xda,0x7f,0xee,0x41,0x52,0xd3,0x23,0xc2,0xa8,0x10,0x52,0x42,0xd,0x27,0x36,0x42,0xc,0xea,0xf,0xc2,0xdc,0xc7,0xd4,0x40,0x22,0x48,0xd,0xc1,0xd4,0x18,0x6c,0x42,0xa9,0x10,0x7e,0x42,0xe9,0xe1,0x59,0xc2,0xa0,0xf7,0x13,0xbf,0x12,0x66,0x52,0x42,0xcb,0xcd,0x49,0x42,0x6b,0x96,0x8c,0x42,0x60,0x74,0x80,0x41,0x46,0x52,0xe0,0x42,0x2,0x71,0x82,0x41,0x3b,0xda,0xff,0x41,0xc0,0x4b,0x51,0xbe,0x38,0xcb,0x66,0xc1,0x84,0xdd,0x22,0xc2,0x6a,0x9d,0xf2,0x41,0x77,0xf9,0x85,0xc0,0x11,0x9,0xc,0xc1,0xd,0x29,0x9b,0x41,0x10,0x75,0xe1,0xc1,0x2c,0xc5,0xe8,0xc0,0xf0,0x76,0x71,0x41,0xc5,0xb3,0xfb,0x41,0x1c,0x4b,0x8,0x41,0xaa,0x8e,0x4e,0x42,0x2c,0x9a,0xd5,0xc1,0x5,0xec,0x3a,0x42,0x56,0x79,0xc3,0xc0,0x98,0x9a,0x81,0x41,0xdc,0x4a,0xe2,0xc1,0x3,0x9d,0x8c,0x41,0xf7,0x4d,0xef,0x41,0xa2,0x15,0x57,0x42,0x9c,0x4,0x93,0x42,0xb5,0x57,0x24,0xc2,0xf0,0x55,0x11,0x41,0x5b,0x49,0x35,0xc2,0x2d,0xa1,0x87,0x41,0x86,0x56,0xca,0xc1,0x1b,0xad,0x1,0x41,0x5a,0x6,0x9f,0xc1,0x38,0x6b,0xe,0xc2,0xa7,0x62,0x75,0x42,0x3a,0x89,0x69,0xc2,0xda,0x4f,0x41,0x42,0x32,0x10,0xaf,0xc1,0xe4,0x7,0x5d,0xc1,0x52,0xe4,0x2f,0x42,0x9d,0x63,0xb8,0x41,0x6a,0xff,0x3c,0xc1,0x32,0xd0,0x71,0x42,0xa8,0x4f,0x84,0xc1,0x87,0x5d,0xf3,0xc1,0x6c,0xa0,0x7c,0xc1,0x7c,0x3a,0x4f,0x41,0x34,0x9c,0xe1,0x40,0xaf,0xf8,0x84,0xc2,0xe6,0x22,0x7,0xc1,0x11,0x5d,0x2a,0xc2,0x9c,0x4a,0xa,0xc0,0xbc,0xd0,0xe2,0x41,0x81,0x97,0x18,0x42,0x78,0x3,0x91,0x40,0x12,0x65,0x89,0x41,0x3d,0x18,0x39,0xc1,0xcb,0xde,0xa2,0xc1,0x2b,0xe2,0x9b,0xc2,0x93,0xde,0xb5,0xc1,0x6d,0xc7,0x24,0x42,0x60,0xd2,0xf9,0x3e,0xb0,0x56,0x33,0x42,0xa9,0x1c,0x3c,0xc2,0x37,0x11,0x0,0x42,0x34,0x11,0x49,0x42,0x6a,0x2d,0xc5,0x40,0x33,0x85,0x42,0x40,0x5d,0x5c,0x2b,0x41,0xb2,0xdd,0xcf,0x40,0xa9,0x71,0xb3,0x41,0x70,0x5a,0x99,0xc1,0x5d,0x23,0x38,0x42,0x6e,0x4f,0x65,0x42,0x7e,0xc6,0x9a,0xc1,0x50,0x7f,0x8b,0xc1,0x90,0x1,0xfb,0x3f,0xfc,0xa7,0xe9,0x40,0xcf,0x2d,0x30,0xc1,0x2f,0xb4,0x27,0x42,0x3e,0x46,0x74,0x40,0xfb,0x46,0x30,0xc1,0x44,0xfc,0xd7,0xc1,0xb5,0x71,0xc7,0x41,0x74,0xd2,0x88,0x41,0x12,0x8a,0x6,0x42,0x16,0x73,0x5e,0x41,0x38,0x99,0xed,0x41,0x54,0xe5,0xc0,0x40,0x9e,0x0,0x70,0xc1,0x78,0x4b,0xab,0x41,0xb7,0xb6,0x17,0xc2,0xa6,0x1f,0x85,0x41,0x8a,0xbe,0x7,0xc1,0x10,0x1b,0xe1,0xc0,0x8d,0xee,0x45,0x41,0xb1,0xde,0x8,0xc2,0x88,0x12,0xb8,0x41,0x88,0x7c,0x64,0xc1,0x23,0x16,0xeb,0x41,0x38,0x9,0x36,0xc2,0x17,0xce,0x7b,0x42,0x30,0xb,0x13,0xc1,0x36,0x13,0x97,0xc1,0xb,0xb0,0xf9,0xc1,0x7f,0xb8,0xe,0x42,0x68,0x3a,0x11,0xc2,0xd,0x6d,0xde,0xc1,0x6d,0x6c,0xcd,0x41,0x26,0x4,0x41,0x40,0xc8,0x89,0xac,0x40,0xd3,0x98,0x2b,0xc2,0xa9,0x9c,0x4d,0x42,0x79,0x7b,0x11,0xc1,0xa8,0x59,0xfe,0xc1,0x6c,0x8f,0x54,0x41,0x59,0xf0,0xc3,0x41,0xa2,0xf9,0x88,0xc1,0xe0,0xb8,0xd,0xc2,0xad,0x60,0x7a,0x42,0xa2,0x5f,0xd9,0xc1,0xe7,0x7c,0xab,0x41,0x5,0x0,0x5d,0xc2,0x45,0x86,0xa9,0x41,0x0,0xf2,0x85,0x40,0xa7,0x17,0xf0,0x41,0xcb,0xaf,0xd0,0xc2,0x1d,0x95,0xcb,0x41,0x25,0x6e,0x11,0xc2,0xb8,0xa8,0xab,0x41,0x7f,0xc2,0x4a,0xc1,0x9f,0xdf,0x9c,0xc1,0xba,0x42,0x34,0x41,0xc3,0x1e,0xc5,0xc1,0x4b,0xaa,0xe4,0x41,0x82,0xd8,0xcb,0xc1,0xe8,0x67,0xf0,0xc1,0x44,0x1b,0x9,0xc2,0x96,0x98,0xf3,0x41,0x95,0x5d,0x53,0xc2,0x12,0x9d,0xc8,0xc1,0x8c,0x56,0x39,0xc0,0x4c,0x11,0x1e,0xc2,0x9c,0x77,0x13,0x41,0xe8,0x1c,0x5,0xc2,0xdc,0xc9,0x3,0x40,0x8b,0x83,0x3d,0x42,0x89,0xbe,0xac,0xc2,0x21,0x76,0x44,0xc2,0x1f,0x4b,0x51,0x42,0xa8,0x8a,0xe,0xc1,0xfd,0xe9,0xec,0xc1,0x6c,0xcc,0x46,0xc1,0xdc,0xb9,0xd5,0xc1,0x6f,0xc2,0x6,0xc2,0x78,0x77,0x1c,0xc2,0xb8,0xbd,0x21,0xc1,0xb7,0x76,0x18,0xc2,0xc5,0xb0,0x1,0xc2,0x47,0x5c,0x28,0x42,0x5b,0x6a,0x89,0x41,0x60,0xa9,0xcf,0xbd,0x8f,0x61,0x1c,0x42,0xb9,0x27,0x3c,0x42,0xd7,0xc9,0xe5,0xc1,0xab,0x7d,0x40,0x42,0x66,0x42,0xee,0x41,0xb1,0x18,0x22,0x42,0x30,0xe,0x1d,0x40,0xfb,0xdf,0x38,0xc2,0x7e,0x52,0x1b,0xc1,0x76,0x4,0x62,0x42,0x6,0x41,0x91,0xc1,0x3d,0xc7,0xa4,0x41,0xc3,0xa7,0x68,0xc0,0x17,0x43,0x2f,0xc1,0x56,0x56,0xe3,0xc0,0x2f,0x6,0x8,0x42,0xcc,0x83,0x30,0xc2,0x3d,0xb1,0x1f,0x41,0x57,0xda,0x16,0x42,0x3b,0x45,0xa7,0xc0,0x9a,0x5a,0xb4,0x41,0x47,0x44,0x1e,0xc2,0xe7,0x46,0x50,0x41,0x30,0xf2,0x7e,0xc1,0x7a,0xb9,0xb2,0x40,0x8b,0x66,0x34,0xc1,0x77,0xf6,0x24,0x42,0x8d,0xd4,0x9b,0x41,0xea,0xb8,0xd3,0xc1,0x85,0xfb,0x44,0xc2,0xe9,0xc3,0xd7,0xc1,0xb6,0x72,0x17,0x42,0x10,0xba,0x6,0xc2,0xc7,0xe7,0xd5,0xc1,0x53,0xbe,0x9a,0xbf,0xc4,0x90,0x77,0x41,0xa9,0x66,0xf2,0xc1,0xa6,0xfe,0x56,0x41,0xbd,0x9b,0x91,0xc2,0x56,0xe4,0xb5,0x40,0x57,0x12,0x13,0x42,0x64,0xa9,0x7d,0xc0,0xf3,0xab,0x0,0xc1,0xba,0xf7,0x9,0xc2,0x52,0x3d,0xa6,0x40,0x30,0xc1,0x32,0x42,0x31,0x85,0x89,0xc1,0xe6,0x66,0xaa,0x41,0x7b,0xb5,0x97,0x41,0x53,0x23,0x94,0x42,0x5c,0x15,0x0,0xc1,0xe6,0x16,0x31,0x42,0x5b,0xde,0x9e,0x41,0x18,0x51,0xf,0xc1,0xa,0xd6,0xb4,0x41,0x27,0xdd,0x4c,0xc1,0xb3,0xad,0xe3,0x41,0x86,0xd2,0xfd,0xc0,0xbd,0x22,0x8f,0x41,0x41,0x71,0x68,0xc2,0x52,0xd,0x64,0x41,0xda,0x6f,0x29,0x40,0x50,0x21,0xb2,0x41,0x3e,0x54,0xd3,0xc1,0xfc,0x9,0xe8,0x41,0x8e,0x29,0x0,0x42,0xc4,0xa0,0xe3,0xbf,0x5f,0xe9,0x25,0x42,0x65,0xc8,0x18,0x42,0x74,0x16,0x7,0xc2,0xc0,0xef,0x7e,0x40,0x2,0xe8,0x9a,0xc2,0x76,0xfc,0x34,0xc1,0x26,0x9e,0x57,0x42,0x6d,0x1d,0x4d,0xc0,0x57,0x85,0xb6,0x41,0x76,0x1b,0xc5,0xc1,0xcd,0xcc,0xb1,0x40,0xb2,0x9b,0xd5,0x40,0xe9,0xe1,0x82,0x41,0x6a,0x41,0x87,0xc2,0xfd,0xad,0xc5,0x41,0x4a,0x8a,0x33,0x42,0x9a,0xd4,0xdf,0x40,0xc6,0x45,0xe,0xc2,0x6e,0x97,0x9f,0x41,0x40,0xf7,0x23,0xc2,0xf4,0xb9,0x8,0x42,0x81,0xff,0xd1,0x41,0xd0,0x3f,0xb6,0xbf,0x90,0x48,0xa6,0xc0,0x62,0x29,0x38,0x42,0x43,0xa8,0x4f,0x42,0xf9,0x12,0x70,0x42,0xb6,0x8b,0x1,0xc1,0x74,0xa4,0x45,0xc0,0x4b,0x3,0xac,0x41,0x66,0x61,0x27,0xc2,0x8f,0x6e,0x8f,0x40,0xfa,0x43,0x86,0x41,0x8d,0x85,0xce,0x41,0xf0,0x4a,0xf5,0xbf,0xf1,0x25,0x36,0x42,0x41,0x7e,0x96,0x41,0xdb,0x6a,0xd2,0xc1,0x57,0x24,0xe4,0xc0,0x3c,0xcf,0x91,0xc1,0x84,0x8,0x74,0xc1,0x84,0xc7,0x31,0x42,0xf0,0xc4,0x3f,0xc1,0x37,0x84,0xfe,0xc1,0x36,0xc,0x40,0xc2,0x30,0x21,0x2,0x3f,0x16,0x55,0x4f,0xc0,0xa6,0x91,0x59,0x41,0x5a,0xab,0xdc,0x40,0x3b,0x2a,0x14,0x40,0x38,0xa9,0x4c,0x42,0xf9,0x94,0x8c,0x3f,0xd6,0xb9,0xc,0xc2,0xa6,0xf5,0x95,0x40,0x95,0x7c,0x1e,0x41,0xa0,0xa8,0x3c,0x3e,0x3b,0x38,0xce,0xc1,0xee,0x80,0x4f,0xc2,0xa4,0xea,0x76,0xc2,0xe4,0x85,0x16,0x41,0xd,0xb8,0xf4,0xc1,0xca,0xb2,0xd4,0x41,0x1b,0xfb,0x9,0x42,0xf2,0x58,0xb7,0x41,0xa,0xc6,0xb8,0xc1,0xee,0xde,0x1,0xc1,0x1e,0x63,0x4d,0xc2,0x33,0x9e,0x82,0x41,0x85,0xdd,0xa1,0x40,0xc2,0x4c,0x99,0xc0,0xc8,0x15,0x80,0x41,0x2e,0xc0,0xcd,0x41,0x19,0x78,0x8,0xc1,0x78,0x74,0xeb,0xc0,0xb5,0x3,0x85,0x40,0x43,0x31,0x1d,0x42,0xd7,0x8,0x73,0x41,0xcb,0xfb,0x1c,0xc2,0xe2,0xa8,0xb,0xc0,0x78,0x2f,0x2a,0x42,0xc,0xdb,0x44,0x41,0xa4,0x16,0x2e,0xc0,0xec,0xea,0x1e,0x42,0x3e,0x7e,0x2,0x42,0xb3,0x31,0xe9,0x41,0xe,0x67,0x6d,0xc1,0x19,0x7f,0xee,0x41,0x1d,0x6c,0x4f,0xc1,0xe6,0x9f,0x3f,0x41,0xa0,0x3f,0x5b,0xc2,0x1d,0xd5,0xfe,0xc1,0x71,0x5a,0x3f,0xc2,0x6b,0x64,0xdc,0x40,0x64,0x40,0xb,0x40,0x78,0xed,0xf4,0x41,0x65,0x8c,0x29,0xc2,0x2,0x79,0x20,0xc1,0x8c,0x55,0x17,0xc1,0x3a,0x6b,0x69,0x42,0xa4,0x7,0xa,0x42,0x64,0xb6,0xee,0xc0,0xac,0x93,0x34,0xc1,0x73,0x8a,0x90,0x40,0xc,0x76,0xad,0x41,0xba,0xe,0xb6,0x41,0x9e,0xd4,0xd0,0x41,0x8f,0x6a,0x21,0xc1,0xfd,0x63,0x4d,0x42,0x4e,0x36,0xb1,0x41,0xf5,0x74,0x7,0x42,0x65,0xb3,0x32,0x42,0x65,0xc,0xe2,0xc1,0x77,0xc8,0x77,0xc1,0x98,0x26,0x5e,0x42,0x6a,0x7d,0x10,0x41,0xc1,0xc7,0xef,0x40,0xc2,0x87,0x6c,0xc1,0xae,0x5b,0x6f,0xc2,0x40,0x58,0xe1,0x40,0x54,0x42,0x8c,0x3f,0x46,0x6b,0x38,0xc2,0x27,0x26,0xda,0xc0,0x55,0xa1,0x7d,0x42,0xdb,0x51,0x63,0x3f,0xce,0x0,0x82,0xc2,0x1b,0x42,0xa8,0xc1,0xba,0x16,0xd,0xc0,0xb5,0xa,0x7,0x42,0x33,0xb3,0xb8,0x41,0x40,0x7a,0xd1,0x41,0x7f,0x26,0x6c,0x42,0xae,0xa9,0x54,0x41,0xc3,0x7c,0xae,0xc1,0xf8,0xf0,0x3f,0xc1,0xd,0xe1,0xbe,0xc1,0xc4,0x1e,0x58,0xc1,0x6d,0xf5,0xb8,0xc1,0x5,0x61,0xb2,0x41,0x2c,0xee,0xa,0x42,0x86,0x9d,0x37,0xc0,0x9d,0xe1,0xe0,0xc1,0xde,0x5b,0x6c,0xc1,0xa0,0x3d,0xe3,0xc0,0x42,0x53,0x8f,0x41,0x2f,0x8d,0xe5,0x40,0x68,0x8f,0xfd,0x40,0x8b,0x41,0x19,0x41,0xae,0x3c,0x8f,0x41,0xb5,0x3e,0x23,0x42,0x52,0xe1,0x56,0x42,0xd1,0x15,0xbe,0xc1,0xcc,0x19,0xc8,0x40,0xc,0x5,0x92,0xc1,0xc8,0xc2,0xad,0x40,0x60,0x1d,0xd8,0xc1,0x80,0x42,0x32,0xc1,0x92,0xa5,0x87,0xc1,0x80,0xad,0x8c,0xc1,0x6c,0x6f,0x8c,0x40,0x3c,0x9,0x29,0x42,0xc5,0x60,0x40,0xc1,0x19,0x21,0x45,0x42,0xe1,0x5,0x92,0x41,0xb3,0x34,0x95,0xbe,0xf1,0x70,0xb6,0x40,0xe6,0xf,0xae,0xc1,0x36,0x5f,0x4e,0xc1,0xc8,0xad,0x7c,0xc2,0xc4,0xa3,0xac,0x41,0x80,0x47,0xdd,0xc0,0x8d,0x9,0x1d,0x41,0x59,0xe9,0x15,0xc2,0xd8,0x7d,0x4c,0x42,0x90,0x72,0xa2,0x41,0x2e,0xea,0x83,0xc0,0x12,0x2b,0xe9,0xc1,0x98,0x74,0x24,0x40,0xc,0x3e,0x1e,0xc2,0x22,0xb8,0x77,0xc2,0x85,0x61,0x56,0x41,0x5,0x68,0x4b,0xc1,0x5,0x5f,0xe1,0x41,0xc1,0xb0,0x1e,0xbf,0x5a,0x71,0x6,0x41,0xaa,0x91,0x26,0xc1,0xa,0x1,0xb1,0xc1,0xe6,0xa,0x3,0xc1,0x76,0x97,0xc5,0xc1,0xb9,0x3b,0x7,0x42,0xc1,0x52,0xc4,0x41,0x30,0x81,0x24,0xc0,0xb7,0x81,0xca,0x41,0x48,0x95,0x37,0xc2,0x94,0xe9,0x4,0xc2,0x44,0x17,0x1c,0xc2,0xad,0x5e,0x41,0x41,0xc8,0xa9,0x57,0x40,0x0,0xab,0xe1,0x41,0xa2,0x66,0xee,0xc1,0x30,0x4,0xac,0xc1,0x9e,0xf0,0xd8,0x40,0x70,0xf,0xb6,0xc1,0x26,0x71,0x7f,0xc1,0xcc,0x72,0x42,0x40,0x4e,0x45,0x7,0x41,0xc9,0xb6,0xce,0x41,0xba,0x86,0x1f,0x42,0x19,0x3d,0x2c,0x42,0x2c,0x51,0x2b,0xc1,0x2,0x9f,0xa0,0xc1,0xc4,0x29,0xa2,0x41,0x6f,0xa2,0xa8,0xc0,0x20,0x1c,0xd4,0x3e,0x4b,0xb2,0x9f,0x41,0x3b,0x84,0x9d,0xc2,0x1f,0xe,0xfb,0xc0,0xea,0x55,0xcf,0xc1,0x3,0x86,0xb6,0x41,0xfc,0x8a,0x2f,0xc2,0x36,0xc6,0x5a,0x42,0xbd,0xbe,0xcc,0xc1,0x50,0xb3,0x6c,0x40,0x48,0x9b,0x79,0x41,0x42,0xe5,0x7,0xc2,0x23,0x9e,0xfd,0xc1,0x34,0x75,0x35,0xc1,0xf8,0x36,0x1c,0x41,0x9b,0xc8,0x8f,0xc1,0xda,0x86,0x13,0x40,0xb1,0x8e,0x1c,0x41,0xd7,0xa5,0xf9,0x41,0xb4,0x23,0xdb,0x40,0x9a,0x38,0x11,0xc2,0x88,0x5,0x91,0xc1,0x4f,0xd3,0xcc,0x41,0x1c,0xc,0x4e,0xc2,0x1,0xc2,0x3f,0xbf,0x15,0x4d,0x97,0x41,0xd4,0xa4,0x82,0xc2,0x6,0xa5,0x8e,0xc1,0x40,0xc8,0xe4,0x41,0x3b,0x7a,0xd4,0x40,0xab,0x7d,0x92,0xc1,0xe3,0x7b,0x83,0xc0,0x6,0xc,0x9e,0x41,0xa,0xb,0xd0,0x41,0xa0,0x14,0xec,0x41,0xd,0x1b,0x35,0xc1,0x66,0xa7,0x6a,0x42,0xf2,0xc1,0x9e,0x40,0xc0,0x72,0x39,0x42,0xf6,0x79,0x2b,0xc1,0x2a,0xb2,0x6a,0x41,0x94,0xc4,0x5,0x42,0x21,0x37,0x96,0x41,0xb2,0x3e,0x5e,0x41,0x8c,0xca,0xcb,0xc0,0x10,0x7a,0x82,0xc1,0xc7,0xac,0xe,0x42,0x88,0xe0,0x86,0xc0,0x6,0xed,0x40,0x41,0x18,0x35,0xf4,0xc1,0x37,0xd1,0xc8,0xc1,0x24,0xa0,0x7f,0x42,0xa9,0xfb,0xa0,0xc2,0xda,0x11,0x49,0x42,0x20,0x9,0xd6,0x41,0x20,0xff,0x76,0x41,0x27,0x83,0x49,0xc2,0x7,0xe9,0x6f,0xc2,0x77,0xf9,0x5b,0xc0,0xf0,0x54,0x3,0xc2,0xc0,0x47,0x46,0xc2,0xda,0xf0,0xba,0x42,0x98,0x73,0x11,0xbf,0x24,0xa6,0x2f,0xc2,0x9f,0xb8,0xf7,0x41,0xe8,0x99,0x1,0xc1,0x1d,0xd5,0x3,0xc1,0x2c,0xdd,0x6,0x42,0xba,0x9d,0x66,0xbf,0x32,0xa2,0xe2,0xc0,0x57,0x77,0x47,0x42,0x23,0x61,0xe7,0x41,0x4f,0x1b,0x26,0xc2,0xc2,0x4b,0x14,0x42,0x38,0xd1,0xae,0xbe,0x38,0x68,0x12,0xc2,0x4,0x7c,0x92,0x41,0x3c,0xf0,0x3c,0xc2,0x9a,0xf3,0xbf,0xc2,0x0,0x44,0x38,0xc2,0xfc,0x62,0x41,0xc2,0x82,0x34,0x5c,0xc1,0xe2,0xf9,0x92,0x42,0x49,0x69,0x71,0x42,0xba,0x6b,0x1d,0x42,0xa9,0x1c,0x43,0xc1,0x13,0x58,0xe6,0xc1,0xd,0x34,0x1f,0xc2,0x7f,0x5c,0x28,0xc2,0x44,0xc1,0xce,0x41,0x70,0xf1,0x0,0xc2,0xf6,0xe7,0x25,0x42,0x4f,0x4b,0x7c,0x42,0x4e,0x95,0x1,0xc2,0x2a,0x5e,0x8e,0xc1,0x56,0x88,0x44,0x41,0x8d,0xc6,0xba,0xc1,0xee,0xf8,0x96,0x42,0x17,0x63,0x10,0xc2,0x1,0xd4,0x2b,0x41,0xef,0xb0,0xfd,0xc1,0xf0,0xef,0x2d,0x42,0xfa,0xd5,0xaa,0xc1,0x35,0x87,0xb9,0xc1,0xee,0xb6,0xba,0xc0,0xc6,0xe7,0xd9,0x41,0xec,0xbe,0xb8,0x40,0x4c,0x7e,0xe9,0xc1,0x22,0x26,0xc8,0xc1,0xb9,0xd4,0x34,0xc1,0xcc,0xa2,0xc,0xc2,0x59,0xad,0x56,0xc2,0xde,0xad,0xcb,0x41,0x12,0x65,0xc3,0x40,0xa,0x79,0x1c,0xc2,0xc2,0xee,0x25,0x41,0x3f,0xb4,0x5c,0xc2,0x90,0x1c,0xaa,0xc1,0xab,0x31,0x50,0x41,0xe6,0x70,0x18,0xc1,0xe,0x21,0xd6,0xc0,0x3b,0x30,0x1a,0x42,0xea,0xfe,0x9b,0x40,0x86,0x2c,0x35,0xc2,0xb8,0xc1,0x2e,0x41,0xb1,0x23,0x47,0x41,0xb4,0x33,0x7d,0x42,0xba,0xf,0x84,0xc2,0x38,0x83,0x0,0x42,0xf0,0x48,0x56,0xc1,0xd0,0xd3,0xcf,0xc1,0xde,0x76,0xfb,0x41,0x82,0x33,0x1d,0x41,0xbc,0xe2,0x3e,0xc2,0x3d,0x85,0x13,0x42,0x3c,0x43,0xae,0x40,0x4,0xcb,0x3f,0x40,0x5f,0x65,0x4,0x41,0xbf,0xf0,0x87,0xc0,0x55,0x10,0xaa,0xc1,0x80,0xee,0x27,0x41,0x6,0x4f,0x8b,0x42,0xec,0x8e,0x4b,0xc1,0xb6,0xaa,0xa0,0xc0,0xb4,0xf2,0x21,0x3f,0x17,0x8a,0xbd,0x41,0xc,0x87,0xc2,0x40,0x7,0x76,0xfc,0x41,0x7d,0x7d,0xe8,0x3f,0x1a,0x50,0x87,0xc2,0xda,0xfa,0x4,0x42,0xa8,0xce,0xc0,0x40,0x95,0x5b,0xa7,0x41,0x50,0xf0,0x39,0x42,0x16,0xf6,0x26,0x42,0x4d,0x31,0xa1,0x40,0xbe,0xfd,0x35,0x42,0x70,0x2c,0xb9,0xc0,0x84,0xc7,0x2a,0xc1,0x41,0x13,0x52,0xc1,0xe4,0x71,0x47,0xc2,0xa3,0xc3,0x53,0x41,0xd5,0xc6,0x34,0xc1,0x62,0xc2,0x1a,0xc1,0x87,0x48,0xfa,0xc0,0x53,0x2c,0xd0,0x41,0x10,0x3a,0x71,0x42,0x91,0xf1,0x44,0xc2,0xc3,0x82,0xa1,0x42,0xa,0x9c,0x24,0xc1,0x7a,0x83,0x14,0x41,0x48,0x95,0xf9,0xc0,0x8,0x81,0x8c,0x40,0xf2,0x58,0xb2,0x40,0x3b,0xc1,0xa8,0x40,0x72,0x5d,0x8e,0xc1,0x32,0xca,0x1c,0xc1,0xb,0xba,0x17,0x42,0xb7,0x1f,0x67,0xc1,0xc8,0xb6,0x12,0x42,0xa,0xce,0xe,0xc1,0xe4,0xcb,0xd0,0xc1,0xf4,0xeb,0x6d,0xc1,0xcc,0xaa,0xe0,0x41,0xb,0x37,0xda,0xc1,0xd7,0x7,0x93,0xc2,0x44,0x1c,0x95,0x42,0x39,0x4d,0x55,0x42,0x56,0x5,0x1c,0xc0,0xc5,0xd8,0xf8,0x41,0xae,0x11,0xdd,0xc2,0xb9,0xe8,0x5,0xc1,0x36,0xfb,0x25,0x42,0x7f,0x6b,0x73,0x41,0xb2,0x2,0x77,0x41,0xae,0x40,0x69,0x42,0x0,0x5d,0x13,0x42,0xa3,0x43,0xa0,0x41,0x8c,0x69,0xe4,0xc1,0x80,0xd1,0xa9,0x42,0x18,0x47,0xc9,0x41,0x68,0xad,0x8e,0xbe,0xa0,0xae,0xc9,0xc0,0xa9,0x44,0x99,0x41,0x1f,0x57,0xaa,0xc2,0xdf,0x93,0x91,0x40,0xe,0xe4,0x92,0xbf,0x9f,0x21,0x6c,0xc1,0x6e,0x8c,0x88,0xc0,0x32,0x2e,0x45,0x41,0x4e,0xd5,0x7a,0xc1,0x13,0xd0,0x88,0x41,0xbc,0x2f,0x5b,0x42,0x74,0xe,0x82,0x41,0x80,0x1c,0xbf,0x41,0x3c,0xd8,0xf5,0x41,0x14,0x73,0x5b,0xc1,0x8a,0xa,0x1e,0xc1,0x22,0x1a,0x76,0xc1,0xd0,0xe5,0x80,0x41,0x51,0x38,0x4b,0xc2,0xec,0xa0,0x52,0x41,0x8c,0x94,0x3a,0x42,0x1,0xf9,0xe6,0xc0,0x1a,0x6a,0x39,0x41,0xed,0xce,0x5f,0xc1,0x5e,0x46,0x21,0xc1,0xb2,0xf2,0xd1,0xc1,0xea,0x7a,0x50,0xbf,0xf6,0x77,0x47,0xc2,0xf3,0x40,0x38,0xc2,0x46,0xbc,0x36,0xc2,0xb7,0xdf,0x2e,0x42,0xe5,0xf6,0x38,0xc1,0x3,0x53,0xaa,0x41,0x4a,0x4,0x47,0x42,0xa2,0xc5,0x4d,0xbf,0xee,0xc4,0xca,0x41,0xd9,0x6e,0x8a,0x40,0x2b,0xa2,0x7d,0x42,0x0,0xfa,0x5c,0x42,0x6c,0xe,0x3f,0xc2,0xc3,0xb2,0x5f,0x41,0xf7,0x72,0x9c,0x41,0x52,0x66,0xec,0xc1,0xce,0x3e,0x93,0xc2,0x62,0x19,0x4,0xc1,0x49,0xaf,0xdc,0xc1,0x4,0xc3,0x5e,0xc2,0x5f,0xd4,0x41,0xc1,0x9a,0xe6,0x95,0x41,0xed,0x6e,0x91,0xc1,0xe,0x86,0x2f,0x40,0x4c,0xa0,0xfb,0x3f,0x2d,0xda,0x73,0xbf,0x2d,0x2c,0xae,0xc1,0xfc,0x65,0x84,0xc2,0x3b,0x12,0x79,0x42,0x5f,0x75,0xda,0x40,0xe5,0x57,0xa0,0xc1,0x15,0xbd,0x3,0xc1,0x81,0xff,0x50,0xc2,0x68,0x4f,0x44,0x42,0x6a,0x72,0x45,0x42,0x59,0x23,0x4e,0x3f,0x3c,0xea,0x7d,0x41,0xd8,0xff,0xd4,0x40,0x24,0xb2,0x8e,0xc0,0x83,0xb9,0x11,0x42,0x46,0x6e,0xea,0xc1,0x96,0x0,0xdc,0x42,0x5a,0xba,0x87,0x42,0x5b,0x2d,0x87,0x42,0x1a,0xb7,0x6a,0x42,0x7a,0x5f,0xc7,0xc1,0x89,0xb3,0x32,0xc1,0x10,0x64,0xa4,0x41,0x91,0x94,0xd1,0x40,0x41,0xa5,0xaf,0x41,0x17,0x76,0xf7,0xc1,0x0,0x79,0x3c,0xbe,0xc6,0xbc,0x8d,0x41,0xe9,0xcd,0x1,0x42,0x42,0x37,0xe7,0x41,0x2,0x3c,0xce,0xc0,0x93,0xb7,0x88,0x42,0xd2,0x4e,0x94,0xc1,0x19,0x3b,0x32,0x42,0x8e,0x95,0x86,0x42,0x50,0x34,0x7d,0x41,0xd2,0x86,0x2a,0x42,0x66,0x8c,0x35,0x42,0xd2,0xb0,0x93,0x42,0x5a,0x9f,0x88,0x40,0xb0,0xca,0x9c,0xbf,0x8e,0x7d,0x15,0x41,0x9,0xe5,0x8d,0xc1,0xb9,0x91,0x6,0xc2,0x9,0x1d,0x93,0x41,0x10,0x83,0x24,0x42,0x7a,0x5b,0x52,0x40,0xaa,0xe3,0xd1,0x41,0xe0,0x71,0xe6,0x3e,0xcb,0x1b,0x7e,0x42,0xd0,0x7c,0x19,0xc2,0x77,0xe1,0xb1,0xc1,0x8b,0xed,0xad,0xc1,0xc0,0xc7,0xf2,0x3f,0xf7,0xf9,0x43,0x42,0x75,0x9,0x39,0xc2,0xa2,0x50,0x65,0x42,0xd0,0x19,0xa1,0x42,0x4f,0x94,0x22,0xc2,0xb2,0x82,0x8,0x42,0x34,0xc4,0x66,0x3f,0x84,0x4f,0x12,0x42,0xed,0x33,0x8e,0x40,0x51,0x65,0x2,0xc2,0x89,0x36,0x59,0xc2,0xd8,0xe3,0x40,0x40,0xf8,0xa7,0xb2,0xc1,0x38,0xda,0x4f,0x42,0xbc,0x8f,0xca,0xc0,0x83,0xcf,0x96,0x41,0xa4,0x47,0x31,0xc0,0xb1,0x5,0x65,0x41,0xf3,0xb4,0x93,0xc2,0x54,0xc2,0x25,0xc2,0x86,0x7d,0xbb,0xc0,0xf3,0xaa,0x22,0x42,0xfe,0x4d,0x47,0x40,0xa6,0x1c,0xe4,0x41,0x3d,0x3b,0x72,0xc2,0x76,0xc0,0x8f,0xc1,0xf4,0x91,0xfa,0x41,0xc7,0x57,0x8c,0xc1,0x5d,0xce,0x18,0x41,0x37,0x31,0xf7,0xc1,0x96,0x58,0x1,0x41,0x4,0x4d,0x12,0x41,0xee,0x86,0xc9,0xc1,0x37,0xd1,0x33,0x42,0x90,0x37,0x52,0x42,0xbc,0x43,0x9d,0xc1,0x43,0x60,0x1,0xc1,0xc1,0x65,0x2a,0xc2,0xb2,0x33,0x1,0xc2,0x12,0x1,0x9a,0x41,0x92,0xd9,0x5f,0x42,0x51,0x4c,0xe9,0x41,0x38,0x25,0xa8,0xc0,0xea,0xd0,0x84,0x40,0x34,0x45,0xd3,0xc1,0xa6,0x65,0xfa,0x40,0x9a,0xa6,0xb,0x42,0x7c,0x77,0x81,0xbf,0x60,0xe4,0xac,0x41,0xe6,0x1b,0xf,0xc1,0xf0,0x9b,0xfb,0xc1,0xf4,0x8c,0x5b,0x40,0x6d,0x83,0xfc,0xbf,0x83,0x4c,0x8e,0x41,0x1f,0x5,0x8f,0x41,0x48,0x9,0x60,0x41,0x30,0xd2,0x9,0x41,0xea,0x90,0x34,0xc1,0xc0,0x4,0x84,0xbf,0x91,0x3c,0xb4,0xc2,0x24,0xab,0x93,0x40,0xbd,0xb5,0xb,0xc1,0x72,0xd4,0x35,0x42,0x55,0xf5,0x46,0xc1,0xc3,0x4c,0x23,0xc0,0xb4,0x96,0x5f,0xc1,0xef,0xe8,0x2f,0x42,0x51,0xef,0xe7,0xc1,0x3c,0x21,0xa7,0xc2,0xd6,0xd4,0x77,0x42,0xc8,0x11,0x4a,0x41,0x17,0x72,0xa3,0xc0,0x2c,0xb1,0xcd,0x3f,0xc4,0xdb,0xe5,0xc0,0x85,0x1a,0x6e,0x41,0x9e,0x78,0x7b,0xc1,0xd7,0xb7,0x4b,0x42,0xb4,0xa5,0x8,0x42,0xcf,0xf4,0x8d,0x41,0x66,0xfe,0x21,0xc1,0xe9,0xcc,0x6f,0x42,0x65,0xef,0x5a,0xc2,0xfc,0x8b,0x3c,0xc0,0x8c,0x13,0x1e,0x40,0xac,0x34,0x8f,0xc1,0x4e,0x5d,0x83,0x41,0x52,0xad,0x77,0xc0,0x2e,0xda,0x7c,0xc2,0xa5,0x9b,0x98,0x42,0xa3,0xf8,0xae,0xc1,0x9c,0xe3,0xc4,0xc1,0x8,0xd2,0x5c,0x42,0x42,0x82,0xad,0x41,0xc2,0x73,0x40,0x42,0xb4,0x4d,0x64,0x41,0xc9,0x7c,0x6,0xc2,0x1c,0x46,0x21,0xc2,0x71,0xcd,0x2b,0xc2,0xd6,0xb3,0x2,0x42,0x4,0x1e,0x91,0xc1,0x2c,0x26,0xca,0x41,0x2,0x4c,0xac,0x41,0xb5,0x66,0xd6,0xc1,0x76,0x93,0x3b,0xc2,0xc1,0xf1,0x9f,0xc1,0xb4,0x46,0x9d,0xc1,0xae,0xd0,0x39,0x42,0x2b,0x97,0x1d,0xc1,0xf4,0xd6,0xd1,0x3f,0x98,0x71,0xc8,0xc1,0xb6,0x85,0xd9,0xc1,0xf8,0xfd,0x2b,0x41,0x86,0x45,0x4,0xc1,0x83,0x7e,0xd4,0xc1,0xcf,0x6f,0x83,0x41,0xc0,0xf4,0xdb,0xc1,0x2a,0xb6,0xef,0xc0,0x26,0x87,0x24,0x41,0x98,0xd9,0x2e,0x3f,0xd5,0x38,0x7,0xc0,0xc3,0xd6,0x22,0x42,0xbb,0xf8,0x8a,0xc0,0x7e,0xed,0x1e,0x40,0x96,0x4c,0x34,0x41,0xdc,0x57,0xe8,0x41,0x1f,0x43,0x1f,0xc2,0xc,0x2,0x93,0xc1,0xae,0x8d,0x98,0xc0,0xca,0x73,0xaf,0xc1,0x9b,0x24,0x3f,0x42,0x91,0x9a,0x12,0xc2,0x3c,0xc,0xcf,0xbf,0x22,0xf,0xb2,0x40,0xfe,0x11,0xd9,0xc1,0x5f,0x3b,0xb,0xc2,0xd4,0x13,0xd8,0xc1,0x3b,0x92,0xeb,0x41,0xc2,0x76,0xa5,0xc0,0xa5,0x8a,0x1,0x42,0xe7,0x2b,0xe3,0x41,0x6b,0x7c,0xd9,0x3f,0xfd,0x72,0x12,0xc2,0x9,0xa1,0xf6,0xbf,0x2b,0x64,0x91,0x41,0x99,0xb7,0x40,0x42,0x4d,0x5b,0x69,0x42,0xef,0xe7,0x3b,0xc2,0x6d,0xe5,0xc9,0x40,0x9f,0xe4,0x0,0x42,0xab,0x97,0xd2,0xc1,0xa,0x35,0x18,0xc2,0x2,0xb3,0xf5,0xc1,0x3f,0xe9,0x7,0xc1,0xb6,0x44,0x9a,0xc2,0xab,0x17,0x80,0x42,0x6e,0x63,0xb0,0x40,0x58,0xc7,0x69,0xc2,0x4a,0x31,0x4b,0x41,0xfa,0x25,0xb8,0xc1,0xbc,0xca,0x42,0xc1,0x4b,0x91,0x15,0x42,0xfd,0x5c,0xb3,0xc2,0xb3,0xfb,0xb3,0x41,0xfd,0x20,0x7c,0x42,0xc4,0x3d,0xa5,0x3f,0xf7,0xef,0x12,0x42,0x3,0xbf,0xf7,0xc1,0x6a,0x2e,0xf3,0x41,0x27,0x3e,0x31,0x42,0xed,0x4d,0xb7,0x41,0x5a,0x99,0x11,0xc1,0x91,0x5b,0x79,0x3f,0xc1,0xb0,0x89,0x42,0x55,0xe0,0xff,0x41,0x74,0xc2,0xf7,0xc0,0x68,0xf4,0x2a,0x42,0x31,0xfc,0x3b,0x41,0x68,0x85,0x62,0x42,0xdc,0xda,0xb,0xc2,0x45,0x1c,0x1c,0xc2,0xa1,0x9b,0x3f,0x42,0xee,0x50,0x3a,0x40,0xe0,0x6a,0xb7,0x40,0x4a,0x9d,0xe7,0xc0,0xb,0xc2,0x6a,0xc1,0xaa,0xf0,0x12,0xc2,0xe0,0xec,0x9f,0x41,0xc4,0xc0,0x3c,0x40,0x0,0xeb,0xda,0x41,0xb2,0xa,0x9c,0x41,0xd2,0xa6,0x8b,0x42,0x54,0x3f,0x7a,0x41,0x1c,0x83,0x5e,0x41,0x6d,0x46,0x7c,0x42,0xc8,0x3b,0xca,0xc1,0x74,0xc5,0x57,0x42,0x32,0xa7,0xe8,0x41,0x53,0x7f,0xc4,0x41,0xc1,0x18,0xdb,0x40,0x5e,0xda,0x3f,0xc1,0xf1,0x84,0xc9,0x40,0x61,0x78,0xee,0x41,0x45,0x8c,0x38,0x42,0x52,0x72,0xa6,0xc0,0x35,0x20,0x8f,0x42,0xa0,0x82,0xb8,0x41,0xa4,0x5c,0x91,0xbf,0x90,0x30,0x17,0xc0,0xf3,0xf8,0x4b,0xc0,0x29,0x33,0xd8,0xc1,0x42,0xcd,0x1c,0x42,0xec,0x73,0xf9,0xc1,0xdd,0xe5,0xd4,0xc1,0x73,0xb9,0x37,0x42,0xb2,0xc0,0x83,0xbf,0x81,0xfc,0x5b,0x42,0x22,0xd7,0x8b,0x42,0xa2,0x6b,0x5,0xc2,0x5c,0x93,0xdb,0xbe,0xc1,0xe3,0x16,0x42,0xdc,0x2d,0xb4,0xc1,0x6,0x9d,0x18,0xc0,0x6f,0x6b,0x2c,0xc2,0x2d,0xfb,0x62,0x41,0x34,0x89,0xb9,0xc1,0x47,0xe9,0x4,0x41,0x46,0xb9,0xa7,0x42,0xdf,0xd8,0x46,0xc2,0x4c,0xe,0xb9,0x42,0x9a,0x59,0x4b,0xc1,0x3d,0xb5,0xb,0xc2,0x25,0x62,0x3b,0x41,0x4d,0xba,0x94,0xc1,0xab,0xcf,0x50,0xc2,0x3e,0x78,0x26,0x42,0x3c,0x1b,0x50,0xc1,0xaf,0x7b,0xbb,0xc1,0xaf,0xba,0x60,0x42,0x94,0xf6,0xc1,0x41,0xdb,0xbf,0xb8,0xc1,0x29,0x37,0x81,0x41,0xfd,0x2b,0x59,0x42,0x27,0xd5,0x33,0xc2,0x4d,0xb1,0xcb,0xc1,0x22,0xc0,0xae,0x41,0x37,0xd9,0x73,0x41,0x26,0xda,0x5c,0x42,0xf0,0xe6,0x3d,0x42,0x20,0xf4,0x69,0xc0,0x48,0x25,0xf0,0x3f,0x4c,0x81,0xd9,0xc1,0x8e,0x67,0x2f,0x42,0x2c,0x6c,0x6c,0xbf,0x60,0xc6,0x36,0x41,0x7e,0x49,0x14,0xc0,0xe5,0xbe,0x9e,0xc1,0x9e,0x1b,0x58,0xc2,0xd0,0x1d,0x9c,0x41,0x5a,0xaf,0xea,0x41,0x14,0x94,0x62,0xc1,0xd6,0x96,0xcc,0xc1,0x28,0x89,0x3e,0x42,0xb8,0x19,0x8a,0x41,0x73,0x3c,0x8f,0x40,0xbc,0x12,0x76,0x41,0x6c,0x20,0xe9,0xc0,0xa1,0xee,0xeb,0x41,0x66,0xe6,0x1,0x41,0x46,0xec,0x93,0xbf,0x81,0x9a,0x71,0x41,0x81,0x33,0xd2,0xc0,0xe3,0x1d,0x74,0xc1,0x9f,0x18,0x24,0x40,0xe,0x96,0xc9,0x40,0xdc,0x7c,0xbe,0xc1,0xac,0x74,0x53,0x42,0x88,0xa8,0x72,0x42,0x15,0x7f,0xe9,0xbf,0x80,0xf5,0xab,0x40,0xe0,0x50,0xa6,0xc1,0x9c,0x4f,0x17,0xc1,0x91,0x2c,0xed,0xc1,0xce,0xc5,0x1e,0xc2,0x3e,0xeb,0x20,0x42,0xd3,0x25,0xdd,0xc1,0x22,0xbc,0x1c,0x41,0xa9,0x10,0x81,0xc1,0x26,0xc4,0xec,0x40,0xdd,0xda,0x87,0xc1,0x28,0x18,0xae,0xc1,0x6,0x4e,0x80,0x40,0xf3,0x4c,0x7,0xc2,0xc3,0xc4,0xe2,0x41,0x2c,0x17,0xc0,0x41,0x8b,0x27,0x39,0xc1,0x66,0xff,0x57,0x41,0xf2,0x0,0x47,0xc2,0xad,0x84,0x88,0x41,0xd0,0xea,0x39,0x41,0x56,0x69,0xa,0x42 }); - Tensor *actual = NN_zeros(4, (size_t[]){ 1, 16, 16, 71 }, DTYPE_F32); - - cycles = read_cycles(); - NN_conv2d(actual, x, w, b, (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 1); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(x); - NN_delete_tensor(w); - NN_delete_tensor(b); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("nchw_to_nhwc: "); - - // [[[[-3.6866636 -1.0975718 -3.5210352 ] [ 3.8849897 2.385294 -2.120533 - Tensor *x = NN_tensor(4, (size_t[]){ 1, 2, 3, 3 }, DTYPE_F32, (uint8_t[]){ 0x4c,0xf2,0x6b,0xc0,0x3c,0x7d,0x8c,0xbf,0xa4,0x58,0x61,0xc0,0xac,0xa3,0x78,0x40,0xa8,0xa8,0x18,0x40,0xd0,0xb6,0x7,0xc0,0xde,0x3b,0x6a,0xbf,0xe9,0xd9,0xaa,0x3f,0xfb,0x81,0x8b,0xc0,0xc8,0x92,0x10,0x3e,0x56,0xa5,0x18,0x40,0x8e,0x62,0x20,0x3f,0xec,0x8b,0xeb,0xbe,0x92,0xba,0x4d,0x40,0x24,0x32,0xb,0x40,0x3a,0x3d,0x8e,0xc0,0x2,0x53,0x3c,0x40,0x92,0x64,0x7c,0xc0 }); - - - // [[[[-3.6866636 0.14118493] [-1.0975718 2.3850913 ] [-3.5210352 0.626 - Tensor *golden = NN_tensor(4, (size_t[]){ 1, 3, 3, 2 }, DTYPE_F32, (uint8_t[]){ 0x4c,0xf2,0x6b,0xc0,0xc8,0x92,0x10,0x3e,0x3c,0x7d,0x8c,0xbf,0x56,0xa5,0x18,0x40,0xa4,0x58,0x61,0xc0,0x8e,0x62,0x20,0x3f,0xac,0xa3,0x78,0x40,0xec,0x8b,0xeb,0xbe,0xa8,0xa8,0x18,0x40,0x92,0xba,0x4d,0x40,0xd0,0xb6,0x7,0xc0,0x24,0x32,0xb,0x40,0xde,0x3b,0x6a,0xbf,0x3a,0x3d,0x8e,0xc0,0xe9,0xd9,0xaa,0x3f,0x2,0x53,0x3c,0x40,0xfb,0x81,0x8b,0xc0,0x92,0x64,0x7c,0xc0 }); - Tensor *actual = NN_zeros(4, (size_t[]){ 1, 3, 3, 2 }, DTYPE_F32); - - cycles = read_cycles(); - NN_nchw_to_nhwc(actual, x); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(x); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("nhwc_to_nchw: "); - - // [[[[ 2.8086348 4.2102356 ] [ 0.46079934 -1.6898549 ] [-2.58273 -2.220 - Tensor *x = NN_tensor(4, (size_t[]){ 1, 3, 3, 2 }, DTYPE_F32, (uint8_t[]){ 0xac,0xc0,0x33,0x40,0x40,0xba,0x86,0x40,0xe4,0xed,0xeb,0x3e,0x2a,0x4d,0xd8,0xbf,0x73,0x4b,0x25,0xc0,0xb9,0x17,0xe,0xc0,0xea,0xf1,0x6b,0xbf,0x8a,0xaa,0x4,0xc0,0x80,0xd5,0x9e,0x40,0xd0,0x7,0xa,0xc0,0x44,0xdc,0x4,0x40,0x4c,0x5f,0x94,0xc0,0x4a,0x31,0x22,0x40,0x66,0x25,0x88,0x40,0xc8,0x65,0x65,0xc0,0xa8,0x4a,0xa3,0xbf,0x92,0x89,0x98,0x3f,0x7,0x28,0x99,0xc0 }); - - - // [[[[ 2.8086348 0.46079934 -2.58273 ] [-0.92166007 4.963562 2.075944 - Tensor *golden = NN_tensor(4, (size_t[]){ 1, 2, 3, 3 }, DTYPE_F32, (uint8_t[]){ 0xac,0xc0,0x33,0x40,0xe4,0xed,0xeb,0x3e,0x73,0x4b,0x25,0xc0,0xea,0xf1,0x6b,0xbf,0x80,0xd5,0x9e,0x40,0x44,0xdc,0x4,0x40,0x4a,0x31,0x22,0x40,0xc8,0x65,0x65,0xc0,0x92,0x89,0x98,0x3f,0x40,0xba,0x86,0x40,0x2a,0x4d,0xd8,0xbf,0xb9,0x17,0xe,0xc0,0x8a,0xaa,0x4,0xc0,0xd0,0x7,0xa,0xc0,0x4c,0x5f,0x94,0xc0,0x66,0x25,0x88,0x40,0xa8,0x4a,0xa3,0xbf,0x7,0x28,0x99,0xc0 }); - Tensor *actual = NN_zeros(4, (size_t[]){ 1, 2, 3, 3 }, DTYPE_F32); - - cycles = read_cycles(); - NN_nhwc_to_nchw(actual, x); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(x); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("conv2d: "); - - // [[[[-3.1635952 1.7389232 4.708226 ... -4.831943 -2.7696085 -1.648354 - Tensor *x = NN_tensor(4, (size_t[]){ 1, 12, 12, 16 }, DTYPE_F32, (uint8_t[]){ 0x58,0x78,0x4a,0xc0,0x9,0x95,0xde,0x3f,0xca,0xa9,0x96,0x40,0x36,0x32,0xbf,0xbf,0x80,0x83,0x3a,0xbd,0x18,0x74,0x9a,0xc0,0x5a,0x93,0x99,0xc0,0xfe,0x25,0x8b,0x40,0xf6,0xc6,0x87,0x40,0x5c,0xd,0xc3,0xbf,0x5f,0x11,0xfd,0xbf,0x14,0xb9,0xa5,0xbe,0x26,0x7a,0x14,0x40,0x47,0x9f,0x9a,0xc0,0x44,0x41,0x31,0xc0,0x48,0xfd,0xd2,0xbf,0x7c,0x48,0xb,0xc0,0xc8,0x41,0x7,0xbe,0x18,0x69,0x69,0x40,0x8f,0xbc,0x8b,0x3f,0x8,0xcc,0x90,0xc0,0x2f,0xfb,0x93,0x40,0x8e,0xd4,0x80,0x40,0xdc,0x81,0xc9,0x3f,0x39,0xa2,0x1c,0x40,0xad,0x3f,0xef,0x3f,0x6f,0x25,0x83,0x40,0x2d,0xe3,0x99,0xc0,0x5c,0x34,0x47,0xc0,0x34,0x8d,0x22,0xbf,0x4a,0x7b,0x73,0xbf,0x66,0x85,0x54,0xc0,0x90,0x70,0x99,0xc0,0x54,0x64,0x74,0xc0,0x3e,0xcd,0x46,0xbf,0xe2,0xd1,0x87,0x40,0x52,0x27,0x54,0x40,0xcd,0x79,0xb8,0x3f,0xed,0x89,0x44,0xc0,0x18,0xbc,0x0,0xc0,0xe8,0x9d,0xf6,0x3e,0xf,0x4e,0x94,0xc0,0x88,0xba,0x69,0xbe,0x12,0x25,0x82,0x3f,0x63,0xa7,0x90,0x40,0xb7,0xff,0xa7,0xbf,0x65,0xd,0x9d,0x40,0xe4,0x22,0xc1,0x3e,0xfe,0x2,0x5e,0xc0,0x45,0x38,0x97,0x40,0x66,0xb7,0x8a,0x40,0xab,0xd9,0x7c,0xc0,0x5e,0xa1,0x39,0xc0,0x8,0x2,0x19,0x40,0xee,0xe5,0x44,0xc0,0xac,0x95,0x59,0x40,0xa2,0xae,0x18,0xc0,0xfb,0xa1,0xc6,0xbf,0x16,0xb9,0xb7,0xbf,0x26,0xa5,0x98,0x40,0xb,0x6c,0xd8,0xbf,0xfa,0xe3,0x78,0xbf,0xe4,0x9f,0x41,0x40,0x33,0xf1,0x5a,0xc0,0xc0,0x4c,0xc5,0xbc,0xf9,0x2c,0x77,0xc0,0x36,0xad,0x93,0xc0,0x95,0x1e,0x92,0xbf,0x98,0x7f,0xd,0x3f,0x5f,0x71,0x88,0x40,0x4f,0x70,0x99,0xc0,0x33,0x28,0xb8,0xbf,0xbe,0x6b,0xa8,0x3f,0xbc,0xab,0xf1,0x3f,0x6,0xf6,0x3a,0x40,0x7d,0xa7,0x80,0xc0,0x83,0x76,0x9c,0xbf,0xe7,0xfc,0x93,0x3f,0xd2,0x41,0x80,0xc0,0x84,0x40,0x21,0x40,0xb4,0xaa,0x98,0xc0,0xde,0xac,0x47,0x40,0xc7,0x12,0xd0,0x3f,0x7f,0xca,0xb5,0xbf,0x25,0xa1,0xcf,0x3f,0x42,0x84,0x87,0x40,0xa4,0x67,0x6b,0x40,0xd4,0x18,0x42,0x40,0x16,0x48,0x3a,0xc0,0xe6,0xe8,0xb7,0x3f,0x27,0x24,0x70,0x40,0x52,0xc1,0x61,0x3f,0xb0,0xdc,0x53,0x40,0x5a,0x75,0x46,0xc0,0xb7,0xe9,0x60,0x40,0xd0,0xd5,0x29,0xbe,0xc0,0x8c,0x8f,0xc0,0x86,0xe7,0xa5,0xbf,0x5e,0x6a,0x8d,0x40,0x72,0x94,0xdf,0xbf,0xc,0xb1,0x5d,0xbf,0x2a,0x3,0x0,0xc0,0x2e,0xfe,0x2d,0xc0,0x88,0xc1,0x5d,0x3f,0x64,0x1f,0x42,0x40,0x90,0x5a,0x17,0x3f,0x4,0xe5,0x9d,0xbe,0x8c,0x16,0x94,0x3e,0xff,0xf6,0x6f,0xc0,0x78,0x9b,0x28,0xc0,0xe8,0x19,0x80,0x3e,0x32,0xc6,0x7f,0xc0,0x2a,0x7f,0x1e,0x40,0xec,0x18,0x43,0x3f,0x40,0xa6,0x57,0x3d,0xa4,0x48,0xa4,0xbe,0xae,0x22,0x87,0x40,0x19,0x5,0x92,0x40,0x62,0x3f,0x1c,0x40,0x3f,0xef,0x1e,0x40,0x48,0x29,0x1b,0xc0,0xb0,0xcf,0x2,0x40,0xd8,0x6f,0x58,0xc0,0xcf,0x4b,0xa,0x40,0xf4,0x39,0x63,0xc0,0x0,0xb,0xe0,0xbc,0x65,0xee,0x67,0x40,0x6a,0x7d,0x54,0x40,0x12,0x79,0x8d,0x40,0x88,0x51,0xda,0x3f,0x10,0x6f,0xf8,0x3f,0x63,0xa0,0xab,0x3f,0x24,0xab,0x69,0x40,0xbc,0xeb,0x27,0x40,0x33,0xd8,0xbc,0x3f,0x7c,0x4e,0xdf,0xbf,0x4f,0xde,0x1a,0xc0,0x12,0x3b,0x9e,0xbf,0x66,0xb7,0x18,0x40,0x71,0x30,0x2e,0xc0,0x58,0xda,0xae,0x3f,0x2,0xfc,0x8b,0x40,0xc0,0x7a,0x87,0x40,0x5e,0x99,0x6b,0xc0,0xfb,0x6b,0xb6,0x3f,0x3c,0x3d,0x51,0x40,0xd9,0x54,0x91,0xc0,0x72,0x84,0x4c,0x40,0x93,0x63,0x47,0xc0,0x28,0x60,0x67,0xc0,0x50,0xa5,0x7,0xc0,0xdc,0xb9,0xf0,0xbf,0x24,0x4d,0x4,0xc0,0x60,0x41,0xb8,0x3f,0xc7,0xef,0xf7,0x3f,0xdc,0xbb,0xf8,0x3f,0xf1,0xef,0x5c,0x40,0x86,0x77,0x4a,0xc0,0xba,0xec,0x97,0xc0,0x44,0x5b,0x80,0xc0,0x4b,0xe1,0x2f,0xc0,0xf2,0x5e,0x12,0xc0,0xbd,0x9c,0xc,0x40,0x53,0x92,0x67,0xc0,0xa,0xf7,0x69,0xc0,0xc3,0x5e,0x2b,0x40,0xee,0x9c,0x4b,0xc0,0x6e,0x14,0x70,0x3f,0x22,0xff,0x73,0xc0,0xf2,0x31,0xf4,0x3f,0x4e,0xf5,0x47,0x40,0x78,0x95,0x86,0xc0,0xbe,0xb2,0xd9,0x3f,0x5a,0xc4,0x27,0xc0,0x97,0x15,0x4b,0x40,0xb0,0xe7,0x8f,0x40,0xd6,0xfa,0x86,0xc0,0x15,0x64,0xef,0x3f,0x29,0x1c,0x58,0x40,0xa1,0x77,0x91,0x40,0xaf,0xae,0x71,0x40,0x1e,0xbd,0x7b,0x3f,0x20,0xa9,0x95,0x3e,0x67,0xdd,0x83,0x3f,0x1c,0xc7,0x3e,0xc0,0x8,0xca,0x7a,0xbf,0xd0,0xeb,0x9d,0xbd,0xec,0x7d,0x4a,0xc0,0x18,0x4,0x63,0xbe,0x0,0xa,0x2a,0xbf,0xe9,0xd,0xe0,0xbf,0xd6,0x91,0xc4,0xbf,0x24,0x59,0x9f,0xc0,0xb1,0x7a,0x98,0x40,0x98,0xba,0x1d,0x40,0x6c,0x59,0x67,0x40,0xb2,0x32,0x88,0xc0,0x16,0xa4,0x9c,0xc0,0xc,0xf9,0x6d,0x40,0x86,0xc5,0x60,0xbf,0x66,0x86,0x47,0x3f,0xe9,0x75,0x20,0x40,0xfc,0x96,0xa3,0x3e,0x60,0x91,0x29,0xbe,0xc2,0x24,0x3e,0x40,0x72,0xa4,0x7f,0x40,0x2f,0x5a,0xb2,0xbf,0xff,0x99,0x88,0xc0,0xc6,0x77,0x2f,0xc0,0x1a,0xae,0x64,0x40,0xe0,0x9a,0xde,0x3e,0xaf,0xff,0x88,0x40,0xa7,0xe1,0xdf,0xbf,0x84,0x9a,0x97,0xc0,0xb5,0xbf,0xc6,0x3f,0x38,0x5d,0x8,0xc0,0x92,0x50,0x3f,0xc0,0x58,0x80,0x47,0x40,0x0,0x7,0xb2,0x3e,0x18,0x99,0xda,0xbe,0xb4,0xd1,0x9b,0x40,0xb9,0x61,0x8b,0x40,0x19,0xb5,0x82,0xc0,0xc8,0x14,0x93,0xc0,0x7e,0x3d,0x1e,0xc0,0x60,0x74,0x78,0xc0,0x6c,0x36,0x28,0xc0,0xbc,0xe3,0x57,0x40,0x51,0xed,0x54,0xc0,0x9e,0xbe,0x92,0x40,0xd4,0xae,0xc7,0x3f,0xb0,0x61,0x5e,0x3e,0x92,0xf1,0x5a,0x3f,0xf9,0x15,0x87,0x3f,0x63,0xec,0xcd,0x3f,0x8b,0x20,0x82,0xc0,0x30,0x18,0xb2,0xbd,0x40,0x48,0x54,0x40,0xf4,0xf5,0x9e,0x40,0x9c,0x6d,0x87,0xbe,0xe4,0x98,0x64,0xc0,0xca,0x10,0x13,0x40,0x45,0x64,0x92,0xc0,0xbf,0x9c,0x8e,0x40,0x5b,0xad,0x44,0x40,0xe9,0x21,0x10,0x40,0xba,0xd7,0x2e,0x3f,0x1e,0x9e,0x68,0x40,0x58,0x44,0x1,0xc0,0x19,0x74,0x85,0xc0,0x54,0xe4,0x30,0xc0,0x20,0x20,0x6e,0x40,0x64,0xee,0x1f,0xc0,0x69,0x28,0x7f,0xc0,0x12,0x2f,0x8c,0x3f,0x1e,0xc7,0x46,0xc0,0x0,0xb8,0x58,0xbe,0x4,0x1c,0x4b,0xc0,0x30,0x39,0x87,0x3f,0xf2,0xf5,0x50,0xbf,0xa6,0xe2,0x28,0x3f,0x8b,0xea,0x13,0x40,0xe4,0xb,0x4e,0xc0,0xb4,0x34,0xda,0xbf,0x4,0x62,0x55,0xc0,0xbf,0x3c,0x85,0x40,0x8a,0x26,0xe5,0xbf,0xd6,0x5,0xf1,0x3f,0x5d,0xb4,0x93,0x3f,0x5f,0xda,0x9d,0xc0,0x6d,0x2c,0x63,0xc0,0xe0,0x7a,0xa4,0xbf,0xa5,0x50,0x75,0xc0,0x18,0xae,0x29,0x40,0xd3,0x26,0x49,0x40,0x80,0x48,0x16,0xbc,0x5c,0xbb,0x1c,0x3f,0xeb,0xa7,0xa8,0x3f,0xa8,0xdc,0xd4,0x3f,0xe2,0x93,0x77,0xbf,0xc,0xd4,0xfb,0xbf,0x3e,0xdd,0x45,0xc0,0x30,0xe0,0x4b,0x3e,0x16,0xa,0x7d,0x40,0x18,0x1b,0x1f,0xbf,0xa,0xac,0x89,0x40,0x15,0xdd,0xdf,0x3f,0xac,0xa6,0x24,0xc0,0x1f,0x97,0xf8,0x3f,0x5c,0x2d,0x0,0x40,0x24,0x6b,0xe,0xc0,0x22,0x5c,0x60,0xbf,0x8c,0xee,0x4,0xbf,0x45,0xec,0xe1,0x3f,0xfe,0xb1,0x79,0x40,0x5c,0xc1,0x8c,0xbf,0x12,0x16,0x50,0x40,0xd7,0x8a,0x2c,0x40,0x9,0xa3,0x8a,0xc0,0x6c,0xef,0x69,0x40,0xa8,0x5f,0x4f,0xbe,0x50,0xfe,0x76,0x40,0x52,0x42,0x79,0x40,0x60,0xef,0x9a,0xc0,0xdf,0x3f,0x85,0xc0,0xe2,0xb3,0x11,0xbf,0x43,0xa8,0xcd,0x3f,0x50,0xb6,0x4b,0xbf,0xd2,0x8,0x9a,0xc0,0x9b,0x10,0x2e,0x40,0x6,0xfc,0x36,0xc0,0xbf,0x45,0x11,0x40,0xc4,0x6,0x62,0x40,0x5e,0xdd,0xd7,0xbf,0xf5,0xb7,0x40,0x40,0x42,0x36,0x2a,0x3f,0x82,0xeb,0xc8,0xbf,0xac,0x11,0xa6,0x3e,0xfd,0x25,0xe6,0x3f,0x48,0xcd,0x23,0x40,0xa8,0x9f,0x37,0xc0,0x1d,0x2f,0x6f,0x40,0x2,0x59,0x17,0xc0,0x5,0xd4,0x89,0xc0,0x82,0x55,0xa,0xc0,0xd0,0xa6,0x8d,0xc0,0x4b,0x33,0xb3,0x3f,0x24,0x57,0xac,0x3e,0x80,0x53,0x79,0xbe,0xb7,0x92,0x58,0xc0,0xf8,0xb0,0x28,0x40,0xe8,0x9f,0x51,0x3f,0xdd,0x9f,0xa0,0xbf,0xe6,0xc7,0x62,0x3f,0xb5,0xb8,0xe1,0x3f,0x1c,0x41,0x40,0xc0,0x42,0x55,0xb8,0xbf,0x70,0x51,0x11,0xc0,0xae,0x9c,0x8d,0x40,0x35,0x40,0x9e,0x3f,0x4,0x80,0x71,0xc0,0x6a,0xfe,0x61,0x40,0x2c,0x3f,0x4b,0xbf,0xb8,0x32,0xb0,0x3e,0x58,0x9d,0x25,0x3f,0x3c,0x7e,0x15,0xbf,0x7d,0x78,0x97,0x40,0x4b,0x9d,0xa,0x40,0xe7,0xca,0x89,0x3f,0x9b,0xad,0xe8,0xbf,0x47,0x4d,0x93,0x3f,0xce,0xfe,0x68,0xc0,0xff,0x45,0xdd,0xbf,0x1e,0x41,0x22,0x40,0xf2,0x78,0x9d,0xc0,0x28,0xcf,0x0,0xbe,0x8c,0xe1,0xeb,0xbf,0x71,0x7c,0x23,0x40,0xc6,0xe2,0x47,0xc0,0xd6,0x8c,0x5d,0x3f,0xf7,0x81,0xb8,0xbf,0x1,0x3b,0x86,0x40,0xb0,0xfe,0x3e,0xbf,0x53,0xae,0x69,0xc0,0xdc,0xd4,0xc6,0xbf,0x3e,0x96,0x61,0x40,0x43,0x8,0xf5,0x3f,0x51,0x7,0x89,0x3f,0x85,0x8a,0x47,0x40,0x88,0x25,0xf7,0x3f,0xc,0x1d,0x24,0xbf,0xf6,0x7b,0x29,0xc0,0xfe,0x1c,0x99,0xc0,0x2,0xe4,0x19,0x40,0xf2,0x8d,0x79,0x40,0xf1,0x9b,0xf4,0xbf,0xbf,0xd3,0xf,0xc0,0x12,0xb1,0x5c,0x3f,0x54,0x87,0xec,0xbe,0x9c,0xb3,0x75,0x40,0x50,0x44,0xb1,0xbd,0x28,0x38,0x1a,0xbe,0x1,0xc0,0x94,0xc0,0x35,0x57,0xc3,0x3f,0x80,0x55,0x8e,0x3c,0x3f,0xfc,0x96,0x3f,0x4e,0xa4,0x43,0x40,0xa2,0x22,0x8,0x40,0x0,0x9,0x1c,0x3c,0x98,0x3d,0xc5,0xbe,0xce,0xa0,0x21,0xc0,0x56,0x7c,0x90,0x40,0xd6,0x2c,0x85,0x40,0x80,0xf7,0xa5,0xbc,0x12,0xd0,0x9f,0x40,0xfe,0x7f,0x8c,0x40,0x70,0xf8,0x37,0x40,0x55,0x7e,0x24,0x40,0x29,0x60,0xfd,0x3f,0x18,0x89,0x60,0xbf,0xe0,0x66,0xfe,0x3e,0xf6,0x2a,0x82,0x40,0x76,0xac,0x57,0xbf,0x80,0xbc,0xc7,0x3f,0xc8,0x8b,0xce,0xbf,0x42,0xe,0x52,0x3f,0xf6,0xd9,0x39,0x40,0xac,0x4,0x47,0x40,0xa,0x95,0x1c,0x40,0xa0,0x44,0x18,0x40,0xcc,0xa3,0x99,0xbf,0xcb,0xb1,0x91,0x40,0xbd,0xd4,0x60,0x40,0xe5,0x77,0x97,0x40,0xb7,0x5d,0x81,0xc0,0xd6,0x1,0x11,0xc0,0x3a,0xdb,0x84,0xc0,0xc4,0xc6,0xe2,0x3e,0x83,0x82,0x74,0x40,0xc9,0xb5,0x5a,0xc0,0xb,0x7f,0xa7,0x3f,0x10,0xe6,0xcc,0xbd,0xe1,0xf7,0x94,0xc0,0x78,0xe,0x49,0xbe,0x7a,0x49,0x16,0xbf,0x30,0x34,0x1b,0xc0,0x32,0xb3,0x47,0xc0,0x4b,0x2e,0x3d,0x40,0xb8,0x5a,0x3,0xbf,0x38,0xb0,0x7d,0xbf,0x5e,0xef,0xb1,0xbf,0x4e,0xa9,0x23,0xbf,0xe,0x87,0xb0,0xbf,0xa4,0xb4,0x3f,0xc0,0xfc,0x87,0x8,0x40,0x70,0x61,0x97,0xbd,0xc5,0x14,0x8f,0xc0,0xd1,0xb0,0x20,0xc0,0x3b,0x92,0x82,0xbf,0x7c,0x1b,0xf4,0xbf,0x41,0xfa,0x96,0x3f,0x23,0xaf,0x95,0x40,0xea,0xf3,0x66,0xc0,0x90,0x42,0x96,0xbd,0xca,0x5,0x8b,0x40,0xd8,0x87,0x3a,0xc0,0xd8,0xc1,0x79,0xc0,0x2d,0xb4,0xaa,0x3f,0x40,0x9e,0x6e,0xbd,0x80,0xf4,0x85,0xbd,0xca,0xa,0x49,0x40,0xa3,0xe7,0x88,0xc0,0xa,0x72,0x3f,0xc0,0x31,0x18,0x5e,0x40,0xf6,0xa7,0x60,0xc0,0xd0,0xd8,0x2b,0xbf,0xfa,0x90,0x14,0x40,0x4e,0xc1,0x2e,0xc0,0xe4,0x25,0x78,0xc0,0xbc,0x18,0x3f,0xc0,0xe8,0x21,0x6e,0xc0,0x16,0x1c,0x89,0xc0,0xc2,0xc5,0x51,0xbf,0xe,0x85,0x94,0xc0,0x45,0xa2,0x42,0xc0,0x3c,0xed,0xbc,0x3e,0x6e,0xfd,0x94,0x40,0x24,0xc4,0x9d,0x40,0x49,0xbd,0x85,0x40,0x7c,0xb4,0xd,0x3f,0x2b,0x3f,0x47,0x40,0x5b,0x18,0xc8,0xbf,0x22,0xbd,0x4d,0xc0,0xa6,0x97,0x20,0x40,0x9c,0x7a,0xfc,0x3f,0xd3,0x45,0xe1,0x3f,0x37,0xe8,0x14,0x40,0x87,0xd2,0xa0,0xbf,0x25,0x67,0x6b,0x40,0x8e,0x65,0x2e,0x40,0x7c,0x3b,0xb,0xc0,0xd3,0x2c,0x6b,0x40,0xbf,0xa4,0xe6,0x3f,0xc8,0x83,0x2e,0x3e,0x20,0xd2,0x99,0x3d,0x96,0x85,0x89,0x40,0x60,0x58,0x26,0x3e,0xac,0x12,0xe1,0x3f,0x38,0x86,0x69,0x40,0xac,0x5f,0x8a,0x3e,0x69,0xf2,0x90,0x40,0x2,0x6b,0x3d,0xc0,0xc8,0x1e,0xfa,0xbe,0xc8,0x3,0xcf,0x3e,0xc,0xd2,0x8a,0x3e,0x8c,0x99,0x68,0xc0,0x45,0xaf,0x98,0x40,0xe2,0x8f,0x33,0xc0,0x92,0xf7,0x66,0x40,0x81,0x51,0xff,0xbf,0x91,0x79,0xfe,0x3f,0x5e,0x52,0x30,0xc0,0xda,0x5b,0xb,0xc0,0x64,0xbb,0xa8,0x3f,0xd2,0xc,0x5c,0x40,0x2c,0xbf,0xcd,0xbe,0x58,0x2,0xf0,0x3f,0x8a,0x83,0x30,0xc0,0x32,0x4e,0xca,0x3f,0x8,0xd1,0xf,0xbf,0x15,0xd1,0x91,0xbf,0xc5,0x8d,0x1d,0x40,0xa0,0x71,0xd4,0xbf,0x64,0x6e,0x43,0xc0,0xf7,0x89,0xb5,0xbf,0x2c,0x95,0x1f,0x40,0xf8,0x2b,0x99,0x40,0xe0,0xa2,0x90,0x40,0xea,0x87,0x5f,0x40,0x66,0x7b,0x45,0xc0,0xa,0xe2,0x8e,0x40,0x92,0x45,0x2,0x40,0x44,0x82,0x63,0x3f,0x46,0x82,0x39,0xc0,0x66,0x3,0x2a,0xc0,0xbc,0x1b,0xa5,0x3f,0x90,0xfa,0xe2,0xbe,0x8c,0xcd,0xb4,0xbf,0xba,0x43,0x74,0xc0,0xe,0x60,0x88,0x40,0x4e,0x22,0xc6,0x3f,0xf0,0x2f,0x28,0x3f,0x84,0x85,0xf0,0x3e,0xc2,0x31,0x2c,0x40,0xae,0xf9,0x40,0xc0,0xf0,0x74,0x4c,0xbe,0x6b,0x39,0x8d,0x40,0xba,0xb0,0x46,0xbf,0xb6,0xfe,0x88,0xc0,0xc6,0xe5,0x3e,0xc0,0xb2,0x63,0x46,0x40,0xac,0x84,0x28,0x40,0x92,0xde,0x5c,0x40,0x4c,0x30,0xe2,0xbf,0xea,0xc8,0x14,0xc0,0xd5,0x73,0x8d,0xc0,0x64,0x9f,0xb0,0x3e,0x83,0x56,0x8a,0xbf,0xa9,0xce,0x97,0x40,0x6e,0x29,0x10,0xc0,0x60,0x56,0x4b,0xc0,0x92,0xc5,0x1,0x40,0x61,0x82,0xe9,0xbf,0x4c,0xac,0xed,0xbe,0x42,0x9d,0x9f,0x40,0x28,0x97,0x47,0x40,0x62,0x78,0x9f,0xc0,0x98,0xed,0x76,0x3e,0x88,0x21,0x21,0x3e,0x8,0x7b,0x9c,0x40,0xf2,0x53,0x8a,0xc0,0x3e,0xfe,0x44,0x40,0x68,0x1b,0x9d,0xc0,0x6c,0x49,0x9d,0xc0,0xf8,0x8,0x24,0xc0,0x8b,0x7,0x99,0xc0,0xe0,0x7c,0x9d,0xbe,0x8b,0x34,0x81,0x40,0x6b,0x8d,0xb1,0xbf,0xf,0xad,0x72,0xc0,0x3c,0x3c,0xdc,0xbe,0x93,0x39,0x82,0xc0,0x3c,0x19,0x59,0x40,0x9a,0x10,0x39,0x3f,0x10,0xe7,0x8d,0x40,0xfe,0xbf,0x7,0x40,0xde,0xd7,0xe4,0x3f,0x2b,0xa7,0xd7,0x3f,0x5e,0x9e,0x94,0x40,0x2e,0x2f,0x48,0xc0,0x7d,0xaf,0x43,0xc0,0xec,0x19,0x76,0x40,0x2d,0x44,0xe8,0x3f,0x2e,0xb8,0x92,0x40,0xfe,0x2a,0x95,0x3f,0xb7,0xb5,0xe7,0x3f,0xfe,0x38,0x45,0x40,0xa8,0x81,0x50,0x40,0xd0,0x96,0x2f,0x40,0xe8,0xf1,0x7a,0xc0,0x62,0x43,0xb9,0x3f,0x6,0xfd,0x5a,0xc0,0xf4,0x38,0x25,0x3f,0x2e,0x2e,0x2f,0x40,0xd0,0xea,0xd5,0xbf,0x8b,0xd1,0x8a,0x40,0xf4,0x74,0x8e,0x40,0x4d,0x40,0xb8,0x3f,0xba,0x7e,0x67,0xc0,0x30,0xb8,0xd5,0x3d,0x41,0xfc,0x78,0x40,0xa6,0xe6,0x65,0x3f,0x14,0x63,0x8b,0x40,0x48,0x3f,0xb9,0x3e,0x65,0x33,0x14,0xc0,0x9c,0xd1,0x50,0x40,0xe3,0xca,0xd3,0x3f,0xa4,0xad,0x30,0x40,0x70,0x34,0x3f,0xc0,0xc8,0xa1,0x72,0xc0,0xcb,0x53,0x56,0x40,0xae,0xe4,0xdf,0x3f,0xc8,0x1c,0x6a,0x40,0xd8,0x65,0x85,0xc0,0x9b,0x3f,0x13,0xc0,0x90,0x40,0x22,0xbe,0x4a,0x34,0x26,0xc0,0x64,0xec,0x47,0x40,0x56,0x26,0x7e,0x40,0xfe,0xad,0x8a,0x40,0x9c,0xbe,0x33,0x3f,0x10,0x4b,0x91,0xc0,0x3a,0x8f,0xe5,0xbf,0xa,0x7a,0x94,0x3f,0x31,0xb8,0xac,0xbf,0x52,0xa9,0x8,0x40,0x2e,0x8,0xab,0xbf,0x6d,0x36,0x84,0x40,0xa0,0x98,0x8a,0x40,0x7e,0x88,0x9e,0x40,0xfa,0xf4,0xd3,0x3f,0x21,0xa1,0x58,0xc0,0xed,0xa3,0xa5,0xbf,0x62,0xc5,0x2a,0xc0,0x38,0xee,0xf,0x40,0xd4,0x9a,0xe0,0xbe,0x41,0x20,0x0,0x40,0xf3,0xc5,0xb9,0x3f,0x68,0x6e,0xc4,0xbf,0xa2,0x56,0x31,0x3f,0x60,0x99,0x44,0xbf,0x34,0x9d,0x5d,0x3f,0xd0,0xd6,0x53,0xc0,0x50,0x92,0xbd,0x3d,0x67,0xea,0x73,0x40,0xc8,0x8f,0x25,0x40,0x6f,0xc4,0x46,0xc0,0x40,0x7e,0x85,0x40,0x9d,0xae,0xf4,0xbf,0x47,0x2,0x8f,0x40,0x1c,0x7f,0x82,0xbf,0xcc,0x57,0x9a,0x40,0x9c,0x2e,0x3c,0x40,0xd8,0x9e,0xd3,0xbe,0xfb,0x9a,0x57,0x40,0x4b,0xe6,0x87,0x40,0xe7,0x4a,0x7a,0xc0,0xfe,0x15,0x66,0x3f,0x75,0xe,0x5b,0x40,0x90,0x8b,0x4,0xbf,0x80,0x8c,0x4a,0x40,0xaf,0x9c,0x79,0x40,0x60,0xcc,0x7d,0xc0,0x3f,0x7b,0x2e,0x40,0xe1,0x2,0x93,0xc0,0xe4,0x5a,0x48,0x40,0xa,0xf1,0x30,0xc0,0xa7,0x31,0xc7,0xbf,0xa1,0x85,0x9c,0x3f,0x4,0xc6,0x89,0xc0,0x98,0x7f,0x30,0xbe,0x8d,0xe7,0xdf,0xbf,0x7f,0x7e,0xca,0x3f,0xc8,0xbd,0x97,0xbe,0xa2,0x67,0x91,0xc0,0xff,0x2,0x9e,0xbf,0xd2,0xa6,0x47,0x3f,0x20,0x37,0x2f,0x40,0x5b,0xb1,0x36,0xc0,0x14,0x8d,0x42,0xc0,0xa6,0x2a,0x10,0x40,0xbe,0x15,0x40,0xc0,0xde,0xf6,0xfc,0xbf,0x18,0xec,0x9f,0xc0,0xfc,0x2c,0x9a,0xbf,0x40,0x29,0x7f,0xc0,0x3a,0x89,0x48,0x3f,0x5e,0x91,0x81,0x40,0xf6,0x1b,0xe,0x40,0x6e,0x63,0x85,0xc0,0xbd,0x6c,0x8f,0x40,0x57,0xfc,0x8e,0xc0,0x10,0x90,0xf5,0xbf,0xb6,0x88,0x33,0x40,0xe,0xd7,0x17,0x40,0x7a,0x59,0x30,0x40,0xec,0x4d,0x98,0xbf,0xec,0x1d,0x8c,0xc0,0x4c,0xa8,0x9c,0xc0,0x74,0xc3,0xd1,0x3e,0xf1,0xc9,0x9a,0xc0,0x18,0xf1,0x52,0xc0,0x68,0x1e,0x51,0x40,0xf0,0xd,0x45,0xbf,0x8e,0x5f,0xdf,0x3f,0x7b,0xbf,0x7b,0xc0,0x40,0xe5,0x4a,0x3f,0x67,0x2c,0x90,0x40,0xbc,0xb4,0x68,0x3f,0x52,0xc6,0x61,0x3f,0x7a,0x79,0x45,0xc0,0x49,0x60,0x67,0xc0,0x84,0x8c,0x3a,0x40,0xa9,0x3e,0x8f,0xc0,0x2c,0xd2,0x9c,0xbe,0xa2,0x34,0x80,0xc0,0x50,0xec,0xb3,0x3e,0x3b,0xc8,0x9c,0xc0,0x5b,0xdf,0xd3,0x3f,0x0,0x65,0xb,0x3c,0xe2,0x6b,0x52,0xc0,0xaa,0x4d,0xee,0xbf,0x89,0xc1,0xff,0xbf,0x7,0xa5,0xf,0xc0,0x36,0x98,0x9f,0xbf,0xee,0xd4,0x6b,0x3f,0x42,0x1e,0x38,0xc0,0x24,0x85,0xa1,0x3f,0xd5,0xd7,0x83,0xc0,0xb8,0xad,0x96,0x40,0xa8,0xcb,0x3f,0xc0,0x40,0x12,0x8,0x40,0xb1,0x9,0x5b,0xc0,0x5,0x6b,0x5a,0xc0,0xca,0xe2,0x3b,0xbf,0x3c,0x4b,0x36,0xc0,0xce,0xf,0xb3,0xbf,0x48,0x31,0xb,0xc0,0x18,0xfd,0xb2,0xbf,0xe2,0x5f,0x77,0xc0,0xfe,0xb,0x9c,0x40,0x46,0x7b,0x34,0x40,0x7e,0xa1,0xe4,0xbf,0x2c,0x60,0x68,0x40,0xf3,0x91,0xe,0xc0,0x50,0xb4,0x82,0xc0,0x34,0xfe,0xcc,0x3f,0x60,0x3b,0xdc,0xbf,0x5c,0xaa,0x70,0x40,0x66,0x38,0xac,0xbf,0xa0,0x45,0x82,0xc0,0x88,0xea,0x86,0x40,0x4a,0xa8,0x8f,0x3f,0xab,0x3c,0xc2,0x3f,0x8c,0x94,0xf7,0xbe,0x5c,0x72,0x7e,0xc0,0x8d,0x8,0xce,0x3f,0x0,0x40,0x5d,0x3c,0x61,0xde,0x53,0xc0,0x20,0x5b,0x36,0x40,0x95,0xd3,0x95,0xc0,0xe5,0x99,0x46,0xc0,0x8b,0x39,0x95,0xbf,0x7c,0xf8,0x95,0xc0,0x5a,0xa,0x90,0xc0,0x6b,0x47,0xc0,0xbf,0x28,0x4a,0x71,0xbf,0xad,0xbc,0x6a,0x40,0xf0,0x53,0x15,0x40,0x7e,0xc3,0x94,0x40,0x40,0xcb,0xc6,0x3f,0x92,0x30,0x2b,0x3f,0x84,0xac,0x76,0xbf,0xf2,0xfe,0x6,0xc0,0x2d,0x56,0x8f,0xc0,0x6b,0x24,0x92,0xc0,0xae,0x28,0x8,0x40,0x93,0x8d,0x4a,0xc0,0xa2,0x45,0x3,0xc0,0xcf,0x8b,0x15,0x40,0x7a,0xd0,0x45,0xc0,0xe,0xa0,0xec,0x3f,0x50,0xa9,0x8d,0xbe,0x43,0x10,0x84,0x3f,0x40,0xc4,0x11,0xc0,0xdc,0x54,0x69,0x40,0x53,0xde,0x82,0xc0,0x57,0x5f,0x95,0xc0,0x70,0xab,0x79,0x40,0x2,0x31,0x58,0xc0,0x6e,0x97,0x99,0x40,0x4a,0x22,0xe,0x40,0xde,0x1,0xf7,0x3f,0x84,0x82,0x1e,0xbf,0xd8,0xc2,0x70,0x3f,0xc8,0x1f,0xa4,0x3f,0xe5,0x79,0x16,0xc0,0x2f,0x8a,0x6b,0x40,0x88,0xad,0x44,0x40,0xa8,0x84,0x96,0x3e,0x90,0x80,0xb7,0x3f,0x40,0x5b,0x1b,0xbf,0x28,0x2c,0xe7,0xbf,0xfa,0xa9,0x76,0xc0,0x8c,0xdc,0xf5,0xbf,0x78,0x39,0x99,0xc0,0xb,0x44,0xc9,0xbf,0xd8,0x6b,0x27,0x40,0x4a,0x3d,0x9b,0x40,0x26,0x69,0x92,0xc0,0xc2,0x1,0x85,0xc0,0xfe,0xe,0x84,0x40,0x30,0xe8,0xe1,0xbf,0x0,0xa9,0xdd,0x3b,0x99,0xca,0x48,0x40,0xc8,0xb8,0x8d,0x40,0xa8,0x5f,0xf2,0x3f,0xa7,0x87,0x9e,0x3f,0x70,0xe8,0xf6,0xbd,0xf0,0x6,0x1,0x3e,0xa1,0x1e,0x1,0x40,0x7c,0x81,0x96,0xc0,0x6e,0xe3,0x9a,0xc0,0x71,0xc5,0x57,0x40,0xc8,0x9e,0x9c,0xc0,0x9e,0x29,0x28,0x40,0x72,0xa0,0x67,0x40,0x92,0x34,0x54,0x40,0x1,0x36,0xc3,0x3f,0x54,0x36,0xe,0x3f,0x8a,0xc8,0x13,0x40,0x78,0xaf,0x3e,0x40,0x30,0x38,0x21,0x3e,0xc4,0x40,0x66,0xc0,0xe2,0x16,0x47,0x40,0x6,0x98,0xe,0x3f,0xec,0xc3,0x40,0x40,0x0,0x72,0x56,0xc0,0x8c,0xfb,0x9f,0xbf,0x4e,0x91,0x4d,0xc0,0xf0,0x9f,0x92,0x3e,0x94,0xf7,0x87,0x40,0x3a,0x4a,0x73,0x3f,0x86,0x1,0x88,0x40,0xb2,0x1d,0x6b,0x40,0x4c,0x1a,0x5c,0xc0,0x97,0x96,0x99,0x40,0xa0,0x30,0x8e,0x3e,0x29,0xf7,0x85,0x40,0x1c,0xdc,0x77,0x3f,0x80,0x8b,0x5a,0xbf,0x8,0xd4,0x87,0x40,0x52,0xc7,0x6c,0xc0,0xa0,0xb0,0xe5,0x3d,0xdc,0x4c,0x33,0xbf,0x38,0x58,0x67,0x3e,0xf0,0x9d,0xb7,0xbf,0xda,0x10,0x7e,0x40,0xd8,0xce,0x85,0xbe,0x72,0x39,0x4,0x40,0x3c,0xcd,0x9,0x40,0x38,0xc8,0x91,0x40,0xe4,0x20,0xe6,0x3f,0x90,0x7f,0x9f,0xc0,0xd7,0xa4,0x84,0xc0,0xb1,0x29,0x97,0xc0,0x22,0xdc,0x9c,0xc0,0xf,0x1f,0x85,0xc0,0x10,0x41,0x95,0xbd,0x8e,0x6e,0x97,0x40,0x15,0x1b,0x4f,0xc0,0x15,0xa0,0x6,0x40,0xda,0x1,0x12,0xc0,0x35,0xe6,0x77,0x40,0xf4,0x1e,0x50,0x40,0x5a,0xaf,0x14,0x40,0x75,0xf4,0x8c,0x40,0xd4,0x5a,0x71,0xc0,0xa1,0xdc,0x87,0xc0,0x78,0x7c,0x23,0xc0,0xbd,0xb6,0x81,0x3f,0xba,0x72,0x8d,0x40,0xd4,0x46,0x53,0x40,0x9e,0xc,0xc8,0x3f,0x9e,0x3c,0x63,0xbf,0xf0,0xb0,0x35,0xc0,0x1c,0x1f,0x9f,0x40,0x63,0xc,0x8c,0xc0,0x2c,0xbd,0x5c,0xc0,0xbe,0x52,0x3c,0x40,0x77,0xa2,0x79,0x40,0x2c,0x35,0xa8,0x3f,0xe0,0xe4,0xb2,0xbd,0xf4,0x13,0x18,0xbf,0x38,0xb7,0x26,0x3f,0x32,0x2,0x21,0xc0,0x33,0x2f,0x9e,0x40,0xd6,0xcb,0x9f,0x40,0xbd,0xae,0xf7,0xbf,0x64,0x2d,0x5e,0x40,0xc1,0x1e,0x98,0xbf,0x87,0x21,0x68,0xc0,0x62,0xc1,0x5b,0x3f,0x7c,0xa2,0x74,0xbf,0x0,0xe,0x85,0x40,0x7c,0x68,0xb1,0x3e,0x9a,0x60,0x8c,0xbf,0xde,0x31,0x7e,0xc0,0x68,0x57,0x51,0x40,0x42,0x94,0x55,0x40,0x3e,0x8,0x34,0x3f,0xe8,0x45,0xe0,0xbe,0xd3,0x69,0xd6,0xbf,0x3b,0x58,0x94,0x3f,0x67,0x8b,0x99,0x40,0x8a,0xe3,0x52,0xbf,0xb0,0x92,0xe9,0x3e,0x34,0x70,0x98,0xc0,0xef,0x62,0xa3,0x3f,0xac,0x1a,0x9,0xc0,0xbe,0xbd,0x97,0xbf,0x74,0xb4,0x29,0xc0,0xd0,0x2b,0x94,0x40,0x84,0xe7,0x59,0x40,0x50,0xce,0x9,0xc0,0x7f,0xf7,0x9c,0xbf,0xb1,0xef,0xc2,0x3f,0x3d,0xd6,0xf0,0x3f,0x12,0xa7,0x16,0xc0,0x42,0xf5,0x1,0x40,0x8c,0x84,0x4b,0x3f,0xd8,0xe2,0x37,0x40,0xa0,0xec,0x2c,0xc0,0x6f,0x9e,0x4e,0xc0,0xcf,0xc8,0x14,0x40,0x48,0xc7,0x47,0xbe,0x8a,0x71,0xb,0xc0,0xb4,0x27,0x7b,0x40,0x4,0x63,0xe,0xbf,0x80,0xb5,0x55,0xc0,0x74,0xb1,0x36,0xbf,0xed,0x41,0x14,0xc0,0x74,0x8,0xdd,0xbf,0x3c,0xb7,0x83,0xc0,0x2e,0x70,0x7f,0x40,0x76,0xc8,0x8c,0x40,0xb6,0xf9,0x86,0xc0,0xc,0x2e,0x48,0x40,0xca,0x10,0xbb,0x3f,0x74,0xc3,0x1,0xc0,0x75,0xb5,0xbb,0xbf,0x30,0x31,0x5a,0x3f,0x98,0xc6,0x87,0x3f,0xd3,0xd6,0x87,0x40,0x3a,0xe3,0x98,0x40,0xe4,0xbe,0x93,0x3e,0x54,0x80,0x96,0x40,0x1,0x41,0x3d,0xc0,0x20,0x5f,0x2d,0x3d,0xf2,0x24,0x84,0xc0,0x8c,0x4a,0x19,0x40,0x8c,0x4b,0x7f,0x3f,0x34,0xd7,0x41,0xc0,0xcb,0x2b,0x74,0xc0,0x92,0x28,0x7e,0xbf,0x30,0xba,0xf1,0xbf,0x72,0x67,0x2,0xc0,0xd2,0x59,0x8b,0xc0,0x42,0xe2,0x4b,0xc0,0xe8,0xcb,0x84,0x40,0xac,0x62,0x1d,0xc0,0x60,0x40,0x2,0x40,0xc4,0x5a,0xae,0x3e,0x2c,0xb6,0x2e,0xbf,0xdd,0x5f,0xd1,0x3f,0xa0,0xf5,0x70,0x40,0x58,0x6c,0xc7,0x3f,0x3a,0xc2,0xa,0x3f,0x34,0xe0,0x81,0x40,0xec,0xd5,0xd3,0x3e,0x94,0xac,0x8c,0x3f,0xbd,0x0,0x9c,0x40,0xf8,0xa8,0x67,0xc0,0xcc,0x79,0x68,0x40,0xd5,0xb8,0x19,0xc0,0x64,0x7c,0x83,0xbe,0x83,0x31,0x39,0xc0,0xbe,0x25,0x53,0x40,0x2c,0xb0,0x80,0xc0,0xee,0xc4,0xd,0xc0,0xe0,0x28,0x5d,0x3f,0x1f,0xf0,0xf4,0xbf,0x96,0x8a,0x9,0x3f,0x1e,0xeb,0x92,0x40,0xdd,0x84,0x8d,0xc0,0xdc,0xec,0x4f,0xc0,0xda,0xd6,0x78,0xc0,0xf2,0xff,0x98,0x40,0x93,0x53,0x9b,0x3f,0x2c,0x34,0x67,0xc0,0x86,0x26,0x8b,0xc0,0xd0,0x2a,0x6d,0x40,0xe5,0xef,0x92,0x40,0x48,0xa3,0x41,0xc0,0x25,0xcd,0xa3,0x3f,0xc9,0xe2,0x9e,0xbf,0x3e,0xca,0x3d,0x40,0x5c,0x10,0x33,0xc0,0xd5,0x8b,0x5a,0x40,0x4e,0xc1,0x9f,0x40,0xa0,0xcc,0x41,0x40,0xba,0x0,0x5b,0xbf,0xf0,0x67,0x27,0x3f,0xe2,0x12,0xa,0x40,0x8,0x7d,0x38,0xc0,0x33,0x14,0x15,0xc0,0x36,0x84,0x9c,0xc0,0xe4,0x6,0x62,0x40,0x36,0xaf,0x14,0xc0,0xd1,0x78,0x89,0x40,0xdc,0xe,0x7b,0xbf,0x79,0x76,0xec,0xbf,0xe6,0xec,0x22,0x40,0xd4,0x4,0xf9,0xbe,0x1a,0xf1,0x58,0xc0,0x2,0x7e,0x9,0x3f,0xf1,0x0,0x15,0xc0,0xc5,0x93,0x67,0xc0,0x8f,0xe7,0x49,0xc0,0x60,0x20,0xde,0x3f,0x30,0x75,0xd7,0x3e,0xf4,0xb1,0x1,0xc0,0x84,0x73,0xe4,0x3f,0x62,0x57,0xc8,0xbf,0xbd,0xfa,0x76,0xc0,0x1b,0xcc,0xdb,0x3f,0x62,0xf0,0xd9,0xbf,0x5b,0xa5,0xbd,0xbf,0xbe,0x3,0x66,0x40,0xd1,0x2f,0x6f,0x40,0x48,0x9b,0x9c,0xc0,0x5e,0x39,0x89,0x40,0x3a,0x16,0x8f,0x40,0xc2,0xc1,0x66,0xc0,0x60,0x85,0x9f,0xc0,0x80,0xcd,0x79,0xc0,0xe0,0xe8,0xa9,0xbf,0xa0,0x32,0x66,0xbe,0xe7,0x62,0xb0,0x3f,0xe6,0xa3,0x98,0x3f,0xb6,0xfb,0x77,0x3f,0xae,0xd1,0x79,0xc0,0x5d,0xff,0x99,0x40,0xf1,0xd3,0x89,0x40,0xe2,0xe7,0x1b,0x40,0x19,0xc9,0x8b,0x3f,0x4,0xb0,0x32,0xc0,0x1c,0x14,0xbb,0x3e,0xe1,0x5c,0x64,0xc0,0xb8,0xf,0x93,0x40,0xc3,0x18,0x8e,0xc0,0x4f,0x2d,0x88,0x40,0x2b,0xa3,0x96,0x40,0x78,0xea,0x1a,0xc0,0x3c,0xc5,0x8e,0xc0,0x41,0xc8,0xe1,0x3f,0x26,0x9a,0x75,0xc0,0x22,0x9f,0x93,0xc0,0xaa,0xc9,0x40,0xc0,0xaa,0x36,0x62,0x40,0xe4,0x91,0x48,0xc0,0xb4,0x11,0x0,0xc0,0x4,0xc7,0x1,0xc0,0x57,0x6f,0x63,0x40,0xac,0xfb,0xf7,0x3f,0x7c,0x6c,0x37,0x40,0xe,0x20,0x6f,0xbf,0xfc,0x36,0x3d,0xc0,0x88,0xa9,0xe6,0x3f,0xc2,0x1b,0x1,0x40,0xc2,0x6e,0x84,0x40,0xc6,0xec,0x95,0xc0,0xcd,0xce,0x6a,0xc0,0x92,0xf2,0x51,0x40,0xe2,0x8b,0xa5,0x3f,0x60,0x72,0x54,0x40,0x9b,0xd6,0xa1,0xbf,0x39,0x8a,0x9f,0x40,0x3c,0x1e,0xfa,0x3f,0x13,0xb8,0xf7,0xbf,0xcd,0x97,0x1a,0xc0,0x91,0x25,0xa8,0x3f,0x40,0x2c,0xfc,0xbd,0x36,0x17,0x1b,0xc0,0x88,0x85,0x2b,0xc0,0xce,0xa4,0xd7,0x3f,0xd8,0xf5,0x1d,0x40,0x2a,0x62,0x98,0x40,0x6f,0x9,0x7,0xc0,0x2a,0xeb,0x3c,0xc0,0xbe,0xbb,0x49,0xc0,0x96,0xc5,0x58,0xc0,0xd6,0xc,0x9e,0x40,0xa8,0x7e,0x1c,0xc0,0xb6,0x87,0x16,0xc0,0x16,0xc4,0x6a,0x40,0x4a,0x78,0x7e,0x40,0x49,0x6e,0x92,0xc0,0x1e,0x18,0xd,0xbf,0xd0,0x50,0xc0,0x3f,0x9e,0xc0,0x43,0x3f,0x5a,0xed,0x35,0xc0,0xb4,0xef,0x80,0xc0,0xa,0xe8,0x66,0xc0,0x24,0x2e,0xd5,0x3f,0x24,0xfb,0x14,0xc0,0xe7,0x7b,0x91,0xc0,0x7a,0xbe,0x9d,0x40,0x11,0xa2,0x12,0x40,0xdc,0xf0,0xbe,0xbf,0x52,0x40,0x4c,0x3f,0x4c,0x70,0xe3,0xbf,0xb2,0xf2,0x52,0xc0,0xb1,0xd3,0x93,0xc0,0x41,0x98,0x50,0x40,0xfe,0xc0,0x93,0xc0,0xf,0x5e,0x71,0xc0,0xb8,0x82,0x85,0x40,0x49,0x88,0x49,0xc0,0x1a,0xe1,0xd6,0xbf,0xc0,0x27,0xbd,0x3c,0xc9,0x0,0x9e,0xc0,0xea,0x45,0x91,0xc0,0xd6,0xc8,0x81,0xc0,0x4a,0xf4,0x40,0xbf,0x31,0xa0,0xe7,0xbf,0x0,0xa8,0x6d,0x40,0x84,0xd8,0x4d,0x40,0x3c,0xaa,0x9b,0x40,0x96,0x72,0x8a,0xc0,0xe9,0x78,0x18,0xc0,0xe2,0xfc,0x59,0x40,0x8f,0xdd,0xdd,0x3f,0x8a,0x72,0x50,0xc0,0xb0,0xeb,0x6f,0x40,0xe4,0x6f,0x23,0xc0,0xc,0xed,0x97,0x40,0xe4,0x66,0x7f,0xc0,0x86,0xdd,0x25,0x40,0xe0,0x88,0x91,0xbe,0x5,0x7e,0x8a,0xc0,0x85,0x93,0x25,0x40,0xfa,0xe2,0xea,0xbf,0x70,0x32,0xb2,0x3d,0x3c,0x64,0xc3,0xbf,0xce,0x10,0x8f,0xbf,0x6c,0xcc,0xa3,0xbf,0xf6,0xa8,0xf,0x40,0x7c,0xc3,0xce,0xbe,0x3e,0xa3,0x5a,0x40,0xe1,0x42,0x1,0x40,0x40,0xfa,0xf1,0xbc,0x78,0x4a,0x0,0x40,0xd8,0x4a,0xd7,0xbf,0x24,0x97,0x76,0xc0,0x3c,0xc8,0x52,0xc0,0xcb,0x21,0x5b,0xc0,0x19,0x29,0x81,0xc0,0x9c,0xcd,0x4c,0x3f,0x8,0xc8,0xe3,0xbe,0xce,0xde,0x8f,0xc0,0x58,0xb,0x26,0x40,0x51,0x4c,0x46,0x40,0xa8,0xea,0x87,0x40,0xa8,0xf3,0x51,0x3e,0xdc,0x6c,0xbb,0xbe,0xb0,0x36,0x3c,0x40,0x14,0xc1,0x8a,0xc0,0xd0,0x40,0x9e,0x3e,0x36,0x66,0x51,0x40,0x39,0x75,0x5d,0x40,0xea,0xd3,0x16,0x3f,0x98,0x4c,0xd4,0xbe,0x14,0xb1,0xe4,0x3f,0x38,0xd,0x88,0x3f,0xa8,0xe7,0x2b,0xbe,0xfa,0x77,0x7d,0x40,0xd6,0x94,0x88,0x40,0x60,0xc9,0x35,0xc0,0x20,0xfe,0x8f,0x40,0x30,0x14,0xa7,0xbf,0x93,0xb0,0x89,0x3f,0x82,0x80,0x8e,0x40,0x30,0x36,0x17,0xc0,0xfc,0x5c,0x15,0x40,0x9e,0x85,0x2e,0xbf,0x8b,0x14,0x35,0xc0,0xac,0xda,0x9b,0xbe,0x78,0xc5,0x88,0x40,0x3c,0x93,0x32,0x40,0x18,0x7c,0x25,0xc0,0x14,0xd4,0x90,0x40,0x4a,0x33,0x82,0x3f,0xfe,0x90,0x88,0x40,0xf8,0x2f,0x98,0x40,0x1a,0x53,0xba,0xbf,0xa4,0x79,0x7f,0x40,0xd6,0xbb,0x3d,0xbf,0x86,0xe,0x4a,0x3f,0xd8,0x8f,0x26,0x3e,0xd0,0xf2,0x8c,0x3d,0xa4,0xa3,0xc6,0xbe,0xa0,0xa7,0x92,0xc0,0x90,0xbd,0xde,0x3e,0xa7,0xd0,0x92,0x40,0xd4,0xea,0xd1,0x3f,0xfc,0xd6,0x93,0xc0,0x94,0xf4,0x6e,0x3f,0xf8,0x55,0x4f,0xbf,0xc3,0xa7,0xbc,0x3f,0xd8,0xef,0x92,0xc0,0x76,0xf9,0x55,0x3f,0x5e,0xb2,0x64,0xc0,0x46,0x21,0x36,0x3f,0x4e,0x99,0x40,0x40,0xf0,0x6,0x60,0x40,0x58,0x88,0x53,0xbf,0xf1,0x20,0x8e,0x40,0xe4,0x93,0x96,0xbe,0x84,0x2c,0x38,0xc0,0xc9,0x91,0x15,0x40,0x98,0xc0,0x5d,0x3e,0xac,0x79,0x7c,0xc0,0x6e,0x75,0x4b,0x40,0x2,0x32,0x9a,0x40,0x21,0x39,0x2f,0x40,0x84,0xd2,0x4b,0xbf,0x3e,0x3c,0x86,0xc0,0x1a,0x13,0x89,0x40,0x94,0x6d,0x2a,0xc0,0xf8,0xcd,0x40,0x3f,0x55,0xc5,0x90,0xc0,0x14,0x67,0x45,0x40,0x48,0x7d,0x80,0x3f,0x16,0x51,0x98,0x40,0xd0,0x4a,0x1b,0x40,0x98,0xce,0x98,0xc0,0x60,0xde,0x7c,0x40,0x15,0x4c,0x81,0xc0,0xf6,0xf0,0x18,0xc0,0xfe,0x38,0x25,0x40,0xd8,0x28,0x2e,0xc0,0x49,0xd2,0xa7,0x3f,0xb0,0xd5,0x3,0x3f,0xdc,0x59,0xb5,0x3e,0x3a,0xce,0x2d,0xc0,0x26,0xf4,0x5f,0x40,0xfe,0xfd,0x37,0x3f,0xc0,0x9c,0xed,0x3f,0x4c,0xa,0x15,0x3f,0xda,0x30,0x1f,0xc0,0xcc,0x8d,0xf0,0xbf,0x96,0x2,0x55,0x40,0x6a,0xc6,0x8b,0xc0,0xeb,0x31,0xdd,0xbf,0x41,0x76,0x92,0xc0,0x9c,0x4e,0x3f,0xc0,0xfa,0x3,0x2c,0x3f,0xec,0xcc,0x91,0xbf,0xb2,0x45,0xd5,0x3f,0xf2,0xd4,0x73,0x40,0xae,0x9d,0x86,0x3f,0x19,0xf5,0x97,0x40,0x0,0x6d,0x58,0xbc,0x6,0x5c,0x9a,0x40,0x5e,0x82,0x4e,0x3f,0x80,0x6a,0x3,0xbe,0xa4,0xdf,0xb2,0x3f,0x34,0x4f,0x7c,0xc0,0x88,0x79,0x82,0x40,0xfc,0x65,0x92,0x40,0xe5,0xb6,0x8c,0xc0,0x80,0x73,0x3e,0xc0,0xc4,0xe8,0x7c,0x40,0x3,0xde,0xa0,0x3f,0xea,0x5f,0xe7,0xbf,0x24,0x70,0x1f,0xc0,0xd8,0xa3,0x92,0xbf,0x46,0xeb,0x70,0xbf,0x20,0x99,0x93,0x40,0xfc,0x90,0x42,0xc0,0xb6,0x3,0x34,0x3f,0x42,0x67,0xb5,0x3f,0x83,0xba,0x1e,0xc0,0x1c,0x9e,0x9f,0xbe,0x42,0x67,0x67,0xbf,0x4a,0x28,0x74,0x40,0x76,0xf4,0x64,0x40,0x28,0x3,0x77,0xbe,0x91,0xfc,0x23,0xc0,0xc0,0xb6,0x37,0xc0,0x24,0x3d,0x8,0xc0,0x2e,0xcd,0x8a,0x40,0xa3,0x10,0x82,0x40,0xb8,0x84,0x7e,0x3f,0x7e,0x13,0x95,0xc0,0x94,0x62,0xcc,0x3f,0x22,0xe5,0x6d,0xbf,0x5d,0xea,0x32,0x40,0xea,0x52,0x26,0x40,0x67,0x3a,0x86,0x40,0xf4,0x69,0xba,0x3e,0x38,0xea,0xc3,0x3e,0x40,0x6c,0x14,0x3d,0xbe,0x13,0x5d,0x40,0x80,0xa1,0x71,0x40,0x70,0xc6,0x16,0x40,0x44,0xf2,0x7f,0xbf,0x91,0xcd,0xb9,0xbf,0x13,0x45,0x94,0x40,0x7c,0x88,0x25,0xc0,0x3e,0x2b,0x5c,0x3f,0x67,0x38,0xc9,0x3f,0xf8,0xb4,0x25,0x40,0x98,0x16,0x42,0xc0,0xdc,0x1c,0x77,0xbf,0x68,0x8e,0x15,0xbe,0xc,0x82,0xe9,0xbe,0xf7,0x51,0x89,0xc0,0xb4,0x14,0xa,0x40,0xd2,0xab,0x74,0xc0,0x98,0x9d,0xa1,0xbf,0xbe,0x2c,0xc4,0x3f,0x97,0x9e,0x7b,0x40,0xfa,0x9e,0x5e,0xbf,0x3,0x2d,0x31,0xc0,0x1c,0xb2,0xe,0xc0,0xa0,0x66,0x3c,0xbd,0x2,0xf1,0x2e,0xc0,0x94,0x1d,0x9e,0x3f,0xfc,0xac,0x10,0x40,0x60,0x0,0x97,0x40,0x5e,0x8d,0x86,0x40,0x7e,0xcc,0x82,0xbf,0x7e,0x3,0x8,0x40,0x18,0xef,0x27,0x3f,0xc0,0xb6,0x17,0x40,0xd4,0x74,0x11,0xc0,0x47,0x46,0x96,0x40,0xc0,0x2f,0x8,0x3d,0x20,0xad,0x4a,0x40,0xb7,0x55,0x6d,0x40,0x19,0x91,0x87,0xbf,0x74,0x34,0x75,0x40,0xc8,0xa0,0xa5,0xbf,0x18,0x31,0x1f,0x40,0x7c,0xa8,0x46,0xbf,0x65,0x10,0x7d,0xc0,0x67,0x27,0xa3,0xbf,0x9a,0x8,0xf3,0x3f,0xee,0x9d,0x7f,0x40,0x36,0x8f,0x82,0xc0,0xda,0xb1,0x39,0xc0,0xa8,0xc7,0x26,0x40,0xc6,0x79,0x23,0xc0,0xb4,0x66,0x85,0x3e,0xc0,0x39,0x5f,0xc0,0x64,0xb8,0xa1,0x3e,0xdf,0xd5,0x1a,0xc0,0xa5,0xee,0x8e,0x3f,0x85,0x5a,0xfc,0x3f,0x76,0x7a,0x75,0x3f,0x50,0xa9,0x7b,0xc0,0xd2,0xec,0x6f,0x40,0x77,0xad,0x86,0x40,0x94,0x76,0x8f,0xc0,0x6b,0xb,0x83,0x40,0x4e,0xe7,0x89,0xc0,0x49,0x6b,0x16,0x40,0x10,0x30,0x97,0xbe,0x94,0x99,0xcc,0xbe,0xb0,0xcf,0x1b,0xc0,0xa4,0x2,0x7c,0x40,0x44,0xdd,0x4e,0x3f,0xc4,0x1,0xb2,0xbe,0x8,0x1a,0x35,0xbe,0xd2,0xef,0x67,0x40,0xec,0x8a,0x9e,0x40,0x40,0x4c,0x36,0xc0,0xa5,0xe9,0x8d,0xc0,0x94,0x7c,0x58,0xc0,0xa0,0xbe,0x2d,0xc0,0x75,0xb7,0x82,0xc0,0xf8,0xf7,0xe6,0xbf,0x6b,0x97,0xf7,0xbf,0xc0,0x6b,0x12,0xbd,0xe1,0x85,0xb6,0x3f,0x7e,0x8d,0x4d,0x40,0x38,0x23,0x53,0xc0,0xa0,0x47,0x65,0xc0,0x99,0x62,0xb,0xc0,0xfd,0xd4,0x6b,0xc0,0x10,0xe3,0x89,0x3e,0x5d,0xaa,0x72,0xc0,0x68,0x1e,0x6c,0xbe,0x44,0x2a,0x2f,0xbf,0x5a,0xcd,0x77,0xc0,0xf4,0x78,0x10,0xc0,0x7,0xe0,0xb,0x40,0x0,0x7a,0xb7,0xbf,0x5f,0x37,0x8d,0xc0,0x79,0x2b,0x82,0x40,0x4f,0x89,0xc7,0xbf,0x2a,0x45,0x1a,0x3f,0xe8,0xaa,0x80,0x40,0x91,0x56,0x1f,0x40,0x5c,0x53,0x81,0xc0,0x87,0x53,0x8d,0x40,0xf5,0x66,0xb2,0xbf,0xf7,0x41,0xa3,0x3f,0xcc,0x75,0xe,0x40,0x1b,0x64,0xdf,0x3f,0xad,0xb8,0x5a,0x40,0xf4,0x68,0x10,0xc0,0xff,0xd0,0x6d,0x40,0x97,0x6a,0x4b,0x40,0x67,0x53,0x8c,0xc0,0x3c,0x9d,0xee,0xbf,0x5c,0x45,0x8a,0x40,0x25,0x83,0x6d,0xc0,0x68,0xc6,0x90,0xc0,0x2c,0xa1,0x45,0x40,0x75,0x85,0xe1,0x3f,0x80,0x57,0xc,0x3f,0xcc,0x2c,0x7f,0x40,0x28,0x1c,0x7c,0x3e,0xfe,0x2,0x9c,0x40,0x3c,0x5b,0x54,0xc0,0x35,0x82,0x89,0xc0,0xde,0x2c,0x8b,0xbf,0xc2,0x8b,0x9b,0x40,0xaf,0xcc,0x88,0xc0,0xce,0x4,0x4,0x40,0xda,0xe0,0xa3,0x3f,0x5a,0x80,0x7,0xc0,0x38,0x37,0x83,0xc0,0x3a,0xfe,0x5,0x40,0x57,0x3,0xf0,0x3f,0x58,0xea,0x5,0xbe,0x20,0xe2,0xfc,0x3f,0x3c,0xfe,0x2e,0x40,0xe6,0x61,0x61,0xc0,0xe6,0x4e,0x8a,0xc0,0x10,0xd9,0x54,0xbf,0xc,0x36,0x38,0xbf,0x58,0xd4,0xf5,0xbf,0x49,0x72,0xa8,0x3f,0x30,0x90,0x75,0xc0,0x42,0x79,0x9b,0x40,0x46,0xca,0x80,0xbf,0xba,0xbf,0x32,0xc0,0x84,0x86,0x4c,0xbf,0x94,0x63,0x7d,0xc0,0xe6,0x72,0x8a,0xc0,0xd7,0x37,0xb9,0x3f,0x1b,0xa3,0xaf,0xbf,0x5e,0x49,0x2d,0xc0,0x20,0x94,0x13,0x40,0xf0,0xf8,0x79,0x40,0x4a,0x85,0xf,0x3f,0x67,0x76,0x1f,0xc0,0xa0,0x22,0x2e,0x40,0x4d,0x67,0xdc,0xbf,0x48,0x21,0x14,0xc0,0xfe,0x8e,0x79,0xbf,0xc1,0x84,0x9b,0xbf,0x6a,0x76,0x9a,0x40,0xd4,0xb8,0x65,0xbf,0xb0,0xf,0x90,0xc0,0xe9,0x40,0xcb,0xbf,0xe3,0xc7,0xea,0x3f,0x28,0x5f,0xa,0x40,0xc5,0xa9,0x56,0xc0,0x6d,0x6a,0x61,0xc0,0x80,0x19,0xb6,0xbf,0x6c,0xb3,0xa3,0x3e,0x16,0xac,0x83,0xc0,0x28,0x51,0x13,0x40,0x92,0x3b,0x70,0xbf,0xfa,0x25,0x3a,0x40,0x64,0xbe,0xbe,0x3f,0xf6,0x41,0x4c,0xbf,0x88,0x8,0xe7,0xbe,0xa6,0xbc,0xc4,0x3f,0xa,0x4a,0x26,0xc0,0xac,0xe9,0xa5,0xbf,0xa9,0x73,0x12,0x40,0x44,0xce,0x8e,0xc0,0x28,0xd3,0x7e,0xbf,0xab,0x38,0x85,0x3f,0x49,0x7,0x25,0xc0,0x8b,0x7d,0x17,0x40,0x5f,0x84,0x1e,0x40,0x12,0x93,0x39,0xbf,0xfc,0xa3,0xcd,0xbf,0x75,0xe0,0x1a,0x40,0x4c,0x37,0x90,0x3e,0x18,0x6f,0x77,0xc0,0x9a,0x6d,0x38,0x40,0x64,0x82,0x9d,0x40,0xf0,0xef,0x88,0x40,0xf1,0x85,0x30,0xc0,0xa9,0x8b,0x94,0x40,0x5,0x5c,0x5,0xc0,0x38,0x7d,0x72,0xc0,0x54,0x27,0x65,0x40,0xdd,0xa9,0x61,0xc0,0x1,0x11,0x93,0x40,0xec,0xce,0x9c,0x40,0x1c,0x13,0x57,0xc0,0xe8,0xeb,0x53,0x40,0x96,0x15,0x74,0xbf,0x5,0x68,0xa6,0xbf,0xac,0x31,0x42,0x3f,0x3,0xba,0xf1,0x3f,0xcd,0xcb,0x59,0xc0,0xad,0xe6,0x9c,0x40,0x3c,0x38,0x60,0x40,0xb4,0xdf,0x38,0xc0,0xe0,0x1b,0x17,0x40,0x40,0x40,0x63,0x3f,0x50,0xdc,0x2f,0x40,0x60,0x74,0xee,0xbd,0x4e,0x83,0xd8,0x3f,0xb5,0xdd,0xb2,0x3f,0xdf,0x86,0x95,0x40,0xda,0x70,0x34,0x3f,0xbe,0x6a,0x82,0x40,0x38,0xc6,0x53,0x3f,0xd5,0x24,0xce,0x3f,0x1a,0x8e,0xe,0xbf,0xa2,0x4,0xb,0xbf,0xc,0x82,0x70,0xc0,0xd7,0xcb,0x99,0x40,0x28,0x22,0x2d,0xc0,0x95,0x7c,0x27,0x40,0xa4,0xa9,0x93,0x3f,0x6c,0x84,0x4f,0x40,0x27,0x6e,0x97,0xc0,0x88,0xd3,0xee,0xbe,0x96,0x57,0x99,0xc0,0x80,0xe2,0x7b,0xc0,0x31,0x0,0xe2,0x3f,0x64,0x31,0x97,0xbf,0xde,0xbb,0x55,0x40,0x7f,0xb9,0x6e,0x40,0x80,0xb1,0x48,0x3c,0x13,0xb,0xbe,0xbf,0xb1,0xf7,0x5d,0x40,0xc8,0x8d,0x98,0x40,0xa2,0xb8,0x1a,0x3f,0xca,0x86,0x85,0xc0,0x1a,0xc9,0x5,0x40,0xde,0xa5,0x55,0xbf,0xfe,0xc6,0x6b,0xc0,0x5f,0xc6,0x89,0x3f,0xb0,0x6e,0xef,0x3d,0xe0,0xbe,0x97,0x3d,0x54,0x2e,0x9f,0x40,0x52,0x6d,0x22,0x40,0x8c,0x3,0x4a,0x40,0x20,0x3a,0x2a,0x3d,0xb8,0x17,0x7d,0xbf,0x68,0xfc,0xef,0x3f,0x93,0x6d,0x6f,0xc0,0xfc,0x32,0x97,0x40,0xdc,0x15,0x1f,0x3f,0xb6,0xb8,0x94,0xc0,0x8d,0xc8,0x38,0xc0,0xe2,0x4e,0x1a,0x40,0x18,0xb3,0x93,0x3f,0x95,0xd,0x1e,0x40,0x35,0xc8,0x9d,0xc0,0x80,0x5,0xca,0xbc,0xfe,0xa9,0x3e,0x40,0x88,0xc6,0x30,0x40,0x4,0x7,0x8b,0x3e,0x5d,0x31,0x9e,0xc0,0x36,0xd4,0x8b,0x40,0x27,0xd3,0xf5,0x3f,0x41,0x0,0xfa,0x3f,0x12,0xde,0x40,0x40,0x31,0x20,0x3d,0x40,0xfc,0x95,0x10,0xbf,0xc0,0xf4,0x53,0x40,0x4e,0x75,0x59,0x40,0x71,0x86,0x9e,0x3f,0x47,0x94,0x76,0xc0,0xf1,0x92,0x5f,0x40,0x26,0xc6,0x1c,0xc0,0xa,0x73,0x88,0x40,0x1c,0x50,0x47,0xc0,0x7c,0x69,0xb0,0xbe,0xed,0x74,0xf7,0xbf,0xa,0x37,0x2f,0xc0,0x57,0x16,0xd3,0xbf,0x2e,0x3d,0x4e,0x40,0x7e,0x71,0xd3,0x3f,0x98,0x1b,0xec,0xbe,0xe,0x81,0x80,0xc0,0x88,0x46,0x31,0xc0,0xa1,0xbc,0x35,0x40,0x46,0x7b,0x15,0xc0,0xe,0xc0,0x76,0xc0,0x20,0x83,0x2f,0xc0,0x9c,0x0,0xd6,0xbf,0x55,0x35,0xe,0xc0,0xd8,0x58,0x29,0x40,0xc0,0x21,0x75,0xbd,0xc,0x6,0x97,0x40,0x8a,0x4a,0x93,0xc0,0x24,0xac,0x20,0xc0,0xee,0x9b,0xd4,0x3f,0x92,0x32,0x44,0x40,0xd3,0x67,0x3,0xc0,0xc0,0x0,0x0,0x40,0x32,0x47,0x30,0xc0,0x32,0xcf,0x41,0xc0,0xcb,0xfd,0x2e,0x40,0x7c,0xe2,0x9b,0xbe,0xbb,0x2c,0x6a,0xc0,0xb8,0x8,0x46,0xbe,0xd6,0xd0,0x8c,0x40,0x90,0x1e,0x92,0x3f,0x11,0x14,0x80,0xbf,0xa,0xe0,0x67,0xbf,0x62,0xb6,0x3e,0xc0,0x34,0x6,0x36,0x40,0xc0,0x36,0xa9,0x3d,0x5f,0x50,0x25,0xc0,0xb0,0x56,0x94,0x3e,0xef,0xd1,0xc5,0x3f,0x68,0xcd,0x58,0x3e,0x94,0x5d,0xd1,0xbe,0xd9,0x67,0x96,0xc0,0x58,0x58,0x1a,0xbe,0xc5,0xbd,0xcc,0xbf,0x90,0x1e,0x83,0xbd,0xa,0x92,0x44,0xc0,0x80,0x79,0xf1,0x3f,0xd0,0x20,0x46,0xc0,0x94,0xce,0xce,0xbf,0xf9,0x1d,0x13,0xc0,0x6e,0x18,0x21,0xc0,0xc0,0xe4,0x91,0x3d,0x21,0x64,0xe,0xc0,0xa6,0x83,0xa,0xc0,0x2c,0xe8,0x6,0x3f,0x52,0x7e,0x6,0x40,0x8,0x43,0x18,0xc0,0x6,0x97,0x2a,0x40,0x4e,0xe4,0xbd,0x3f,0xbb,0xb,0x77,0x40,0x8,0xaa,0xf7,0x3e,0xfa,0x48,0x83,0x40,0xea,0x2d,0x90,0xc0,0x38,0x76,0xba,0x3f,0x52,0x7e,0x89,0xc0,0x83,0x4a,0x7,0x40,0xb4,0x87,0xf5,0xbf,0x46,0x36,0x83,0xbf,0xb3,0x84,0x87,0x40,0x58,0xca,0x95,0x40,0xf6,0x7c,0xa0,0xbf,0x17,0x35,0x38,0xc0,0x7a,0xdd,0x2e,0x40,0x8f,0xbf,0xd,0xc0,0x78,0x7b,0x16,0xc0,0x9e,0xa5,0x70,0xc0,0xda,0xff,0x9e,0x40,0x38,0xd5,0x97,0x3e,0x2a,0x44,0x7a,0x3f,0x16,0x13,0x3a,0xc0,0x5e,0x2c,0x15,0x40,0x9e,0xb7,0x97,0xc0,0xa3,0xca,0xb9,0xbf,0xa4,0x9c,0x43,0xbf,0x6,0x54,0x3c,0x40,0x18,0x85,0xee,0xbe,0x34,0xd2,0x37,0x3f,0xfe,0xaf,0x74,0x40,0xb7,0x57,0xe1,0x3f,0x84,0xfc,0x81,0x40,0x88,0x1a,0xda,0xbf,0x2c,0xce,0x45,0x40,0xd2,0x66,0x46,0xbf,0x88,0x77,0xb9,0xbe,0x31,0xc3,0x88,0x3f,0x33,0x42,0x9a,0x40,0x0,0xeb,0xa5,0x3c,0xd2,0xb3,0x8,0xbf,0x95,0x7e,0xfa,0xbf,0x22,0x22,0x4a,0xc0,0x5e,0xd0,0x37,0x40,0x1f,0xca,0x84,0xbf,0x47,0x95,0xd7,0xbf,0x9a,0xee,0x8a,0x3f,0xda,0x81,0x5a,0x3f,0x30,0xc8,0x4f,0xbf,0x82,0xb7,0x85,0x40,0x64,0xcd,0x43,0x40,0xa8,0xed,0x9b,0x3f,0x80,0x97,0x17,0xc0,0x30,0x91,0x4,0xc0,0xef,0x20,0x8b,0x40,0xc4,0x20,0x84,0x3f,0xe7,0x40,0x91,0xc0,0x46,0x4e,0x2c,0xbf,0xe7,0xfb,0x8f,0x3f,0xc9,0xc5,0xac,0x3f,0xce,0xbf,0x87,0x40,0x58,0x3a,0x24,0x3e,0x1a,0x41,0x1a,0xbf,0x5b,0x44,0x62,0x40,0xe4,0xd,0x3d,0xbf,0x1c,0x33,0xce,0x3f,0x76,0xb0,0x6f,0xc0,0x4d,0xfd,0xe1,0xbf,0xea,0x5d,0x71,0xc0,0x84,0x90,0xfe,0x3e,0x4b,0xe1,0x7a,0xc0,0xb0,0xc4,0x73,0x40,0x7a,0xe1,0xd,0xc0,0x51,0x50,0x5b,0xc0,0x4c,0xf,0x9a,0x3e,0x5c,0xcd,0x16,0xc0,0x68,0x93,0x3f,0xc0,0x10,0x53,0x6a,0x40,0x3e,0xee,0xcd,0x3f,0x8a,0xbc,0x51,0x3f,0xd2,0x5a,0x1d,0x40,0x7,0xdc,0xd5,0xbf,0xca,0x5,0x5,0x3f,0x89,0x64,0x9a,0x40,0xb8,0x6e,0xa,0xc0,0x57,0xf0,0x0,0x40,0xbe,0x89,0x86,0x40,0x3c,0xe3,0x32,0xbf,0x5e,0xa7,0x83,0x40,0xdb,0x21,0xa8,0xbf,0xe2,0x8b,0x7f,0xbf,0x81,0x26,0xa3,0x3f,0xac,0xe7,0x45,0xbf,0x75,0xf,0xa8,0xbf,0x52,0x8b,0x79,0xbf,0x65,0xf9,0x82,0x3f,0xb5,0xc1,0x30,0xc0,0xda,0x60,0x74,0xc0,0xfa,0xc8,0x7a,0xc0,0x2b,0x65,0x9d,0x40,0xb8,0x59,0x9,0x3e,0x7e,0x3f,0xf,0x40,0x54,0x3f,0x99,0xc0,0x28,0x4e,0x3b,0xbf,0xf2,0x38,0x7a,0xc0,0x4c,0x12,0xdd,0xbe,0x7b,0x87,0x8e,0x40,0x1b,0x3d,0x68,0x40,0x20,0x16,0xe7,0xbf,0xc,0xd5,0x2d,0xc0,0x23,0xeb,0x82,0xc0,0x4,0xce,0x1d,0xc0,0x2f,0xe1,0xda,0x3f,0x34,0x7c,0x3d,0xc0,0xae,0xe4,0x2f,0x40,0xa4,0xe3,0xe5,0xbf,0x72,0x3c,0x94,0x40,0x20,0xd6,0x9a,0xbf,0x68,0xcc,0x63,0xbf,0xfa,0xa7,0x3c,0x40,0x6c,0x53,0x60,0x40,0xb9,0x9,0x67,0x40,0x78,0xcf,0x67,0x40,0x9c,0x48,0x97,0xc0,0xd8,0x73,0x30,0x40,0x34,0x5d,0x27,0xc0,0x66,0x8,0x63,0x40,0x9a,0xfb,0x78,0x40,0x1c,0x77,0xd5,0xbe,0xbb,0xad,0xdc,0x3f,0x11,0x67,0x87,0x3f,0x72,0x99,0xc,0x40,0x78,0x9e,0x56,0x40,0xaf,0x3c,0xb9,0x3f,0x6e,0x65,0xd6,0xbf,0x80,0x60,0x49,0x3e,0x48,0xd3,0x13,0x3f,0xd7,0x34,0x84,0xc0,0x8f,0x5c,0xd2,0x3f,0x92,0x80,0x50,0xc0,0x50,0xf0,0x4a,0x40,0x7d,0x61,0x8f,0x40,0xd0,0x35,0x2e,0x3f,0xae,0xf8,0x85,0x40,0x60,0xdb,0xdc,0x3d,0x3e,0x3b,0x49,0x40,0x5e,0xa4,0x1f,0x40,0x92,0x55,0x85,0xc0,0x84,0x53,0x80,0xc0,0xa0,0xa7,0x99,0xbf,0xcf,0xbd,0xfe,0x3f,0xa,0x2f,0x6e,0xbf,0x45,0xca,0x81,0xbf,0x14,0x81,0x41,0x40,0xe2,0x60,0x8f,0x40,0xc0,0x7d,0x7,0x40,0xe0,0xb1,0xbd,0x3f,0x9,0xa4,0x22,0x40,0x32,0x38,0x2e,0x3f,0xa6,0x18,0x90,0xc0,0x2e,0xba,0x9e,0xc0,0x50,0xa,0x95,0xc0,0xde,0xb3,0x8c,0xc0,0x55,0x5d,0x72,0x40,0x0,0xd2,0xb4,0xbe,0x76,0xd0,0x5d,0xc0,0xdd,0x6e,0x8b,0x3f,0x0,0x37,0xd7,0x3c,0xbe,0x0,0x40,0xc0,0x24,0x1a,0x99,0xc0,0x2b,0x27,0x94,0x3f,0xf0,0x9f,0x9c,0x3d,0xd9,0x1f,0xe3,0xbf,0xd6,0x6a,0x32,0xc0,0x20,0x59,0xa9,0xbf,0x76,0x17,0x8b,0x40,0x68,0xd,0x80,0xc0,0xc9,0x9c,0xfd,0xbf,0xae,0xa3,0xcb,0xbf,0x78,0xa7,0x92,0x40,0x68,0x0,0x9c,0x3e,0xd2,0x27,0x5a,0x40,0x4,0xc,0xfe,0xbe,0xf8,0x3e,0x48,0xbf,0x2c,0xde,0x35,0x40,0x6b,0x3e,0xf6,0xbf,0x47,0x4f,0x3e,0x40,0x4c,0xf7,0x8b,0x40,0xfe,0x47,0x2,0x40,0x66,0x80,0x45,0x40,0x76,0xfd,0x77,0xc0,0x87,0x9d,0x93,0x40,0x78,0xf5,0x40,0xc0,0x44,0x7,0x34,0x40,0x6a,0xc8,0xc7,0x3f,0x48,0x51,0xbb,0x3e,0xd6,0xc4,0xa5,0x3f,0xd8,0xfa,0x9c,0xc0,0x10,0xcf,0x98,0x40,0xb0,0xff,0xa4,0xbe,0x25,0xe7,0x8e,0x40,0xb0,0xb3,0xfa,0x3d,0xb2,0x70,0x2,0xc0,0x60,0x4a,0x48,0x40,0x10,0x4,0xc3,0xbd,0x48,0x39,0x4b,0xc0,0x5c,0xd5,0x20,0x3f,0x2a,0x42,0x9f,0xc0,0x3e,0x99,0x45,0xc0,0x7c,0x5,0x82,0xc0,0xb8,0x7d,0x83,0x3e,0x26,0x2b,0x30,0xc0,0xb0,0x60,0xdf,0xbd,0x3f,0x54,0x73,0xc0,0x6c,0xd9,0x89,0xc0,0xd0,0xd7,0x13,0xbf,0x6e,0xcd,0x16,0x3f,0xc5,0x44,0x66,0x40,0xd7,0xd4,0xda,0xbf,0xf,0x35,0x98,0x40,0x78,0xd4,0x64,0xc0,0xa,0x90,0xdd,0x3f,0x8e,0xf1,0x8f,0xc0,0x7f,0x77,0x90,0x40,0xb7,0x8d,0xf1,0xbf,0x2e,0xbd,0x31,0x40,0xe8,0xa2,0x76,0x3e,0xba,0xae,0x0,0xc0,0x51,0x93,0x98,0xbf,0x80,0x17,0xef,0xbf,0x18,0xad,0x43,0x40,0xc0,0xb6,0x69,0x40,0x7f,0x46,0x98,0x40,0x7,0x38,0x98,0xbf,0x26,0xf0,0xc0,0xbf,0xe8,0xa0,0x20,0xc0,0x38,0x27,0xaf,0xbe,0x5f,0xc9,0x9a,0x3f,0x90,0xb5,0xd2,0xbe,0x7c,0xc5,0x4e,0xc0,0xb4,0xd4,0xbc,0x3e,0x80,0x1e,0x18,0xbe,0xe1,0xf5,0x7f,0xc0,0x9e,0x12,0xae,0xbf,0x20,0x86,0x51,0xbe,0x55,0x65,0x9b,0xc0,0xfc,0x0,0x32,0x3f,0xb5,0xbd,0xaf,0x3f,0x8,0xf8,0xef,0xbe,0x4e,0xdd,0x30,0xbf,0xe0,0x6a,0xf5,0x3d,0x36,0x21,0xa3,0x3f,0xe2,0x51,0x19,0xc0,0xd8,0x42,0xee,0xbe,0x94,0xc0,0x37,0x40,0x80,0xaa,0xbb,0xbf,0x0,0x4b,0xe6,0xbb,0xe2,0xfc,0x93,0xc0,0x77,0x94,0x73,0xc0,0xbc,0x56,0xf6,0xbe,0xb4,0x22,0xdd,0xbf,0xd8,0x90,0x9b,0x40,0x6c,0xf1,0x88,0xbf,0x46,0x84,0x85,0xc0,0xf6,0x6e,0x88,0x40,0x10,0xd8,0x4e,0xc0,0x53,0x6e,0x84,0x40,0x3a,0xf8,0x1,0xbf,0xd0,0x56,0x7b,0x3f,0x8c,0xe5,0x9c,0xc0,0xec,0x2f,0x91,0x40,0xc0,0x5d,0x66,0xbd,0x3a,0x77,0x20,0xc0,0x42,0x5d,0x64,0xc0,0xc8,0xda,0x68,0x3f,0x44,0x10,0x97,0xc0,0x94,0x3e,0x6d,0x40,0xda,0x5f,0x2f,0x40,0x59,0xae,0x8a,0x40,0x92,0x77,0x8e,0x40,0x88,0x88,0x3c,0xc0,0xbe,0x4d,0xad,0xbf,0x5c,0x5,0x44,0x40,0x7c,0xc5,0x4c,0x40,0xf3,0x9b,0x9c,0x40,0x6a,0x3b,0x4,0xc0,0xfa,0x1,0x38,0x3f,0x28,0xd4,0x2d,0xbe,0xcc,0x4a,0x38,0x40,0xc9,0xc6,0x1c,0xc0,0x84,0xd9,0x90,0x40,0x1,0x78,0xbd,0xbf,0x95,0xf3,0x1e,0x40,0x88,0x73,0x71,0x40,0x51,0xcd,0x9f,0xc0,0xb8,0x7b,0x6e,0x3f,0xef,0x6b,0x5b,0xc0,0xb6,0xe,0x1a,0x40,0x59,0x4,0x89,0x40,0xc5,0x69,0xcb,0xbf,0xcd,0xd6,0x58,0xc0,0x8e,0xa4,0x22,0xc0,0xbc,0x3d,0x79,0x40,0x34,0x60,0x4f,0xbf,0x95,0x30,0x6e,0xc0,0x8a,0xf5,0x82,0x40,0x6c,0xcb,0x51,0x40,0x92,0x8d,0xa,0xbf,0xbc,0x55,0x13,0x3f,0xb6,0x29,0x1d,0x3f,0xea,0xa4,0x9a,0x40,0xe6,0x98,0x39,0x40,0xd2,0xa5,0x66,0x3f,0x20,0x5f,0xe4,0x3d,0xc7,0x19,0xce,0x3f,0x36,0x67,0x6c,0xc0,0xbf,0x7e,0x2d,0x40,0xe,0x72,0x6,0x40,0x3c,0x2f,0x14,0x3f,0xdc,0xbc,0x39,0x40,0x9e,0xd8,0x76,0xbf,0x34,0x3e,0x92,0xc0,0x2c,0x2a,0x85,0xc0,0x40,0xd9,0x96,0x40,0xda,0x1a,0xd3,0xbf,0x90,0x9b,0x69,0xc0,0x37,0x91,0x9c,0x40,0xee,0x35,0x62,0xc0,0x87,0x6,0x82,0x40,0x34,0x83,0x8e,0x40,0x44,0x87,0x22,0xbf,0xa4,0x55,0x3a,0x40,0x86,0xeb,0x74,0x40,0x12,0x8b,0x96,0xc0,0x1b,0x48,0x2b,0xc0,0x64,0x7c,0x26,0x3f,0xcd,0xa5,0xc8,0x3f,0xd7,0x70,0x5a,0xc0,0xee,0xbf,0x83,0xc0,0x84,0x56,0x99,0x40,0x47,0xd1,0x16,0xc0,0x64,0x11,0x9c,0xc0,0x8e,0x92,0xc,0x40,0x36,0x8c,0x24,0xc0,0x19,0x5c,0xdf,0xbf,0x11,0x77,0xe0,0xbf,0x8d,0xb1,0x93,0x40,0x74,0x8d,0xf3,0x3f,0x4c,0xc7,0x9c,0x40,0x6b,0x2f,0xe2,0xbf,0x9a,0xf2,0x67,0x40,0xb6,0xd5,0x81,0xc0,0x4,0xc9,0x41,0x40,0xe8,0x8b,0x51,0x3e,0x58,0x33,0x3f,0x3e,0xe4,0x45,0x88,0x40,0xa0,0x13,0xc4,0x3e,0x4e,0x18,0x8,0xc0,0x8f,0x7e,0x30,0xc0,0x56,0x66,0x4f,0x3f,0x13,0x1b,0xd6,0xbf,0xdc,0xca,0x21,0x40,0x24,0xa1,0x85,0xc0,0x2a,0xa,0x57,0xc0,0xf3,0x8a,0x8b,0x40,0xb0,0xc0,0xf7,0xbf,0xd4,0xb0,0x9d,0xc0,0x65,0xf1,0x64,0x40,0x18,0xa8,0xad,0xbf,0x40,0x9,0xf2,0x3c,0x34,0x44,0x46,0x40,0x70,0xa5,0xd5,0x3f,0xe,0x82,0x99,0xc0,0x90,0xa2,0x65,0x3f,0x91,0x6,0x9b,0x40,0x68,0xea,0x93,0xbe,0x2e,0xb4,0x68,0x40,0xdc,0x2b,0x8c,0x40,0xa1,0xdb,0xeb,0x3f,0x10,0xe3,0x93,0xc0,0x7f,0x42,0x89,0x40,0xa4,0xbd,0x7c,0x40,0xd8,0xda,0xbf,0x3f,0x14,0xc8,0xd2,0xbe,0xa0,0x69,0x5c,0xc0,0x4c,0x17,0x8d,0x3f,0xe5,0x54,0xde,0xbf,0x4b,0x61,0x8f,0x40,0x22,0x81,0x9f,0xc0,0x8c,0xfd,0x89,0x3f,0x40,0x19,0xd8,0xbd,0x0,0xec,0x56,0x3c,0xc6,0x1c,0x1f,0xbf,0xd0,0x6e,0x7,0x40,0x10,0x62,0x89,0xc0,0xe0,0xbd,0x89,0x3f,0xf7,0x14,0x55,0xc0,0xd7,0x9d,0xcb,0x3f,0xb4,0x58,0xd9,0xbe,0xa8,0x6e,0x22,0x3f,0xdd,0x72,0x34,0x40,0xeb,0x79,0xfe,0xbf,0x8c,0xc4,0x80,0xc0,0x41,0x47,0x15,0xc0,0xa0,0x6b,0x82,0x40,0x71,0x3d,0x82,0xc0,0x8d,0xed,0x4a,0x40,0x81,0xfb,0xe1,0xbf,0x90,0xa2,0x86,0x3e,0xf6,0x10,0x3,0x40,0xe3,0xa3,0xe1,0xbf,0x9a,0x6d,0x5c,0xc0,0xe3,0x98,0xd8,0x3f,0x35,0x40,0x41,0x40,0xc,0x78,0xee,0x3f,0x0,0x57,0x32,0xbe,0x6a,0x7b,0x8,0x3f,0xbf,0x5a,0x6,0x40,0xbc,0xf4,0xcb,0x3f,0x24,0x9c,0x1e,0xc0,0x13,0xab,0x66,0x40,0xb4,0x54,0x2b,0xbf,0x1d,0x7c,0xfc,0xbf,0x13,0x17,0xc1,0xbf,0x58,0xfd,0x29,0x3f,0x1e,0x93,0x25,0xc0,0x10,0x77,0x69,0xc0,0x92,0x71,0x32,0x40,0x76,0x91,0x82,0x40,0x24,0x6,0x9f,0xc0,0x96,0xa6,0x7e,0x40,0xeb,0xc,0x3c,0xc0,0x83,0x2b,0x97,0x3f,0x32,0x13,0x94,0x40,0x78,0x1c,0x48,0xc0,0x54,0x91,0x3,0xc0,0x43,0x77,0xb8,0x3f,0xe2,0x29,0x48,0xc0,0x12,0x17,0xf9,0xbf,0x64,0x20,0x86,0xc0,0x12,0x62,0x15,0x3f,0xe0,0xca,0x47,0x40,0x82,0x68,0xab,0x3f,0x58,0xcd,0x63,0xbf,0x72,0xab,0x97,0x40,0x6c,0xc4,0x79,0x40,0xca,0x15,0x2e,0xc0,0x56,0xd,0x37,0x40,0xa2,0xd4,0x92,0xbf,0x11,0x66,0xce,0x3f,0x32,0x10,0xb,0x3f,0x2,0xf,0xc,0x40,0x4a,0xc7,0x22,0xc0,0x29,0x3c,0x1a,0xc0,0xbf,0x7f,0x36,0xc0,0x98,0x31,0x4f,0xc0,0xb4,0xfb,0x9,0xc0,0xd0,0x9f,0x99,0x3f,0x2,0x2e,0xb6,0x3f,0xb8,0x8b,0x72,0x3f,0xc1,0x22,0x6e,0x40,0xc3,0x5c,0x73,0x40,0x2e,0x1e,0x81,0x40,0x54,0x2a,0x47,0x40,0x20,0x94,0x20,0xbd,0x51,0xcf,0xa2,0x3f,0x56,0x23,0x21,0xc0,0x70,0xa2,0xab,0x3d,0xdc,0x15,0xc2,0x3e,0x26,0xd1,0x82,0xc0,0xda,0xf3,0x82,0x40,0x36,0xd7,0x8d,0xbf,0xd8,0xe3,0x74,0x40,0x8e,0xfe,0x17,0x40,0xff,0xcf,0x2d,0xc0,0x9,0x95,0xbb,0x3f,0x68,0x0,0xd,0xc0,0x34,0x80,0x1d,0xc0,0xd4,0x28,0xcb,0x3f,0x2e,0x7d,0x1c,0x40,0x9,0xc7,0x36,0xc0,0xb3,0xc8,0x21,0xc0,0x9f,0xaa,0x71,0x40,0x3b,0x47,0xeb,0xbf,0xb6,0xc7,0x56,0xc0,0x64,0x7c,0x87,0xc0,0x42,0xf8,0x38,0x40,0xf0,0x85,0x66,0x40,0x32,0x9c,0x9e,0x40,0x2e,0x42,0x70,0xc0,0x60,0x7e,0x19,0x3f,0x92,0xf6,0x78,0x3f,0x44,0x45,0xfd,0x3e,0xea,0x34,0x81,0x3f,0xd2,0xcb,0x93,0xc0,0xf9,0xcf,0x99,0xc0,0x82,0xad,0x4,0xc0,0x64,0x69,0xeb,0x3e,0x70,0xeb,0xc1,0x3e,0x7e,0xf7,0x36,0xbf,0x94,0xcb,0x9f,0xc0,0x1f,0xd2,0x47,0x40,0xfa,0x85,0x56,0xc0,0x0,0xf4,0x97,0x3f,0xe6,0xd2,0x69,0xc0,0x40,0xae,0x66,0x40,0x75,0xc8,0x80,0x40,0x90,0x39,0x27,0xc0,0x3c,0x47,0x89,0x40,0x6a,0xd4,0xc0,0xbf,0x84,0x7a,0x9b,0xc0,0xc0,0x1a,0x4f,0xbf,0xd6,0x89,0x71,0xc0,0xdb,0x7b,0x85,0x3f,0xc2,0x59,0x77,0x3f,0x6,0x2b,0xd,0xc0,0x71,0x8a,0xb8,0xbf,0xac,0xa5,0xbc,0x3f,0xe8,0x32,0x2f,0xc0,0x30,0x90,0x3,0x40,0xb,0xf8,0x6c,0xc0,0x6a,0x4,0x3b,0x40,0xb2,0x41,0x18,0xc0,0xbc,0x8c,0x85,0xc0,0x58,0x93,0x75,0x3f,0xd0,0xe9,0x6,0x3f,0x5e,0x53,0x6c,0xc0,0x33,0xa8,0x8c,0x40,0xf3,0xde,0xe6,0xbf,0x94,0xde,0x52,0x40,0xa8,0x48,0xa5,0xbf,0x2,0xff,0x55,0x40,0x9,0x43,0x1a,0xc0,0xe7,0x6b,0x5e,0xc0,0xc9,0x9a,0x82,0xc0,0xa2,0x5a,0x23,0xc0,0xf8,0x91,0x2e,0xc0,0xb7,0xfc,0x11,0x40,0xa2,0x39,0x53,0xc0,0x6,0xee,0x58,0xbf,0x77,0x86,0xe8,0xbf,0x3e,0xa2,0xf1,0xbf,0x70,0xca,0x1c,0xbf,0xa6,0x91,0x30,0x40,0xc0,0xf7,0x3,0xc0,0x9b,0x11,0x86,0xc0,0x94,0xda,0x59,0x40,0xc1,0xf2,0x39,0xc0,0xc2,0xd3,0x5c,0x40,0xf2,0x49,0x2,0xbf,0x70,0x52,0x17,0xbf,0x5d,0x11,0x96,0x40,0x52,0x6c,0x66,0x3f,0xe6,0xbe,0x90,0xc0,0xc8,0x5e,0x99,0xc0,0xa1,0xaa,0x95,0xc0,0xae,0x25,0x6c,0xc0,0x8f,0x56,0xe7,0x3f,0xec,0xe8,0x4,0x40,0x79,0xd1,0x25,0x40,0xde,0x39,0x93,0xc0,0xce,0x4a,0x40,0x40,0x2d,0xd7,0x8d,0x40,0xb5,0x35,0xfb,0x3f,0x48,0x51,0xfc,0xbf,0x23,0xbf,0x8a,0xc0,0xda,0x2f,0x9e,0x40,0xb4,0x27,0xfb,0x3e,0x9c,0x1,0x8a,0x3f,0xe0,0xbc,0x41,0x3e,0x5a,0xd8,0x56,0x40,0x76,0x41,0x9d,0xc0,0xd6,0xc5,0x21,0x40,0x48,0x7b,0x59,0xc0,0xe1,0x67,0x94,0x40,0x61,0xbd,0x79,0xc0,0x1c,0x24,0x8d,0xbf,0xe1,0x7c,0xd3,0x3f,0xbd,0xcc,0xd4,0x3f,0x5c,0x13,0xd6,0x3f,0xe8,0x9d,0x4e,0x3e,0xd9,0xb2,0xaf,0x3f,0xe0,0x60,0x57,0xc0,0x28,0x40,0x97,0xbe,0x3,0x72,0xb2,0x3f,0x88,0x58,0x80,0x40,0x48,0x41,0x82,0xc0,0xa2,0xa1,0xfc,0xbf,0xfe,0x81,0x56,0xc0,0xa3,0x5c,0x25,0xc0,0xd6,0x2,0x3b,0xc0,0x92,0x59,0x43,0xbf,0x55,0x40,0xe7,0x3f,0x8e,0xf0,0x78,0xbf,0xd6,0x3f,0x80,0x3f,0x63,0x50,0x97,0xbf,0x12,0xf7,0x99,0xc0,0x6a,0xca,0x22,0x3f,0x68,0x2f,0x60,0x3e,0x62,0x50,0x59,0xc0,0x8b,0x10,0x9a,0xc0,0x76,0x4,0x9e,0x3f,0x4c,0x1c,0xb0,0xbf,0x20,0x2d,0x80,0x3f,0x85,0xe4,0x8b,0xbf,0x71,0x96,0x9d,0xbf,0x12,0x57,0x0,0xc0,0x54,0xbf,0x99,0x40,0x41,0x80,0x8e,0xc0,0xb7,0xe5,0x9e,0xbf,0x55,0x6f,0xae,0xbf,0xc7,0x42,0xe1,0xbf,0xe2,0x3e,0x22,0x40,0x79,0x42,0x8e,0x40,0x2a,0xf5,0x83,0x40,0x28,0xb7,0x1b,0xc0,0xf4,0xa0,0xb,0xc0,0xd5,0x12,0xfe,0x3f,0xad,0xc4,0x2b,0x40,0x6a,0x26,0x86,0xc0,0xb6,0x15,0x11,0xc0,0xae,0xd6,0x16,0xc0,0x38,0x2d,0xf9,0xbe,0xb,0xfa,0xe0,0xbf,0xea,0x5c,0x77,0xc0,0xfc,0xe5,0x56,0xbf,0x6c,0xf5,0x93,0xbf,0x20,0x84,0xc4,0x3e,0x43,0xf0,0xf3,0xbf,0xe3,0x5e,0x15,0xc0,0x1e,0xdb,0x8e,0x40,0x9d,0x6d,0xb8,0xbf,0x72,0x99,0x3e,0x40,0x56,0x4e,0x51,0xc0,0x8a,0xb8,0xa,0xc0,0xd6,0x36,0x2,0x40,0x6,0xbb,0x7c,0x3f,0xe8,0x4d,0x71,0xc0,0x2a,0x62,0x77,0x40,0x2,0x3b,0xae,0xbf,0x0,0x60,0xb8,0xba,0x4,0x48,0x2e,0xbf,0x91,0x65,0x74,0x40,0xb3,0xed,0x9a,0x3f }); - // [[[[ 2.3296685 -1.0875499 4.985183 1.9457787 2.4680734 -0.9700763 - - Tensor *w = NN_tensor(4, (size_t[]){ 3, 3, 1, 16 }, DTYPE_F32, (uint8_t[]){ 0x4a,0x19,0x15,0x40,0xd6,0x34,0x8b,0xbf,0x9e,0x86,0x9f,0x40,0x47,0xf,0xf9,0x3f,0xea,0xf4,0x1d,0x40,0xec,0x56,0x78,0xbf,0x98,0x73,0x84,0xc0,0x9a,0x3e,0x67,0x40,0x21,0x7c,0x8e,0xc0,0x68,0x2d,0x9e,0xc0,0xc8,0x2a,0xf3,0x3e,0x42,0x6b,0x77,0xbf,0xd0,0x8c,0x66,0xc0,0x46,0x52,0x76,0x40,0x48,0x13,0x1,0x3f,0xbc,0x4d,0x14,0xc0,0x86,0xc7,0x4d,0x40,0x8e,0x93,0xe2,0x3f,0x28,0xda,0x79,0xc0,0x2a,0x93,0x53,0xbf,0x87,0xdb,0x89,0xc0,0x7c,0x53,0x32,0xc0,0x58,0xc0,0x66,0x3f,0xb4,0x4e,0xb1,0x3f,0xcb,0x87,0xf7,0xbf,0xf4,0x51,0xe1,0xbf,0xe9,0xa1,0x88,0xc0,0x8d,0xd4,0x45,0xc0,0x4c,0xb1,0xa2,0xbe,0xa0,0xf7,0x37,0x3e,0xda,0xa,0x34,0x40,0x98,0x95,0x54,0x40,0x73,0xa1,0x8b,0x40,0xb4,0xe8,0x78,0x3f,0x3d,0xc6,0x6c,0xc0,0x7d,0xf5,0xb4,0xbf,0x47,0xcc,0x8c,0xc0,0x30,0xdd,0xc4,0xbe,0x34,0x92,0x27,0x40,0x60,0x76,0x12,0x3f,0x82,0x20,0x12,0x40,0x90,0x16,0x87,0x40,0xea,0x7b,0x26,0x40,0xe9,0x13,0x85,0xbf,0x62,0xc5,0x91,0x40,0xb4,0x64,0x31,0x40,0xec,0x7c,0x6d,0xc0,0x56,0xf1,0x37,0x3f,0xd8,0x57,0x1a,0x40,0x60,0x45,0xcd,0x3f,0x68,0x7,0x9a,0x40,0xb5,0xff,0x51,0xc0,0xda,0x3e,0x34,0x3f,0x72,0x1e,0x9b,0x40,0xa8,0xaf,0x48,0xc0,0xfa,0x58,0x2c,0xc0,0xc,0xd4,0x58,0x40,0xcc,0x35,0x21,0x40,0xba,0xd3,0x7b,0x40,0x68,0x4a,0x5e,0xbf,0x4c,0xaf,0x3d,0x40,0x6e,0x83,0x89,0xc0,0x4e,0x80,0x38,0xc0,0x5c,0x35,0x4d,0x3f,0x10,0x16,0x63,0xc0,0xd0,0x65,0xb0,0xbd,0x68,0xcb,0xee,0xbf,0x5a,0x2b,0x9e,0x40,0x5c,0x34,0xbf,0xbf,0xdf,0xb9,0xde,0x3f,0x7a,0xc1,0x75,0x3f,0xdb,0x29,0x9a,0x40,0x20,0x87,0x55,0x3d,0xdc,0xcc,0x35,0x40,0xb0,0x27,0x59,0xc0,0xb6,0xd7,0x66,0xc0,0xa9,0xa6,0x25,0x40,0x20,0xcf,0x46,0x40,0xd2,0xd,0x22,0xc0,0xf2,0x2c,0x80,0x40,0xae,0xa,0xd3,0x3f,0x9c,0x5a,0x35,0xc0,0x48,0x52,0x1a,0x40,0x27,0x17,0x9f,0x40,0xdb,0xc,0xa4,0xbf,0xc8,0x8b,0x78,0x40,0x57,0x8d,0xc5,0xbf,0xae,0x2c,0x96,0xc0,0xa1,0xd9,0x7c,0xc0,0x8,0x34,0xd7,0xbf,0x5,0x55,0x97,0x40,0xc0,0x79,0x6,0x40,0x3b,0xf5,0x89,0x40,0x46,0x2d,0x22,0x40,0x30,0x98,0x91,0xbd,0xa4,0x71,0x53,0xc0,0x2e,0x6a,0x91,0xc0,0xef,0x4d,0xd6,0xbf,0x6a,0x50,0xd,0xc0,0x69,0x0,0x90,0x40,0xde,0x95,0x9a,0xbf,0xf2,0xb3,0x1a,0xbf,0x18,0x2c,0x68,0x3f,0x2c,0x58,0x83,0x40,0x58,0xb5,0x3,0xbf,0x68,0xcf,0x27,0x40,0x44,0xc5,0x5c,0xc0,0xdf,0x6f,0x98,0xc0,0xfc,0x61,0x44,0xbf,0x71,0x9c,0x12,0x40,0x56,0x74,0x48,0x40,0xa7,0x5a,0xe9,0x3f,0x86,0x88,0x72,0x40,0x9e,0x27,0x3c,0xc0,0x93,0xeb,0x8f,0x3f,0x19,0x1f,0x85,0x40,0x2e,0x10,0x46,0xc0,0xdc,0x75,0x5d,0x40,0x8,0x9b,0x81,0xc0,0x66,0x23,0x50,0x40,0x90,0xd4,0x26,0x40,0x42,0xc5,0x8b,0x40,0x7a,0x69,0xa,0xbf,0x8c,0xc3,0x8c,0xbe,0x8f,0x41,0x40,0xc0,0x82,0xb2,0x92,0x40,0x28,0x3f,0x31,0xbe,0xd1,0x55,0xa6,0xbf,0xf0,0x3a,0xa7,0x3e,0x20,0x66,0x26,0x40,0x82,0x50,0x22,0xc0,0x86,0xd1,0x7e,0xc0,0x67,0xcf,0x9b,0xbf,0x93,0x41,0xc1,0x3f,0x80,0xc7,0x0,0x3f,0x51,0x40,0xaa,0xbf,0xf6,0x76,0x26,0x3f,0x38,0x1f,0xd0,0xbe,0x88,0xf4,0x77,0x40,0xe2,0x8,0x3c,0xc0,0xc5,0x4b,0x9a,0x40,0x0,0x7e,0x42,0x3d,0xc4,0xc3,0x60,0x40,0xd,0xd6,0x0,0x40 }); - // [-3.7606459 3.586495 -1.750384 -3.3630772 2.1881926 0.9455222 -2.5148 - Tensor *b = NN_tensor(1, (size_t[]){ 16 }, DTYPE_F32, (uint8_t[]){ 0x6c,0xae,0x70,0xc0,0x22,0x89,0x65,0x40,0x95,0xc,0xe0,0xbf,0xa8,0x3c,0x57,0xc0,0x59,0xb,0xc,0x40,0xbe,0xd,0x72,0x3f,0xc4,0xf2,0x20,0xc0,0x40,0x59,0x16,0xc0,0xe7,0xe2,0x8b,0x40,0x4c,0xf6,0x9f,0xc0,0x68,0xd,0x37,0x3f,0xf0,0xe0,0xce,0x3d,0xe8,0x7d,0x7f,0xc0,0x72,0x19,0xb,0x40,0x4c,0xb2,0x8f,0xc0,0x70,0x9c,0x18,0xbe }); - - - // [[[[-1.58899307e+01 -9.07565594e-01 -7.15839863e-02 ... 4.07287216e+00 -1.1 - Tensor *golden = NN_tensor(4, (size_t[]){ 1, 12, 12, 16 }, DTYPE_F32, (uint8_t[]){ 0x28,0x3d,0x7e,0xc1,0x38,0x56,0x68,0xbf,0xa0,0x9a,0x92,0xbd,0x92,0x74,0xea,0xc0,0xe8,0xd9,0xba,0x41,0x8c,0x5d,0x59,0xc1,0x28,0xea,0xdc,0xc1,0xb,0xb,0x33,0x41,0xef,0xa2,0x9f,0xc0,0xc3,0x4f,0x32,0xc0,0x8f,0xd5,0xdf,0x41,0xf1,0x27,0xf1,0xc0,0x22,0x74,0x49,0x40,0xf8,0x54,0x82,0x40,0x46,0x38,0x38,0xc1,0x19,0x91,0x3,0x3f,0x80,0x2a,0x12,0xbe,0x12,0xe6,0x35,0xc1,0x5b,0x2e,0x5f,0x41,0xe2,0xb9,0x42,0x42,0x8c,0x28,0x9a,0x41,0xd4,0x1d,0x75,0xc1,0xe,0xe,0x98,0x41,0x50,0x6d,0xfb,0xc0,0x70,0x58,0x15,0x41,0x58,0x32,0xc0,0x41,0xf3,0xda,0x88,0xc1,0xf4,0xde,0x2,0x42,0x13,0xa2,0x40,0xc0,0xed,0xa8,0x3b,0x42,0xbe,0xbb,0x9a,0x41,0x2,0xe0,0x92,0xc1,0xc1,0xa4,0x86,0x40,0xf0,0xe8,0xdb,0x3f,0x21,0x92,0xd,0x42,0x5e,0x25,0x1f,0x41,0xc2,0xf0,0xcd,0x40,0xcf,0x24,0x65,0x42,0x58,0x3e,0x8f,0xc1,0x38,0x6e,0x34,0xc2,0xa,0x8a,0xc4,0x41,0xa0,0x6d,0x68,0x40,0xa,0x96,0xf9,0xbf,0x10,0x91,0x36,0x40,0x13,0xa3,0xc2,0xc1,0x68,0xd8,0xba,0x41,0x6a,0x95,0xc1,0xc1,0x80,0x24,0x89,0xc0,0xb6,0x97,0xad,0xc0,0x70,0xfb,0x1,0xbf,0x3f,0xc8,0xd5,0xc1,0xd,0xc0,0xb0,0xc0,0x48,0xee,0xec,0x3f,0x8e,0xa5,0x14,0x42,0x7,0x74,0x9,0x41,0xb9,0xb5,0x24,0x42,0x3,0x29,0xe6,0xc0,0xbe,0x95,0x25,0xc2,0x91,0x5a,0xf0,0x40,0xb4,0xe7,0x59,0xc1,0x6c,0x5a,0x4e,0x41,0x18,0x21,0x4c,0xc0,0x54,0xe4,0xb8,0xc1,0x43,0x40,0xa7,0xc1,0xce,0x59,0xb7,0xc0,0x26,0x86,0x70,0x41,0x4b,0xd9,0xb,0x42,0xe0,0x7c,0x59,0x41,0xfc,0x1b,0x14,0xc1,0xbc,0x1a,0x34,0x42,0xa1,0x90,0x35,0x41,0xa3,0xf,0xb0,0xc1,0xfc,0x83,0x89,0xbf,0x4a,0xf,0x23,0x40,0xee,0xc6,0x62,0x41,0xc5,0x5b,0x8c,0xc1,0x26,0x47,0x1c,0xc0,0xc,0xa9,0xeb,0xc1,0xc8,0xf3,0xdb,0x40,0x9c,0x19,0xb6,0xbf,0xa,0xee,0xe6,0xc0,0x71,0x79,0x61,0x40,0x45,0xed,0x17,0xc1,0xc3,0xb0,0x78,0xc1,0x44,0x91,0x4b,0xbf,0x20,0x58,0xd8,0x41,0xf1,0xe1,0x48,0x41,0xd6,0x6,0x59,0x40,0x7d,0x5a,0x93,0xc0,0x30,0x81,0x56,0xbf,0x5a,0x28,0x4b,0xc1,0x9b,0x37,0x9e,0xc1,0xe8,0x4b,0x73,0xc1,0x72,0xf6,0x27,0xc1,0x80,0x7b,0xcf,0x3e,0x28,0x3d,0xb5,0x40,0x86,0x37,0xe1,0x41,0xf,0x78,0xa8,0xc0,0x1e,0xf6,0x78,0xc1,0xea,0x35,0x17,0xc1,0x74,0x8,0xbe,0x40,0x6e,0x87,0x34,0x42,0x2,0xa2,0x10,0xc2,0x50,0x7f,0xe4,0xc1,0xfc,0x3e,0x80,0x41,0xf8,0xea,0x9b,0x3f,0x1c,0xac,0x5d,0x41,0x93,0xae,0x97,0xc1,0x5e,0x67,0xcd,0xc1,0x54,0x3c,0xb,0x42,0xe2,0x9e,0x8c,0xc0,0x79,0xa,0xa4,0xc1,0x4c,0x7a,0x26,0xc2,0x90,0xac,0x94,0x40,0x3f,0x48,0x13,0x42,0xca,0xbe,0x8a,0x41,0xe9,0xee,0xb,0x41,0xa2,0xa5,0x30,0x41,0xd4,0x31,0xaf,0x41,0x99,0x1e,0x8f,0x41,0xb8,0xa6,0xfb,0x41,0x96,0x80,0xae,0x40,0x76,0x28,0x37,0x42,0xdf,0xa7,0x6,0xc2,0x36,0xae,0x9c,0xc1,0x47,0x75,0xb,0x42,0xe0,0xe,0x59,0x40,0x15,0x23,0x7a,0x40,0x77,0xf3,0x62,0xc0,0x90,0x52,0xa4,0xc1,0xef,0xfe,0x5,0xc2,0x98,0xf1,0xc6,0xc0,0xdc,0x5e,0xa6,0x41,0x64,0x1,0xfb,0x3f,0xe3,0x53,0x62,0xc1,0x6e,0x4a,0xab,0x3f,0x1c,0xbb,0xa,0x40,0x24,0xfa,0xc5,0xc1,0x43,0xc,0xa0,0xc0,0x9a,0x9c,0x17,0x40,0x8,0x17,0x61,0x41,0x9e,0x4c,0x49,0x41,0x42,0x3d,0x7f,0xc1,0x52,0xa8,0x10,0x40,0xd0,0x88,0x8a,0x40,0xc8,0x3e,0x9c,0x41,0x31,0x29,0x30,0x42,0x54,0x8e,0xbd,0xc1,0xfa,0x8,0xf5,0x41,0x7b,0x17,0x12,0x42,0x80,0xfb,0xac,0xbf,0xf5,0x34,0x1c,0xc1,0xff,0x7,0x40,0x41,0x83,0xe0,0xa2,0xc1,0x16,0xfa,0x70,0x40,0xc7,0xcf,0xe4,0xc0,0x8,0x4,0xd2,0x40,0x14,0xed,0x1c,0xc2,0xe8,0xb6,0xe4,0x40,0x1b,0x75,0x2,0xc2,0x32,0xfa,0x5e,0x40,0xeb,0xb,0xa3,0x40,0x1a,0xfc,0x4,0xc2,0xbe,0x6f,0xce,0x40,0x11,0x9a,0x85,0x41,0xe5,0x4,0xf,0x40,0xa5,0x45,0x68,0x41,0x2b,0xae,0x12,0x41,0x47,0x3d,0x59,0x40,0xb1,0x11,0xb1,0x41,0xc3,0xbf,0xa2,0xc1,0x1b,0x85,0x5a,0xc1,0x64,0xbe,0x51,0x41,0x47,0x6f,0x8f,0x41,0x90,0x42,0x3c,0xc1,0xe3,0x41,0x6c,0x41,0x34,0xff,0xc1,0x41,0x32,0x9d,0x22,0xc1,0xf2,0xb9,0x4a,0x41,0xf4,0x2a,0x9b,0x41,0xd1,0x1a,0x30,0x41,0x5b,0x4e,0xb3,0x41,0x4d,0x22,0x2e,0xc1,0xbb,0xc1,0x24,0xc0,0x80,0x11,0x5d,0xc1,0x6a,0x9b,0x3c,0x41,0xfe,0xbf,0x80,0x41,0xf3,0x5,0xfc,0x41,0xd4,0x98,0xf6,0x3f,0x86,0x12,0x96,0x41,0xa9,0xf5,0x19,0xc0,0x4b,0x86,0x2e,0xc0,0xb3,0xd5,0x20,0xc1,0x81,0xf9,0x46,0x40,0x38,0xcb,0xfc,0xc1,0x84,0x76,0x18,0x42,0xcf,0x4f,0x3,0x42,0xc2,0x4e,0x66,0xc1,0x94,0x80,0x84,0x41,0x32,0x23,0xa7,0x41,0x73,0x5a,0xd0,0x41,0x58,0xca,0xcc,0x40,0x7c,0x70,0x50,0x41,0xbd,0x84,0xc,0xc1,0xc5,0x9f,0x90,0x41,0x39,0xfe,0xb,0x42,0x8f,0xcb,0x9b,0xc1,0x9f,0x84,0x55,0xc1,0x7a,0xd7,0x33,0xc2,0x4f,0x40,0x53,0x40,0x4e,0x3c,0x14,0xc0,0xdc,0x45,0x2a,0x42,0x4,0xe,0x64,0x41,0xd,0x6e,0x98,0xc1,0x1f,0x42,0x80,0xc1,0xb4,0x84,0x9,0x42,0x2a,0x1a,0x73,0xc1,0x56,0xc5,0x8c,0x40,0xc3,0x31,0x1d,0xc2,0xff,0xec,0xbb,0xc1,0x8a,0x89,0x70,0x41,0xf4,0x27,0x42,0x41,0xc5,0x1,0x2c,0xc1,0x0,0xe8,0xdf,0xc1,0xb6,0x37,0x76,0xc2,0x7a,0x83,0x6c,0xc1,0x88,0xfa,0xa,0x3e,0x8c,0xc4,0x95,0x41,0x6a,0x6b,0xeb,0xc0,0x65,0xc9,0x9a,0xc1,0x99,0x3c,0x57,0xc1,0xa2,0x5b,0xdc,0x40,0xde,0x3c,0x88,0xc1,0xfe,0x27,0x83,0xbf,0xe6,0x4c,0xcb,0xc1,0x0,0x21,0x32,0xc0,0x67,0x7a,0xaa,0x41,0x7e,0xe4,0x78,0xc1,0xe2,0x2d,0xeb,0xc1,0x3,0xe3,0x33,0x41,0xba,0x9f,0xc6,0xc0,0x49,0x81,0xb6,0x41,0xb1,0x5b,0xa8,0xc1,0x74,0x32,0x90,0x41,0x46,0x6c,0xe4,0x41,0xeb,0xda,0xb7,0x41,0xae,0x2a,0xc8,0xc0,0xa4,0x46,0x51,0x41,0xb6,0x8f,0xf5,0x41,0xcf,0xd8,0xdc,0x41,0x7e,0x27,0x9a,0x41,0xba,0x57,0xb5,0xc1,0xd6,0x9f,0x66,0xc2,0xf9,0x48,0x5b,0xc2,0xaa,0xe8,0x1,0xc0,0xa0,0xcc,0xf9,0xc1,0x77,0x77,0x27,0xc2,0xe8,0x92,0x2f,0xc0,0xaa,0xa4,0x1d,0x40,0x20,0x20,0x81,0xc2,0x44,0xce,0x90,0xc0,0xb3,0x45,0x9c,0x41,0x56,0xb2,0xb4,0x41,0x39,0x77,0x3b,0xc1,0x96,0x9e,0x1e,0x41,0x40,0xa,0x34,0x41,0x70,0x5d,0x7a,0x41,0x63,0x9e,0xa4,0x3f,0xcd,0x3f,0xec,0x41,0x5a,0xfc,0xbc,0xc1,0xa9,0xe7,0xa5,0xc1,0x5a,0xb6,0xf6,0x41,0xc9,0xa2,0x9,0xc2,0x70,0x28,0x1a,0x41,0x8,0x78,0x6f,0xc2,0x10,0x88,0x45,0xc0,0x46,0x2a,0xd,0xc1,0xb9,0xf9,0x46,0x41,0xa8,0x46,0x5f,0x40,0xc3,0xf9,0xfd,0xc0,0xac,0x6,0xa3,0xc1,0x4c,0x5,0x58,0xc1,0x2e,0x25,0x51,0xc1,0x53,0xe1,0x72,0x41,0x9b,0x2e,0xba,0xc1,0x75,0x66,0xdc,0x41,0x6c,0x22,0xb7,0x40,0xdb,0x89,0xc0,0xc1,0xc5,0x6f,0x9,0xc2,0x54,0x22,0x66,0xc1,0xb7,0x18,0xab,0xc0,0x31,0xcc,0x92,0x41,0xb3,0xb7,0xf,0xc1,0xa9,0x6d,0xf8,0x41,0x3a,0x8b,0x1c,0xc1,0xe6,0x28,0x92,0xc0,0x38,0x1,0x8f,0xbf,0x58,0xb6,0xc3,0x40,0xa,0x4,0xb6,0x41,0xcc,0xa1,0x94,0xc1,0x68,0xea,0x2,0xc2,0xc4,0x50,0x88,0xc1,0xeb,0x2a,0xb8,0xc1,0x23,0x5a,0xcf,0xc1,0x90,0xc8,0x5c,0x42,0x7,0x68,0xa5,0xc0,0x9c,0xcb,0x35,0xc0,0x9c,0x49,0x41,0xc2,0x94,0xb9,0x12,0xc2,0x47,0x5e,0xa0,0xc1,0xd3,0x2a,0x6,0x41,0x60,0x2f,0xf9,0x41,0xf4,0xde,0x42,0x41,0x94,0xc0,0x2e,0xc1,0x63,0xf2,0xd8,0xc0,0x70,0xe4,0x77,0x41,0x42,0x3a,0x26,0xc1,0xec,0x40,0x2c,0xc1,0xed,0x5e,0xd2,0xc1,0x84,0xf9,0xa8,0x41,0x7,0x32,0x10,0xc1,0x19,0xa4,0x1b,0x42,0xd2,0x83,0x88,0x41,0x4d,0xe9,0xba,0xc1,0x97,0x53,0x21,0xc0,0x88,0x48,0xf9,0x41,0xb4,0x89,0xb7,0xc1,0x9f,0xae,0xea,0xc0,0xe0,0xc,0x15,0x42,0xb6,0x34,0x39,0xc1,0xf8,0x21,0x89,0xc0,0x1,0xfe,0xe0,0x41,0x5e,0x2d,0x2a,0x42,0xbc,0x2a,0x8d,0xc0,0x6f,0x19,0xce,0x41,0x28,0x1d,0x91,0xc1,0xaa,0x5d,0x53,0xc1,0x98,0xc0,0x69,0xc1,0x5,0xaf,0x1f,0xc1,0xba,0x61,0x1e,0x42,0x3c,0xb1,0x8,0x42,0xbc,0x51,0xa7,0x40,0x7c,0x30,0xad,0xc0,0x7e,0x57,0xf0,0xc1,0x3b,0xe8,0xba,0x41,0xac,0x7c,0x7,0xc1,0xde,0xfa,0x30,0x41,0x3f,0x1e,0x1a,0xc1,0xdc,0xc7,0x24,0xc2,0xc7,0x87,0xcd,0x41,0xfa,0x36,0x14,0xc2,0x26,0xc4,0x4a,0xc1,0x7b,0x24,0x4c,0xc1,0x7e,0x52,0x15,0x40,0x28,0x4f,0xe3,0xc0,0xa8,0x44,0xca,0xbe,0x48,0x49,0x44,0xc1,0x99,0xf8,0x2d,0x41,0x76,0x70,0xf3,0x40,0x1,0x7f,0xab,0x40,0xa5,0xad,0x89,0x41,0x9c,0x25,0x52,0xc1,0xbd,0xc3,0x8b,0x41,0xb3,0xb4,0x6c,0x42,0x1f,0x46,0x1c,0x41,0xa2,0xc9,0x53,0x41,0xd0,0x78,0xd8,0x41,0xc6,0x5,0x60,0x41,0xe1,0x18,0x33,0xc2,0xd0,0x2a,0x3a,0x41,0xfb,0x2,0x3,0xc2,0xc2,0x97,0x50,0xc2,0x78,0xcd,0x70,0xc1,0x64,0xc2,0x40,0xc0,0xb2,0x8b,0xb6,0x41,0x21,0x21,0x46,0x41,0xbf,0x77,0x9b,0x41,0x11,0xc0,0x8b,0xc1,0x5a,0x4,0x7d,0xc1,0x40,0x7d,0x27,0xc1,0xa7,0xf2,0xa9,0xc1,0x67,0x44,0x9e,0xc1,0x78,0x40,0xeb,0xbf,0x51,0xa5,0x22,0xc0,0x4a,0xee,0xbf,0xc1,0xaa,0xfa,0xc0,0x40,0x95,0x10,0x34,0xc1,0x79,0x53,0xc3,0xc1,0xcb,0x44,0x9,0x42,0xa6,0x9b,0x9,0x42,0x28,0xc4,0x32,0xc1,0x7f,0x2c,0x89,0x41,0xb3,0xf5,0xfa,0xc0,0xaa,0x65,0xe7,0x40,0x64,0x4,0xe5,0xc0,0xd7,0x80,0xe5,0xc0,0x83,0x63,0xa3,0x41,0xa9,0xfa,0x88,0x41,0x7c,0xa1,0xf2,0x40,0xe3,0xe8,0x69,0xc0,0xc0,0xbe,0x48,0xc2,0xfc,0xde,0x9b,0xc1,0x86,0x76,0xbb,0x41,0xf8,0x16,0xbf,0xc1,0xc0,0xec,0x75,0x3d,0x4b,0xaa,0x4a,0x41,0x84,0xde,0xa4,0x41,0xf8,0x38,0x6c,0x41,0xee,0x22,0x4,0x42,0x0,0xa,0x76,0xbe,0x54,0xf3,0x6e,0x41,0x63,0x44,0x12,0xc2,0x48,0xf9,0xdf,0x40,0xfe,0xb8,0x9,0x42,0xb8,0x28,0x2,0xc2,0xda,0xf7,0xa6,0xc1,0x6,0xe4,0xa,0xc2,0xd0,0x34,0xb1,0x41,0x11,0xa2,0x1,0x42,0xb2,0x37,0x81,0xc1,0x34,0x2c,0xa5,0xc1,0x51,0xea,0xae,0xc1,0x56,0x7,0x2e,0xc1,0xf6,0xd6,0x67,0xc0,0xc6,0xdc,0xac,0x40,0x5f,0x60,0xfc,0xc1,0xff,0x5b,0x3,0xc2,0xe0,0xc5,0xe5,0xc0,0x2a,0xd5,0x87,0x40,0x56,0x5f,0xe,0xc2,0x37,0x53,0x97,0x41,0xd0,0xd0,0x61,0x40,0xcb,0x74,0x97,0xc1,0xdc,0x3a,0x44,0x41,0xf7,0xa3,0xa4,0x41,0xc2,0x9,0x6f,0x41,0xb2,0xc3,0x4,0xc2,0x32,0x31,0xac,0x41,0x63,0xb0,0x1,0xc1,0x6,0xc4,0xa1,0xc1,0x25,0x2d,0x8c,0xc1,0xe2,0x88,0xa9,0x41,0x6b,0xe2,0xe4,0xc1,0xf8,0xca,0x52,0xc2,0x9e,0x81,0x6b,0x40,0x2c,0xf5,0x96,0xc1,0x4,0xc6,0xa,0x42,0xd6,0x34,0x99,0x41,0xa,0xb5,0xe,0xc2,0x2e,0x45,0x39,0xc1,0x8b,0x80,0x8,0xc2,0xcd,0x22,0xf5,0x41,0x7e,0x6a,0xa5,0xc1,0x74,0x3,0xa5,0xbe,0x70,0x18,0x4e,0x40,0x43,0x78,0x52,0x41,0x13,0xab,0xc6,0x41,0xc6,0x63,0xc9,0x40,0xfa,0x67,0x4,0xc0,0x23,0x1f,0xce,0x40,0x46,0xdb,0x29,0x41,0x52,0x7,0x9c,0xc0,0x3f,0x86,0x55,0xc1,0xf6,0x7a,0x5,0xc2,0x6d,0xab,0x3d,0xc1,0x54,0xda,0xdd,0xbf,0x7e,0xc1,0x3,0x42,0xac,0xe8,0x1a,0x42,0x4c,0xa0,0xa2,0xc1,0xb6,0x93,0x33,0x42,0xe8,0x50,0x40,0x42,0x90,0x89,0xb2,0x40,0x5c,0x30,0x63,0x41,0x17,0x34,0x8d,0x41,0x2a,0xdb,0x76,0xc1,0xae,0x51,0xe,0xc2,0xd0,0xc7,0xdd,0xc1,0xb6,0xe7,0x2a,0xc1,0xd4,0x34,0x17,0xc1,0xd1,0x60,0xe1,0x41,0xcc,0xd,0x2,0x41,0xa8,0xfe,0xe5,0x3e,0xb7,0x7,0xa3,0x41,0x50,0xa9,0x83,0xc1,0x33,0xfb,0xbb,0x41,0x17,0x8f,0x90,0x40,0xdc,0x45,0x27,0xc1,0x15,0xa3,0xf7,0xbf,0x40,0x29,0xf5,0xbf,0x54,0xe8,0x43,0x40,0xda,0x50,0xa0,0x41,0xca,0xca,0x98,0xc0,0x50,0x4c,0x88,0xc1,0xe4,0x65,0x2f,0xc0,0x60,0x55,0x88,0x3e,0x4,0xc0,0x1b,0xc2,0x9b,0xb,0x41,0xc2,0x35,0xc4,0xaa,0x41,0x5,0xa1,0x9b,0x3f,0xb4,0xb3,0x19,0xc2,0xf1,0xed,0xcf,0x41,0xb1,0x54,0x11,0x42,0xea,0x42,0x1d,0xc2,0x28,0x74,0x66,0x41,0x9e,0xa5,0xc7,0xc1,0xcc,0xcc,0x6a,0xc2,0x6c,0xc8,0x84,0x41,0xa0,0x37,0xe,0x42,0x30,0xd4,0xf,0xbe,0xab,0xc3,0xa4,0xc0,0x44,0x57,0xba,0x40,0xb1,0xb4,0x15,0x42,0x86,0x58,0xb3,0xc1,0x63,0x1b,0xc0,0x40,0xc,0x72,0x97,0x41,0xfa,0xdc,0xd4,0x41,0xda,0x43,0x2e,0x41,0xb2,0xea,0x87,0x41,0x8a,0x27,0x12,0x42,0xca,0x6b,0x51,0xc1,0x36,0xdd,0x16,0xc1,0xe4,0x58,0xa0,0xc1,0x7d,0x92,0xe7,0xc0,0xb6,0xd7,0xba,0xc0,0x88,0x4b,0x89,0x40,0xed,0x4b,0x94,0xc1,0xfc,0x34,0xa,0x41,0xb2,0x58,0xbd,0xc1,0x48,0x8,0x17,0xc2,0x2e,0x25,0x3a,0x41,0xfc,0x8a,0xaf,0xc1,0xe0,0xa4,0x5b,0x40,0x5f,0x19,0x6a,0x41,0xfd,0x65,0x99,0x41,0x12,0x87,0x91,0xc1,0x91,0x26,0x8f,0xc1,0x54,0xa4,0x1c,0x41,0xb8,0xa0,0x32,0x42,0x9d,0x77,0xf2,0x41,0xfe,0x2d,0x1f,0x42,0x0,0xf,0xa6,0xbd,0x92,0x8b,0xa,0xc1,0x25,0x66,0xbf,0xc1,0xd5,0x62,0x85,0xc1,0x4c,0xa5,0x36,0x40,0xb5,0xf6,0xc2,0x41,0xf,0xb7,0x23,0x42,0x44,0x93,0x1d,0xc2,0x86,0x77,0x36,0x40,0xc2,0xfc,0x2b,0xc1,0xde,0xa,0x90,0x41,0x6c,0x87,0x63,0x40,0xd4,0xa,0x4c,0x41,0xc0,0x9f,0xdf,0xc0,0xfb,0x36,0xcf,0xc1,0xbb,0x59,0xf9,0xc0,0x1c,0xdc,0xd9,0xc1,0x77,0x30,0xdb,0xc1,0x78,0x12,0x4a,0x40,0x30,0x83,0xa6,0x41,0xf4,0xa0,0xb4,0x41,0xe,0x51,0x7b,0xc0,0xdf,0xa8,0x26,0xc1,0x30,0x67,0x60,0xc2,0x9f,0xd1,0x68,0x41,0x6c,0xa,0xe9,0xc1,0xbe,0x87,0xd,0x42,0x75,0x2a,0x11,0x42,0x8e,0x43,0xb,0xc0,0x2,0xd2,0x7d,0xc2,0x7e,0x33,0x94,0x41,0x11,0x7d,0x53,0x41,0x32,0xe7,0xc8,0x40,0x1a,0x81,0xde,0x40,0xc4,0x7c,0x23,0xc2,0xe2,0x33,0x8e,0x41,0xec,0x15,0xa4,0x3f,0xb4,0x71,0x1d,0xc0,0xa0,0x4b,0x32,0xc1,0x8c,0x2c,0xa1,0x41,0x54,0xf3,0xca,0x40,0xee,0xf6,0xca,0x3f,0x46,0x8b,0xf5,0x41,0x99,0xa1,0x17,0x41,0xb,0x2d,0xd3,0xc0,0x9c,0x7d,0x9b,0xc0,0xf6,0x5c,0xd,0xc1,0x58,0x6b,0x6,0xc2,0x7e,0x3b,0xc5,0x40,0x15,0xf0,0xa3,0x41,0x8a,0x19,0xb9,0x41,0x84,0x1f,0xe2,0xc1,0x59,0xa2,0x27,0xc2,0xab,0x18,0x44,0x40,0x39,0xfa,0x2,0x42,0xb4,0x9e,0x2e,0x42,0x2f,0x40,0x95,0xc1,0x83,0xdd,0x59,0xc1,0x10,0x4d,0xfc,0xc1,0xae,0x28,0xfe,0xc0,0x52,0x99,0xa2,0x3f,0xe,0xde,0xd4,0xc1,0x1b,0xe6,0xd5,0x40,0xd2,0xb3,0x1f,0xc2,0x2f,0x63,0x3b,0xc1,0xef,0x5,0x3b,0x42,0xfd,0x25,0x5,0xc1,0xe5,0xb7,0xc,0x41,0x22,0xa1,0x8b,0x40,0xa7,0xce,0xac,0xc0,0x53,0xdd,0x1b,0xc2,0x3d,0xe4,0x9f,0xc1,0xd2,0xd4,0x48,0x40,0xc7,0xb9,0xa2,0xbf,0xbd,0x2f,0xd1,0xc0,0xd3,0x2,0xe,0x42,0xde,0x78,0xbf,0x41,0x20,0x10,0x4f,0x3e,0x12,0x40,0xfb,0x41,0xf3,0xd8,0x3c,0xc2,0xda,0xcd,0xaa,0x41,0xfe,0xc9,0x74,0xc0,0x60,0xe8,0xa8,0x41,0x88,0x8f,0x14,0x41,0x78,0xbc,0xa8,0xc1,0x8d,0xa7,0xb7,0xc1,0x88,0x1d,0x7c,0x40,0xca,0x86,0xf9,0xc0,0xa8,0xc8,0xab,0x41,0xf6,0x6d,0x54,0xc1,0xd,0x29,0x17,0x42,0xbe,0x16,0x79,0xc1,0x53,0xf,0xcc,0xc0,0x1d,0xf5,0xb1,0xc1,0xf1,0x54,0xbe,0x41,0xbe,0x3a,0xc4,0xc1,0xda,0x38,0x5f,0x41,0x24,0x4c,0x35,0x41,0x65,0xc3,0xaf,0x41,0xbf,0xce,0x48,0xc0,0xe4,0x31,0x8,0xc2,0x61,0x49,0x97,0x41,0xb,0xb5,0xd5,0xc0,0x98,0x85,0x12,0xc2,0x5c,0x6d,0xe2,0xc1,0xc,0xa2,0xe4,0x41,0x2c,0xc3,0x9e,0x40,0x1c,0x22,0x7,0x41,0x6a,0x7b,0x52,0x40,0x98,0x2e,0x3d,0x41,0x78,0x20,0xbd,0x40,0x69,0xfd,0xe,0xc2,0x36,0x18,0x12,0x41,0x26,0x4,0x38,0xc2,0x29,0xa5,0x5c,0xc1,0xb6,0x9c,0xd7,0x3f,0x28,0x59,0xa8,0x40,0xf0,0xee,0x6d,0x3f,0xc1,0x6a,0x1e,0xc2,0x58,0x97,0x3b,0x41,0x5c,0x62,0x95,0xc1,0x48,0x9a,0x7,0x42,0x4a,0x45,0xcd,0x41,0x80,0x79,0xa0,0xc0,0xa6,0x70,0x46,0xc1,0x9e,0x4b,0x65,0x42,0xff,0x4,0xf7,0x40,0x68,0x5e,0x10,0xc2,0x6e,0xb1,0xc8,0x41,0x6b,0x5e,0xb2,0xc1,0x10,0xa3,0xa2,0xc0,0xc,0x24,0xf4,0x3f,0xdf,0x38,0x2b,0xc2,0xb1,0xff,0x2f,0x42,0x1b,0xae,0xc6,0x41,0x36,0x16,0xb1,0xc1,0x50,0xa7,0x4b,0x41,0x4d,0x50,0x10,0x42,0x40,0xd0,0x4c,0x3d,0x62,0x16,0xd1,0xc1,0x44,0xe,0xa4,0x3f,0xec,0x74,0x54,0x41,0xb3,0xa,0xcf,0xc1,0x42,0x80,0x82,0x41,0xe6,0xae,0x22,0xc2,0xba,0x31,0x54,0xc1,0xb2,0x9c,0x14,0x41,0xaf,0xd3,0x23,0xc1,0xee,0x0,0xb3,0x41,0xb0,0x4f,0x29,0x41,0x6b,0xd1,0x27,0xc1,0x3a,0xae,0xd4,0xc1,0x87,0xc3,0xa5,0xc1,0x51,0x41,0xc4,0x40,0xae,0xa,0x2a,0xc0,0xb1,0xa7,0x18,0x42,0xea,0x1c,0x8b,0xc1,0xa,0xc8,0x55,0x41,0xf4,0x46,0x50,0xc1,0xac,0xf5,0x12,0x41,0xf4,0xa,0x86,0xc1,0x46,0x55,0x18,0xc1,0xdd,0x7,0xdc,0xc1,0x57,0xcb,0x54,0x41,0xf2,0xfe,0xe9,0xc0,0x2e,0x33,0x6c,0xc1,0xea,0x19,0x1b,0x41,0x52,0x2c,0x21,0x42,0xf6,0x24,0x48,0xc1,0x14,0x3d,0x15,0xc1,0xa0,0x3d,0x22,0xc0,0x96,0xd2,0x4b,0xc2,0xcc,0xe8,0x6b,0x41,0x11,0xd1,0xf9,0xc1,0xa8,0x93,0x22,0xc2,0x92,0xbf,0x91,0x41,0xc0,0x2c,0x2c,0xc2,0x8c,0x78,0x3b,0x41,0x57,0x48,0xcb,0xc1,0xbf,0xe7,0x4d,0xc0,0x3a,0x38,0x38,0xc2,0x23,0x86,0x6b,0x40,0x98,0x2b,0x8a,0xc0,0x5c,0x75,0x27,0xc2,0x9c,0x47,0x15,0xc1,0x93,0x80,0x46,0xc1,0xb4,0x79,0xac,0xc1,0xe6,0xc0,0xc3,0xc1,0x13,0x28,0x83,0xc1,0x4,0xa4,0x97,0xc1,0x71,0x36,0x40,0x42,0xcc,0xf5,0xe6,0x41,0x86,0x22,0x13,0xc1,0x3f,0xe3,0x89,0x41,0xa8,0xb1,0x15,0xc0,0x3e,0x5f,0x10,0xc2,0x62,0x6f,0x20,0xc2,0xda,0x33,0x17,0xc1,0x77,0xad,0x79,0x41,0x2c,0xa7,0xef,0xc1,0xb0,0x17,0x20,0xc1,0xd0,0xb1,0x90,0x40,0xcc,0x75,0x1b,0x41,0x7c,0x4c,0xf9,0xc0,0x46,0x1,0x6e,0xc1,0x68,0x86,0x1a,0xc0,0x53,0x8a,0x2e,0xc2,0x1b,0x7e,0xc0,0xc1,0x37,0x8b,0x8,0x41,0xc5,0xe1,0xee,0x40,0xc4,0xf8,0x86,0xbf,0x1a,0x53,0xc5,0x41,0x2e,0x81,0x93,0xc0,0xc1,0x84,0xc3,0xc0,0xd7,0xe6,0xd9,0x40,0xc0,0x8d,0x8c,0x41,0x6b,0xa9,0xc5,0x41,0xc6,0xab,0xc8,0x41,0x76,0xa2,0xa6,0x41,0x98,0xec,0x83,0x41,0xa2,0x58,0x34,0x41,0x88,0x2b,0x5b,0x41,0xb4,0x36,0x68,0x41,0x41,0x91,0x2f,0x42,0x7a,0x22,0x9a,0xbf,0x46,0x41,0x68,0xc1,0xb5,0x29,0x86,0x41,0x7e,0xf8,0x37,0x41,0xae,0xbf,0x16,0x40,0x6e,0x85,0x41,0xc0,0xdd,0x9f,0x20,0xc2,0xf4,0x52,0x31,0xc2,0x1a,0xb1,0xc1,0xc0,0xc2,0x48,0xd2,0xc1,0x64,0x4,0x7a,0xc1,0x9d,0x6c,0x3d,0xc2,0xdb,0x1d,0xcc,0xc0,0x36,0x61,0xbc,0x40,0xb1,0xc,0xd4,0x3e,0x88,0xa8,0xd2,0xc1,0x98,0xd9,0x57,0xc2,0x8e,0xc7,0xb2,0x41,0x79,0xd9,0x54,0xc0,0xae,0xd4,0x71,0xc1,0x78,0xfc,0x35,0x3f,0xa3,0x95,0xa3,0x41,0xec,0x4,0x43,0x42,0xb4,0xc9,0x79,0xc2,0x6e,0x94,0x28,0xc2,0x16,0x95,0x6a,0xc1,0xe5,0x16,0x73,0x41,0x57,0xe4,0xbd,0x41,0xb6,0x4f,0x6,0xc2,0xd8,0xef,0x77,0x40,0xe,0xbb,0x12,0xc1,0x2b,0xdf,0x5,0xc1,0x63,0xe7,0x6c,0xc1,0xb1,0xc0,0x4,0xc2,0x4c,0xb0,0x7b,0x41,0x98,0xfb,0xd,0x41,0x5e,0x18,0xe9,0xc1,0x9a,0xe2,0x43,0xc0,0xe9,0xba,0x61,0xc2,0xc6,0x3,0x59,0xc1,0xeb,0x34,0xb,0xc1,0x5,0xda,0x86,0xc1,0x36,0x9a,0x80,0xc0,0x65,0x35,0xe2,0xc0,0x22,0x5b,0xfb,0x3f,0xc6,0xc8,0xf8,0xc1,0x3f,0xc4,0xc8,0x41,0xca,0xe7,0x46,0xc2,0x26,0xfc,0x32,0x40,0xeb,0xa1,0xe9,0xc0,0x6a,0x76,0xd,0xc1,0xd4,0x57,0xa3,0x40,0x98,0x52,0x40,0xc1,0xd8,0xe1,0xf4,0x3e,0xa9,0xd,0x4a,0x42,0xf2,0x2d,0xc,0x41,0x6d,0x67,0xcf,0xc1,0x2e,0x15,0x3c,0xc2,0xbb,0x1c,0x79,0x41,0x26,0x4,0x29,0xbf,0x5b,0x28,0x9e,0x41,0x75,0x93,0x8d,0x41,0x50,0x50,0x7d,0xc2,0x9d,0x7f,0xc5,0xc0,0xbe,0xbb,0x68,0x41,0x7e,0x59,0xa,0xc2,0xcf,0x9d,0x7f,0xc1,0x82,0x18,0xa1,0x41,0x3d,0xf5,0x35,0xc2,0xe5,0xea,0x8d,0x40,0x95,0xf4,0x14,0xc2,0x67,0xd1,0xc1,0x41,0x28,0xf9,0x42,0xbf,0xc0,0xd0,0x27,0xc2,0xf9,0xa9,0x47,0xc1,0x8d,0xd3,0x42,0xc2,0xd8,0x8f,0x1,0x3f,0x8d,0xf0,0xdb,0x41,0x83,0x9f,0xb4,0x41,0x6,0x69,0x10,0xc2,0x7a,0x42,0x37,0x42,0x35,0xc1,0x84,0xc1,0x60,0x1d,0xe9,0x3f,0xd4,0x25,0xdc,0x41,0xb6,0x56,0x12,0xc2,0x94,0xb1,0x89,0xbf,0x1f,0x94,0x12,0x41,0x28,0x7a,0x50,0xc2,0xd7,0x4b,0xd7,0x41,0x4,0x44,0x9a,0xc1,0x77,0x8a,0x7a,0x41,0x87,0xc5,0xc,0x41,0x5,0x5e,0x12,0x42,0xc7,0x52,0xeb,0xc1,0x9,0x8f,0xc6,0x41,0xdd,0x35,0xb4,0x40,0x34,0xef,0x4a,0xc1,0xa3,0x36,0xc5,0x41,0xc7,0x88,0xc3,0xc1,0x26,0x9f,0xb6,0xc1,0xe5,0x7f,0x1d,0x42,0xc6,0xc7,0x38,0xc1,0x39,0xad,0x2a,0x41,0xbf,0x15,0x1,0xc2,0xc3,0x7c,0xa,0x42,0xd1,0xf1,0x95,0xbf,0x6,0x8f,0x26,0xc1,0x59,0xa0,0xbb,0x41,0x17,0x8,0x86,0x41,0x6c,0x45,0x9c,0xc0,0x6c,0xdd,0x5f,0xc1,0x37,0x84,0x9b,0x41,0x72,0x61,0x86,0xbf,0x0,0x8c,0xf6,0xc1,0x49,0xda,0xa7,0xc0,0xc8,0x19,0xcc,0x41,0xa1,0xd,0x6e,0x41,0xad,0xf7,0x35,0xc2,0x6,0x46,0x7c,0xc2,0xfa,0x42,0x66,0x42,0xc6,0xa2,0x9c,0x41,0x1e,0x4d,0xb3,0xc1,0x4f,0x42,0x49,0x41,0x25,0xdb,0x1d,0xc2,0xa1,0x34,0xcb,0xc0,0x5a,0xb,0xcc,0xbf,0xf1,0x6d,0xaa,0x41,0x28,0xca,0xb3,0x41,0x6e,0x48,0x5a,0x41,0x3f,0x4,0x95,0x41,0xb,0xf3,0x89,0x41,0x48,0x3c,0x17,0xc2,0xe7,0x44,0x15,0xc1,0xae,0xf9,0x3f,0x41,0xb1,0x88,0x1b,0x42,0x13,0x45,0xff,0x41,0xfa,0x6a,0xe2,0x3f,0x2f,0xf6,0x3d,0xc2,0x9c,0x1b,0xd4,0xc1,0x98,0x62,0x18,0x42,0x78,0x98,0x27,0xc1,0x2f,0x7a,0x86,0x42,0xb8,0x78,0x54,0x42,0xef,0xee,0xb1,0x41,0xe7,0x50,0x86,0xc1,0x4b,0xd4,0x95,0xc1,0x46,0xf,0x80,0x40,0xd2,0xbb,0x8d,0xbf,0x58,0x5a,0x9f,0xc1,0xa5,0xc4,0xf1,0xc0,0x1a,0xea,0x87,0x41,0xfa,0x80,0x86,0x41,0x62,0x24,0x3d,0xc1,0x60,0x1c,0x29,0xc2,0xce,0xe0,0x17,0xc1,0xb8,0x60,0xd2,0xc1,0x3a,0x8a,0x45,0x40,0x3,0x2,0xc2,0xc1,0x58,0xc6,0xab,0x3f,0xe4,0xcd,0x48,0x41,0x8a,0x9,0x3,0x41,0x46,0x32,0xf3,0xc1,0x95,0x68,0x80,0x41,0x65,0x58,0x0,0x41,0xb5,0xbf,0x6c,0x41,0x80,0x7c,0xcf,0xbd,0xca,0xbf,0x8e,0xc1,0x8,0x4c,0x2f,0x41,0x94,0x10,0x4,0xc2,0x82,0x8c,0x60,0xc2,0xa0,0x94,0x83,0x41,0xac,0xea,0x7e,0x41,0x4d,0x1c,0x8a,0x40,0xdc,0x6d,0x52,0xc2,0xd8,0x8,0x33,0x42,0xda,0x68,0x28,0x42,0x6d,0x72,0xe2,0x41,0xca,0x66,0x0,0xc2,0x2d,0xd5,0xa5,0xc1,0x74,0xc3,0xd4,0x41,0x63,0xd9,0x4c,0xc1,0x9,0x1b,0xa1,0x40,0xf4,0xdf,0x8c,0x41,0xfc,0x68,0x21,0xc2,0x8,0x7e,0xd4,0x40,0x4a,0xbb,0xcd,0xc0,0x36,0xf3,0x89,0xc1,0x5,0xc,0xcf,0x41,0xae,0x48,0xdb,0x41,0x1f,0x54,0xd8,0x41,0x4,0x7c,0x69,0xc1,0xe1,0xe8,0x2a,0x42,0x88,0xa4,0x25,0xc1,0x84,0x99,0x51,0xc1,0xf4,0xed,0xbd,0xc0,0x5a,0xe5,0xc1,0xc1,0x22,0x8e,0x96,0xc1,0xaa,0x37,0x45,0x41,0x2,0xc2,0x1,0x42,0x2e,0xc6,0xe8,0xc1,0x46,0xfe,0x28,0xc1,0xfe,0xca,0x17,0x42,0x38,0x25,0x36,0x41,0x3,0x56,0x7,0xc2,0x60,0x4f,0xa9,0x41,0x76,0xfe,0x3c,0x41,0xdd,0x29,0xd6,0x40,0x7c,0x1c,0x90,0xc1,0x98,0x70,0xf5,0xbf,0x1a,0x8d,0x21,0xc1,0xcc,0xe9,0xad,0xc1,0x5e,0xef,0x6,0x42,0x57,0x58,0x57,0x41,0x1b,0xcc,0xca,0xc0,0xae,0x75,0x7e,0xc1,0x18,0x60,0xb2,0xc0,0xc0,0xce,0x27,0xc1,0xf0,0x1a,0x51,0x42,0x87,0xc4,0x76,0x41,0x93,0x36,0x2d,0x42,0x1f,0x38,0x90,0x41,0xa3,0x23,0xb1,0xc1,0xc4,0xae,0xb,0x41,0x43,0x8f,0xaa,0xc1,0x68,0xea,0xc8,0xc1,0xe4,0xe8,0xfd,0xbf,0x62,0x1f,0x26,0xc1,0xba,0xc1,0x9,0x40,0x2c,0x59,0x2d,0x41,0x88,0x6a,0x6a,0xbf,0xf5,0xfc,0x0,0x42,0x6e,0x59,0x95,0xc1,0x1f,0xbd,0x81,0x41,0x5c,0x4,0x8d,0x42,0xd8,0x6e,0x40,0xc1,0x40,0xe0,0x2,0xc0,0xa6,0x67,0x4d,0xc0,0x50,0xed,0x1a,0xbf,0x24,0xd,0x3b,0xc1,0x2d,0x69,0x68,0xc1,0x7e,0xd0,0x88,0xc1,0xd8,0xaf,0x96,0x41,0x38,0xe7,0x9a,0x3f,0x34,0x3f,0xfa,0x40,0xec,0x8a,0xd1,0xc1,0x52,0xc0,0xf,0xc0,0x55,0x8e,0x6f,0xc2,0x50,0xff,0xf8,0x40,0x2d,0xed,0xee,0xc1,0x9e,0xa3,0x3c,0x42,0x4,0x1a,0xf0,0xc1,0x92,0x15,0x98,0x41,0x69,0x68,0xdb,0xc1,0x1a,0x14,0x38,0x42,0xa0,0xa0,0x8e,0xc1,0xf5,0xa,0x16,0xc2,0xc2,0x65,0xd8,0x41,0xb0,0xb4,0x23,0xc1,0x8,0xc5,0xa,0xc1,0x81,0x64,0x57,0xc1,0x44,0x92,0xc4,0x41,0xb6,0xf6,0x16,0xc1,0x8c,0x1c,0x3f,0x40,0x38,0x2d,0xe1,0xc1,0x78,0xbe,0xfb,0x41,0x4d,0xf2,0x28,0x41,0xc,0x32,0x39,0x42,0xda,0x82,0xbc,0x40,0x7a,0x76,0x5,0x41,0x12,0xab,0x34,0x41,0x49,0x1d,0x93,0x41,0x62,0x59,0x1b,0xc2,0x74,0xc1,0x1f,0x42,0x8e,0xed,0x93,0x41,0xb4,0x9a,0x7e,0xc1,0x15,0xc0,0x3e,0x41,0x0,0x4c,0xa5,0x3f,0x6c,0xba,0x50,0xc1,0xa3,0x6a,0xf7,0x40,0x10,0x66,0x37,0x42,0xfc,0xd7,0x2c,0x42,0x82,0xf7,0xbe,0x40,0xee,0xdd,0x12,0xc2,0xcc,0x6c,0x95,0x3f,0x4,0xc7,0xd8,0x41,0xcb,0x43,0xf8,0xc1,0xec,0x6,0x8c,0xc1,0xe3,0x3a,0x4,0xc2,0x9f,0xe7,0xeb,0xc1,0xc6,0x2a,0x47,0x41,0x51,0x2a,0xb2,0x41,0x25,0xe2,0x95,0xc1,0x34,0x47,0xc3,0xc0,0x64,0x3a,0x6f,0xc1,0x4c,0x73,0x6,0x42,0xe0,0xf9,0x54,0x42,0x40,0xf3,0xe5,0xbd,0x43,0x60,0xdb,0xc1,0x2a,0x8,0xa6,0x41,0x46,0x3a,0x2b,0xc2,0x30,0x81,0xe6,0x40,0x21,0x82,0x3d,0xc1,0xee,0x4c,0x58,0x40,0x43,0xa9,0x12,0x41,0x5c,0x57,0xd9,0x3f,0xa4,0x66,0x74,0x41,0x54,0x47,0x39,0xc2,0xcb,0x40,0xb5,0xbf,0xde,0x34,0xe3,0x41,0xea,0xc3,0x4,0x42,0xfa,0x2c,0x70,0xc2,0x54,0xe5,0x14,0xc2,0xe7,0x65,0x1e,0x41,0x4f,0x54,0x67,0x41,0x5d,0xbf,0xf4,0xc0,0x98,0x2d,0x45,0x3f,0x20,0x11,0x80,0x41,0x14,0x21,0x33,0xc2,0x1d,0xab,0x4a,0xc2,0x15,0x56,0xa9,0xc1,0xa9,0x96,0x6f,0xc1,0xf2,0xcb,0x6a,0xc1,0x86,0xcf,0x67,0x41,0x4f,0x65,0x7,0x41,0x20,0x5b,0x8f,0x41,0x32,0x6f,0x8,0x42,0xed,0x5a,0xfe,0x41,0x54,0x25,0xfd,0x3f,0x12,0x57,0x8a,0x40,0x4c,0xa7,0xf1,0xc0,0xaa,0x84,0x4a,0xc1,0x19,0xc,0x18,0xc1,0x36,0x33,0xb,0x42,0x40,0x86,0xc6,0xbf,0xbe,0x5a,0x31,0x41,0x1c,0xb8,0x12,0x41,0x11,0xb,0xe9,0xc1,0xbe,0x4,0xba,0xc1,0x2b,0xbf,0x66,0xc1,0x5c,0xc8,0x60,0x41,0xe0,0x3f,0x87,0x3e,0x14,0x70,0x3c,0x3f,0x45,0x18,0x7a,0xc2,0x1e,0x2c,0x67,0xc2,0x79,0xc4,0x23,0x41,0x58,0xe5,0x7d,0xc1,0xed,0xbc,0x8d,0xc0,0x36,0x5b,0x31,0xc2,0x29,0x2e,0xa5,0x40,0x7,0xcd,0x27,0x41,0x76,0x39,0x99,0xc1,0xf,0xad,0x53,0xc1,0x8,0x43,0xa6,0xc2,0x1e,0x9d,0x8,0x42,0x4f,0x54,0x7a,0xc1,0x50,0x6c,0x56,0xbf,0x14,0xe0,0x8b,0xc1,0xa8,0x43,0xd4,0x40,0xfc,0x99,0xab,0x42,0x7c,0x1a,0xff,0xc1,0x52,0x83,0x21,0x3f,0x95,0xa5,0xfc,0x41,0x8c,0xc3,0xd,0xc1,0xf5,0x33,0x89,0x42,0x9a,0x59,0xa8,0xc1,0x74,0x7,0x8f,0x3f,0x61,0x92,0xed,0x41,0x78,0xe8,0x92,0x41,0xa1,0xd5,0xe9,0x41,0xd,0xa3,0x2f,0xc2,0x86,0xdc,0x6c,0x41,0x2,0xc3,0x1b,0xc2,0x5c,0x50,0xcd,0xc1,0x88,0x90,0xba,0xbe,0x4f,0x7e,0x91,0xc1,0x48,0xe4,0xa4,0x40,0x2c,0x2d,0x48,0xc1,0x1f,0x5b,0xef,0x40,0xde,0x21,0xf,0x40,0xd0,0x47,0x96,0xc1,0xba,0xb1,0x3b,0xc0,0x4,0x31,0x25,0xc2,0xf9,0xa5,0x1f,0xc2,0x45,0x1b,0x7,0x41,0x2c,0x9,0x62,0xc1,0xdd,0x8b,0xe5,0x41,0x12,0x88,0xd6,0x40,0xf8,0x96,0xa2,0x40,0xee,0x6a,0xdf,0x41,0xe5,0xf1,0xac,0xc0,0xeb,0x48,0x3a,0xc0,0xb3,0x5,0x54,0xc1,0xc0,0xa8,0x3d,0xc1,0x18,0xf0,0xc9,0x41,0xd6,0xe8,0xe8,0xc1,0x12,0x1a,0xbc,0x41,0x4e,0xca,0x2c,0xc1,0xe3,0x94,0x21,0x41,0x0,0xf2,0xd5,0x40,0x7c,0xec,0x37,0xbe,0xd2,0x69,0x8,0xc2,0xbe,0x34,0xf6,0xc1,0xc0,0xd8,0xa4,0x41,0xb8,0xa4,0xb4,0xc1,0x15,0xa3,0x27,0x41,0xa2,0x55,0x4,0x41,0xc,0x9a,0xa1,0xc1,0x66,0xdb,0x3,0x42,0xf9,0x10,0x4f,0x41,0xa0,0x76,0xa2,0x41,0x48,0x53,0xe2,0x41,0xb5,0x4e,0x7f,0xc1,0x62,0x3,0x54,0xc0,0x57,0xc5,0x35,0xc0,0x92,0xa4,0x6c,0x42,0x5e,0x71,0x3d,0xc2,0xb,0x97,0x61,0xc1,0x64,0xb2,0x96,0x41,0x1b,0xc9,0x91,0xc1,0x5b,0xb8,0x95,0xc1,0x6e,0xa5,0xcd,0x40,0x16,0x1b,0x8a,0x41,0xf8,0xc4,0x3e,0x41,0xc4,0x1c,0x37,0x42,0x19,0x82,0xad,0x41,0x7f,0x84,0x8c,0x3f,0x6e,0x83,0xb6,0xc1,0xe6,0x31,0xb6,0x41,0x73,0x75,0x92,0x41,0x8c,0x8f,0x19,0xc1,0xf1,0x9b,0x21,0xc2,0xd0,0xf4,0xb9,0x40,0x94,0x5c,0x3e,0xbf,0xdb,0xc3,0xce,0xc1,0x91,0x15,0x6f,0xc1,0x88,0x6e,0xeb,0xc0,0xd4,0x4c,0xe,0xc2,0xc6,0x11,0x57,0x41,0xd4,0xe1,0xfe,0xc0,0x18,0xcd,0xe3,0xc0,0xec,0x52,0xcc,0xbf,0x88,0x31,0xcd,0x41,0x84,0xe4,0xba,0x41,0xa1,0xf5,0x24,0xc2,0x24,0x85,0x1,0x42,0xef,0xbc,0x83,0xc2,0x3a,0xa6,0x23,0xc1,0xe1,0x2c,0xd8,0xc1,0xd9,0x9c,0xbf,0xc1,0x44,0x1b,0xc7,0xc1,0x1c,0x94,0xf9,0xc1,0x97,0xfa,0xe,0x41,0xc8,0xc3,0x69,0x40,0x7b,0x90,0x87,0x41,0xe0,0x64,0x9,0x42,0x5a,0x8c,0x8,0x42,0xd6,0x96,0x41,0x42,0xb4,0xaa,0xfe,0xc1,0x53,0x2a,0x17,0xc2,0x44,0xde,0xcf,0xc0,0xe2,0x73,0x8b,0x41,0x10,0x2c,0x4b,0x41,0xb2,0x2a,0x4e,0x42,0x63,0x7d,0xf1,0xbf,0xc0,0xb6,0x34,0x42,0xd4,0x9d,0x5,0x41,0x8e,0x0,0x43,0xc2,0xe5,0x43,0x89,0xbd,0xad,0x93,0x16,0xc2,0xa4,0x49,0x62,0x3f,0x11,0x8c,0xc5,0xc1,0xa3,0xce,0x54,0xc1,0x1a,0x3c,0xb6,0x41,0xde,0x49,0x42,0xc1,0xa4,0xaa,0x32,0x42,0xdc,0xc9,0x8c,0x40,0xac,0xe2,0x56,0xc1,0x1c,0x1d,0x80,0x41,0xb5,0xb9,0xdd,0xc0,0x1c,0xa,0x54,0x41,0x2e,0x50,0x46,0xc2,0xb6,0xe5,0x2e,0x41,0x9,0xbc,0xee,0x41,0xd3,0xf3,0x89,0x41,0xcc,0x63,0xe8,0xc1,0x60,0x8d,0x94,0x41,0xaa,0x9c,0x18,0x42,0xee,0x83,0x11,0xc2,0x57,0x64,0x86,0x41,0x87,0x6f,0x0,0xc2,0x3e,0xd8,0xac,0xc1,0x57,0x1c,0x5,0x41,0x0,0xe3,0xa8,0xbc,0xeb,0xef,0x1,0xc2,0x60,0x1c,0x2f,0x41,0x79,0xef,0xce,0x40,0x33,0xb5,0xa5,0x41,0xe6,0x3f,0x8f,0x40,0x6b,0xd2,0xbe,0xc1,0x40,0x6c,0xdc,0xc1,0xb4,0xef,0xaf,0xc1,0x4d,0x52,0xe8,0x41,0x68,0x46,0x7d,0xc0,0xe0,0xa6,0x1e,0x42,0x1b,0x85,0x8,0x40,0xb8,0x26,0x2e,0x40,0xfb,0x96,0xaa,0xc0,0xf6,0x7,0xc5,0x40,0xa9,0xe3,0x2a,0x42,0x5a,0xa9,0xde,0x40,0xab,0x55,0xd,0xc2,0x2f,0x53,0xb0,0x41,0x9e,0x41,0xc6,0xc1,0x50,0xc6,0x5c,0x41,0x74,0x46,0x2f,0xc2,0xbd,0xd1,0x2,0x42,0x7b,0x8c,0x1d,0xc2,0x5e,0x84,0x63,0x40,0x1b,0x26,0xb3,0xc1,0x68,0xfb,0xb8,0x40,0x78,0xb1,0xe5,0xc0,0xed,0x38,0xcb,0x40,0x64,0xac,0x90,0xc1,0xa5,0xe8,0x2b,0xc2,0xf6,0x47,0x26,0xc1,0xb0,0xdc,0xb8,0x41,0xcc,0xd4,0x61,0x42,0xee,0x9c,0x1c,0xc1,0xae,0x67,0xc1,0xc1,0xdb,0xf0,0xbd,0x41,0x38,0xa4,0x5b,0x41,0x9d,0x87,0xaf,0xc1,0x6a,0x84,0xb5,0xbf,0xca,0x85,0x93,0x40,0xe5,0x68,0x9c,0xc1,0x43,0x4,0x14,0x41,0xfe,0xe8,0x7d,0xc1,0x60,0xfa,0xa,0xc0,0xe4,0x9d,0xb1,0x41,0xe1,0x20,0x7d,0xc0,0xce,0xb0,0x11,0x41,0x2,0x3e,0x35,0xc2,0xad,0xd6,0x9e,0xc1,0x8a,0x7e,0xeb,0x41,0x6a,0x66,0xad,0xc1,0x4d,0xc6,0xdb,0x40,0x9c,0x1f,0xb6,0x3f,0x93,0xb,0xfe,0xbd,0x42,0xda,0x18,0x41,0x44,0x38,0x74,0xc1,0x7e,0xba,0x63,0xc0,0x7d,0x84,0x87,0xc0,0x4f,0x42,0xa7,0xc1,0x5c,0xc0,0xc9,0x41,0x52,0xa9,0xd,0xc2,0xc,0x4b,0x52,0xc0,0x75,0x31,0x68,0x42,0x25,0xbc,0xcf,0xc1,0x12,0x38,0x2b,0x41,0xb8,0xb8,0xe7,0x3f,0x5c,0x4c,0x3f,0x42,0xa9,0xf7,0x2f,0x42,0x8a,0x64,0x26,0x41,0x9f,0x2e,0x57,0x41,0xa2,0x24,0x38,0x42,0x49,0x60,0x1d,0x41,0x88,0xf4,0x77,0xc1,0xf2,0x96,0x26,0xc2,0xec,0xa5,0x28,0x41,0x1e,0x92,0x86,0xc1,0x90,0x67,0x19,0x40,0x5a,0x38,0x8c,0xc1,0x9,0xee,0xf4,0xc0,0xfc,0xde,0x6a,0x41,0x6,0x14,0x8,0x41,0x14,0xd3,0xe9,0xc0,0xad,0x4a,0x37,0x41,0x2f,0xd0,0xbc,0x41,0x78,0xa4,0x42,0xc1,0x1a,0xa1,0x80,0xc0,0xa4,0x2e,0x78,0xc0,0x70,0xdc,0x75,0xbe,0xf5,0x22,0xf1,0x3f,0xae,0x97,0x48,0xc1,0x4a,0xdd,0xfe,0xc0,0xbe,0xe3,0x1f,0xc1,0xaa,0x5e,0xb8,0x41,0xad,0xc4,0xde,0x41,0x52,0x64,0x20,0x41,0x96,0x38,0x8f,0xbf,0x7c,0x63,0x62,0x41,0x70,0xdd,0x5f,0xc0,0xec,0x38,0x18,0xc1,0x98,0xf6,0xd3,0xbf,0x5d,0xa6,0x6,0xc1,0x37,0x88,0x76,0x41,0x74,0x12,0xff,0x3f,0x17,0x3b,0x9b,0x41,0x3,0x40,0x1f,0x41,0x4,0x6,0xde,0x41,0x42,0xda,0xf4,0x40,0xe1,0xec,0xcc,0xc1,0x90,0x13,0x2b,0xc2,0x0,0x56,0xd6,0x41,0x44,0xb8,0x63,0x3f,0x46,0x1c,0x63,0xc0,0x40,0xa3,0x90,0xc0,0xbe,0x7e,0xc9,0xc1,0x76,0x8f,0x9,0xc1,0x4c,0x47,0x22,0x41,0x86,0x52,0x79,0xc2,0x41,0xc8,0x16,0x40,0x78,0x84,0x19,0xc1,0x74,0x1,0xd,0x41,0x33,0xd5,0x8d,0xc2,0xbb,0x9e,0x94,0x41,0xea,0x4,0x85,0xc0,0xa3,0x33,0x94,0x40,0x69,0x0,0x34,0x42,0xc6,0xb2,0x40,0x42,0x1a,0x99,0x3e,0xc1,0x7a,0xd1,0x9c,0xbf,0xc5,0x42,0xa0,0xc0,0xf1,0x8f,0x7,0xc2,0xae,0x7f,0x4c,0xc2,0x1c,0xc7,0x46,0xc1,0x20,0x60,0xfd,0x3e,0xa4,0xb9,0xb3,0xc0,0x6,0x4d,0x3b,0xc1,0xbc,0x8e,0x27,0xc1,0x41,0x23,0x78,0x41,0xd2,0x4d,0xf5,0x40,0x9e,0x45,0x68,0xc1,0xdc,0xe9,0x8,0xbf,0x1c,0x17,0x9,0xc2,0xe6,0xd,0x4d,0xc0,0x64,0x58,0x3a,0x41,0xc6,0x1,0x23,0xc1,0xcc,0xa0,0x64,0x40,0xdb,0xdf,0x35,0xc1,0xe2,0xe3,0xf,0xc1,0x6c,0x47,0x11,0x40,0xb,0xf6,0x8e,0xc0,0x58,0x13,0xa0,0xc0,0x1e,0xbf,0x4d,0xc2,0x80,0xac,0x42,0x40,0xc1,0xa6,0xbe,0xc1,0xf4,0x15,0x19,0xc2,0xf6,0x36,0x2f,0x42,0xc2,0xf0,0xd9,0xc0,0x10,0x92,0x99,0xbe,0xe4,0xfa,0x73,0x41,0xfa,0xcd,0xae,0xc1,0x90,0x38,0x42,0xc2,0x82,0xc4,0x82,0x41,0x84,0x41,0xb9,0xc1,0xe5,0x47,0x9f,0x42,0x28,0xa,0x84,0xc1,0xac,0xf9,0xbb,0x41,0x95,0x42,0x25,0xc1,0x45,0x32,0x8e,0xc2,0x66,0x1c,0x7d,0x41,0x2,0x6,0x1c,0xc2,0x8c,0x49,0x11,0xbf,0xaa,0x65,0x9b,0x40,0x35,0xb7,0x33,0xc1,0xd0,0x36,0xdc,0xc0,0x78,0x97,0x68,0x41,0x5e,0xa,0xa4,0xc1,0xac,0xaf,0x8b,0xc0,0x46,0x15,0xf,0xc0,0xbe,0x4d,0xe6,0xc1,0xe6,0x1c,0x31,0xc2,0x18,0x4c,0x2f,0xc2,0x4,0x5c,0x26,0xc2,0xa0,0xe3,0xd2,0x40,0xc,0x44,0x5d,0xc1,0x14,0xf9,0x9c,0x40,0x56,0xf4,0x86,0x41,0x74,0x6f,0xa,0x42,0xf0,0x99,0xd7,0x41,0x58,0xd6,0x8d,0xc1,0x63,0x7,0x59,0x41,0x3f,0x85,0x50,0x41,0xd8,0xc6,0xb7,0x40,0x44,0x7e,0x14,0x42,0x3a,0x7e,0x8f,0x41,0x79,0x6a,0xd,0x42,0xf1,0x56,0xc0,0x41,0xe6,0x9c,0xd6,0x41,0x72,0x6a,0x7,0x42,0x74,0xee,0x16,0xc2,0x14,0xcc,0xc6,0xc1,0xd1,0xa4,0xca,0xc1,0xe,0xc6,0xda,0x41,0x16,0xa3,0xbd,0xc1,0x9e,0xf9,0x16,0x41,0x6c,0x50,0x26,0xc2,0xc1,0x76,0x33,0xc1,0x4a,0x16,0x55,0xc2,0x57,0x9c,0x3,0xc2,0x58,0x2,0x74,0x41,0xe1,0x5d,0xf,0xc2,0x7b,0x2c,0xae,0xc1,0x3e,0x32,0x47,0xc1,0xda,0x21,0x49,0x3f,0xb1,0xa0,0xb7,0xc1,0xbf,0x82,0x7,0x42,0x7,0xa1,0x73,0x42,0x3,0x4e,0x2c,0x40,0x11,0x3,0x22,0x42,0x36,0x2e,0x2b,0xc2,0x0,0x80,0xde,0xb9,0x7,0x5f,0xcb,0xbf,0x7a,0x66,0xd8,0x40,0x3e,0x0,0x50,0x41,0x9e,0x9f,0x6d,0xc0,0x46,0x57,0xd7,0xc1,0x82,0x3b,0xca,0x41,0x7,0x4c,0x83,0x41,0x5b,0xd0,0xed,0x41,0xaa,0xe2,0x36,0x41,0x42,0xce,0x90,0x41,0x7a,0xac,0xb5,0xc0,0xd0,0x6b,0x8d,0xbe,0x6f,0xd4,0x35,0x41,0xf7,0xb5,0x57,0xc2,0xa6,0x54,0xde,0xc1,0xa6,0x84,0xa3,0x41,0xec,0x17,0x9d,0x41,0x8f,0xff,0x57,0x41,0xeb,0x99,0xf,0x42,0xae,0x1d,0x79,0xc1,0xda,0x49,0x99,0xc1,0x2f,0x8,0x99,0xc1,0x50,0x3e,0x19,0xc1,0x49,0x9e,0x80,0xc2,0xf0,0x8f,0x9e,0xc0,0xf4,0xe7,0x35,0x41,0x11,0x1d,0xcb,0x41,0x5d,0xdd,0xde,0xc0,0x68,0xef,0x92,0xbf,0xbc,0xf9,0x1,0x40,0xc6,0xe,0x7f,0xc1,0xb8,0xd8,0x7e,0xc1,0x74,0x6b,0x31,0x3e,0x64,0x6e,0xd6,0xc0,0x4e,0xe4,0x28,0x41,0xe0,0x73,0x9c,0x41,0xe5,0x90,0x25,0xc1,0xb6,0x26,0x75,0xc1,0xb1,0x5d,0xd,0xc2,0x7e,0x7c,0xc2,0xc1,0xe,0x35,0x43,0x42,0xa0,0x27,0x28,0xc2,0xe3,0x15,0x1d,0xc2,0x53,0x7b,0x1e,0xc2,0xf8,0x13,0x7a,0x41,0x22,0x5d,0xe3,0x41,0x2a,0xc7,0xce,0x41,0xac,0xce,0x74,0x41,0x71,0x17,0xf8,0x40,0x26,0xc2,0x56,0xc1,0x83,0x2a,0x4c,0x42,0xdf,0x78,0x3d,0x42,0xe2,0xd2,0x36,0xc1,0xce,0x4b,0x3,0xc1,0x32,0x39,0xc2,0xc1,0x72,0x27,0xd9,0xbf,0xf6,0x58,0xe2,0x3f,0xc0,0xde,0x2d,0xbe,0x43,0x69,0x90,0x41,0xb2,0x2f,0xbd,0x40,0x96,0xb3,0xf1,0x40,0xc6,0x4d,0xd,0xc1,0x4e,0xda,0x1f,0x42,0x8c,0x53,0x84,0xc0,0x82,0x64,0x9e,0xc1,0x8e,0xca,0x9b,0xc1,0x2b,0x7a,0xb3,0xc0,0x94,0x4,0x1f,0xc1,0x2a,0x91,0xbf,0x41,0xd4,0x18,0x4b,0x41,0xc6,0x1e,0xca,0xc1,0xa9,0xfb,0x8c,0xc2,0xb0,0x56,0xa9,0x40,0xe0,0x5b,0xcb,0xc1,0x92,0xe,0x17,0xc1,0x3e,0x17,0x32,0x42,0x52,0x77,0x20,0xc1,0x61,0x5c,0x2e,0x42,0x0,0xdf,0xa7,0x41,0x4e,0xd0,0xb0,0x41,0x20,0xa3,0x7f,0x3d,0x8e,0xe5,0x97,0x41,0xb4,0xd7,0x28,0xc1,0x50,0xf,0x88,0xbe,0x27,0x5,0x99,0xc1,0x7a,0xe2,0xf,0xc2,0xbe,0x35,0x6,0xc0,0xfe,0xd2,0x86,0xc1,0x23,0x1f,0xa,0xc2,0x2a,0x57,0x34,0x42,0xdd,0x7,0xcb,0xc1,0xb0,0x39,0x88,0x40,0xab,0x2d,0xc3,0xc1,0x1b,0x6f,0x9e,0xc1,0x88,0x22,0x52,0xc2,0x4d,0xb5,0x1e,0xc1,0xae,0x3d,0x68,0x41,0x56,0x2a,0xde,0xc1,0x1e,0xb9,0x87,0x41,0x94,0x2d,0xa2,0xbf,0xa8,0x13,0x7b,0xc2,0x6d,0x85,0x1f,0x42,0x43,0x42,0xe5,0xc1,0xe,0x4,0x1a,0x40,0xcc,0xbe,0x70,0xc1,0xea,0x2b,0xab,0x40,0x8b,0x4,0xbb,0x41,0x14,0x6e,0xe5,0x41,0x8c,0x4f,0x9f,0x41,0x45,0x16,0x76,0x42,0xdc,0x9d,0xe,0xc2,0x3f,0x1,0xa,0xc1,0x13,0x59,0xd5,0x40,0xb8,0xe2,0x46,0xc1,0x67,0x59,0xa2,0xc0,0x14,0x9a,0x72,0x41,0xd3,0x66,0xbd,0xc0,0x43,0xa4,0xb9,0xc1,0x39,0x98,0x89,0xc0,0x22,0xfb,0x57,0x41,0xeb,0xa,0x25,0xc2,0x1e,0xab,0xe0,0xc0,0xc4,0x6b,0xae,0xc1,0x14,0xc0,0x34,0xc1,0x9e,0x1c,0x3,0xc0,0xdf,0x2e,0x97,0x41,0x26,0x7,0x2f,0x42,0x74,0x6e,0xd8,0x3f,0x34,0x28,0x8d,0xc1,0x86,0xc3,0x72,0xc0,0xc1,0xbf,0x65,0xc2,0x7,0x45,0x4f,0x42,0xe4,0x9d,0x4f,0x40,0x5f,0xd0,0x84,0x41,0x7,0x89,0xd3,0xc1,0x82,0x43,0x75,0x40,0x36,0xb8,0x49,0x41,0x18,0x27,0x6c,0x40,0x30,0x79,0xba,0x40,0x4,0xe2,0xea,0x41,0x58,0xf3,0x1b,0xc1,0xa9,0xc5,0x70,0xc1,0xec,0xe1,0xd2,0x41,0x2c,0xac,0x79,0x40,0xda,0x91,0x85,0x41,0x35,0xdd,0x29,0xc2,0xc4,0xcd,0xde,0x41,0xae,0x65,0x87,0x41,0xd4,0x54,0x20,0xc0,0x73,0x3,0x92,0xc1,0xac,0xe0,0xb0,0xc1,0x86,0x56,0x67,0xc2,0xee,0x99,0xdf,0x40,0xc1,0x5c,0x1,0x41,0x44,0x6b,0xa3,0xc0,0x98,0xb8,0x89,0x41,0x2c,0x16,0xb,0x41,0xaf,0xbe,0x65,0xc2,0x68,0x56,0xe,0xc2,0x3d,0xe0,0x35,0x42,0x98,0xa,0xb0,0xc1,0x4e,0x56,0x57,0x40,0x9c,0x71,0xe5,0x3f,0xdc,0xc5,0x17,0xc0,0x14,0x46,0x73,0xc1,0xe8,0x7c,0x9,0xc2,0x39,0x8d,0x62,0x41,0x5a,0x88,0xca,0x40,0x27,0xb2,0xc1,0xc1,0x6,0xf3,0xdb,0x40,0x51,0x39,0x18,0xc0,0x27,0xf4,0xe,0x42,0xd0,0x4,0x56,0xc0,0x74,0x71,0x8b,0xc1,0x7c,0x67,0xd4,0xc1,0xdd,0xca,0xc1,0xc1,0x78,0xe0,0xbb,0x40,0x5b,0xa8,0x14,0xc2,0x56,0xc9,0x7b,0xc1,0xf1,0xf6,0xa3,0xc0,0x86,0xc6,0x3b,0x41,0xdd,0xed,0xbe,0xc0,0x89,0xa5,0xeb,0x40,0xb0,0xbf,0x77,0xc1,0xd8,0x7f,0xed,0x40,0xda,0xe5,0xba,0xc0,0x29,0x51,0x33,0x40,0x64,0x82,0xe2,0xc1,0x4e,0xd5,0xbe,0x40,0x3e,0x61,0x58,0x41,0x1a,0x92,0x21,0xc1,0xad,0xbb,0x20,0xc2,0xf6,0x72,0x28,0xc1,0x34,0x34,0x51,0x41,0xb1,0x71,0x57,0x41,0xb6,0x32,0x14,0xc1,0x41,0x46,0xf6,0xc1,0xb0,0x80,0x2b,0x42,0xa0,0x43,0xf2,0xc1,0x9c,0x6,0xe6,0xc0,0xb1,0xc9,0x98,0xc1,0x0,0x33,0xb5,0xc1,0x26,0xbe,0xbd,0x41,0x26,0xf1,0x81,0xc1,0xaa,0x6a,0x8e,0x41,0xa5,0xd4,0x48,0xc1,0x4e,0x37,0xf7,0x40,0xc8,0x6a,0xc6,0xbe,0x5e,0x3e,0x53,0xc1,0x39,0x9e,0x12,0x42,0xf9,0xc4,0x17,0x41,0xe8,0x13,0x4d,0x41,0x55,0x5d,0x81,0xc1,0x3a,0xd3,0xd7,0xc1,0x21,0xc3,0xac,0x41,0x1c,0x1,0x76,0xc0,0x47,0x89,0xd,0x42,0x4d,0x24,0xe2,0xc1,0x9a,0xc1,0x94,0xc1,0x68,0xc,0x2a,0xc0,0x76,0xb3,0x25,0x41,0x51,0x20,0x1,0x41,0x64,0x6e,0xf5,0x3f,0xc3,0xea,0xf9,0xc1,0xa5,0x5b,0x5,0xc2,0xb0,0x6b,0xd9,0x41,0x0,0xfd,0xc9,0x3e,0xa8,0x91,0x21,0xc2,0x34,0xd7,0x15,0x42,0xe4,0x69,0x58,0x42,0xff,0x8b,0xe2,0xc1,0xb2,0x28,0x4f,0x41,0x81,0x93,0x3a,0x42,0x81,0x9d,0xb7,0xc1,0xe6,0x35,0x73,0x3f,0xff,0xb,0x75,0x41,0x85,0x80,0x94,0x41,0xef,0xa2,0x5d,0x41,0xa8,0xaf,0x7a,0x41,0x78,0x75,0x51,0x40,0xca,0xa8,0xd5,0xc0,0x5c,0xa6,0xd5,0xc0,0xa5,0x9b,0x6d,0xc1,0xc0,0x97,0xa0,0xc1,0xa0,0x7a,0xc0,0xbf,0xd0,0x6a,0xa7,0x3f,0x98,0xd8,0x18,0xc1,0xd0,0x5f,0x85,0x40,0x7e,0x3f,0x65,0xc1,0x94,0xb0,0x14,0xc1,0x38,0x5b,0x73,0x41,0x47,0x6,0x2b,0x41,0xe0,0x18,0x51,0xc0,0xd8,0x40,0x41,0xc1,0x9f,0x96,0xed,0xc1,0x58,0x2d,0xe1,0xc0,0xda,0x18,0xaa,0xc1,0x6a,0x66,0x23,0xc1,0x82,0xa2,0x81,0xc1,0x18,0xfb,0x9c,0x41,0xea,0xc0,0xc,0xc2,0x64,0x28,0x8,0xc1,0xe3,0x84,0x15,0xc1,0xe8,0x66,0x59,0xc0,0x8e,0x22,0xd2,0xc1,0x93,0xf4,0x6c,0xc0,0x58,0x8,0xde,0xc0,0x3d,0x19,0x3b,0x42,0x92,0x2f,0x49,0xc1,0xd2,0xcd,0x22,0xc2,0x13,0x65,0xd7,0xc1,0x1a,0xe6,0x28,0x41,0xc7,0x86,0x6c,0xc1,0x82,0x73,0xe,0xc1,0x7c,0xb8,0xf1,0x41,0xfa,0x55,0xbd,0x41,0xe8,0xfc,0x23,0xc2,0x3d,0xad,0xce,0xc1,0x25,0x92,0x1d,0xc1,0x6,0x87,0x14,0x40,0xef,0xd0,0xbf,0xc1,0xda,0x19,0x6,0x42,0xf7,0x6f,0xf7,0x41,0xec,0x5e,0xc0,0x41,0xf5,0xd2,0x8d,0x40,0x31,0xfb,0x93,0x3f,0x8e,0x2d,0x12,0x42,0xda,0x26,0x92,0x40,0xfb,0x3d,0x4a,0x41,0xfe,0x88,0xd8,0xc1,0x5e,0x84,0x90,0x42,0x14,0x79,0x7f,0xc1,0x65,0xb4,0x24,0xc0,0x95,0x85,0x3c,0x42,0xc,0x64,0xb2,0xbf,0xc8,0x19,0x55,0x41,0xd5,0xbf,0xa4,0x41,0x71,0xf,0xe0,0xc1,0x90,0xae,0xa5,0xc0,0xb5,0x8e,0x7c,0x41,0xc2,0x4b,0x75,0xc1,0x7c,0xb8,0xe5,0xc0,0xae,0x41,0x4f,0x42,0x5e,0xd3,0x9a,0xc1,0x4f,0xa9,0x3c,0xc1,0x3e,0xe5,0xe5,0x40,0x37,0x98,0x9e,0xc1,0xbc,0xd8,0x45,0xc1,0x7b,0xce,0x75,0xc1,0x7c,0x11,0x8e,0xc2,0x2a,0x7,0x8d,0xc1,0xc2,0x85,0xb5,0xbf,0xbc,0xba,0x69,0x41,0x96,0xa0,0x9c,0xbf,0xc0,0xac,0x63,0x41,0xe6,0x79,0x1c,0xc1,0x8c,0xd7,0x7f,0xc0,0x38,0xbf,0xbd,0xc0,0x2a,0x65,0xb6,0xc1,0xad,0x8a,0x11,0x42,0xda,0x8f,0x1d,0x42,0xbc,0xfe,0x5a,0xc1,0x74,0xa8,0x8,0xc1,0xac,0x71,0x35,0x40,0xf8,0xf6,0x59,0x3f,0x71,0x3c,0xd,0x42,0x9c,0x57,0x1b,0xc2,0x1e,0xed,0xde,0xc0,0x70,0xf7,0x46,0xc2,0xec,0xad,0x8c,0xc1,0x88,0x52,0x85,0xc1,0x21,0x9d,0x1a,0x42,0x8a,0xbb,0x1f,0x42,0xa1,0x54,0x20,0xc1,0xa8,0xbd,0x32,0xc2,0x4b,0xab,0x12,0x42,0x6,0xbd,0xee,0xc1,0x48,0x97,0x18,0xc2,0x79,0x6f,0x3e,0x42,0xcb,0x19,0x2a,0x42,0x9d,0x3d,0xae,0x41,0xf4,0xe7,0xbf,0xc0,0xb1,0x1d,0x83,0x41,0xf3,0xef,0x80,0xc2,0x24,0x12,0x54,0xc2,0x13,0x93,0x3,0xc1,0xb2,0x27,0xc9,0x40,0x44,0x69,0xb0,0xc0,0x0,0x71,0x20,0x41,0xbc,0x5d,0x13,0xbf,0x38,0x74,0x8c,0x3f,0xe9,0x1a,0x86,0x41,0xc,0x48,0x3b,0x41,0x60,0x31,0x94,0xc0,0x5a,0xa0,0x97,0xc1,0xba,0x44,0x84,0x41,0xae,0x1e,0x13,0xc2,0x74,0x7f,0x33,0xc1,0xa6,0xf3,0xc1,0x41,0xc8,0x76,0x54,0xc2,0x11,0xd9,0xd5,0x41,0xdd,0xe0,0x69,0xc1,0xd1,0xed,0xc,0x42,0x34,0x7c,0xda,0xc0,0x8e,0x42,0x51,0x41,0x77,0x8f,0xeb,0x41,0x50,0xf8,0x60,0xbf,0xb0,0xf7,0xc8,0xc1,0xfc,0x56,0x53,0xc0,0x47,0x20,0x84,0xc1,0x2d,0xa8,0x11,0xc2,0x57,0x95,0x99,0x41,0x20,0x0,0x7f,0xbe,0x88,0xfe,0x1c,0x41,0xe9,0x9b,0x32,0xc2,0x6e,0xac,0xbf,0xc0,0x5,0x6a,0xea,0x40,0x18,0x5,0x80,0x41,0x82,0xf3,0x3e,0x41,0xde,0x49,0x71,0x40,0x5f,0x95,0x82,0xc0,0x1d,0x9f,0x52,0xc2,0x45,0x54,0x17,0xc0,0x40,0x27,0x65,0x3d,0xd0,0x57,0xaf,0x41,0x8c,0xf1,0x72,0x40,0x16,0x0,0x3,0xc2,0xb0,0xfe,0x71,0x41,0xd,0xd9,0x18,0x41,0x62,0xd1,0x46,0xc1,0x2e,0xd5,0x8e,0x41,0x86,0xa6,0xb5,0xc1,0x4,0x64,0xab,0xc1,0xe3,0x3e,0xe7,0xc1,0x93,0x63,0x86,0x41,0x85,0xf3,0x37,0x42,0x3f,0x70,0x8b,0x41,0x2c,0xe4,0x38,0x42,0x38,0x3d,0xb3,0x3f,0x31,0xcb,0xcb,0x41,0xa7,0xd8,0x3b,0x41,0x88,0xea,0xa0,0x3f,0x87,0xc7,0x9,0x42,0xce,0x1b,0x5,0xc1,0x60,0xe2,0xe2,0x40,0x15,0x11,0x8c,0x41,0x2e,0xb1,0xaf,0xc1,0x6e,0x44,0x38,0xc1,0xf1,0x99,0xd,0x42,0xea,0xe1,0x7,0xc2,0x8f,0x64,0xc2,0xc1,0x7,0x51,0x75,0xc1,0x35,0x0,0x2e,0x41,0xa8,0x63,0xa0,0xc2,0xb,0x7b,0xe7,0x41,0x36,0x57,0x65,0x40,0xef,0x6f,0x74,0x41,0x24,0x99,0x92,0x41,0xe9,0xdc,0xad,0xc1,0x6e,0x8c,0xe2,0x41,0x48,0x42,0x3b,0xc1,0xf8,0x19,0xcc,0xc1,0x66,0x72,0x20,0xc1,0x3e,0x8d,0xf,0xc2,0xd2,0x2d,0x34,0x40,0x96,0xdb,0x12,0x42,0xf7,0xc9,0xc1,0x3f,0x82,0x49,0xca,0xc1,0xb8,0xde,0xcf,0x40,0x1,0x28,0xa7,0x41,0x2c,0x64,0x6,0xc2,0xac,0xf1,0xae,0x41,0x40,0xe4,0x21,0x41,0xa2,0xcd,0xf5,0x40,0x24,0xc6,0xfa,0x41,0xd4,0x24,0x1c,0x41,0x78,0x8b,0xc,0x41,0x52,0x80,0x9e,0xc1,0xaa,0x6e,0x1a,0x41,0xaa,0x0,0x32,0x40,0xcb,0x7b,0xb6,0x41,0x17,0x15,0xd,0xc0,0xe6,0x8f,0x93,0xc1,0x16,0xc8,0xb4,0xc1,0x9f,0xa9,0xa9,0xc0,0x8c,0xf9,0x48,0xc0,0x3,0x17,0x51,0xc1,0xae,0x27,0xde,0xc0,0xe6,0x61,0xfb,0x40,0x8,0xe0,0x4b,0xc1,0x81,0xb4,0xa9,0xc1,0x1c,0xd5,0x27,0xc0,0x3c,0x4d,0x1d,0xc1,0xf1,0xbd,0x85,0xc1,0x94,0x4,0x3b,0xc1,0x7f,0xa8,0xc8,0xc1,0x42,0x54,0xa2,0xc1,0x7,0xac,0xb4,0x41,0x6,0xb4,0xca,0x3f,0x72,0xf0,0xa1,0xc1,0xca,0x3f,0x2b,0x41,0xa1,0xc9,0x26,0xc2,0x24,0x7e,0x47,0x41,0x18,0xf4,0xe8,0xc0,0xc5,0x80,0x9f,0x3f,0xb8,0xb7,0x3c,0x40,0x63,0xa2,0xc4,0x41,0x37,0xa2,0xc5,0x41,0xc6,0x8c,0x3d,0xc2,0xee,0xd6,0x75,0xc0,0xc0,0x28,0x6d,0xc0,0x63,0xbb,0xac,0xc1,0xd4,0x4d,0x6d,0xc0,0xa,0xe8,0x3b,0xc2,0x59,0xad,0x46,0xc0,0x6e,0x9e,0x49,0xc0,0xba,0xae,0x7,0x42,0x68,0x7b,0xab,0x42,0xf0,0x14,0xb3,0x3f,0x30,0x3e,0x12,0x3e,0xb,0x3e,0xe,0xc1,0xa8,0x9f,0x88,0x40,0x7,0x5a,0x92,0x41,0x5a,0xd,0xe4,0x41,0x47,0x3a,0xb1,0xc1,0x10,0x1c,0x20,0xc0,0xae,0x9,0x7a,0x40,0x63,0x52,0x38,0xc1,0x70,0x4c,0x80,0xbe,0x5a,0xf2,0x8,0xc1,0x69,0xe6,0x26,0xc2,0xf4,0x4c,0xb9,0x41,0x3f,0x0,0x94,0x41,0xa2,0xaa,0x21,0xc2,0x94,0x5a,0x55,0xbf,0x6b,0xef,0xc1,0xc1,0x2,0xd2,0x24,0x42,0x10,0xf2,0x24,0xc2,0xb9,0x46,0xbe,0xc1,0x0,0x14,0x16,0xbf,0x26,0x18,0xd,0x42,0x2c,0x5f,0x1a,0xc1,0x37,0x63,0x41,0xc1,0xf2,0xd,0x41,0xc1,0xb0,0x8d,0xa,0xc2,0xfb,0x56,0x38,0xc1,0xa2,0xd1,0x99,0x41,0x26,0xe3,0xa0,0x41,0xf4,0x72,0x34,0x40,0x56,0xc0,0xd8,0x41,0x51,0xfb,0x42,0xc1,0x33,0x71,0xe6,0x41,0x6a,0x32,0xa5,0x41,0xa3,0x6c,0xae,0xc0,0xe8,0xde,0xf6,0xc1,0x59,0x1b,0xac,0xc1,0xae,0x27,0x99,0x40,0x8b,0x95,0x38,0x42,0x90,0x28,0xf6,0xc1,0x7d,0xee,0x47,0xc1,0x96,0x82,0xba,0x41,0x82,0xf4,0x63,0x42,0xad,0x5e,0xad,0xc1,0xfa,0x59,0xda,0xc0,0xcb,0x55,0x62,0x40,0x56,0x8b,0xc4,0xc0,0x6c,0xf7,0x9a,0xc1,0x18,0x71,0x22,0x42,0xaa,0x2a,0xd0,0x41,0x38,0x56,0x9b,0x41,0x6a,0xdb,0xf6,0xc0,0xc4,0x67,0xe2,0xc1,0x8e,0x34,0x81,0xc2,0x8b,0x9c,0xf2,0xc1,0x18,0x2d,0x11,0xc0,0xa5,0xa,0xe8,0xc1,0x96,0xed,0x3c,0x41,0xec,0x91,0x46,0x41,0x69,0x56,0x5a,0x42,0x11,0x36,0x8f,0xc0,0x54,0x12,0x41,0xc1,0xce,0xb3,0xe7,0x41,0xd2,0xc2,0x4f,0x41,0x6e,0xc9,0x82,0xc0,0x1f,0xf7,0x3,0x41,0x36,0x31,0x77,0xc1,0x4e,0x77,0x77,0xc0,0xe4,0x7c,0xa7,0xbf,0x89,0x38,0x3e,0xc1,0xa4,0x89,0x56,0x42,0x92,0x4e,0xd3,0xc1,0xb0,0x56,0x7,0x40,0xb6,0x46,0x3,0xc0,0x69,0x3,0x18,0xc1,0x49,0xde,0x27,0xc0,0x61,0xf5,0x34,0xc1,0xc9,0xf6,0x99,0x41,0x90,0xbd,0x99,0xc1,0x25,0xb7,0x90,0x41,0x55,0x29,0x44,0xc2,0xd4,0xc0,0x41,0x42,0xd2,0x67,0x7,0xc1,0xc9,0x2c,0x34,0xc2,0x40,0x4f,0x2a,0x42,0xf0,0xf,0x77,0xc1,0x7d,0xad,0xe9,0xc1,0xa1,0x0,0xb4,0xc1,0x78,0x71,0x41,0x41,0xc8,0x7b,0x62,0xc0,0x1e,0x34,0x30,0x41,0x85,0xc0,0x67,0x41,0x78,0x0,0xad,0x41,0x1a,0x28,0xa8,0x40,0xeb,0xa4,0xf,0x41,0x7e,0x98,0x3b,0x40,0x28,0xbb,0x13,0xc1,0x67,0x56,0x46,0x42,0xb6,0x9f,0x17,0xc1,0xfc,0xf,0xd3,0x41,0x62,0xf3,0x7b,0xc1,0x18,0x4b,0x8d,0xc1,0x84,0x61,0xac,0xc1,0x59,0x7d,0xb,0x41,0x98,0x49,0xdb,0xc1,0x8c,0x48,0x5a,0x41,0x1d,0x4c,0x37,0x41,0x20,0xb0,0x1,0xc1,0xe6,0xa0,0x34,0xc2,0xac,0xdf,0x3b,0x41,0xc7,0x9a,0x59,0x41,0xdb,0xb2,0xf5,0xc1,0x5,0x31,0x7b,0x40,0xa0,0xa0,0xf9,0xbd,0x88,0x84,0xa8,0x41,0x4e,0xdc,0x8d,0xc1,0x96,0xda,0x97,0xc1,0xbe,0x0,0xb4,0x41,0xe0,0x2,0x1d,0x42,0xa7,0xb6,0x89,0xc0,0x4c,0xbe,0x8c,0x41,0xc0,0x8a,0xae,0x40,0x45,0x14,0x92,0x41,0x66,0xd9,0xb0,0xc0,0xd2,0x32,0xac,0x41,0xd1,0xed,0x90,0xc1,0xdd,0x39,0xf5,0xc1,0xec,0x72,0x4e,0xc2,0x14,0x1b,0xed,0xc0,0x44,0x25,0x9e,0x41,0x59,0xb9,0x1b,0xc1,0xc5,0xf1,0xd5,0x41,0x3e,0x15,0x0,0xc0,0x0,0xd7,0x2a,0xc2,0x76,0xd5,0x2e,0x41,0xc6,0x4a,0xb3,0x40,0x41,0xf2,0x8a,0x41,0x8b,0xd6,0x2e,0x40,0x99,0x17,0x32,0x41,0x17,0x98,0x98,0xc1,0x78,0xdf,0xb2,0xc1,0xa0,0xa1,0x8b,0xc0,0x7a,0xbd,0x53,0x3f,0x7d,0xd2,0xf0,0xc1,0x41,0x75,0xf,0x41,0x46,0x9d,0x79,0xc1,0xb6,0x27,0xde,0x41,0x97,0x26,0x0,0xc2,0xe,0xb4,0xe2,0x41,0xc7,0xf2,0x8,0xc2,0xc2,0xc2,0x4b,0x41,0x69,0xcc,0xb,0x41,0x80,0xb3,0xe8,0xbf,0x63,0x31,0x99,0xc1,0x7c,0xb5,0x5d,0xc1,0xf6,0xc2,0xf4,0x40,0xe2,0x12,0x84,0x41,0xb9,0x2e,0xd5,0x41,0x39,0x4b,0xca,0x3f,0x2d,0xc2,0xdd,0xc1,0x28,0xd8,0x9c,0xc0,0x3f,0x43,0xae,0x41,0x9,0xaf,0x6c,0x41,0x12,0x3d,0x62,0xc0,0x90,0x5c,0xb4,0x41,0x87,0x95,0x1d,0x41,0x2d,0xc7,0xb7,0xc1,0x53,0x56,0xb4,0xc0,0x44,0x78,0x1f,0xc0,0x1d,0xc8,0xf6,0xc0,0xd0,0xf2,0x49,0xc1,0x53,0xc1,0x27,0xc1,0xd4,0xb8,0xfa,0x3f,0x4a,0xd9,0x74,0x41,0x9c,0x59,0x9f,0xc1,0x64,0x62,0xd2,0x40,0xf4,0x33,0xd7,0x41,0x12,0x25,0x13,0x40,0xee,0xb0,0x5a,0xc1,0xca,0x47,0x37,0xbf,0xdd,0x39,0xd5,0xc0,0x48,0x95,0x50,0x41,0x4a,0xb0,0xb5,0xbf,0x96,0xca,0xa0,0xc1,0xb3,0x31,0xea,0xc1,0x10,0xf5,0x4c,0xc1,0xb0,0x56,0xb9,0xc0,0xbf,0xe3,0xc,0x3f,0x84,0xaf,0x9f,0x41,0x9d,0x6,0xe5,0xc0,0x7b,0x8e,0xdd,0x41,0x1b,0x2c,0xde,0x41,0x7d,0x45,0xb6,0x40,0xca,0xc9,0x67,0x41,0x10,0x91,0x87,0xc0,0x77,0x2e,0x8f,0x41,0x0,0x86,0xe8,0xc1,0x82,0xe,0x8e,0x41,0xe0,0x7,0x72,0xc1,0x10,0x41,0x54,0x41,0xc,0xb4,0x3e,0xc2,0xd9,0x16,0x88,0xc0,0xc9,0xab,0x28,0x41,0x8a,0x4a,0xfa,0x40,0x3e,0x5c,0x7b,0x40,0xdc,0x6b,0x63,0xc1,0x1c,0x32,0x48,0xc2,0xa,0x33,0xaa,0x40,0xf8,0x71,0x65,0xc1,0xb0,0x5f,0x7f,0xc0,0x44,0xb2,0x6c,0xc1,0x27,0x39,0xe5,0xc0,0xf2,0x7f,0xa8,0x41,0x13,0xf1,0x94,0xc1,0xf1,0x26,0xd0,0xc1,0x31,0x10,0xf2,0x40,0x67,0x73,0xda,0xc0,0xbc,0xb,0x8a,0x41,0x2e,0xa5,0x2d,0xc0,0x44,0x84,0x7e,0xbe,0x6e,0x40,0xe7,0xc1,0xe4,0x31,0xce,0x40,0xb3,0x8,0xce,0xc1,0xda,0x57,0x1a,0x40,0x3e,0x8,0x85,0x3f,0xb5,0x24,0xa4,0x41,0x40,0x42,0xef,0xc0,0xcf,0x55,0x9d,0xc1,0x51,0xc8,0x8e,0x41,0x49,0xf5,0x5a,0xc1,0xe2,0xbf,0x45,0x41,0x97,0x9c,0x1d,0xc1,0xbc,0x79,0x3f,0xc1,0x27,0x99,0xa2,0xc1,0x1c,0xf9,0x94,0xc1,0x2,0x6,0xe9,0x41,0x5c,0xa2,0x2f,0xc0,0xc,0xe2,0x75,0x3f,0xe1,0x3e,0x8a,0x41,0xba,0xd5,0xa9,0xc0,0x93,0x43,0xdb,0x41,0x76,0xb9,0x8d,0x3f,0x6c,0xe6,0xa0,0x40,0x6a,0xf5,0x17,0x42,0x6,0x7e,0xb1,0x40,0x66,0xe4,0xc3,0x40,0x5d,0xd6,0xfb,0xc1,0xd8,0xa6,0xec,0xbc,0x48,0x32,0x3d,0xc2,0xea,0x3b,0xf3,0xc1,0xcc,0xfc,0xb5,0xc1,0x3c,0x98,0x35,0xc1,0x39,0x7,0x49,0xc2,0x16,0x16,0x4c,0x41,0xa9,0x93,0x92,0xc0,0xf2,0xee,0xca,0x41,0xb8,0xeb,0x78,0xc1,0x1a,0x40,0xa,0xc0,0x94,0xed,0x9f,0xc1,0x0,0x5b,0x21,0x3d,0x18,0xaa,0x1,0xc2,0xeb,0x3f,0xef,0x41,0x55,0x68,0x1f,0x42,0xaf,0x60,0xd4,0xc1,0xa0,0xb8,0x53,0xc2,0x3,0x2f,0x16,0x42,0xac,0x40,0x26,0xc1,0x74,0x9a,0x9f,0xbf,0x7a,0x27,0xc3,0xc1,0xa4,0x7d,0x86,0x40,0x86,0xcf,0x58,0xc2,0xce,0xf8,0x7f,0xc1,0x85,0x10,0x8d,0xc1,0x1a,0x60,0xa4,0xc1,0xe8,0xc9,0xed,0x41,0x83,0xbe,0xb0,0xc1,0xe8,0x8d,0xf0,0xc1,0x8c,0xe0,0x64,0x40,0xc6,0x19,0xf4,0xc1,0x29,0x4e,0xef,0x40,0xd2,0x3a,0xc4,0x40,0xa8,0x4b,0x54,0xc1,0x10,0x12,0x1f,0xc1,0xce,0xf1,0xaa,0x41,0xa8,0xa7,0xd4,0xc1,0xc4,0xfb,0x4,0xc1,0xd2,0xba,0x26,0x42,0xb6,0x20,0xab,0xc1,0x10,0x3d,0x8c,0x41,0x8b,0xfc,0x2c,0x40,0x52,0x80,0xf7,0xc1,0xf8,0x2,0xa4,0xc1,0x5a,0x80,0x4,0x41,0xc7,0x36,0xe3,0xc1,0x84,0x1f,0xd6,0x41,0xa7,0x46,0x6f,0x41,0x63,0xfd,0xfa,0xc0,0x54,0xd1,0xb1,0xbf,0xf7,0xa7,0xee,0xc1,0x42,0x1f,0x8d,0xc1,0x44,0xc9,0xc,0x42,0x44,0x45,0x7e,0xc1,0x59,0x55,0x60,0xc1,0x79,0x3f,0xdd,0xc1,0xa4,0x37,0xf2,0x40,0x87,0xd7,0xbb,0x41,0x7e,0xa7,0x36,0x41,0xde,0x68,0xe1,0x41,0x67,0x45,0xb6,0x41,0xe6,0xcb,0x34,0xc2,0x46,0xc0,0x82,0xc0,0xf,0x3c,0x8a,0xc1,0xb7,0x2e,0xfe,0xc1,0x2,0x72,0xbd,0x40,0x4c,0x5c,0x23,0x41,0x75,0x7c,0x5b,0xc1,0xc0,0x69,0x4,0xbe,0xa,0x9a,0x30,0x41,0xc0,0x53,0x4,0x42,0xa0,0x8f,0xf5,0xc0,0x92,0x3c,0xd1,0xc0,0x84,0x2f,0xda,0x3f,0x2b,0xc6,0x73,0x41,0x1,0x87,0x2f,0xc2,0x19,0x80,0xfe,0xc0,0x5c,0xab,0xeb,0x3f,0x16,0xca,0x26,0xc1,0x44,0xf2,0xb5,0x40,0x2,0xe3,0xa,0xc2,0x1b,0x72,0x84,0x41,0xfe,0x45,0xfd,0xc0,0xbe,0x33,0x62,0xc0,0xb6,0x29,0xb1,0x41,0x2a,0x79,0xc3,0x40,0xcf,0x14,0xf1,0x40,0x91,0x7e,0xfc,0xbf,0x9a,0x7d,0x95,0xc0,0x9,0xe8,0xa7,0xbf,0x8a,0xda,0x52,0x40,0x2d,0xab,0xdc,0x41,0x8c,0xba,0xf4,0xc1,0x6a,0xdf,0x7c,0xc0,0x52,0xbb,0x4f,0xbf,0x38,0x18,0x9,0x3f,0x3d,0xba,0x9a,0xc1,0x44,0x1f,0xae,0x41,0x60,0x3,0x2e,0xc1,0x7,0x51,0x88,0x41 }); - Tensor *actual = NN_zeros(4, (size_t[]){ 1, 12, 12, 16 }, DTYPE_F32); - - cycles = read_cycles(); - NN_conv2d(actual, x, w, b, (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 16); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); + printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-2) ? "PASS" : "FAIL", cycles); NN_delete_tensor(x); - NN_delete_tensor(w); - NN_delete_tensor(b); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("conv2d: "); - - // [[[[-1.0552478 2.811792 -1.0793638 ... 0.6783223 0.41066527 0.37641 - Tensor *x = NN_tensor(4, (size_t[]){ 1, 12, 12, 16 }, DTYPE_F32, (uint8_t[]){ 0x5c,0x12,0x87,0xbf,0x66,0xf4,0x33,0x40,0x98,0x28,0x8a,0xbf,0xf6,0x6,0x94,0xc0,0xac,0xdb,0xc2,0xbe,0x8a,0xf3,0x7b,0x40,0x4a,0x52,0x38,0xc0,0x76,0xd6,0x86,0x40,0xae,0x1f,0x32,0x40,0x5e,0xf,0x12,0xbf,0xc8,0xca,0x1e,0xbe,0x84,0x83,0x84,0x40,0xd0,0x89,0xa5,0x3d,0x88,0xa6,0x2d,0x3f,0xb8,0x42,0xd2,0x3e,0xbc,0xb9,0xc0,0x3e,0x42,0xe0,0x8a,0xc0,0x88,0xcf,0x38,0xc0,0xe4,0xaa,0x93,0x40,0x24,0xa1,0x3e,0x40,0x1c,0x40,0x85,0x3e,0xf8,0x38,0x97,0x40,0x15,0xe6,0xf9,0xbf,0x65,0xe4,0x8,0x40,0xe4,0x7f,0x27,0xc0,0xcd,0x62,0x77,0x40,0x1c,0x6a,0x30,0x40,0x78,0x96,0xdc,0x3f,0x0,0x16,0x99,0xbe,0x10,0xfe,0x59,0x40,0x56,0xa,0x2e,0x40,0xf4,0x83,0x25,0x40,0x4d,0x46,0xee,0xbf,0x28,0xd0,0xe,0x3e,0x19,0xb7,0x98,0xbf,0x98,0xdc,0x3a,0xc0,0xeb,0x50,0x9b,0x3f,0x0,0xa6,0x89,0x40,0x3f,0x5e,0x3c,0x40,0x64,0xa7,0xb2,0xbf,0xdd,0xed,0x36,0x40,0x18,0xde,0xbd,0xbe,0xc5,0x6c,0x97,0x40,0xf8,0x50,0x9e,0xc0,0x71,0x5a,0xac,0x3f,0x71,0x4b,0x8d,0xc0,0x3b,0x7c,0x18,0x40,0x6c,0xe1,0x65,0x40,0xf4,0x54,0x75,0x40,0x5a,0xf1,0xd1,0xbf,0xa4,0x92,0xe1,0x3e,0xaa,0x8a,0xa7,0x3f,0x9b,0x6a,0xdb,0xbf,0xf0,0xe5,0x95,0x40,0x5d,0x21,0x5b,0x40,0xbe,0x64,0x1e,0x40,0x5c,0x55,0x2,0xc0,0x86,0xc3,0x5f,0x40,0x44,0x2,0x23,0xc0,0x3,0x4c,0x82,0xc0,0x14,0x6e,0xc8,0xbf,0xb0,0xa9,0xeb,0xbe,0x10,0xe2,0x49,0x40,0x0,0xfc,0x3,0x40,0xa5,0xaf,0xe6,0x3f,0x57,0xff,0xc1,0xbf,0x4a,0x67,0x78,0x40,0x20,0xb9,0x98,0x40,0x71,0xdb,0x89,0xc0,0x5c,0xf6,0x8f,0x40,0x7e,0xf9,0x7a,0x3f,0x63,0x21,0xdf,0x3f,0x98,0x1c,0xfa,0x3f,0x3b,0x78,0x3a,0x40,0x40,0x3b,0x9d,0x3d,0x1,0xcd,0xa4,0xbf,0xa5,0x9b,0xdc,0xbf,0x68,0x63,0x4d,0xc0,0x78,0x12,0x45,0xbe,0x6a,0xa2,0x33,0xc0,0xe5,0xf6,0x3e,0x40,0xb2,0x1a,0x65,0xc0,0xbf,0x15,0x8b,0x40,0x91,0x4a,0x8d,0xc0,0xb1,0x3c,0x85,0x40,0x62,0xfd,0x10,0x3f,0xa9,0xd2,0x96,0xc0,0x71,0xe7,0xbf,0x3f,0x34,0x5,0x4e,0xc0,0x68,0x7d,0x7d,0xc0,0x58,0xc1,0x86,0x3e,0x3c,0x17,0xb6,0xbf,0x84,0xf1,0x9d,0x3f,0x56,0x12,0x7d,0x40,0xc3,0xbc,0x92,0xc0,0xf0,0x23,0x9f,0x40,0x76,0x71,0x31,0xc0,0xd0,0xf0,0x7c,0xbf,0x88,0x6d,0x4f,0x40,0x4,0xaa,0x5,0xc0,0x28,0x48,0x21,0xc0,0xd6,0xbb,0x95,0xbf,0x97,0x27,0xfa,0x3f,0x40,0xb9,0x5d,0xbe,0x58,0xc2,0x91,0x40,0x2c,0x29,0xa,0x40,0x17,0x0,0x92,0xc0,0x4f,0x5b,0x66,0xc0,0xd8,0xb7,0xc9,0x3e,0xa0,0x27,0x44,0xbe,0x92,0x7d,0xc2,0xbf,0xbd,0x79,0xd2,0x3f,0xa4,0x4b,0x6,0x40,0xd6,0xbd,0x39,0xc0,0xa,0x5a,0x7f,0xbf,0xa5,0x24,0xe5,0x3f,0xe5,0xeb,0xe7,0x3f,0xf0,0xb0,0xe5,0xbe,0xde,0xe1,0x20,0x40,0x24,0xb5,0xe4,0x3f,0x26,0x2b,0x96,0xc0,0xf7,0xde,0x98,0xc0,0x0,0x5e,0x2b,0x3e,0x3c,0x15,0xdb,0x3f,0xa6,0x1d,0x64,0xc0,0xce,0xca,0x24,0xc0,0x69,0xe4,0x98,0xc0,0x66,0x6f,0x72,0x3f,0x5f,0xef,0x67,0x40,0x2,0xc2,0x8d,0x40,0x56,0x46,0x82,0xc0,0xb6,0x17,0x77,0x40,0xf5,0x2a,0x0,0xc0,0x12,0xea,0x8c,0xc0,0xfd,0x5c,0x4d,0x40,0x40,0x72,0x86,0x40,0x10,0x67,0x83,0xbe,0x26,0xd6,0xb7,0xbf,0x6,0xeb,0x1f,0x3f,0x5a,0x25,0x16,0x40,0x8,0xfc,0x13,0x40,0x2f,0x2a,0x21,0xc0,0x30,0x9d,0x2a,0x3e,0x3e,0x2a,0xb0,0x3f,0xa6,0x6d,0x39,0x3f,0x5e,0x12,0x85,0x3f,0x4a,0xa1,0x91,0x3f,0x6c,0xa8,0xa9,0x3f,0xfa,0x36,0x2d,0x40,0x80,0x5d,0x22,0xc0,0x36,0x63,0x84,0x40,0x81,0x66,0xa4,0xbf,0x1,0x64,0x82,0xc0,0x48,0x6a,0x54,0x40,0x32,0x86,0x4b,0xc0,0xd6,0x21,0x9e,0xc0,0xcc,0x3b,0xd9,0xbe,0x41,0x14,0x9a,0x40,0x72,0x6f,0x72,0xc0,0xfd,0xbd,0x8a,0x3f,0xd3,0x65,0x78,0xc0,0x90,0xdb,0x2,0x40,0x66,0xc0,0x58,0x40,0x76,0x4f,0x50,0xbf,0xd9,0x69,0x8e,0xc0,0x9f,0x20,0x6f,0xc0,0xe0,0x98,0x44,0xc0,0xea,0x7,0xef,0xbf,0xc,0x1c,0x19,0xc0,0xa2,0xd0,0xc,0x40,0x77,0x48,0x90,0x3f,0x94,0xf,0x80,0xc0,0xd4,0xce,0x22,0x3f,0xe4,0x53,0x94,0xc0,0xc7,0x2f,0x65,0x40,0x0,0x3f,0xb1,0xbe,0xb7,0x9f,0x95,0x40,0x9e,0xf1,0x79,0x40,0xe4,0x7c,0x37,0xc0,0xb3,0xa9,0x77,0x40,0x8,0xb5,0x88,0xc0,0x2e,0x3d,0x94,0xc0,0x91,0x5b,0x56,0x40,0xd6,0x34,0x24,0xc0,0xf8,0x65,0x6a,0xc0,0x80,0x1,0x50,0xc0,0x79,0x7d,0x38,0xc0,0xba,0x67,0x8d,0xc0,0x88,0x5f,0x24,0x3f,0xda,0x30,0x89,0xc0,0xfc,0xc8,0xb2,0xbf,0xfc,0x9a,0x49,0x40,0x3e,0xbd,0x76,0xc0,0xa5,0x94,0x59,0x40,0x50,0x60,0x9e,0x40,0xb6,0xea,0x42,0xbf,0x86,0x39,0x1a,0xbf,0x7e,0x21,0x98,0xc0,0x48,0x7e,0x94,0x40,0x4c,0x31,0x80,0x40,0x5c,0x38,0x9,0xbf,0x9a,0x8a,0x3e,0x40,0xf8,0xea,0x8c,0xc0,0xbc,0x9a,0x58,0xc0,0xf4,0x57,0x96,0x40,0xd8,0xdd,0x9e,0xc0,0xfa,0x5,0x7,0xbf,0x6,0xa6,0x2a,0xc0,0x32,0xd,0x97,0xc0,0x64,0x41,0x52,0x3f,0x2a,0x75,0xb,0xc0,0x8a,0x3c,0x7c,0x3f,0xc0,0xff,0xee,0xbf,0xf,0x8a,0xd4,0x3f,0xfa,0x29,0x29,0x3f,0x14,0xf1,0x9e,0xc0,0x4,0xf8,0x4b,0x40,0xfe,0xd6,0x45,0x40,0x18,0xfe,0x74,0xc0,0x6a,0xc2,0xbe,0x3f,0xdc,0x8d,0x17,0xc0,0x7a,0xce,0x5b,0x40,0xfe,0xe2,0x19,0xc0,0x94,0xbb,0x48,0x40,0x1,0xf7,0x4a,0xc0,0xe,0x57,0x2c,0xc0,0x8c,0x3f,0x2,0x40,0xdb,0x61,0xae,0x3f,0x78,0x39,0x12,0xc0,0x78,0x4b,0x6b,0x40,0x58,0x4f,0x73,0x3f,0x76,0xf5,0x18,0x40,0x70,0xc0,0x3d,0xc0,0x1,0xdc,0x9a,0x3f,0x6,0xaf,0x9a,0x3f,0x86,0x3c,0x3a,0x40,0x64,0xa3,0x93,0x40,0x38,0xe1,0x4a,0x40,0x6e,0x44,0x9d,0x40,0x10,0x39,0xc,0xc0,0x18,0xcf,0x83,0xc0,0xb4,0x9a,0x62,0x3f,0x80,0x5e,0xb7,0xbd,0xb6,0x85,0x3e,0xbf,0x5,0xd4,0x80,0xc0,0xc0,0x6e,0x32,0xbe,0x30,0x84,0x16,0x3e,0x6d,0x23,0x44,0x40,0xc6,0x88,0x19,0x40,0x4e,0x5b,0x58,0x3f,0x62,0x23,0x61,0x40,0x10,0x3e,0x9,0xbf,0x6f,0xb5,0x80,0x40,0x75,0x98,0x91,0xc0,0x80,0x52,0x16,0xbe,0x8e,0x4e,0xf,0xc0,0x7e,0x52,0x4d,0x40,0x8b,0xdf,0xb2,0xbf,0x8e,0x5a,0x58,0xc0,0xc,0xda,0x57,0xbf,0x0,0x70,0x3c,0x3b,0xe6,0x5d,0x57,0x40,0x53,0x4c,0x30,0x40,0x2f,0xb4,0x90,0xc0,0xd1,0x38,0x7,0xc0,0xe8,0x33,0x1b,0xc0,0xac,0xe0,0x86,0xbe,0xd4,0x2e,0xe,0x40,0xaa,0x3b,0x3a,0xbf,0x31,0xa7,0x91,0x40,0x46,0x9,0xd,0x3f,0xb2,0x1e,0x31,0x40,0xb8,0xda,0x99,0xbf,0xb4,0x82,0x39,0x40,0x44,0xb,0xfb,0x3f,0x0,0x74,0x3d,0x3e,0x68,0xb5,0x2a,0xbe,0x66,0xc7,0xd,0x40,0x14,0xc3,0x34,0x3f,0xb0,0xc1,0x49,0xc0,0xd2,0x8e,0xc6,0xbf,0x4a,0xe8,0x51,0xc0,0x32,0xda,0x98,0x3f,0xab,0x13,0x70,0x40,0x2c,0xb7,0x37,0xc0,0x69,0x9c,0xd6,0x3f,0xd6,0xb,0x77,0xc0,0x8e,0xd1,0x3,0x40,0x48,0x7,0x96,0xc0,0xb1,0x61,0xfb,0xbf,0xe0,0x84,0x6a,0xbd,0xf2,0x24,0x59,0xbf,0x21,0x16,0x34,0x40,0x44,0x34,0xff,0xbf,0x40,0x22,0xd4,0x3f,0x8,0x8c,0xc,0x40,0xb1,0xea,0xae,0x3f,0xea,0xc,0x9b,0xc0,0x10,0x70,0x31,0xc0,0x38,0xfd,0x9c,0xbf,0xc0,0x39,0xab,0xbd,0x46,0xc3,0xf5,0x3f,0x3c,0x23,0x61,0x40,0x4f,0x18,0x84,0x3f,0x30,0x2b,0x5b,0xc0,0x65,0xff,0x9e,0xc0,0x98,0x4e,0x8f,0x40,0xc0,0x53,0x8c,0x3c,0xf8,0x30,0x8e,0xc0,0xf4,0xfb,0xaf,0xbf,0xf,0x6e,0xf5,0x3f,0xa8,0xf7,0x20,0xbe,0x30,0xe8,0x52,0x40,0x84,0x27,0x5b,0xbf,0x38,0xb8,0x20,0x3f,0x33,0xf5,0x95,0x40,0xe,0x17,0x8e,0xc0,0xe8,0x9a,0xfe,0x3e,0x8a,0x3d,0x82,0xc0,0xfe,0x9f,0x57,0xc0,0x4b,0xd2,0x95,0xc0,0xdb,0x1d,0x1d,0x40,0x2a,0x2f,0x7b,0xbf,0x28,0x5d,0xe8,0x3f,0xda,0xe4,0x10,0x3f,0x84,0xc8,0xd0,0x3f,0x90,0x6a,0x86,0xc0,0xd0,0xf6,0xe2,0xbf,0x33,0x45,0xaf,0xbf,0xc4,0x6b,0x68,0xc0,0x9e,0x31,0x8,0x40,0x6a,0xa3,0x35,0x40,0x9d,0x7a,0xe7,0xbf,0x54,0xb5,0x5a,0xc0,0xfe,0x93,0x26,0xc0,0xc7,0x2a,0x95,0xc0,0xd8,0x49,0x50,0xc0,0x3b,0x4b,0xb0,0xbf,0xda,0x1f,0x53,0x3f,0x9f,0x94,0x19,0xc0,0xef,0xe,0x83,0xc0,0xa4,0xa5,0x21,0x40,0x98,0xcb,0x7f,0x40,0xf0,0xb7,0x72,0x3e,0x34,0xb,0x36,0xbf,0xc,0x8c,0xd,0xc0,0x7c,0xb2,0xd0,0x3f,0x78,0x65,0xcc,0x3e,0xf0,0x4f,0x12,0xc0,0x29,0x8c,0x5b,0x40,0x52,0x82,0x3c,0x40,0xfe,0x64,0x6c,0x40,0x57,0xc1,0x5c,0x40,0xce,0xe1,0x3d,0xc0,0x88,0x7c,0x92,0x40,0xb0,0x9d,0xca,0xbd,0x78,0x30,0x93,0xc0,0x96,0xd7,0x4a,0x40,0x2c,0xd0,0x4d,0xc0,0x6,0x4a,0x16,0xc0,0xf6,0x5f,0x79,0x3f,0x48,0x27,0x63,0x40,0x1a,0x1d,0x4d,0x3f,0x31,0xce,0x88,0xc0,0x65,0xe3,0x59,0xc0,0xa8,0x5f,0xed,0x3f,0x74,0x72,0xaf,0xbf,0xbf,0xc8,0xae,0x3f,0x10,0x83,0x8b,0x40,0x66,0x89,0x50,0xc0,0xe7,0x2a,0x8a,0xc0,0x8a,0xa8,0xd6,0xbf,0x14,0x48,0xc6,0xbe,0xc1,0x6b,0xd7,0xbf,0xef,0x23,0x9c,0x40,0x3b,0x55,0x3f,0xc0,0x3a,0x61,0x39,0x40,0x21,0x22,0xf8,0x3f,0xe0,0x28,0x93,0x40,0xa3,0xff,0x99,0xc0,0xbb,0xb4,0x69,0x40,0x7d,0xe3,0xcb,0xbf,0x59,0x88,0xe1,0xbf,0xe8,0xc6,0x2a,0x3e,0x27,0xf5,0x58,0x40,0xf6,0x25,0x24,0x40,0xbe,0x9d,0x39,0xc0,0x76,0xf5,0x98,0x3f,0xa8,0xdb,0x50,0xbe,0x37,0xa0,0xd2,0x3f,0x0,0xa6,0x6f,0xbb,0xca,0xc3,0x9e,0xbf,0xa2,0x11,0x14,0x40,0x10,0x91,0x88,0x40,0xdc,0x5d,0x2a,0x40,0x25,0xb7,0xd2,0xbf,0x0,0xbf,0x8b,0x3d,0x44,0xa4,0x73,0x3f,0x44,0x3,0x3a,0xc0,0xa1,0xb4,0x87,0x40,0x2e,0xf3,0x28,0x40,0x74,0xab,0xa,0x40,0x7f,0x2e,0x94,0x40,0x50,0x70,0x28,0xbf,0xcb,0x7e,0x71,0x40,0xb6,0x17,0x16,0xbf,0x27,0xf8,0x80,0x40,0x26,0x75,0x40,0xc0,0x27,0x78,0x9c,0xc0,0xfa,0x2f,0x25,0x40,0xa8,0x61,0xdc,0x3f,0x70,0xca,0x97,0xc0,0x15,0xfb,0xa,0x40,0xea,0xbe,0x88,0xbf,0x7f,0x3a,0x2,0x40,0x49,0x4d,0x91,0x40,0xce,0x24,0x81,0x40,0x70,0x9b,0x37,0x3e,0x98,0x99,0x1d,0x40,0x8c,0x50,0x94,0xc0,0xc0,0x27,0xbd,0x3e,0x2e,0x2f,0xcf,0x3f,0x6,0x99,0x23,0x40,0x64,0x18,0xe7,0x3f,0x2c,0x9b,0x56,0x40,0x8c,0x8e,0xb2,0x3e,0xc5,0x55,0xd0,0x3f,0x6a,0x2,0x9d,0xc0,0xd0,0x6b,0x19,0xc0,0x4b,0x1d,0x12,0x40,0xbc,0x38,0xdd,0x3f,0x6c,0x9e,0x8,0x40,0xc,0x4a,0x1,0x40,0x46,0x31,0x87,0xc0,0xd9,0xbb,0xd3,0x3f,0xb0,0xa3,0xbf,0xbf,0x52,0x42,0x4f,0xbf,0x28,0x12,0xca,0xbe,0x9d,0x2,0x87,0x40,0xd2,0x4d,0x8f,0x40,0xfb,0xbf,0x1e,0x40,0xc7,0x6b,0xf9,0xbf,0x2b,0xcb,0xbd,0x3f,0x70,0x26,0xdc,0x3f,0xe2,0x1b,0x75,0x40,0x20,0xc0,0xc9,0x3e,0x10,0xce,0x96,0xc0,0x2c,0x92,0x0,0x40,0xf,0xba,0x7e,0xc0,0xe0,0x32,0x26,0x3f,0xc0,0x4,0x51,0x40,0x56,0x1d,0x4,0x40,0xbb,0x6b,0x97,0x40,0x73,0x41,0x9a,0x40,0xdf,0x56,0x92,0xc0,0xc0,0x29,0xfc,0x3d,0x9,0xc5,0xb8,0x3f,0x14,0x2,0x7d,0xbf,0x36,0x10,0x25,0xc0,0x43,0x18,0x9a,0x40,0x26,0xd,0x40,0xc0,0xd4,0xfc,0x93,0xc0,0x67,0x2e,0x92,0xc0,0x71,0x3f,0x2e,0xc0,0x9a,0x9d,0x6,0x3f,0xe,0xf9,0x57,0x40,0xc,0x9f,0x9f,0xbe,0xb8,0x4b,0x7b,0xc0,0x6a,0x61,0x6d,0x40,0x68,0x4d,0xbd,0xbe,0x3f,0xfc,0xe6,0xbf,0xd8,0x4e,0x17,0xbe,0x6a,0x43,0xb,0x40,0xaa,0xfb,0x1f,0xbf,0x45,0xff,0xfb,0x3f,0xde,0xc5,0x5,0x40,0x8a,0xe0,0x52,0xc0,0xac,0xdf,0x8f,0x40,0x69,0xd,0x54,0x40,0x90,0xa8,0x73,0xbe,0x8a,0x2b,0x4e,0x40,0xb1,0xbb,0xb0,0xbf,0x21,0xc9,0x88,0xbf,0xf3,0xb3,0x5,0x40,0x38,0x5f,0x6d,0xc0,0x32,0xf1,0x9a,0xbf,0xd6,0xea,0x54,0xc0,0x70,0x8b,0xdb,0xbe,0xdf,0xc8,0xfc,0xbf,0xea,0xa5,0xd3,0xbf,0xa4,0xde,0x8b,0xbf,0x86,0x4e,0x76,0x40,0x25,0x6a,0x9d,0x3f,0x5,0x88,0x9a,0xc0,0x76,0x92,0x5d,0xc0,0x84,0x63,0xc7,0xbe,0x39,0x7a,0xd3,0x3f,0x82,0x24,0x47,0x40,0x90,0x46,0x92,0x40,0xd6,0xe0,0x57,0xc0,0x35,0x2f,0x97,0x40,0xda,0xeb,0x56,0x40,0xde,0xa1,0x7e,0xc0,0xfe,0xa0,0x83,0xc0,0x53,0xcb,0x79,0xc0,0x90,0x39,0xc7,0x3d,0x16,0xc3,0x8a,0xbf,0x9c,0x54,0x9c,0xc0,0xde,0xc5,0xb5,0xbf,0x0,0x73,0x48,0x40,0xb4,0xee,0xb6,0xbe,0xa8,0x5e,0x7f,0xc0,0x42,0x39,0x52,0xc0,0xa4,0xee,0xee,0x3f,0xd1,0x47,0xc8,0x3f,0x9e,0xe3,0xa,0xc0,0x8e,0x4,0x83,0xc0,0x6e,0xeb,0x7,0x40,0xc1,0xe8,0x2a,0xc0,0xbb,0x26,0x8c,0xc0,0x78,0xb6,0x92,0x40,0x6a,0xa8,0x0,0x40,0x5e,0x27,0x59,0xbf,0x62,0xe1,0x3b,0x3f,0x6,0xf5,0x81,0x40,0x9f,0x30,0x8e,0xc0,0x60,0xa5,0x7e,0xbf,0x36,0xa0,0xe2,0xbf,0x1e,0x6b,0x9b,0xc0,0xc4,0xb0,0x87,0x40,0xa3,0x3c,0x97,0xc0,0xc4,0xbf,0x0,0xc0,0x2c,0x74,0x22,0x40,0x57,0xcd,0x90,0x40,0x17,0x8,0xa9,0xbf,0x8a,0x87,0x84,0x40,0x80,0x21,0xd1,0xbd,0x97,0xdd,0x93,0xc0,0xaa,0x23,0x95,0xc0,0x10,0xb0,0x14,0xc0,0xc0,0xd,0xfa,0xbc,0x40,0xc5,0x81,0x40,0x14,0xb0,0x8,0xc0,0x82,0x61,0x46,0xbf,0x8f,0xc2,0x5a,0x40,0x3a,0xc8,0x9d,0xbf,0x9c,0xa3,0xa,0x40,0xd0,0x14,0xd9,0xbe,0xf0,0x6a,0xf9,0xbf,0xfc,0x54,0x4f,0xc0,0x24,0xd,0x9d,0x40,0x1e,0xe0,0x2b,0xc0,0x34,0xde,0x3,0x3f,0xd1,0x40,0xde,0x3f,0xb0,0x70,0x6d,0x3f,0x78,0xd6,0xce,0xbe,0xe,0x63,0x77,0xbf,0xb8,0xae,0x6,0xc0,0x92,0x2b,0xdd,0x3f,0x8e,0xa2,0xba,0xbf,0xcd,0x89,0xee,0x3f,0x22,0xd2,0x24,0x40,0xe0,0xe1,0xe2,0x3f,0xf0,0x9b,0x16,0xc0,0x7a,0x8,0x5c,0xc0,0xba,0xd2,0xae,0xbf,0x5b,0xa5,0xcc,0x3f,0xd4,0xf1,0x9,0x3f,0xe,0x67,0x9c,0x40,0x18,0x2a,0x58,0x40,0x84,0xb6,0x15,0xc0,0x38,0xe4,0x65,0x40,0xd8,0x6d,0x36,0xc0,0x3f,0x6,0xd8,0xbf,0xed,0x2e,0x6d,0x40,0xb6,0x38,0x6b,0xc0,0xcf,0xdd,0xb1,0xbf,0x96,0x7f,0x83,0xc0,0xf5,0x7f,0x14,0x40,0x50,0x4f,0x65,0x40,0x6e,0xa7,0x8c,0x40,0x2c,0x17,0xdf,0xbf,0x44,0x9e,0x6c,0xc0,0xf4,0xdc,0x28,0x40,0xb8,0xf2,0x4e,0xc0,0xcb,0x45,0xd5,0xbf,0xd6,0xa3,0x83,0xc0,0x10,0x9e,0x79,0x40,0x7c,0x9e,0x0,0xbf,0xd0,0x43,0x2a,0x3f,0x34,0x86,0x95,0x3e,0xc,0xa,0x37,0x3f,0xe8,0x32,0xc,0xc0,0x7f,0xc5,0x9c,0x40,0xbb,0x16,0x91,0xc0,0xdc,0x7b,0x27,0xbf,0x66,0x54,0x3a,0xc0,0x76,0xcb,0x59,0xc0,0x30,0xec,0x2b,0x40,0xba,0xd9,0x6a,0x40,0x1c,0x6d,0x17,0x40,0x8,0xb0,0xbf,0x3f,0x25,0x73,0x55,0x40,0x58,0x8d,0x2b,0x40,0x92,0x30,0xba,0xbf,0x16,0x62,0x7,0xc0,0xcd,0xa1,0xbd,0x3f,0xe9,0xd9,0x48,0x40,0xe6,0xa0,0x55,0x40,0xc0,0xe9,0xaa,0x3c,0x8b,0xf2,0x9f,0x40,0xb6,0xb6,0x65,0xc0,0x82,0xc4,0x4,0x40,0x0,0x9,0x89,0x40,0x6c,0xdf,0x9f,0x3e,0x78,0x46,0x41,0x40,0x5b,0x9a,0x8c,0x40,0x66,0xd1,0x77,0xc0,0x8,0x7,0x50,0x40,0xf1,0x56,0x14,0x40,0x30,0x29,0x28,0x40,0x7e,0x9c,0x20,0x40,0x0,0x6b,0x3f,0x40,0xc,0x86,0xcc,0x3f,0x4d,0x97,0x31,0x40,0x79,0x1d,0x91,0xc0,0x69,0x66,0x9f,0xc0,0xfa,0x8,0x2a,0x40,0xa,0x54,0x9f,0x40,0xce,0xfe,0xbe,0xbf,0xe0,0x2,0x76,0x40,0xfe,0x66,0xb,0xbf,0x20,0x87,0x20,0x40,0x84,0x23,0xd0,0xbe,0x22,0x9e,0x1b,0x40,0xf8,0xf1,0xa,0xc0,0x51,0x8a,0x83,0xc0,0x14,0xe6,0x2a,0x40,0x20,0x4c,0x6,0xc0,0x99,0xbd,0x6e,0x40,0xe2,0xf2,0x2c,0x3f,0x71,0x70,0x2,0xc0,0x1,0xf6,0x99,0x40,0x7,0xd7,0x98,0x40,0x56,0xe7,0x25,0xc0,0xec,0x50,0xe,0x40,0x5b,0x97,0xb7,0x3f,0x8c,0x89,0x44,0xc0,0x82,0x8a,0x22,0x3f,0x67,0x2b,0x8c,0xc0,0x84,0x67,0xc3,0x3e,0x5d,0xbd,0x8a,0xc0,0xa6,0xd2,0x88,0x40,0x8,0x9f,0x20,0x40,0x18,0x7d,0x7d,0x40,0x4,0x30,0x78,0x3f,0x3,0x3d,0x8,0xc0,0x26,0x7f,0x23,0x40,0x33,0xef,0xc,0x40,0x22,0x94,0x2f,0x40,0xbe,0x13,0x44,0xbf,0x60,0x54,0x9f,0x40,0x42,0x1c,0x4c,0xc0,0x6a,0xb4,0x8e,0xc0,0xc9,0x2b,0xab,0x3f,0xb1,0x94,0x90,0x40,0xe0,0x72,0x45,0x3f,0x1f,0xc4,0xb7,0xbf,0x84,0x77,0x88,0xc0,0x44,0xdd,0x56,0x40,0xc2,0x5a,0x9d,0xc0,0x92,0xe9,0x3,0xc0,0x9f,0x9a,0x31,0x40,0xa6,0xf7,0x34,0xc0,0x0,0x74,0x51,0xc0,0xaa,0x57,0x21,0xc0,0x37,0xd5,0x18,0x40,0xd4,0x69,0x8,0xc0,0x8f,0xcf,0x91,0xbf,0xd,0xea,0x99,0xbf,0x2f,0xb4,0x2d,0x40,0x2c,0x8b,0x8c,0x40,0xcc,0xac,0x9f,0x3e,0x40,0x11,0xb3,0x3c,0xda,0xf2,0x2,0xbf,0xca,0x6d,0x18,0x40,0x1,0xe5,0x66,0x40,0x1b,0x9d,0x97,0x3f,0xf0,0xba,0x45,0x40,0x4f,0x2d,0xc9,0xbf,0x18,0x54,0x7c,0xbe,0x1e,0x3e,0x85,0xc0,0x32,0x2c,0xb,0x40,0xe4,0xb4,0x24,0xc0,0x32,0x81,0x44,0xbf,0x19,0x8a,0x9c,0xc0,0x4c,0xec,0xda,0x3e,0x55,0x77,0xc9,0x3f,0x47,0x83,0x41,0x40,0xf8,0xd9,0x8c,0xbf,0x0,0x8,0x77,0x3e,0xce,0x6c,0x96,0x40,0x40,0x6b,0x81,0x3d,0x38,0x6b,0x66,0x40,0x0,0xbe,0x9c,0x40,0xbb,0x25,0x88,0x40,0x94,0x2a,0x11,0x40,0x1e,0x63,0x4c,0x40,0xe0,0xd,0x92,0x40,0x38,0x71,0xfb,0xbe,0x8f,0x5f,0x80,0x40,0xba,0xa6,0x3,0xc0,0xd3,0xbb,0xca,0xbf,0x27,0xb2,0xf,0x40,0x2e,0xcf,0x40,0xc0,0xec,0x4a,0xf5,0xbf,0x9c,0xa2,0x89,0x3e,0xc,0xf3,0xd2,0x3e,0x40,0x98,0x81,0x3e,0xcc,0x7d,0x2b,0xbf,0xa6,0xba,0xcb,0x3f,0x82,0x95,0x9a,0x40,0xcd,0x6f,0xd6,0xbf,0x53,0xb,0x30,0x40,0x4,0xbe,0x9c,0x3f,0x78,0x6f,0x4a,0x40,0x9a,0x82,0x82,0x40,0x40,0xd4,0xf4,0xbe,0x6a,0x6,0x85,0xbf,0xf1,0x6b,0xfc,0xbf,0xce,0x57,0xb1,0xbf,0x30,0x1,0x8,0xc0,0x17,0x9,0x9e,0xbf,0x26,0x7,0x3b,0x40,0x62,0x19,0xc0,0x3f,0xed,0xf8,0x16,0xc0,0x72,0xfd,0x34,0x40,0x68,0x93,0xe5,0x3e,0x28,0xa3,0x4a,0x3e,0x7f,0x1f,0xf7,0x3f,0x2,0x40,0x33,0xc0,0x8a,0x70,0x7,0xbf,0x82,0x15,0x74,0x40,0x65,0x52,0x4f,0x40,0x5e,0x62,0x34,0x40,0xdc,0x9c,0x33,0xbf,0xac,0x22,0x1,0x3f,0xc0,0xb8,0x4f,0x40,0x98,0xdd,0x5e,0x3f,0xa6,0x37,0x30,0x40,0xaa,0x23,0x22,0x40,0xe3,0x58,0xc,0x40,0x14,0x8a,0x16,0x40,0xea,0x61,0x56,0xc0,0xf0,0x9f,0x8c,0xc0,0x7,0x8b,0x9e,0xc0,0xb7,0xc5,0x7a,0x40,0x9e,0xff,0x31,0xc0,0xa8,0x9a,0x7b,0xc0,0x70,0xa5,0x23,0x3f,0xd4,0x7f,0x76,0xbf,0xb2,0x31,0xcb,0x3f,0x71,0x23,0xa7,0xbf,0x8e,0xef,0x77,0x40,0x13,0xb3,0x97,0xc0,0xd8,0xac,0x9d,0xc0,0x70,0xcf,0x89,0x40,0x46,0xdc,0xa,0xc0,0xc3,0xd6,0x9c,0x3f,0x80,0x3b,0xe9,0x3f,0x4c,0xe5,0x48,0x3f,0xc4,0x20,0x4a,0xc0,0x48,0xcd,0xa,0x3f,0x94,0x82,0x51,0xc0,0xc3,0xf7,0x86,0x40,0x84,0x9c,0x45,0x3f,0x24,0x24,0x67,0x40,0x9a,0xd,0x62,0x40,0xe1,0x36,0x8,0x40,0xed,0xc,0xe2,0x3f,0x72,0x76,0x34,0x40,0x9f,0x2,0x4c,0xc0,0x26,0x76,0x71,0x40,0x55,0x94,0x89,0xbf,0x8e,0x4f,0x77,0x40,0xe0,0x64,0xab,0xbe,0x2e,0x4a,0x14,0x40,0x94,0x4c,0x6c,0x40,0xea,0x30,0x73,0x3f,0x98,0x2d,0x78,0xbf,0x4a,0x85,0x2,0x40,0xca,0x6f,0x9f,0xc0,0xf6,0x58,0x3,0xbf,0x5e,0x4c,0x82,0xbf,0x38,0x11,0x75,0xc0,0xb8,0x59,0x72,0xbe,0x10,0xd8,0x94,0x3f,0x97,0x86,0x9b,0xc0,0x2a,0xc,0x83,0x40,0x2a,0x3c,0x35,0x40,0x6d,0xdb,0x9d,0x40,0x98,0x8b,0x9,0xc0,0x2c,0xcf,0x62,0xc0,0x4c,0x52,0x43,0x40,0x87,0x64,0x96,0x40,0x5a,0x83,0x3a,0xc0,0xe0,0xbb,0x3b,0xc0,0xc,0xdc,0xbc,0xbe,0xbe,0xc,0x88,0x40,0xe,0xef,0x45,0xbf,0x7c,0x3f,0x99,0xc0,0x3,0x64,0x4,0xc0,0x24,0x21,0x37,0xc0,0xf3,0x42,0x71,0x40,0xbb,0xe,0x6a,0xc0,0x92,0xdf,0x6e,0x40,0x4c,0x19,0xef,0x3f,0xf8,0x90,0xe4,0xbe,0xb3,0xa6,0xa0,0xbf,0x82,0xc4,0x30,0x40,0xff,0x31,0x35,0xc0,0x18,0x3b,0xf7,0xbf,0xa8,0x2d,0x8d,0x40,0xf9,0x77,0xf7,0xbf,0xba,0xf5,0x1,0x3f,0xfc,0xf3,0x81,0x40,0x89,0xf8,0x7a,0xc0,0x7a,0xac,0x53,0x3f,0xc0,0x1,0xe,0x3e,0x72,0x4c,0x25,0xc0,0x29,0x2d,0x81,0x40,0x1a,0x63,0x5c,0x40,0xdc,0xbc,0xa7,0xbe,0x10,0xac,0x9,0xbf,0x4b,0x51,0x47,0x40,0x44,0xbf,0xd3,0xbf,0x2,0x2a,0x35,0x40,0x96,0x77,0x55,0xc0,0x5c,0x6e,0x83,0xc0,0x8c,0xa7,0x55,0x40,0x26,0x4a,0x5a,0x40,0xa3,0xc2,0x78,0xc0,0xac,0x8e,0x8d,0xbf,0x62,0xef,0x7,0x40,0xac,0xf0,0x2a,0x40,0xae,0xab,0x3e,0x40,0x54,0x45,0x60,0x40,0x8f,0x74,0x12,0xc0,0x35,0x60,0x88,0x3f,0x7e,0x70,0x89,0x40,0x56,0x4e,0x83,0xc0,0x6c,0x91,0x4f,0x40,0x9c,0xe9,0xa1,0x3f,0x10,0xd3,0x5f,0x3e,0xcc,0x80,0x9e,0x40,0x4f,0xea,0x4,0xc0,0xea,0x37,0xb0,0xbf,0x30,0xcd,0x6d,0xc0,0xaa,0xb6,0x86,0x40,0x98,0xe8,0x69,0xc0,0xe7,0x16,0x8f,0x40,0x5c,0x79,0x6b,0xc0,0x52,0x6e,0x37,0x40,0xb6,0xca,0x1f,0xc0,0x9e,0x9b,0x8c,0x40,0x96,0x40,0x56,0xc0,0xc4,0x36,0x4f,0xc0,0x26,0xa8,0xb8,0xbf,0xa9,0xa2,0x80,0xc0,0x4c,0x15,0x98,0x40,0x22,0xa0,0xec,0x3f,0x2c,0xce,0x2d,0xc0,0x30,0xef,0x71,0xc0,0x29,0x8a,0xd3,0xbf,0x76,0x41,0x40,0x3f,0x8b,0x16,0x10,0xc0,0xa0,0xf3,0x39,0x40,0xe,0x1b,0x1d,0xc0,0xed,0xb2,0xbe,0x3f,0x84,0x65,0x66,0x40,0x66,0xe0,0x62,0xc0,0xa2,0xd8,0x79,0xc0,0x1d,0x7,0x99,0xc0,0xfe,0xdd,0x70,0x3f,0x94,0x3b,0x7b,0x40,0x66,0x27,0x4c,0xc0,0x20,0x65,0x2c,0xbf,0x32,0x52,0x48,0x40,0xdc,0x4b,0x78,0x40,0x50,0x7a,0x2f,0x40,0x68,0xf7,0xcc,0x3f,0x2e,0x25,0x5e,0x3f,0x98,0xf6,0xbb,0x3e,0x34,0xaf,0x8b,0x40,0x28,0xc1,0x36,0x3e,0x6b,0xb9,0xf8,0x3f,0xe8,0xd4,0xba,0xbe,0xab,0x6f,0x7d,0x40,0x36,0x91,0x9e,0xc0,0xe5,0x8a,0xcb,0xbf,0xf3,0x55,0x99,0xc0,0x3b,0x4c,0x96,0x3f,0xa9,0x6e,0x92,0xbf,0x66,0x7e,0x83,0xc0,0x3b,0x1a,0x75,0xc0,0x2,0x8d,0xb6,0x3f,0x3a,0x48,0x70,0x40,0x6a,0x4c,0x88,0x40,0x16,0x9c,0x5b,0x40,0x1f,0x2c,0x81,0xc0,0xa6,0x1,0x85,0x40,0x14,0x84,0x98,0x40,0xa8,0x4,0x78,0x3e,0xbf,0x9b,0x99,0xc0,0xe8,0x5c,0x67,0xc0,0x9a,0xac,0x8d,0xc0,0x54,0x2d,0x4e,0x3f,0xd9,0x94,0x83,0x40,0x36,0x45,0x4d,0x40,0xc8,0xa0,0x1b,0xc0,0xe7,0x4b,0xb,0xc0,0xdd,0x58,0x97,0x3f,0xb1,0xbb,0x2b,0xc0,0x9c,0xd7,0xf4,0xbe,0xd2,0x2d,0xb9,0x3f,0x22,0x5c,0xea,0xbf,0xd,0x4e,0xe5,0x3f,0x84,0x3d,0x36,0xbf,0x86,0x3c,0x93,0x40,0x75,0x75,0x83,0xc0,0x46,0xd,0x87,0x40,0x94,0xcd,0x57,0x40,0xf6,0x47,0x8f,0xc0,0xbb,0x67,0x96,0x3f,0xd6,0xdf,0x23,0xbf,0xaa,0x53,0x16,0x40,0xd7,0x4f,0x67,0x40,0xb8,0xf2,0x2b,0xc0,0x5a,0x0,0x36,0xc0,0x1,0xa2,0x68,0xc0,0x93,0x47,0x68,0x40,0x8f,0x3,0x86,0xc0,0x95,0x39,0x47,0xc0,0x8,0x24,0x90,0x40,0xe8,0xe7,0x24,0x40,0x37,0xa6,0x5b,0x40,0xc,0xda,0x89,0x40,0xbd,0x98,0x8b,0xc0,0x5d,0x3a,0x9f,0xbf,0xe4,0xd4,0xd7,0xbe,0x6c,0xff,0x93,0x40,0x61,0xda,0xb4,0xbf,0xd8,0x67,0xab,0xbe,0xa0,0x7f,0x35,0x40,0x32,0xb1,0x26,0x40,0x82,0xd9,0x50,0xc0,0x20,0xfb,0x8a,0xc0,0xa1,0xb2,0xf1,0xbf,0xbf,0x3c,0xcc,0x3f,0xf6,0x41,0x98,0x40,0xcb,0x49,0x10,0x40,0x3b,0x29,0x39,0x40,0x87,0xf9,0xc4,0x3f,0xb5,0xac,0xa2,0xbf,0x2a,0x3e,0x53,0xbf,0x9d,0x94,0x86,0x40,0xa2,0x52,0x88,0x3f,0xac,0xc1,0x7f,0x3f,0x90,0x43,0x3b,0x40,0x54,0xab,0x66,0x40,0xc1,0xa0,0xb6,0x3f,0x84,0x2c,0x1,0xbf,0x61,0x89,0xd,0xc0,0x7b,0x71,0x42,0xc0,0x17,0xf8,0x1f,0xc0,0x40,0x37,0x82,0x40,0xaa,0xc4,0x7e,0x40,0x21,0x30,0x29,0xc0,0x76,0xf9,0x86,0x40,0xd9,0x58,0xa5,0xbf,0x45,0xb9,0xa1,0xbf,0x89,0x28,0xcb,0x3f,0xb2,0xe,0x82,0xc0,0x6d,0x52,0x3d,0xc0,0x8c,0x3f,0x3b,0xbf,0xdb,0x23,0xc9,0xbf,0xdc,0x90,0x21,0x40,0xe4,0x5b,0x97,0xbf,0xed,0x57,0x88,0xc0,0x76,0x4d,0x8b,0xc0,0x3c,0x7f,0x9a,0x40,0xae,0x4d,0x10,0x40,0xce,0x43,0x9f,0xc0,0xd2,0x43,0x83,0xc0,0x5e,0x18,0x4a,0xc0,0x75,0xe5,0x90,0x40,0x86,0x1d,0x2e,0x40,0x95,0xe9,0xd0,0x3f,0x6,0x29,0x35,0x40,0xfa,0xd1,0x58,0x3f,0x5e,0x29,0x64,0x40,0x33,0xd3,0x80,0xc0,0xde,0x75,0x7b,0x40,0x5f,0x45,0x12,0x40,0xa7,0x6f,0xd4,0x3f,0xa8,0xa0,0x4c,0x40,0xd4,0x12,0x7a,0xbf,0x8b,0x4,0x18,0xc0,0xe1,0x1a,0xae,0xbf,0x37,0xa,0x70,0xc0,0xe0,0x93,0xb,0x3d,0x4e,0x97,0x24,0x40,0x1a,0x47,0x6e,0x3f,0x60,0xf8,0x30,0xbe,0x8d,0x20,0xf2,0x3f,0xe2,0xe6,0x91,0xc0,0xee,0x63,0x52,0xc0,0xaa,0xaa,0x8b,0xc0,0xa0,0x11,0x9f,0x40,0x52,0x6e,0x91,0xc0,0xb5,0x2,0x18,0x40,0x33,0x4,0x66,0x40,0x60,0x71,0xb5,0xbf,0xc0,0xb6,0x49,0xbf,0xa3,0x6f,0x83,0x40,0xf1,0xc7,0x82,0xc0,0x8c,0x96,0x9f,0xc0,0x82,0xa8,0x3b,0xbf,0x1c,0xe5,0x23,0xbf,0x37,0xfa,0x2,0xc0,0x4c,0xb4,0xc7,0x3e,0x36,0x44,0x2a,0x40,0xe0,0x35,0x2b,0x40,0xf5,0x6d,0xba,0x3f,0xf4,0xfe,0x61,0x40,0xd0,0x2d,0x15,0xc0,0xb8,0x0,0xab,0x3e,0xf3,0x8f,0xd6,0x3f,0x96,0xd2,0xcd,0x3f,0x54,0x9d,0xe5,0xbf,0x21,0xee,0x81,0x40,0x60,0x8a,0x74,0xc0,0x23,0xd1,0x17,0xc0,0x19,0x7b,0x99,0xc0,0x44,0x27,0x19,0x3f,0x8a,0x9f,0x78,0xc0,0x68,0xb8,0x63,0x40,0x53,0x44,0x56,0xc0,0x85,0xbd,0xa8,0x3f,0x13,0x12,0x8e,0x40,0x48,0x94,0x91,0x40,0x86,0x81,0xd4,0x3f,0x6d,0xbc,0xe9,0x3f,0x3c,0x9e,0x63,0x3f,0x60,0x5d,0x38,0x40,0x54,0xdb,0xb1,0xbe,0x18,0xea,0x6f,0xc0,0x58,0x4f,0x8d,0x40,0x59,0xf1,0x70,0xc0,0x3,0x9c,0x9b,0x40,0x44,0x29,0x8d,0x3e,0x54,0xca,0x12,0x40,0xf8,0xfb,0xd,0x3e,0x39,0x3e,0x8,0x40,0xd1,0xd,0x5a,0x40,0x40,0xff,0x96,0xc0,0x64,0x10,0x36,0x40,0xfe,0x55,0xd8,0xbf,0x60,0x8,0x90,0xc0,0x5d,0x49,0x80,0xc0,0x50,0x8d,0xe5,0x3e,0x14,0xe,0x79,0x40,0x7c,0x63,0x97,0xc0,0x70,0x99,0xb9,0x3f,0x66,0x27,0x1,0x40,0x74,0x6f,0x93,0xc0,0xac,0x89,0x8d,0x3f,0x1a,0x9,0x1d,0xc0,0x4c,0xfa,0x47,0x3f,0x23,0x66,0xf3,0xbf,0x72,0x14,0x82,0x40,0xee,0xe2,0x92,0xc0,0x90,0x45,0x27,0x40,0x9f,0xba,0xf0,0xbf,0x35,0x2,0xb4,0x3f,0x8c,0x2f,0x0,0x3f,0xeb,0x1,0x95,0xc0,0xa2,0x18,0x18,0xc0,0x0,0xeb,0x57,0x3e,0xe0,0x9,0x1d,0x3e,0x52,0xe3,0x21,0xc0,0x86,0xf6,0x36,0x40,0xec,0x62,0x19,0xc0,0xd7,0xc9,0x29,0xc0,0x5e,0xf5,0xb,0x40,0xf8,0x5f,0x9,0xbf,0xc1,0xf3,0xc7,0x3f,0x42,0xb0,0x46,0x40,0x86,0xc8,0xfb,0xbf,0x58,0xe2,0xb5,0x3f,0x3d,0x31,0x7f,0x40,0x6a,0x6a,0x4b,0x3f,0xb6,0xe7,0x8a,0x40,0x9a,0x0,0xb,0x40,0x3c,0xf3,0x6a,0x40,0x22,0x34,0x79,0x40,0xab,0x75,0x40,0x40,0x4c,0xb5,0xad,0x3f,0xc7,0x83,0x20,0x40,0x94,0xe5,0x43,0x40,0x7c,0x12,0xad,0x3e,0x70,0xf1,0x59,0x3f,0xa3,0x70,0xf5,0xbf,0xa8,0xf4,0x2d,0xbe,0xda,0xed,0x23,0x40,0x7c,0x56,0xc8,0xbe,0xca,0xb2,0xcd,0xbf,0x32,0x4d,0x9e,0x3f,0x50,0xe1,0x25,0xbe,0x80,0x97,0xd8,0x3e,0xd7,0x58,0x89,0xbf,0x0,0xdf,0x4a,0xbd,0xf2,0x4a,0x9a,0xbf,0x36,0x8c,0x86,0x40,0xb1,0xf7,0x58,0xc0,0x2,0xfd,0x73,0xc0,0xce,0xfb,0x78,0xbf,0x4c,0x36,0xbe,0x3e,0x2e,0x75,0x52,0x40,0xeb,0x1c,0xb1,0x3f,0xa0,0x25,0xa8,0xbd,0xfe,0x65,0x97,0xc0,0xa2,0x1e,0x17,0xc0,0x25,0xc0,0xa6,0x3f,0xb9,0xf1,0xcc,0xbf,0x18,0xf1,0x43,0xc0,0xd0,0x60,0xa1,0x3f,0x46,0x5f,0x64,0x40,0xac,0x74,0x1d,0x3f,0x15,0xaa,0x6f,0x40,0x2a,0x4,0x8a,0x40,0x90,0xd5,0xfd,0x3d,0x5a,0xfb,0x9f,0x40,0xd0,0x60,0xd3,0x3f,0x7e,0x1c,0xd3,0x3f,0xff,0x3,0xe8,0x3f,0x9f,0x22,0x94,0xc0,0xe6,0x5f,0x2,0x40,0x26,0x5e,0x86,0x40,0x0,0xc0,0x6e,0x3f,0x7c,0xf8,0x99,0x3e,0x1a,0xab,0x5a,0xbf,0xa,0x59,0x7b,0xc0,0x2c,0x5e,0x22,0x3f,0x62,0xef,0x0,0x40,0x26,0x1c,0xf4,0x3f,0xf0,0x53,0x91,0x40,0x5c,0x75,0x3f,0xc0,0x9a,0xdf,0x8c,0x40,0x6b,0x50,0x8f,0xbf,0x85,0xab,0xba,0xbf,0x1a,0xd7,0x21,0xc0,0x47,0xfb,0x55,0xc0,0x5a,0x71,0x89,0x3f,0x78,0x72,0x88,0xbf,0xe,0x33,0x6b,0x3f,0x80,0xbc,0x9b,0xc0,0x94,0x6e,0xcf,0xbf,0x29,0x64,0x24,0x40,0x41,0x91,0x1b,0xc0,0x82,0xd3,0x93,0x40,0xa,0x6e,0x54,0xc0,0xb6,0x3e,0x38,0xc0,0x76,0xd2,0x54,0x40,0xd5,0xcc,0x89,0x40,0xa6,0xaf,0xd,0x40,0x4e,0x2a,0x2a,0x40,0x38,0xd7,0x62,0xc0,0x60,0xcb,0x71,0x3f,0xdc,0x6,0xef,0xbe,0x2,0x8d,0x16,0xc0,0x38,0xf4,0x87,0x3f,0x8e,0xcc,0x1,0x40,0x52,0x5e,0x5d,0xc0,0x9a,0xff,0x1c,0xbf,0xf1,0xa7,0xa7,0x3f,0xa3,0xe3,0x9a,0x40,0xe6,0xdd,0x80,0xc0,0x4b,0x3b,0x8d,0x40,0xbc,0xcd,0xf7,0xbe,0x6e,0x62,0x8e,0x3f,0xe2,0xb,0x8a,0xc0,0xac,0xbd,0x8c,0xc0,0xaa,0xd7,0x23,0xc0,0x8,0x95,0xbc,0xbe,0x80,0x68,0x73,0x3f,0xa3,0x17,0x8f,0x40,0xc8,0xcc,0x53,0xbf,0xc6,0x95,0x5c,0x40,0x4e,0x37,0x86,0xc0,0xac,0x29,0x33,0x40,0x9b,0x4c,0x8a,0xc0,0x98,0xdc,0x97,0xc0,0x86,0xb,0x40,0x40,0x58,0xe2,0x50,0xc0,0xa8,0xdd,0x30,0xc0,0xf0,0xf9,0x3c,0xc0,0x66,0xb6,0xb0,0xbf,0x8c,0x43,0x1c,0x40,0xba,0x2e,0x20,0x40,0xe6,0xdf,0x70,0xc0,0x14,0x5e,0xce,0x3e,0xd7,0x4f,0x84,0xc0,0x76,0xd9,0x87,0xc0,0x65,0x79,0xa3,0xbf,0x50,0xce,0xdb,0xbe,0xa3,0xa8,0x1f,0x40,0x3,0xea,0xa,0x40,0xe4,0xa3,0x9f,0x3f,0x6d,0x25,0x74,0x40,0xaa,0x9a,0x12,0xbf,0x44,0x23,0xe3,0xbe,0xf7,0x9f,0x9a,0x40,0x20,0x4e,0xaf,0x3e,0x82,0xe7,0x59,0x40,0x72,0x77,0x1f,0xc0,0xe2,0x47,0x4d,0x40,0x21,0x33,0x3f,0x40,0x6e,0xb0,0x7b,0x40,0x4,0xc0,0x3d,0xc0,0x90,0xa1,0x98,0xc0,0x9a,0xe1,0x62,0x3f,0x4a,0xb3,0x22,0xbf,0xe6,0x6d,0x97,0x40,0x89,0xdc,0xd5,0xbf,0x28,0x37,0xc,0xc0,0x4e,0xc6,0x47,0x3f,0x28,0xa2,0x7f,0xc0,0x62,0x7a,0x83,0xc0,0x5a,0xb,0x4e,0x40,0xeb,0x36,0x92,0x3f,0xea,0x18,0x7c,0x3f,0x96,0x32,0x43,0xbf,0x9d,0x91,0x32,0x40,0x55,0x63,0xf1,0xbf,0x3a,0x35,0xc2,0x3f,0x21,0x8b,0xd5,0x3f,0x91,0xad,0xa2,0x3f,0x46,0x8e,0x5a,0xc0,0x2,0x30,0x94,0xc0,0xd2,0x92,0x18,0xc0,0x94,0x95,0x88,0xc0,0x4c,0xa9,0x8a,0xc0,0x7e,0xf9,0xdc,0xbf,0x28,0x78,0x7,0xbf,0xee,0xef,0x3c,0x3f,0x32,0x21,0x25,0xc0,0xfa,0xe4,0x4d,0xc0,0x1d,0x1b,0xa9,0xbf,0xb8,0xac,0x3a,0x40,0xa2,0xd3,0x27,0x40,0x98,0xf0,0x94,0x40,0x24,0xc8,0x13,0x40,0x92,0x26,0x65,0x40,0x30,0x89,0xa5,0x3d,0xee,0x37,0x45,0xc0,0xd5,0xe7,0xc4,0x3f,0x5c,0x38,0x8b,0x40,0xb4,0x4c,0xe0,0xbf,0x10,0x91,0x1f,0xbe,0x3a,0x64,0x8e,0xc0,0x6,0xf8,0x76,0x40,0xc1,0xf4,0x81,0xc0,0x98,0xbf,0xe,0xc0,0x20,0x26,0x3e,0x3d,0xd6,0xbd,0x18,0xc0,0x40,0xf6,0xaa,0x3c,0x64,0x33,0x2e,0xc0,0x57,0x12,0x9b,0x40,0xf9,0xd8,0x39,0xc0,0x60,0x67,0x4e,0x3f,0x78,0xee,0x98,0xc0,0x4c,0x30,0x35,0x3f,0xfe,0x54,0x54,0x40,0xb6,0x5f,0x48,0xc0,0x76,0x86,0x7d,0xbf,0xa8,0x8a,0x42,0xbe,0x20,0x16,0x3a,0xbe,0xfa,0x57,0x78,0x3f,0xd0,0x2b,0x81,0x40,0xa7,0x41,0xbc,0xbf,0x7c,0x31,0xd4,0x3f,0x7a,0x77,0x83,0xc0,0x5c,0xd1,0x3d,0xc0,0x16,0xa1,0x66,0xc0,0xc,0xc4,0x93,0x3f,0x88,0xd3,0x5a,0x3f,0x63,0x5f,0x9c,0x40,0x37,0xa0,0xe1,0x3f,0xbc,0x30,0xea,0xbe,0xbb,0x30,0xff,0xbf,0x20,0x78,0xf8,0x3e,0x40,0xca,0x15,0xc0,0x38,0xe4,0x49,0x3f,0x86,0x52,0x90,0xbf,0x8f,0x88,0x4e,0xc0,0x1c,0x40,0x8f,0x3e,0x98,0xb,0xf7,0x3f,0x28,0xc8,0x6b,0xbf,0xb0,0x98,0xbb,0x3d,0xba,0xa7,0x9e,0xc0,0x7c,0x76,0xda,0xbf,0xac,0x40,0x9f,0xc0,0xb0,0xe9,0x9e,0x40,0xe0,0x7e,0x88,0x40,0x61,0xae,0x8a,0xc0,0x3a,0x22,0x76,0xc0,0x83,0xaf,0x87,0xc0,0x16,0x4f,0x38,0x40,0xe3,0xfa,0x85,0x3f,0x8,0xd3,0x93,0xc0,0x82,0x3e,0xc6,0xbf,0xa2,0x5f,0x70,0x40,0x20,0xbd,0x4c,0xbd,0xd2,0x8f,0x90,0xc0,0x48,0xb,0xde,0x3f,0x95,0x11,0x9f,0x40,0xb3,0xe6,0x91,0x40,0xa4,0xc1,0xdf,0x3e,0xa1,0xea,0xaf,0xbf,0x18,0xb2,0x5,0x3f,0x32,0x15,0x6c,0x40,0x59,0x26,0xa,0x40,0xe2,0xb6,0x84,0xc0,0x7e,0x99,0x28,0x40,0xc4,0x53,0x50,0x40,0x77,0xf2,0x87,0xc0,0xe,0x1a,0x61,0xc0,0x78,0xd2,0x5a,0x40,0x1a,0x94,0x29,0x40,0x92,0xca,0x8b,0xc0,0xb6,0x70,0xb0,0x3f,0x83,0x3d,0x41,0x40,0xcb,0x9e,0x81,0x3f,0x4a,0xb0,0x2a,0x40,0x17,0xab,0xce,0x3f,0xf4,0xdf,0xb7,0x3f,0x2b,0x88,0x3a,0x40,0x20,0xa,0xda,0xbf,0xc0,0x40,0xe0,0x3c,0x6e,0xf6,0x9a,0xbf,0xae,0x18,0x68,0xbf,0x3f,0xc4,0xf6,0x3f,0x7b,0xe6,0xf7,0xbf,0x18,0xca,0x86,0xbe,0x1d,0x4f,0x88,0x40,0x40,0x3d,0xd2,0x3f,0x52,0xcd,0x9c,0x40,0xc8,0x35,0x6d,0xbe,0x3c,0x9a,0xe7,0xbf,0x0,0xba,0x8c,0x40,0x24,0x1f,0x49,0xc0,0x82,0x51,0x15,0x40,0xba,0x4c,0x87,0x40,0x2,0xe9,0x34,0xc0,0x76,0xf4,0x80,0xbf,0x8e,0x74,0x90,0x40,0x6c,0xc4,0xce,0xbe,0x8b,0x5c,0x8c,0xc0,0xfd,0x73,0x31,0xc0,0x8b,0xa5,0x96,0xc0,0xe6,0x10,0x79,0xbf,0xee,0x0,0x31,0x40,0x3a,0xfc,0x2a,0xbf,0xf2,0xe6,0x6e,0xbf,0xcc,0x2f,0xd1,0x3e,0x44,0x88,0xce,0xbe,0xaa,0x62,0x63,0xbf,0xbb,0xc4,0xca,0xbf,0xc6,0xfa,0x1d,0x3f,0x8c,0x9b,0x9b,0xbe,0x5a,0x84,0x37,0xbf,0x89,0xf7,0xa1,0xbf,0x9d,0xbb,0xa6,0x3f,0x7d,0xb,0xf4,0xbf,0x38,0x6b,0x93,0xbe,0xb0,0xef,0x43,0xbf,0xa3,0x6b,0x61,0x40,0xa8,0x23,0x6,0x40,0xee,0x15,0x6,0x40,0x80,0x1f,0xfb,0xbc,0x0,0xbe,0x4a,0xc0,0x34,0x61,0xab,0x3e,0x78,0x5e,0x7b,0xc0,0xd0,0xcc,0xdf,0x3d,0xb5,0x1,0x9d,0x40,0x1e,0x6,0x38,0xbf,0xf8,0xd3,0x98,0x40,0x92,0x48,0x47,0xc0,0x81,0x6e,0x7b,0x40,0xc9,0x4a,0xf0,0x3f,0x4,0x69,0xb,0xc0,0x41,0xea,0x9d,0xc0,0x94,0xf2,0xf,0xc0,0xc0,0xa5,0x16,0x40,0xcb,0x81,0x9a,0x40,0xa6,0xaf,0x80,0xc0,0xfb,0xe7,0xf,0xc0,0xab,0xac,0xe3,0x3f,0xe0,0x57,0x9f,0xbf,0x2b,0x60,0x88,0xc0,0x94,0x4d,0xd7,0xbf,0x48,0xe6,0xcb,0x3f,0x38,0xa6,0x9b,0xc0,0x3b,0xcc,0xed,0xbf,0x4,0xfb,0x3b,0x40,0xa7,0x79,0x18,0x40,0x7e,0xc8,0x8,0xc0,0x41,0xe3,0x94,0x40,0x6c,0xde,0x4d,0x3f,0x49,0x18,0x19,0x40,0x14,0xaf,0xdc,0xbe,0xad,0x2c,0xf3,0xbf,0xff,0xa7,0x8a,0x40,0xf8,0xab,0x95,0xc0,0x61,0x54,0xe0,0x3f,0xa9,0x79,0xc,0xc0,0x78,0x6c,0xca,0xbf,0xbe,0x47,0x74,0x40,0xac,0xd5,0x91,0xc0,0x62,0xfb,0x2b,0xbf,0xd2,0x3f,0xd9,0xbf,0x7e,0x8f,0x6a,0x40,0x44,0x6e,0x72,0xc0,0xce,0xea,0x7a,0xbf,0xdc,0x55,0xff,0xbf,0x78,0x27,0x6e,0x40,0x99,0x51,0x7b,0x40,0x80,0x60,0xd3,0x3d,0xd6,0x7b,0x0,0x40,0xaf,0xd9,0x9f,0x40,0xe0,0x70,0x89,0xc0,0xd0,0xf,0xc0,0x3d,0x16,0xf6,0x91,0x40,0x83,0x52,0xa7,0xbf,0x54,0xee,0x6c,0xc0,0x62,0xb4,0x8d,0x40,0xf0,0x95,0x97,0x40,0xd2,0xbd,0x3c,0x40,0x85,0x89,0x70,0x40,0x4c,0x8c,0xdb,0xbe,0xfd,0x19,0x5e,0xc0,0xd4,0x7e,0x8d,0xc0,0xe2,0xf5,0x4,0x40,0xd,0x44,0xb3,0xbf,0xe6,0x71,0x9c,0x40,0x8,0xe1,0xe,0x3f,0xec,0x8b,0x4f,0x40,0xa8,0x2,0xa5,0x3e,0xa5,0x12,0x93,0xbf,0x76,0x1a,0xf6,0xbf,0x43,0x9d,0x88,0xc0,0x7e,0x8d,0x9b,0xc0,0x79,0x8,0x83,0xbf,0xbe,0xf8,0x8a,0xc0,0x10,0xe1,0x9f,0xc0,0x54,0x81,0x1f,0x40,0x37,0xb4,0xc,0xc0,0x0,0xd8,0xb8,0x3b,0x87,0x29,0xa4,0xbf,0x56,0xf2,0x70,0xc0,0x98,0x8f,0xc3,0xbf,0xac,0x80,0x4d,0xc0,0xc2,0xbf,0x66,0x3f,0xd0,0x49,0x96,0x40,0x9c,0x11,0x98,0xbf,0x60,0x70,0x36,0x3f,0xf4,0xa1,0x36,0x40,0x5a,0xd1,0xb,0x40,0x14,0xca,0xda,0x3e,0xc2,0x89,0xdb,0xbf,0xb4,0x82,0x7a,0xbf,0xd0,0x1f,0x30,0xbf,0xde,0xbc,0x9f,0x40,0xf0,0xb9,0x34,0x3f,0xea,0x73,0x51,0x40,0x68,0x74,0x36,0x40,0x7,0xd3,0x83,0x40,0xd2,0xe1,0x5c,0x3f,0xc0,0x24,0xb1,0x3d,0x4,0x1a,0xb9,0xbf,0x26,0x85,0x4c,0x40,0xc4,0x6a,0x6e,0x40,0x22,0xaf,0x78,0x40,0x9,0xf,0x8e,0xc0,0x38,0xda,0xb5,0x3e,0xa7,0x71,0x43,0xc0,0xda,0xd4,0x52,0xc0,0xc4,0xa5,0x8b,0xc0,0xee,0x62,0xf4,0xbf,0xde,0x6,0x8f,0x40,0xb4,0x2b,0x33,0x40,0x4,0x2f,0x5d,0xc0,0x41,0x8a,0x84,0xbf,0x4a,0x51,0xc,0x40,0xf6,0xbb,0x3b,0x40,0xbf,0xbc,0x67,0x40,0xcc,0x50,0x28,0xc0,0xf2,0x22,0x1,0xc0,0x3,0x2c,0x2d,0x40,0x89,0xe0,0x8b,0x3f,0x48,0xf,0x25,0xc0,0x14,0x5d,0x72,0xc0,0xb4,0xd9,0x94,0xbe,0xe1,0xf4,0x87,0x40,0xae,0x67,0xfd,0xbf,0x50,0xda,0x31,0xbf,0xdb,0x13,0xf2,0x3f,0x4a,0x86,0x85,0xc0,0xcc,0x7a,0x1,0xc0,0xce,0x85,0x35,0x3f,0x9,0xf,0x12,0xc0,0x62,0x41,0x7a,0x40,0x70,0x43,0x35,0xbf,0x55,0xa0,0x7,0x40,0xa2,0xd4,0x6c,0xbf,0x78,0xbc,0x13,0xbf,0xdd,0x8,0x92,0x40,0xbe,0xc9,0x7e,0xc0,0xd2,0xa5,0x5e,0xc0,0xa,0xe9,0xed,0xbf,0x4e,0x63,0x73,0x3f,0xcc,0xdb,0xbb,0xbf,0xf5,0x22,0xc9,0x3f,0xd3,0xa2,0x13,0xc0,0x89,0x74,0xed,0x3f,0x10,0x3b,0x95,0xc0,0x70,0xf0,0x41,0x3e,0x67,0xb2,0x29,0x40,0x76,0x87,0x5e,0x3f,0x32,0xdf,0xc,0xc0,0x15,0xab,0xee,0xbf,0xb7,0x5d,0x8b,0x3f,0xb4,0xd4,0x5c,0xc0,0xa3,0x81,0x78,0xc0,0x70,0x8d,0x84,0xbd,0x90,0x87,0x88,0xc0,0x76,0x59,0x8f,0x3f,0xcf,0x75,0x53,0xc0,0xa6,0xc8,0x30,0x40,0x6a,0xaa,0x3a,0x40,0xb5,0x33,0x81,0x40,0x88,0x9a,0x4b,0xc0,0x28,0x1,0x6f,0x3e,0x32,0x7f,0x94,0x40,0x91,0xfb,0x9f,0xbf,0x2f,0x78,0xe4,0x3f,0xd5,0x90,0x2d,0x40,0x38,0xc6,0x30,0x3e,0x91,0x7e,0xe0,0xbf,0x3f,0x1e,0xa7,0x3f,0xa0,0xa6,0xae,0x3f,0x84,0x83,0x77,0xc0,0x99,0x77,0xe9,0xbf,0xf5,0xb9,0x86,0xc0,0xe,0x43,0x87,0xc0,0x30,0x77,0x6b,0x40,0x1,0xf5,0x60,0x40,0xe0,0x10,0x5a,0xc0,0x33,0xaa,0x9a,0xc0,0x8c,0xef,0x81,0xc0,0x76,0xdd,0x17,0x40,0x5e,0x4e,0x85,0x40,0x20,0xc0,0x3f,0xbf,0x1,0x86,0xdc,0xbf,0x2d,0xcf,0x80,0xc0,0x80,0xd2,0x3b,0xbe,0xec,0x84,0x31,0x40,0xb8,0x5a,0x1a,0x40,0x72,0xda,0x2,0xc0,0x70,0x49,0x2,0xc0,0xb8,0xee,0x64,0x3f,0xe1,0x19,0x1b,0x40,0xaa,0xff,0x82,0x40,0x55,0x64,0x87,0x3f,0x16,0xc0,0x47,0x40,0x3c,0x71,0x82,0x40,0xf0,0x7e,0xe5,0xbd,0x0,0x4d,0x8f,0xbf,0xd3,0x62,0x3f,0x40,0x78,0xc8,0xff,0x3e,0x3,0x21,0x99,0x40,0x74,0x21,0x2d,0x40,0x9a,0x5b,0x91,0x3f,0x4c,0x35,0x93,0xc0,0x24,0xaf,0x44,0x40,0xc1,0xd1,0xdf,0xbf,0x1a,0xfb,0x64,0xbf,0x11,0x37,0xf,0x40,0xb7,0xa,0xb1,0x3f,0xf2,0x22,0xae,0xbf,0x0,0xf7,0x8f,0xbe,0xc6,0x5d,0x74,0xc0,0xc4,0x55,0x6,0xc0,0x2c,0xa1,0xa0,0xbf,0x40,0x33,0xff,0x3c,0x56,0x3a,0xa1,0xbf,0xe5,0xf5,0x30,0x40,0x60,0x15,0x85,0xbe,0xe8,0xaa,0x48,0xc0,0x92,0x9f,0xaf,0x3f,0x6c,0xe3,0xd2,0xbf,0xe8,0x99,0x64,0x40,0x60,0xfe,0x11,0xbe,0xd2,0x8b,0x8a,0x40,0x6f,0xa6,0x8a,0x40,0xf,0xca,0x9d,0x40,0x7a,0x3d,0x9,0x3f,0x36,0x58,0x73,0x40,0x0,0x91,0x75,0xbd,0xa5,0xb6,0xd0,0x3f,0xca,0x9c,0x15,0xc0,0xc8,0x6f,0x7e,0xc0,0x12,0x9d,0x75,0xc0,0x24,0x3a,0x98,0xc0,0xe8,0xdf,0x91,0xbf,0x64,0x90,0x89,0xc0,0xd6,0xaf,0x78,0x40,0x25,0xab,0x85,0xc0,0xca,0x68,0x74,0x40,0x77,0x2,0x8b,0x3f,0x7c,0x42,0x66,0xc0,0x20,0x6d,0x88,0x40,0x2d,0x8f,0xd4,0x3f,0xc,0xad,0xcd,0xbe,0x34,0x71,0x7d,0x40,0xe5,0x7e,0x86,0xc0,0x6,0x72,0x66,0x40,0xc,0xb9,0xdf,0xbe,0x8,0x55,0x13,0x3e,0x54,0xee,0xe9,0x3f,0xb5,0x12,0x3,0xc0,0x50,0x91,0x87,0xbd,0x12,0xae,0x66,0x40,0x49,0x2,0xff,0x3f,0xe8,0xab,0x1a,0x40,0x94,0xac,0x88,0x40,0x6e,0x95,0x4e,0xc0,0xee,0x3,0x6a,0xbf,0xb6,0x81,0x8b,0x40,0x2d,0x85,0xe3,0xbf,0x90,0x36,0xb6,0x3f,0xdb,0xa8,0xfd,0x3f,0xf0,0x2,0x91,0xc0,0x50,0x3c,0x87,0x3d,0x91,0xd6,0x93,0x40,0xbe,0x4,0x58,0xbf,0xba,0x9b,0x9c,0xc0,0xd,0xba,0x91,0xc0,0xf6,0xaf,0x42,0x3f,0x3c,0x20,0xcb,0xbf,0x64,0x32,0x55,0xc0,0x74,0xf7,0x81,0x40,0xfe,0xcc,0x34,0xc0,0x25,0xc1,0x66,0xc0,0xc,0x58,0x59,0x40,0x63,0xfe,0x72,0x40,0xad,0x3a,0xdb,0x3f,0xca,0xcd,0x9f,0x40,0x78,0xba,0x1,0x3e,0x4b,0x14,0x70,0x40,0x86,0xc7,0x3d,0xc0,0x5b,0x4e,0x82,0xc0,0x64,0x25,0xf,0x3f,0x8a,0xca,0x54,0xc0,0x78,0x60,0x10,0xbe,0xda,0x86,0x0,0xbf,0xe0,0xfa,0x44,0x3f,0x62,0x0,0x9d,0xbf,0x88,0xb6,0xb6,0xbe,0xe6,0x45,0x91,0xc0,0xe8,0xe7,0x6,0xc0,0x4c,0xf6,0x12,0x40,0x62,0x16,0x8b,0x40,0x74,0x7c,0x8c,0x40,0x7c,0x27,0x72,0x3f,0x98,0xf1,0x77,0xbf,0x92,0xf8,0x74,0x40,0x30,0xa2,0x66,0x3e,0x70,0x54,0xbd,0xbd,0xa0,0x36,0x3a,0x3e,0x32,0x45,0x46,0xc0,0x98,0xc4,0xbb,0xbf,0xf4,0x49,0x90,0xc0,0x74,0xe6,0xef,0xbe,0x93,0x73,0x9a,0xc0,0x44,0xc,0x43,0x3f,0x0,0xb4,0xc,0xbc,0x4f,0x87,0xe2,0x3f,0x74,0xa7,0x47,0xc0,0x60,0x5d,0x8,0xbd,0xf8,0x5e,0xb2,0xbf,0x4a,0xf,0x3f,0xc0,0x4,0x8b,0x79,0x40,0x7e,0xd0,0x9d,0xc0,0xda,0x7e,0x62,0x40,0x8c,0x70,0x9e,0xbf,0xf6,0x17,0x33,0xc0,0xb7,0x5b,0x9b,0xc0,0x6e,0xc7,0x97,0xc0,0xdf,0xc0,0xdc,0xbf,0x24,0x76,0x4e,0x40,0x3e,0xdc,0x7d,0x3f,0x32,0xbd,0x69,0xc0,0x4e,0xf5,0x86,0x40,0xec,0x15,0x83,0x40,0x8,0xfd,0x4,0x40,0xc7,0xa0,0x9c,0x40,0x0,0x25,0x55,0x40,0x40,0xaf,0x35,0x3f,0xcc,0x2a,0x5d,0x40,0xbc,0x55,0x36,0xc0,0xba,0xd1,0x25,0xbf,0x14,0xca,0x26,0xc0,0x6a,0x4a,0x61,0xbf,0xf0,0x41,0x7d,0xc0,0x9c,0x89,0x59,0x40,0x6e,0xd5,0xfc,0xbf,0x77,0x27,0xc5,0x3f,0xb0,0xbc,0x92,0x40,0xe2,0x1c,0xd8,0x3f,0x94,0x66,0x87,0x3e,0xa,0xea,0x9e,0x40,0x58,0x4f,0x9e,0xc0,0x8e,0x30,0x94,0x40,0x6,0xb7,0x8a,0xc0,0xe6,0x98,0x9e,0x40,0x28,0x89,0xcb,0x3e,0xf4,0x64,0x44,0xc0,0x65,0x97,0xda,0xbf,0x38,0x50,0x24,0xc0,0xef,0xe1,0x3f,0x40,0x8c,0x73,0x89,0x40,0xb7,0x81,0x41,0x40,0xc7,0xfd,0x69,0x40,0xb2,0x42,0x9a,0x40,0x34,0x3,0x8d,0xc0,0xc2,0x89,0x6,0x40,0x3c,0x8d,0xd1,0x3e,0x9,0xe0,0x40,0x40,0xf0,0x9b,0xb4,0x3f,0xf8,0xc3,0xe,0x3e,0x3f,0xf0,0x54,0x40,0x77,0x6b,0x1,0xc0,0x6f,0xce,0x73,0xc0,0x69,0x5b,0x65,0xc0,0xb0,0xa7,0x65,0x40,0x10,0xae,0xd7,0x3d,0x4c,0x10,0x82,0xc0,0x79,0x4e,0xdd,0x3f,0x18,0x55,0x26,0xbe,0x78,0xd3,0x3d,0xc0,0x39,0x31,0x8c,0x40,0x72,0xd8,0x39,0x40,0x7e,0x7a,0x87,0x40,0x7a,0x73,0x50,0xbf,0xb,0xd4,0x45,0xc0,0x2c,0x59,0x87,0xc0,0x62,0x99,0x15,0x3f,0xf9,0x43,0x60,0xc0,0x70,0xe4,0x3e,0x40,0x7,0xc,0x91,0xc0,0x26,0xc1,0x63,0xc0,0xe0,0xe7,0x39,0x3f,0x75,0x9d,0x9c,0x3f,0x4a,0x99,0x28,0xbf,0x57,0x41,0x85,0xbf,0xc0,0x38,0x22,0xc0,0x92,0x1d,0xb9,0xbf,0x76,0x6,0x26,0x3f,0xdb,0x9d,0x8f,0xc0,0x80,0xe2,0x5d,0xbf,0x8e,0x4c,0x4a,0xbf,0xc0,0x86,0xe0,0x3d,0x70,0xd5,0x6d,0x40,0x8c,0x21,0x86,0xc0,0xeb,0x18,0xdd,0x3f,0x28,0x44,0xed,0x3f,0xce,0xa7,0xb1,0x3f,0x90,0x67,0xb7,0xbf,0x66,0xdc,0x39,0x40,0xee,0x72,0x62,0xc0,0x96,0xef,0x0,0xc0,0xb8,0x72,0x9,0xbe,0xe,0x44,0x3c,0xbf,0x8,0x40,0x9e,0xc0,0x88,0xb2,0x2b,0x40,0x2a,0x10,0x3d,0x40,0x60,0xf,0x8e,0xc0,0x80,0x8c,0x1d,0x3c,0x6a,0xab,0x86,0xc0,0x24,0xac,0x68,0xbf,0xa8,0x23,0x18,0x3f,0x86,0x2a,0x8b,0x40,0xb6,0xf,0x61,0x40,0x14,0xf8,0x24,0x40,0xae,0x8f,0x28,0x3f,0x86,0xa3,0x93,0xc0,0xc5,0x75,0xce,0xbf,0xa6,0xa2,0x8e,0x40,0xf4,0xd3,0xd2,0x3e,0x35,0x3a,0x90,0xbf,0xdb,0xc9,0xdc,0xbf,0x1d,0x7f,0x1a,0x40,0x9c,0x4e,0x49,0x40,0x9c,0x60,0xdf,0xbe,0x36,0x72,0xbb,0x3f,0xef,0xa6,0x6b,0x40,0xca,0x3e,0x56,0x40,0x60,0xfb,0x25,0x40,0xa4,0x83,0x5a,0x40,0x3c,0xe9,0xe8,0x3f,0x8a,0x66,0xaf,0x3f,0x17,0x73,0x9d,0xc0,0x94,0x65,0x7b,0xbf,0x32,0xf5,0xbe,0xbf,0x0,0x7f,0x8f,0x3f,0xa1,0x97,0xb7,0xbf,0xb4,0xf6,0x91,0xc0,0x2c,0xe2,0x85,0x40,0xd0,0xb0,0xa,0xc0,0x49,0xf0,0x97,0xc0,0xcc,0xf,0x5,0xc0,0x85,0x17,0x86,0x3f,0x6a,0x89,0xd9,0xbf,0x8b,0xd0,0x9f,0xc0,0xa1,0xf2,0xd4,0x3f,0x6f,0xb7,0xf6,0x3f,0xab,0xf1,0x94,0x40,0x1,0x24,0x9e,0xc0,0x82,0x85,0x72,0xbf,0x41,0xe3,0xf3,0xbf,0x45,0xbe,0xdd,0xbf,0xd0,0x47,0xdd,0x3d,0xfd,0x2c,0x95,0x40,0x56,0xd3,0x5,0xbf,0xa4,0xfa,0x88,0x40,0x96,0x3a,0x31,0x3f,0x19,0xae,0x26,0xc0,0xc,0x52,0xf6,0xbe,0xc6,0xb0,0x24,0x40,0xe,0x36,0x3d,0x40,0x5,0x58,0xd4,0xbf,0x70,0x93,0x1c,0xbf,0x9e,0xc8,0x85,0xc0,0x67,0xc7,0x4b,0xc0,0xd8,0x1e,0xa9,0xbf,0x5a,0xb1,0x3e,0x40,0xe0,0x8,0x9e,0x3e,0xfb,0x14,0x29,0x40,0xc7,0x85,0x85,0xc0,0x9c,0xf4,0x82,0x3f,0x7d,0x4d,0x81,0xc0,0xaa,0x2b,0xbb,0xbf,0xe0,0x9b,0x82,0x40,0xe8,0xa5,0x55,0x3e,0x46,0x97,0x6f,0xc0,0x3a,0x91,0x9d,0xc0,0xa,0x75,0xc1,0xbf,0x53,0xf7,0xfa,0xbf,0xb6,0x89,0x94,0xc0,0x6e,0x1c,0x2f,0x40,0xf0,0x32,0xcd,0x3d,0x26,0x7e,0x44,0xbf,0xd6,0x29,0x77,0x40,0x2c,0x91,0x97,0xc0,0x3,0x4e,0xcc,0x3f,0xa0,0xfb,0x6c,0x40,0x65,0x1f,0x8a,0x3f,0x98,0x98,0x2b,0x40,0x38,0x25,0xe3,0xbf,0x47,0xa8,0x96,0xc0,0xb,0x7c,0x95,0x40,0xde,0xd1,0x9e,0xc0,0xf4,0x8a,0x2,0xc0,0x98,0xff,0x90,0x40,0x10,0x2b,0x19,0xc0,0x3c,0x25,0x7d,0xbf,0xa2,0x1d,0x24,0xc0,0x2d,0x8c,0x82,0x3f,0x33,0x77,0xe6,0xbf,0x50,0xed,0xee,0x3f,0x2c,0x4,0x9c,0x40,0xd4,0x60,0x70,0xc0,0xbc,0x7d,0x51,0x40,0xdb,0x5,0xa1,0xbf,0x54,0x76,0x9f,0xc0,0x6c,0x1e,0xb,0x40,0x5f,0xb,0x56,0xc0,0xe8,0x48,0x3c,0x40,0x16,0xec,0x5e,0xbf,0x30,0x31,0x41,0xc0,0x46,0x52,0x8b,0xc0,0x66,0xb0,0x89,0x3f,0x61,0x31,0x9a,0xc0,0x18,0xe0,0x2f,0x40,0x17,0xa8,0xf4,0x3f,0x8,0xc4,0x87,0xc0,0x8a,0x4b,0x27,0x40,0x4c,0x3b,0x7c,0xc0,0x24,0xeb,0x1,0x3f,0xe7,0xa0,0xb8,0xbf,0x26,0xfb,0x55,0x40,0x51,0x49,0x87,0xc0,0x43,0x6b,0xc9,0xbf,0x72,0x4,0xe3,0xbf,0xdc,0x9b,0xdc,0xbe,0x1e,0xb0,0x1,0x3f,0x92,0x2c,0x48,0xc0,0xe,0x4d,0x2e,0x3f,0xe8,0x15,0x68,0x3e,0x12,0x69,0x22,0xc0,0x75,0xe8,0x97,0x3f,0xa6,0x10,0x6b,0x40,0x8d,0xb9,0x24,0x40,0xf2,0x52,0xce,0x3f,0xac,0xf0,0xc,0xc0,0x1f,0xa8,0x67,0xc0,0xd2,0x40,0x3f,0x40,0xc0,0x74,0x45,0x3f,0xf0,0xc0,0xc6,0x3e,0x4a,0x5,0x23,0x40,0x18,0x66,0x13,0xc0,0x65,0xdc,0x9e,0xc0,0x94,0xb0,0x5b,0xc0,0xe,0xd7,0x95,0xc0,0xe2,0x2a,0x47,0x40,0xcc,0xd4,0x42,0x40,0x8,0x99,0x12,0xc0,0xa1,0x4c,0x8f,0xbf,0x7d,0xbb,0x85,0xbf,0x8e,0x26,0x2,0xc0,0xc2,0x81,0x5b,0xc0,0xb9,0x81,0xc9,0x3f,0x32,0xb8,0xe2,0xbf,0x64,0x6d,0x50,0xc0,0xb4,0xf1,0x6f,0x3f,0xd6,0x7d,0x0,0xc0,0x54,0x17,0x7d,0x3f,0x90,0xb7,0x41,0xbe,0xfd,0x60,0xce,0x3f,0xcd,0xb9,0x52,0x40,0x3c,0x9e,0x8c,0xc0,0x54,0xf7,0x17,0xc0,0x98,0xdf,0x9c,0x40,0x80,0x73,0x63,0x3e,0xa6,0x5e,0x52,0xbf,0x62,0xcd,0x7c,0x40,0xa2,0x5d,0x8b,0x40,0x73,0xc9,0xe0,0x3f,0x7e,0x1e,0x7c,0xc0,0xa4,0x9d,0x98,0x40,0x88,0xd8,0x90,0xc0,0x28,0xd7,0x9e,0xc0,0x3c,0xde,0x41,0x3f,0x74,0x7f,0xbb,0xbf,0x8d,0xd8,0x94,0xc0,0xa8,0xba,0x78,0x40,0xb6,0x2b,0x1b,0x3f,0xb8,0xb9,0x2b,0xc0,0xf5,0x3d,0xe0,0x3f,0x7c,0xfb,0x68,0x40,0xaa,0xaf,0x7,0xbf,0x2,0x28,0x6c,0x40,0xfa,0x34,0x46,0x40,0xae,0x5e,0x59,0x3f,0xb2,0xcd,0x29,0xc0,0x5e,0xcd,0x74,0xc0,0xe0,0x31,0x93,0xbd,0x8,0xb6,0xaa,0xbf,0xd6,0x19,0x90,0xc0,0x24,0xcc,0x95,0xc0,0x6,0x1f,0x4b,0xc0,0x20,0x9d,0xc4,0x3d,0x4,0xae,0x10,0xc0,0xee,0x6d,0x86,0xc0,0x96,0xe6,0x5c,0xbf,0x52,0x9,0xd,0xc0,0xb8,0x66,0x9a,0xbf,0x80,0x90,0x41,0x40,0xe8,0x92,0x39,0x40,0x25,0xb9,0x50,0x40,0x52,0xa1,0x9f,0x40,0x84,0xa7,0xb0,0x3e,0xf6,0x25,0x2a,0xc0,0x88,0xa1,0x5,0xbf,0x88,0x87,0x4c,0x3f,0xfd,0x54,0xe4,0xbf,0xc6,0x18,0x7f,0x40,0x5a,0x19,0x28,0x40,0x71,0x19,0x68,0xc0,0xb8,0x86,0xf2,0x3e,0xb0,0x80,0xf1,0x3e,0x7b,0x90,0xc6,0x3f,0x80,0x5b,0x55,0xc0,0xc6,0x64,0x9d,0x40,0xfa,0x77,0xdd,0xbf,0x61,0xda,0xf0,0x3f,0xe0,0x58,0x1e,0xc0,0x6c,0xaa,0xd9,0x3f,0x1c,0xe2,0xdd,0xbf,0x26,0x3f,0x29,0xc0,0x88,0x1f,0x8f,0xc0,0x74,0x5e,0xe1,0x3f,0xb4,0x8c,0x2f,0x3f,0x7a,0x92,0xc5,0x3f,0xe8,0xb4,0x2f,0xc0,0x7d,0x3b,0x88,0x3f,0x95,0xdd,0x2,0xc0,0x5b,0x1,0xb2,0x3f,0x7e,0x62,0x95,0x40,0x96,0x11,0x86,0xc0,0xf1,0x77,0xf5,0x3f,0xda,0x62,0x4e,0xc0,0x38,0x12,0xc4,0x3f,0x92,0xa0,0x8b,0xbf,0x25,0x9e,0x2,0x40,0xc6,0xd3,0x6e,0xc0,0x92,0x1,0x61,0x40,0xa4,0xc1,0x34,0x40,0x77,0x1,0x5c,0xc0,0x5e,0xd8,0x61,0xc0,0x74,0xdc,0x2e,0x40,0xfa,0x25,0x7b,0xc0,0x6b,0xf4,0xf9,0x3f,0xec,0x26,0x1e,0xc0,0x38,0x5f,0x8f,0xc0,0x98,0x8c,0xc6,0x3f,0x7a,0x6f,0x6,0xc0,0xd0,0x2b,0x53,0xc0,0x86,0x79,0xbe,0x3f,0xdf,0xf0,0x13,0x40,0x2e,0x51,0x81,0x40,0xec,0x75,0x9c,0x40,0x37,0x81,0xdd,0x3f,0x2,0xef,0xb8,0xbf,0xe8,0x95,0x5b,0xbf,0x38,0x92,0x71,0x40,0x17,0xc2,0x78,0xc0,0x2e,0xe4,0x65,0x40,0xb0,0xa4,0x13,0x40,0x15,0xe0,0xf5,0x3f,0xcd,0x2,0xc6,0x3f,0x5e,0xd8,0x84,0xc0,0xc8,0xe6,0xff,0x3f,0x18,0xa7,0x9a,0xbe,0xf0,0xa2,0x85,0x3d,0x25,0xa0,0x14,0xc0,0x1c,0x4e,0x67,0x40,0x4a,0xcb,0x55,0xbf,0x60,0x62,0x26,0x3d,0x16,0xaa,0x88,0xc0,0x53,0xbb,0x75,0x40,0x99,0xb0,0x93,0xc0,0x90,0x10,0x46,0x40,0xf0,0x49,0xc,0x40,0x3a,0xe4,0x42,0x3f,0x2,0xe9,0x9a,0xc0,0xc6,0x89,0x13,0xc0,0x10,0xd2,0xa9,0xbe,0xad,0x5,0x6d,0xc0,0x70,0x1a,0xcf,0xbf,0x1b,0xc7,0x90,0xbf,0x6d,0xd9,0xc7,0xbf,0x4b,0xa3,0x5e,0x40,0x72,0x4a,0x92,0x40,0x14,0x4d,0xf,0xc0,0x3f,0x3e,0x25,0x40,0x3c,0xbe,0xa0,0x3e,0x57,0x40,0x6a,0x40,0x1f,0x8b,0x8b,0xc0,0xdd,0x88,0x1e,0xc0,0xf9,0x35,0x80,0xbf,0x20,0xaa,0x99,0x40,0x4c,0x45,0x7d,0x40,0xd3,0x33,0xad,0xbf,0x28,0x41,0x45,0xc0,0xbd,0xbb,0x1f,0xc0,0x40,0x6d,0x1d,0x3f,0xa2,0xd1,0x90,0x3f,0x7f,0xe3,0x21,0xc0,0x3c,0x55,0xb4,0x3f,0xf8,0xff,0x13,0xbf,0x4e,0x29,0x6e,0x40,0x9f,0xf8,0xf3,0xbf,0xbd,0xb1,0x33,0xc0,0xbe,0xb8,0x44,0x3f,0x44,0xf,0x84,0x3e,0xe0,0xb3,0x34,0x40,0xd4,0x32,0x9c,0x40,0x4c,0xdf,0x0,0xc0,0x25,0xc9,0x94,0x40,0xaf,0x50,0x16,0x40,0x2b,0x37,0x88,0x40,0x25,0x33,0xc5,0x3f,0xfe,0x5f,0x3f,0xbf,0x5c,0xa8,0x2f,0x3f,0xb8,0x8e,0x6,0x3e,0x80,0x56,0x6c,0xc0,0xe3,0xa,0xd5,0xbf,0x77,0x5e,0x72,0x40,0x4c,0xd1,0x7a,0x3f,0x46,0xf,0xaa,0x3f,0xd0,0xc3,0xf7,0x3e,0xd8,0x15,0x8a,0x3f,0x54,0xc0,0x5e,0xc0,0x9c,0xd,0x71,0xbf,0xb1,0x6e,0x8a,0xbf,0xec,0xbf,0xda,0xbf,0x3e,0x42,0x4a,0xc0,0xa8,0x6d,0x5,0xbf,0xc0,0x9f,0xf4,0xbd,0x45,0x4d,0xd1,0xbf,0xaa,0x6d,0x9c,0xbf,0x67,0x88,0xc4,0xbf,0x92,0x23,0x4c,0xbf,0x6a,0x77,0x7f,0xc0,0xb0,0x69,0x82,0x40,0xa2,0xe9,0x2a,0xc0,0xd2,0xac,0x26,0x40,0x7a,0xd5,0x8c,0xc0,0x38,0x23,0x6a,0xbe,0x8c,0x4f,0xec,0xbe,0x94,0x13,0x88,0xc0,0x58,0xf0,0x84,0x3e,0x38,0xda,0x6e,0xc0,0x6a,0x62,0xe2,0x3f,0xb1,0x3f,0x48,0x40,0x9e,0xeb,0x45,0xbf,0xa,0x21,0x54,0x3f,0x14,0x2a,0x20,0xc0,0xd0,0xab,0xe7,0x3f,0x6f,0xe,0x97,0xc0,0x75,0x5f,0x9f,0x40,0xf0,0x33,0x90,0xbe,0xa6,0xbb,0x84,0x3f,0x21,0x8e,0x87,0x40,0xe8,0x86,0x84,0xc0,0x68,0xaf,0x26,0xc0,0x46,0x9c,0x65,0x3f,0x4a,0xa5,0x9f,0xc0,0xe9,0x93,0x91,0x3f,0x48,0x9c,0xd9,0xbe,0x1a,0x15,0x96,0xc0,0xac,0x45,0x9f,0xbf,0x92,0x2f,0x6a,0xc0,0x3c,0x4e,0xf7,0x3e,0xba,0xce,0x6b,0x40,0xac,0x4c,0x98,0x40,0x55,0x9b,0x95,0xc0,0xad,0x36,0xe4,0x3f,0x6b,0x4d,0x76,0xc0,0x7e,0x7a,0xe3,0x3f,0x6a,0x24,0x30,0x40,0xca,0x6c,0x98,0xc0,0x42,0xf9,0x66,0xc0,0xe4,0x77,0x8f,0xc0,0x2c,0x6,0xf0,0xbe,0xa8,0x8a,0xea,0x3f,0x42,0xbb,0x6a,0xc0,0xb4,0x90,0xa6,0xbe,0x5a,0xcb,0xde,0xbf,0x1e,0x28,0x91,0x40,0x33,0xb2,0x92,0xc0,0xd6,0x9c,0x31,0xc0,0x60,0xda,0x3f,0xbd,0xf1,0x5f,0x79,0xc0,0x94,0x51,0x76,0x40,0x4a,0xff,0x92,0xc0,0x6b,0x7a,0xce,0xbf,0xca,0xd0,0x5,0xc0,0x60,0xac,0x3b,0xbd,0x4f,0x9,0x18,0xc0,0x42,0xbb,0x65,0x40,0xb3,0xbd,0x89,0xc0,0x0,0xca,0x28,0xc0,0x6f,0x76,0x12,0xc0,0x8d,0xec,0x98,0xc0,0x7e,0xb2,0x9e,0xc0,0xe,0xd3,0xe1,0x3f,0x52,0xb1,0x96,0x40,0xfc,0xb2,0x43,0xbf,0xd6,0x4e,0xf8,0xbf,0xec,0xe3,0xb,0x40,0x3b,0x8f,0x3c,0x40,0xf7,0x97,0x8f,0xc0,0xa3,0xc8,0x18,0xc0,0x6,0x3d,0x87,0x40,0x6c,0x6e,0xe,0x40,0x8d,0x89,0x94,0xc0,0x10,0x71,0xbf,0x3d,0x2,0x53,0x72,0xc0,0xc1,0x87,0x77,0xc0,0xf8,0xef,0x1e,0xc0,0xc,0xce,0x9e,0x40,0x83,0x82,0x38,0xc0,0x88,0xf3,0x5b,0x40,0xa3,0x33,0x91,0xc0,0x9c,0x1c,0xb0,0xbe,0x5e,0xb2,0x90,0x40,0x3e,0xb4,0x8f,0xbf,0xd6,0x92,0xdc,0xbf,0x8e,0x78,0xd,0xc0,0xe4,0x47,0x67,0xc0,0x89,0x58,0xcd,0x3f,0x17,0x45,0x69,0xc0,0x6b,0x87,0x4b,0xc0,0xfc,0xfc,0x8a,0x40,0x25,0x1e,0x6e,0x40,0x5e,0x52,0x27,0xc0,0x0,0x2c,0xd8,0x3d,0xa9,0xf5,0xab,0xbf,0xee,0x9c,0x73,0x40,0xb2,0xa5,0x8f,0xc0,0xac,0xc0,0x8f,0xc0,0x32,0xa2,0x1c,0x40,0x78,0x1,0x74,0x3e,0x2b,0x37,0xbb,0xbf,0x84,0xe6,0x23,0x40,0x74,0x6c,0x3,0x40,0xa4,0xb1,0x59,0xc0,0xd0,0xd2,0x36,0x40,0xe2,0xd3,0x39,0x40,0xe6,0xff,0x34,0xbf,0x7b,0x6d,0x8a,0xc0,0x53,0x5d,0x6,0x40,0xa,0xa2,0x3e,0x40,0xad,0xef,0x9e,0xc0,0xd6,0x9,0x94,0xc0,0x4a,0x8e,0x1a,0xbf,0xfb,0x4e,0x8c,0xc0,0x66,0xd6,0x1f,0xc0,0x60,0xbe,0x79,0x40,0x42,0x19,0x6a,0x3f,0xd0,0x2c,0x3f,0x40,0x7d,0xb9,0x96,0x3f,0x24,0x72,0x9c,0x40,0x7e,0x6e,0x4,0x40,0x23,0x75,0xbc,0x3f,0xe1,0x3f,0x72,0x40,0x62,0x30,0xfe,0xbf,0xc7,0x21,0x89,0x40,0x9c,0xe2,0xf3,0x3e,0xe8,0x76,0x92,0x40,0x58,0xc7,0x3e,0xc0,0x76,0x5f,0x59,0xc0,0x82,0xd7,0x68,0x40,0x42,0x46,0x38,0xc0,0x7e,0x57,0x77,0x3f,0x2a,0x93,0x97,0x40,0x76,0x58,0x6f,0x3f,0x2e,0x4b,0x63,0xc0,0x6e,0xd6,0x42,0xc0,0x56,0x96,0x30,0xc0,0xb8,0x7,0x59,0xc0,0x8,0xa3,0x2b,0x40,0x5c,0x94,0x39,0x3f,0x14,0xaf,0xe6,0xbe,0xfd,0x3b,0xb2,0x3f,0xe8,0x12,0x3b,0x40,0x60,0xcc,0xe1,0x3e,0xe8,0xbd,0x4f,0x40,0xdc,0xf9,0x2b,0xbf,0xc7,0x36,0xf7,0x3f,0xc8,0xd1,0x88,0x3f,0x80,0xd8,0x30,0x3d,0xe,0xd1,0x68,0x40,0x50,0x75,0x9a,0x40,0x70,0xc5,0x80,0x40,0xa4,0x68,0xa2,0xbf,0x88,0xc5,0xcf,0xbf,0xba,0xb4,0x83,0x40,0x48,0x62,0x11,0xc0,0xfa,0x49,0x9,0x3f,0x2a,0x9d,0x35,0xc0,0xc7,0x73,0xa6,0xbf,0x2d,0x6,0xef,0xbf,0x4e,0xc4,0x47,0x40,0xda,0x4,0xc,0xc0,0xe9,0xf9,0xa,0xc0,0xb2,0xa4,0x7,0x40,0x24,0x85,0x8d,0xbe,0xf8,0xdd,0xf6,0x3e,0x41,0x4c,0x6f,0xc0,0x96,0xd0,0xc,0xc0,0xc6,0xca,0x20,0x40,0xec,0x0,0x13,0x40,0xe1,0xaf,0x92,0xc0,0x4e,0x32,0x5e,0xc0,0x1c,0xf7,0xb9,0x3f,0xa6,0x49,0x7b,0xc0,0x6c,0x53,0x29,0xc0,0xa,0x1,0x35,0xc0,0x74,0x3a,0x74,0xc0 }); - // [[[[-2.442304 3.5081077 -4.599655 ... 2.1282716 1.1413765 -1.551503 - Tensor *w = NN_tensor(4, (size_t[]){ 3, 3, 16, 56 }, DTYPE_F32, (uint8_t[]){ 0xb5,0x4e,0x1c,0xc0,0xd6,0x84,0x60,0x40,0x60,0x30,0x93,0xc0,0xb6,0x9,0x54,0x40,0x0,0xad,0x8a,0xc0,0xf6,0x9d,0xac,0xbf,0xdc,0xe3,0xd5,0xbf,0x5c,0x0,0x4b,0x40,0x99,0x9e,0x81,0xc0,0x20,0x2f,0x1f,0xc0,0x92,0x90,0x9d,0xc0,0x61,0x2d,0xbc,0xbf,0xa5,0xa6,0xfe,0x3f,0xf0,0x61,0x97,0x40,0xd3,0x9c,0x8a,0x40,0x70,0x3a,0xaa,0xbf,0x50,0x6b,0x2a,0xc0,0x34,0x1,0x8e,0x3f,0xa6,0x46,0x54,0x40,0x4e,0x55,0x8f,0x40,0x27,0xfd,0x5a,0x40,0x20,0xf0,0xb7,0xbd,0xb4,0x2e,0x84,0xc0,0xba,0xa4,0x41,0xc0,0xe7,0xe,0x43,0x40,0x80,0x34,0x88,0xc0,0xf,0x60,0x6a,0xc0,0x90,0xb4,0x4b,0xc0,0x77,0xe6,0xab,0xbf,0x26,0x32,0x15,0x40,0xb1,0xca,0x5d,0x40,0xc9,0xa3,0x76,0x40,0x96,0x8b,0x14,0x40,0x1,0x4f,0x91,0x3f,0x93,0x6e,0xa8,0xbf,0x78,0x11,0x44,0xc0,0x5e,0xf7,0x22,0xc0,0xc8,0x74,0x1a,0xbe,0xd2,0x85,0x8a,0x40,0xed,0xc9,0xe3,0xbf,0xc2,0xdc,0x3f,0xbf,0x0,0xb1,0xa,0xbe,0xeb,0x1,0x10,0xc0,0x6f,0x2a,0x18,0xc0,0x16,0xcf,0xb5,0x3f,0xbc,0x70,0x64,0xc0,0x30,0xc1,0x9a,0xbe,0xfe,0x6b,0x9a,0xbf,0x48,0xed,0x8d,0x3f,0x0,0x93,0x23,0xbf,0x16,0xae,0x27,0xc0,0xde,0x37,0xc1,0xbf,0xa5,0xa2,0x9e,0xbf,0x9a,0x35,0x8,0x40,0xa0,0x18,0x92,0x3f,0xab,0x97,0xc6,0xbf,0x72,0xcc,0x7a,0x40,0x8c,0x44,0xe3,0x3e,0xa7,0xb3,0x2e,0x40,0x77,0x5d,0xf3,0xbf,0xcc,0xab,0x87,0xc0,0xe1,0x4d,0x9a,0xc0,0xee,0x5e,0xd5,0xbf,0x4b,0x44,0x45,0x40,0xcb,0x38,0x49,0x40,0xce,0x9,0xc3,0x3f,0x2a,0x2,0xb5,0x3f,0x2,0xfc,0x56,0xc0,0x66,0xc3,0xbc,0xbf,0xda,0x43,0x1b,0x3f,0x3a,0xa1,0x8b,0xc0,0xc7,0x8d,0x91,0xc0,0x32,0xc4,0x72,0xc0,0xfc,0x73,0xc6,0x3f,0x6a,0x61,0x22,0xbf,0xae,0xfb,0x61,0xbf,0xa9,0x16,0x47,0x40,0x61,0x9,0x56,0xc0,0xc,0xea,0x45,0xc0,0x49,0x65,0x92,0xbf,0x5d,0x28,0x45,0x40,0xb2,0x84,0x4d,0x3f,0x96,0xfc,0x89,0xc0,0x27,0x73,0x62,0x40,0x69,0xd7,0x39,0xc0,0xc,0xb1,0x79,0x40,0x42,0x41,0xea,0x3f,0xd5,0xcd,0xa7,0x3f,0xba,0x84,0x84,0x40,0x55,0x5f,0xeb,0x3f,0xc6,0xcc,0x9d,0xc0,0xff,0x5b,0xfe,0x3f,0x42,0x33,0x9b,0x40,0x6f,0xd4,0x4,0xc0,0xd6,0x55,0x6a,0x40,0xa8,0x82,0x81,0x40,0x10,0xd1,0x96,0xbf,0x0,0xb0,0xe5,0x3b,0x66,0xda,0x25,0xbf,0xe4,0x84,0x8d,0x40,0x1e,0xd,0x6,0x40,0x90,0xad,0x62,0x40,0xc8,0x2a,0x8f,0xc0,0x42,0xcd,0x1,0xc0,0x86,0xbc,0x71,0xc0,0x6b,0xd,0x8c,0x3f,0xb7,0xd5,0xf9,0xbf,0xbe,0x82,0xb9,0x3f,0xee,0xa1,0x26,0x40,0x6b,0x18,0xa9,0xbf,0xf6,0xae,0x16,0x3f,0x78,0xdf,0x6b,0xc0,0x58,0x9b,0x13,0xbf,0xdc,0x3,0x4f,0x3f,0x3,0x54,0x64,0x40,0x9a,0x4d,0x1,0x40,0x75,0x2b,0xaa,0x3f,0x88,0x1c,0x26,0x40,0xc6,0x50,0x7a,0x40,0x6c,0x70,0xf0,0x3e,0x75,0x1e,0x9a,0x40,0x60,0x13,0x43,0xc0,0x4b,0xc2,0xd8,0x3f,0x80,0x32,0x84,0x3c,0x68,0xde,0x6c,0x40,0xbf,0xad,0x98,0xc0,0x30,0x4f,0x1b,0x40,0x18,0x9d,0x89,0xc0,0x56,0x58,0xbf,0xbf,0x8a,0x6a,0xce,0xbf,0x7f,0x36,0xd6,0xbf,0xc3,0x73,0x1b,0xc0,0x66,0x72,0x82,0xc0,0x6a,0x10,0x8c,0xc0,0x31,0x8d,0x82,0xbf,0xb9,0xab,0x82,0x40,0xf2,0xa7,0xab,0xbf,0xde,0x34,0x58,0xc0,0x91,0xb7,0xb6,0xbf,0x76,0xed,0x83,0xc0,0x50,0xde,0x8a,0xbe,0xf8,0x73,0x83,0x40,0xfb,0x3a,0x9c,0xc0,0xfc,0x9f,0x2c,0x40,0xbd,0x3b,0x6d,0x40,0x1c,0xbd,0x66,0x40,0x3d,0xd2,0x3d,0xc0,0xd6,0xb6,0x15,0x3f,0x7e,0x5e,0x34,0x40,0xc0,0x1c,0x89,0xc0,0xa9,0xce,0x75,0x40,0x2c,0xe0,0xbb,0xbe,0x5d,0xd4,0x8c,0xc0,0x5c,0x2c,0xa4,0xbf,0x0,0x3,0x13,0x3e,0x74,0x6f,0x2,0xc0,0x31,0xed,0x1,0xc0,0x28,0x9f,0x3,0xbf,0x6,0x1d,0xdc,0x3f,0x58,0x11,0x11,0x40,0xe2,0x6b,0x9c,0xc0,0xa0,0x3d,0xa4,0xbe,0x18,0x4e,0x9e,0x3f,0x58,0x1d,0x81,0x40,0x85,0x57,0x20,0x40,0xec,0xbb,0x59,0x40,0x84,0xd6,0xbd,0x3f,0x4c,0xe,0xfa,0xbe,0xbc,0xda,0x30,0xc0,0x6a,0xef,0x4,0xc0,0xd1,0xf0,0xce,0x3f,0x56,0xf6,0x85,0xbf,0x66,0x4d,0x93,0x40,0xf4,0xa6,0x48,0xc0,0xbc,0x96,0x59,0x40,0xa9,0xed,0x4c,0x40,0x70,0x59,0x53,0x40,0xf9,0xe7,0x7a,0x40,0x30,0xfb,0x38,0xc0,0x1e,0xf1,0x38,0x40,0xfb,0x6a,0x9e,0xc0,0x99,0xba,0x2b,0xc0,0x36,0x2b,0x4b,0xbf,0x7d,0xc4,0x86,0x40,0xcc,0xee,0x80,0xbf,0x8c,0x47,0x80,0xc0,0xb0,0xc7,0x8e,0xc0,0x20,0xa7,0xbf,0x3d,0x48,0x1b,0xbf,0x3e,0xaf,0xaf,0x9b,0x3f,0x16,0x3b,0xb3,0xbf,0x22,0x7b,0xd5,0x3f,0xf8,0x2b,0x6,0x3f,0x97,0x15,0xa8,0xbf,0xaf,0xe3,0x23,0x40,0x52,0xeb,0x66,0xc0,0xa2,0xad,0x25,0xc0,0xd2,0x39,0x9e,0x3f,0x36,0xd6,0xb6,0xbf,0x10,0x98,0xf7,0xbd,0xd,0x49,0xe5,0xbf,0xfc,0x74,0x36,0x40,0xdf,0xb0,0x96,0x40,0x1c,0x7,0x89,0x40,0xb5,0x8,0xa6,0x3f,0x4,0xd3,0x4a,0xc0,0xf2,0xbe,0xdf,0xbf,0xfc,0xa8,0x11,0xc0,0xee,0xf6,0x76,0xbf,0x96,0x7e,0x1f,0xc0,0x35,0xb6,0x3e,0x40,0x1b,0xc9,0x97,0xc0,0xa0,0x7a,0x5f,0x3e,0x81,0x37,0x67,0x40,0x9c,0xce,0x7d,0xc0,0xba,0x41,0x60,0xbf,0x45,0x6f,0x2f,0x40,0x37,0x98,0xdf,0xbf,0xb,0x85,0x17,0xc0,0xf2,0x6e,0x2a,0x40,0x54,0x8e,0x5d,0xc0,0x49,0xa8,0x9f,0x40,0x64,0x85,0x8f,0x40,0xe0,0x34,0x65,0x3e,0x94,0x88,0x4e,0x3f,0x7d,0xfd,0x22,0xc0,0xb5,0x1e,0x95,0x3f,0x60,0xc3,0x71,0xc0,0xe,0xc8,0xa6,0xbf,0xfe,0xd3,0x7f,0x40,0x42,0xc1,0xba,0x3f,0xf3,0xdd,0x67,0x40,0x22,0x2b,0x53,0x40,0x4c,0xd4,0x98,0x40,0x9,0xfa,0xa1,0x3f,0x19,0x88,0x6a,0xc0,0xee,0xd2,0x90,0xc0,0x8b,0x7b,0x46,0x40,0xb4,0xf5,0x81,0x40,0x82,0x88,0x9d,0x40,0x37,0x6c,0x59,0xc0,0x2d,0x2d,0x92,0x40,0x17,0xe,0xe4,0xbf,0x34,0x6,0xa7,0x3f,0xac,0xb8,0x5d,0x40,0xdc,0xef,0x76,0xc0,0xd3,0x91,0x99,0xc0,0xe,0xcc,0x54,0x40,0x4c,0xc4,0x94,0xc0,0x7b,0x11,0x1b,0x40,0x92,0x25,0x39,0x40,0x92,0x19,0x6a,0x40,0xf0,0xd,0xf7,0x3d,0xf6,0x7e,0xa3,0xbf,0x58,0xec,0x26,0x3f,0xc0,0x3d,0x31,0xbf,0x4,0xca,0x96,0xc0,0xda,0xfc,0x96,0x3f,0x80,0xcf,0x3b,0xc0,0x76,0xdb,0x6c,0x40,0x52,0x3d,0x16,0xc0,0x9e,0x99,0x79,0xbf,0x16,0x35,0x78,0xc0,0x12,0x61,0x93,0x40,0xc7,0xa6,0x39,0x40,0xcb,0x17,0x8c,0x40,0xa9,0xbe,0x3a,0x40,0xd1,0x40,0x45,0xc0,0x1a,0x45,0x97,0x40,0x16,0x1f,0x2c,0xbf,0x78,0x36,0x93,0x40,0x46,0x42,0x33,0x3f,0x94,0xa2,0x4a,0x40,0x93,0x4,0xfe,0xbf,0x2b,0x6a,0xfb,0x3f,0xc0,0x70,0xf6,0xbc,0x13,0x65,0x7f,0xc0,0xe7,0xde,0x77,0x40,0xaa,0x33,0x2e,0xc0,0xe,0xb,0x54,0xc0,0xc2,0x56,0x80,0x40,0xbb,0xca,0x92,0xc0,0x35,0x6,0xdd,0x3f,0xd3,0x1d,0x82,0x40,0xc2,0xdf,0x4b,0xbf,0x85,0x5a,0x97,0xc0,0x6e,0xac,0x81,0xc0,0xe0,0x58,0x7d,0xbe,0x6c,0x22,0x4b,0xbf,0xa0,0x37,0x5e,0x40,0x58,0xcc,0x7f,0x40,0x59,0xe5,0x45,0xc0,0xa0,0x1f,0xa9,0xbf,0x9a,0x75,0x7b,0xc0,0x62,0x78,0x8e,0x3f,0xbd,0x7a,0x6a,0x40,0xf7,0xd2,0xda,0xbf,0xc8,0xe2,0x29,0x3e,0x10,0xd8,0xc6,0xbe,0x2c,0xc4,0x8a,0xc0,0x8e,0xf4,0x9b,0x40,0x99,0x18,0x8a,0x3f,0x1,0x18,0x96,0x40,0xf4,0x1b,0x8b,0xc0,0xd4,0x10,0xbb,0xbf,0xd9,0xc3,0xa8,0xbf,0x96,0x9b,0xd2,0x3f,0x5d,0x19,0xa2,0xbf,0xee,0x17,0x38,0xc0,0x28,0x8,0x83,0x40,0xd5,0x38,0x7b,0x40,0xa0,0x1c,0x9f,0x40,0xe2,0x64,0x40,0x40,0x7c,0x81,0x52,0x40,0x33,0x6c,0x53,0xc0,0x54,0x23,0xbf,0x3e,0x85,0xac,0xc8,0xbf,0x0,0xd9,0xe4,0xbe,0x98,0x78,0xd0,0x3e,0xb1,0xa5,0x99,0x3f,0x79,0x28,0x3d,0xc0,0xd8,0x6,0x50,0xbf,0x78,0xbc,0x13,0xc0,0x6e,0xb0,0xa4,0xbf,0x74,0xd,0x4e,0xc0,0xe2,0x28,0x27,0xc0,0xce,0x90,0x5f,0xc0,0xfa,0xab,0x60,0xc0,0x78,0xa2,0xa8,0xbe,0x36,0x7,0x88,0xc0,0xe6,0x8d,0x98,0xc0,0xea,0x7c,0x60,0x40,0xae,0x6c,0x66,0xc0,0xac,0x7,0x60,0x40,0x0,0x3f,0xb1,0x3e,0x16,0x4c,0x3b,0xbf,0x74,0x98,0x77,0x40,0x6e,0xdd,0x79,0xc0,0x2,0x4d,0x19,0x40,0x3c,0x95,0x55,0x40,0xf6,0x40,0x7f,0x40,0xbe,0x66,0x95,0xc0,0xb8,0x9a,0x72,0x3e,0xbc,0x9b,0x22,0xbf,0x5a,0x6e,0x6d,0xc0,0x42,0x8d,0x5a,0x40,0xa6,0x63,0x61,0xbf,0xbc,0x6f,0x58,0x40,0x8c,0x4e,0x2c,0xc0,0x72,0xeb,0xd,0xc0,0xbd,0xa1,0xf0,0x3f,0x74,0x8d,0x23,0x3f,0xb8,0x65,0x37,0x40,0xb3,0x82,0x8,0x40,0x52,0x13,0x80,0x40,0x8b,0xe2,0x6b,0xc0,0xe1,0x9c,0x90,0x3f,0xa2,0xad,0x6d,0x40,0xb9,0x0,0x11,0xc0,0xc,0xf4,0x47,0xc0,0x83,0x6f,0x9d,0x40,0xc2,0xfd,0x85,0xc0,0xc8,0x6a,0x68,0xc0,0xee,0x60,0x87,0xc0,0x28,0x5c,0x9e,0x3f,0xd5,0x39,0x9b,0x3f,0xe9,0x6f,0x8c,0xc0,0xe2,0xf2,0x43,0x40,0xa4,0x7b,0xb7,0x3f,0x1e,0xcc,0xd8,0x3f,0xe3,0x9d,0x9c,0xc0,0x86,0x4d,0x92,0xc0,0x3a,0x81,0x83,0xc0,0x7f,0x4d,0x3,0xc0,0xd4,0x29,0x8e,0xc0,0xc6,0x17,0x22,0x40,0xba,0xbf,0x2d,0xbf,0x7b,0x64,0xfc,0xbf,0x63,0x7,0x8b,0x40,0xa0,0xf2,0x28,0x3f,0x22,0x56,0x25,0x3f,0xc2,0xb1,0x33,0xc0,0x1b,0x69,0xbc,0xbf,0x5f,0x9,0x87,0xc0,0x23,0x1d,0x44,0xc0,0x44,0xf5,0x9e,0x40,0x4d,0xb4,0x50,0xc0,0xeb,0x7d,0x2f,0x40,0x8a,0xeb,0x5b,0x40,0x9a,0xff,0x50,0x40,0xe6,0x0,0x83,0x40,0xfa,0x4a,0x89,0x40,0xcc,0xb6,0x2b,0x40,0xb4,0x30,0x89,0xbe,0x48,0x18,0xa4,0xbf,0x1d,0xc6,0x98,0xc0,0xe6,0x5f,0x28,0x40,0xf2,0xd,0x91,0xbf,0x6,0x9f,0x48,0x3f,0x69,0x88,0x90,0xbf,0x84,0xac,0x4e,0x40,0x8,0xaf,0x22,0x3e,0xda,0x3d,0x65,0x40,0x76,0x33,0x6f,0x40,0x29,0x1,0xc6,0x3f,0xb8,0x6c,0xd0,0xbe,0x77,0x2b,0x14,0x40,0xbc,0xa4,0x3c,0xc0,0x50,0xa,0x61,0x40,0x76,0xe3,0x77,0x40,0x10,0xc6,0x26,0x3f,0x68,0x8f,0x0,0xbf,0x27,0x67,0x9e,0x3f,0x7b,0xd8,0x8c,0x40,0x21,0x1,0x97,0x3f,0x7a,0xb,0x22,0xc0,0x4e,0xfb,0x88,0xbf,0x26,0x40,0x9d,0xc0,0x48,0x10,0x9,0xbe,0x29,0xdf,0x91,0xc0,0xdf,0x3f,0x90,0x3f,0x16,0xb9,0x23,0x3f,0xab,0xfc,0x94,0x40,0x88,0x17,0xbf,0xbf,0x2c,0x48,0x86,0xbe,0x80,0x1,0x92,0xbc,0x7c,0x1f,0xeb,0xbf,0xe1,0x44,0xe3,0xbf,0x5d,0x37,0x4,0xc0,0x86,0x10,0x7,0xc0,0x36,0xeb,0x12,0x3f,0xde,0x66,0xf6,0x3f,0xf2,0x35,0x7f,0x3f,0xc8,0xcf,0x7f,0x40,0x18,0x87,0x21,0xbf,0x39,0xa2,0xba,0x3f,0xe5,0x72,0x84,0xc0,0xb0,0xb5,0x48,0x40,0xd3,0x7f,0x84,0x40,0x90,0x1,0xf5,0x3f,0x6f,0xfe,0x4d,0xc0,0x38,0x77,0x3e,0xbe,0x1a,0x81,0x85,0xc0,0xa3,0x79,0x91,0xc0,0xa,0xe2,0x71,0x40,0x92,0xcb,0x14,0x40,0xa1,0xe4,0x71,0x40,0x9a,0x71,0x4e,0x40,0xdc,0x43,0x4b,0xbf,0xfd,0x22,0x14,0x40,0x12,0xd,0x18,0xc0,0xec,0x3b,0x82,0xc0,0xae,0xb0,0x48,0xbf,0x10,0x3,0x3d,0xc0,0x17,0x26,0x95,0x40,0x46,0x1d,0x82,0xc0,0x1b,0x58,0x95,0x40,0xfc,0x70,0x58,0xbf,0xcc,0xb9,0x67,0x3f,0xce,0x52,0x8b,0x40,0x34,0x11,0x14,0xc0,0xbe,0x21,0xed,0xbf,0x8a,0x64,0x4,0x40,0x42,0x25,0xa2,0xbf,0x2,0x15,0x22,0x3f,0xb6,0x9f,0x49,0x40,0xf0,0x72,0x76,0x3e,0xd8,0xd2,0x59,0x40,0xe2,0x31,0xc,0xc0,0x4c,0x1a,0x2,0x40,0x6c,0xcd,0xf7,0x3e,0x74,0x21,0x76,0xc0,0xe8,0xd8,0xe,0xbf,0x1a,0x18,0xfa,0x3f,0xa5,0xfe,0x44,0xc0,0x8f,0xcb,0x87,0x40,0x5a,0x92,0x33,0xc0,0x38,0x6c,0x2e,0x40,0x38,0xaa,0x10,0x3f,0xda,0xe5,0x39,0xc0,0x6e,0x43,0x71,0x40,0x95,0xc9,0x91,0xbf,0xa2,0xb4,0x46,0xbf,0x19,0xf2,0xb7,0xbf,0x42,0xa8,0x9e,0xc0,0x26,0xd,0x3d,0x40,0x12,0xfa,0x10,0xc0,0x5c,0xcd,0x3f,0x40,0x7e,0x31,0x18,0x40,0x2d,0x6b,0x2d,0x40,0xe0,0x67,0xe4,0x3f,0x2c,0x5,0xce,0x3f,0xa4,0xe9,0x86,0xc0,0xf8,0xb8,0x8f,0xbe,0x0,0x6e,0x4,0xc0,0xb1,0xfc,0x71,0x40,0x56,0x89,0xf7,0x3f,0x40,0x15,0xff,0x3d,0x6a,0xe7,0x90,0xc0,0xae,0x10,0x93,0xc0,0xba,0xe6,0x85,0xc0,0xb0,0xdd,0x5f,0x40,0x40,0x3d,0x48,0x40,0x26,0xc1,0x8d,0xc0,0xbb,0xba,0x89,0xc0,0xc,0x38,0x85,0x40,0xb4,0xd,0x1,0x40,0x8c,0xa6,0x49,0xc0,0xb8,0xef,0x13,0xbf,0x7d,0x49,0x45,0x40,0xbe,0x13,0x29,0x40,0xa8,0xce,0x49,0xbe,0xfe,0x19,0x5,0xc0,0xba,0x4f,0xd7,0xbf,0x6d,0x28,0xbf,0xbf,0x14,0x9b,0x46,0xc0,0x22,0x5a,0x53,0xc0,0x18,0x8c,0x62,0x40,0x3a,0x69,0x54,0x3f,0xf,0xa,0xd2,0x3f,0x38,0x8c,0x68,0xc0,0x4a,0x4f,0x6d,0x3f,0xfc,0x88,0x8e,0x40,0xae,0x44,0x2f,0x40,0x38,0xf6,0x5f,0xbe,0x53,0x50,0x13,0xc0,0xfb,0x15,0x9a,0x40,0x66,0xa2,0x8,0xc0,0xd0,0x83,0xb5,0xbf,0x78,0xa,0x75,0x3e,0x50,0x81,0xb5,0xbf,0x38,0xcb,0x49,0xbe,0x54,0xa1,0x96,0xbf,0x62,0xd2,0x3d,0xc0,0x0,0x7d,0x48,0x3d,0xf6,0xd2,0x3,0x40,0xb,0x34,0x9c,0xc0,0x12,0x8b,0xdf,0x3f,0xfc,0x99,0x39,0x3f,0xea,0xbc,0x4d,0xc0,0x9a,0x32,0x6a,0x40,0x8e,0xe,0x51,0x40,0xc4,0xfb,0xcb,0x3f,0x31,0x83,0xff,0xbf,0x3,0x50,0x98,0x3f,0x8,0xf3,0x13,0x40,0xd2,0xba,0x3d,0xbf,0x54,0xac,0x9,0xc0,0xc0,0xd5,0xc3,0x3d,0x88,0xdf,0x86,0xc0,0x7c,0x40,0x61,0x40,0x34,0x6b,0xfb,0x3e,0xa5,0x5a,0xc,0xc0,0x5c,0xd7,0xf3,0x3e,0x4c,0xdb,0x27,0xc0,0x18,0x31,0x45,0xbf,0x3a,0xeb,0x4c,0xc0,0xd6,0x90,0xac,0x3f,0xc0,0x21,0x1b,0x40,0x30,0xd7,0xc5,0xbf,0xe7,0x34,0x2c,0x40,0x92,0xf5,0x62,0x40,0x28,0xf,0x90,0xc0,0x94,0xee,0x4e,0xc0,0x8c,0xed,0xe9,0x3e,0x36,0xe5,0x2a,0xc0,0x1c,0x2,0x54,0x40,0xd3,0xfb,0x8b,0x40,0x21,0xcb,0x33,0xc0,0x5e,0xe1,0x1c,0x3f,0xd4,0x27,0xa4,0x3e,0x5,0x4d,0x86,0x40,0x6d,0x1d,0x80,0xc0,0xe,0x79,0xdc,0x3f,0x97,0xb6,0x63,0xc0,0x51,0x7a,0x88,0xc0,0x9a,0x18,0x8e,0x40,0xb0,0xae,0x3b,0x40,0x68,0x11,0x9e,0xc0,0x66,0x55,0x3f,0x40,0xa5,0xba,0x65,0xc0,0x2b,0x6a,0x87,0x40,0xc4,0xfc,0x4f,0x3f,0xfc,0x7c,0xcc,0xbf,0x5c,0x8c,0xee,0x3e,0x18,0xab,0x66,0xbf,0x80,0x28,0x45,0xbc,0xb,0xbe,0x5b,0xc0,0xe,0xe5,0x1d,0x40,0xf4,0x7d,0x5d,0xc0,0x14,0xe6,0xaf,0x3e,0x19,0xea,0x67,0xc0,0xc8,0x72,0x2d,0xc0,0x26,0xdd,0x12,0x3f,0x30,0x7,0xe6,0x3e,0x5e,0x2f,0x91,0xc0,0xf1,0xd8,0xad,0x3f,0x7b,0x89,0xcd,0x3f,0x5a,0xec,0x13,0xc0,0x74,0xc1,0x12,0x3f,0xfb,0x5a,0x29,0xc0,0x4e,0x3d,0x8a,0xc0,0x10,0xbd,0x57,0xbf,0x9c,0x71,0x53,0x40,0x90,0x2c,0x3b,0x3e,0x2,0x86,0x62,0xc0,0x30,0x6,0x79,0x40,0xce,0x34,0x4a,0xbf,0x84,0xf9,0x8c,0xc0,0x67,0x42,0xd3,0x3f,0x94,0xc,0x83,0xc0,0x12,0x93,0x4f,0x40,0x42,0xec,0x80,0x3f,0xfc,0xf7,0xba,0x3f,0xc0,0xa1,0x8c,0xc0,0x26,0xd,0xa9,0x3f,0xd4,0x12,0xeb,0xbe,0xb8,0xa3,0x8a,0xbf,0xf9,0x7d,0xb5,0x3f,0xed,0xa,0x90,0xc0,0xe8,0xc0,0x64,0xc0,0xd6,0xc8,0x91,0xc0,0xef,0x79,0xe1,0xbf,0x77,0x5f,0xd,0x40,0xd1,0x4c,0x2f,0x40,0x67,0x62,0xa4,0x3f,0x9f,0x81,0xfc,0xbf,0xf0,0x73,0x48,0x3e,0xf,0x90,0xfb,0x3f,0x22,0x10,0xf,0xc0,0xdd,0x44,0x98,0xc0,0xc3,0x5b,0x81,0xbf,0x31,0xca,0xfe,0xbf,0x91,0x66,0x50,0x40,0xa1,0x8c,0xd6,0x3f,0xc8,0x43,0x37,0x3f,0x4e,0x3,0x8,0x40,0x15,0x76,0x8d,0xc0,0xb2,0xfa,0x27,0xc0,0xa3,0xda,0x82,0xc0,0x71,0x7b,0x9a,0xbf,0xa6,0xdd,0x61,0xc0,0xd8,0xb8,0x5c,0xbe,0x98,0xa4,0x12,0xc0,0xad,0x50,0xc5,0x3f,0xfa,0xbb,0x87,0xc0,0x1a,0xb8,0x27,0xc0,0x40,0x6e,0x5d,0x40,0x86,0x2e,0x64,0x40,0x86,0x1c,0xa,0x3f,0x3f,0x41,0x13,0xc0,0x34,0x52,0x8c,0xc0,0x9c,0x42,0x5f,0x40,0xb0,0x46,0xc7,0x3d,0x9e,0xeb,0x59,0xbf,0x7c,0x78,0x8,0xbf,0xc6,0xab,0x9c,0xbf,0x5,0x8,0x2c,0x40,0xa,0x44,0x4d,0xc0,0x8c,0xc2,0xa1,0xbe,0x95,0x44,0x50,0x40,0x60,0x80,0x8d,0xbf,0x7e,0x40,0x2a,0x40,0xa9,0x5f,0xa1,0x3f,0x2e,0x24,0x88,0xc0,0x58,0x9b,0x13,0x3f,0xbc,0x7d,0xd4,0xbe,0xec,0x85,0x4e,0xc0,0x2e,0xa5,0x15,0xc0,0xf7,0xa1,0x85,0x40,0x30,0x3b,0x3c,0x40,0x47,0x55,0x96,0x40,0xc3,0x4b,0x96,0x40,0x2f,0x74,0x98,0x3f,0x0,0x43,0xcb,0xbf,0x44,0xed,0x18,0x40,0xad,0x8a,0x29,0xc0,0x60,0x74,0x7b,0x40,0x7c,0x32,0x8f,0x40,0xe4,0x82,0x83,0x40,0x13,0xd,0x55,0x40,0xbb,0x75,0xf6,0xbf,0x2,0x62,0x0,0xc0,0x44,0xd4,0xe6,0xbf,0x35,0x63,0x8f,0xc0,0x5c,0xe6,0x96,0x40,0x32,0xc9,0x27,0xc0,0x0,0xca,0x5f,0xbd,0x12,0xdc,0xb1,0xbf,0x21,0xc5,0xa5,0x3f,0x6c,0xc1,0x85,0xc0,0x90,0x1b,0x29,0x3e,0x8a,0xbc,0x85,0x40,0xe8,0xaa,0xdf,0xbf,0xf4,0xe9,0x73,0x3f,0x16,0x43,0x6,0x40,0xd4,0x95,0x80,0x40,0x4b,0xc1,0x99,0xc0,0x30,0x9d,0xc,0xc0,0x26,0x4e,0x6a,0xc0,0x8a,0x27,0x67,0xc0,0xe0,0x70,0x3a,0xc0,0x65,0x88,0xd0,0x3f,0xd8,0x64,0x77,0x40,0x34,0xf6,0xa7,0x3e,0x64,0x68,0xd8,0x3e,0x54,0xf7,0x6,0xbf,0x2a,0x87,0x9a,0xc0,0x79,0xd4,0x9e,0x40,0xd9,0xaa,0xfd,0x3f,0x9d,0xfc,0x88,0xc0,0xad,0xb3,0x94,0x3f,0xfc,0x14,0x5c,0x40,0x7b,0xd9,0x43,0x40,0x46,0x5b,0x8f,0x40,0xc,0x2c,0x8c,0x40,0x88,0x37,0x82,0x40,0x2a,0x6e,0x85,0xbf,0x5b,0x3d,0xad,0x3f,0x1d,0xd,0xdf,0x3f,0xcf,0x6,0x88,0xc0,0xda,0xbe,0xd4,0x3f,0x85,0xd0,0x42,0xc0,0xe5,0x37,0x9b,0x40,0x68,0x8d,0x5a,0x40,0x66,0x92,0x8f,0x40,0x85,0xd5,0x87,0x40,0xd0,0x28,0x91,0x40,0x3e,0x7,0x9d,0xc0,0x5c,0x5b,0x87,0xc0,0xb7,0x43,0x88,0xc0,0x6a,0xa8,0x7e,0x40,0x34,0x89,0x28,0xc0,0x4c,0x79,0x58,0x40,0x4e,0x36,0xfd,0x3f,0x6a,0x60,0x9d,0x40,0x7c,0xc7,0x1d,0xc0,0xb6,0xc6,0x6b,0x3f,0x49,0xd2,0x83,0xc0,0xcc,0xcc,0x81,0xc0,0xe8,0xc7,0x95,0xc0,0x72,0x0,0x3c,0x40,0x73,0xd5,0xb1,0xbf,0x8,0xb9,0xca,0x3e,0x5c,0x46,0x80,0x40,0x8b,0xc0,0x29,0x40,0xb8,0xb1,0xc7,0x3f,0x7e,0xc,0x2e,0xc0,0x6e,0xf7,0x3c,0x40,0x68,0xf3,0x96,0x40,0xde,0xb9,0x93,0xc0,0x6b,0xe7,0x89,0xbf,0xf6,0x8a,0x74,0xc0,0x24,0x45,0xa0,0xbf,0x25,0xfb,0x89,0x3f,0xfa,0xa5,0x96,0xc0,0xb4,0xdd,0x5e,0xc0,0x66,0x0,0xf3,0x3f,0x48,0x2f,0x81,0x40,0x7d,0xab,0xfe,0xbf,0xa6,0xd3,0x2d,0x40,0x8e,0x2a,0x7b,0xc0,0x7b,0xaa,0xfc,0xbf,0xa,0x2f,0x70,0x40,0x3a,0x99,0x24,0xbf,0x5a,0x8d,0x6,0x40,0xc,0x59,0x40,0xc0,0x8,0x77,0xd0,0x3f,0x33,0x99,0x8d,0xbf,0x30,0x4b,0xde,0xbd,0xe4,0x3d,0xec,0x3f,0x36,0xf4,0xa2,0x3f,0xf9,0xa,0x5d,0x40,0x74,0xc7,0x96,0xbe,0x6d,0x91,0xc4,0xbf,0x18,0x3c,0x6e,0x40,0x80,0xe9,0x8b,0xbd,0xb3,0xa1,0x86,0xc0,0x6c,0xa2,0x55,0xc0,0x47,0x7a,0x45,0x40,0x4a,0x7e,0x19,0x40,0x89,0x1b,0x17,0xc0,0xa6,0x30,0x65,0x40,0x1e,0x5c,0x1b,0x40,0x29,0x36,0xc,0x40,0x94,0x3a,0x86,0x3e,0x38,0x5,0x18,0x40,0xc2,0xc4,0x91,0xbf,0xae,0x35,0x89,0xc0,0x6a,0x86,0xa5,0xbf,0x1c,0x49,0x81,0x3f,0x1a,0xb,0x21,0xc0,0x40,0xd7,0x0,0x40,0x4c,0x88,0x92,0x40,0x2f,0xfd,0xff,0x3f,0xb6,0x57,0x50,0x40,0x90,0x83,0xf5,0xbe,0xc8,0x85,0x59,0xbe,0x19,0xad,0xb6,0xbf,0x86,0x96,0x8b,0x40,0x62,0x8f,0x6f,0xc0,0x9b,0x4c,0xb,0x40,0x63,0x94,0x0,0x40,0x5a,0x5a,0x93,0x40,0xa,0x9c,0x1a,0xbf,0x4b,0xd4,0xa,0xc0,0x7f,0x49,0x9b,0x40,0x7a,0x1e,0x62,0xc0,0x0,0x86,0x67,0x3d,0x8e,0x50,0x44,0xc0,0x3c,0x45,0x65,0x40,0x6c,0x18,0x55,0x40,0x2c,0x53,0x2a,0xc0,0xe4,0xe2,0xb5,0xbe,0x40,0x9e,0x46,0xbd,0x74,0x43,0x95,0xc0,0x3d,0x2a,0x93,0x40,0xc4,0x35,0x5,0x40,0x0,0x70,0x23,0xba,0x5,0x3b,0x87,0x40,0x65,0xe0,0x20,0x40,0xa1,0x8d,0xf,0x40,0xa5,0xc2,0x3,0x40,0xc0,0x56,0xde,0xbf,0x5d,0xdc,0x80,0xc0,0x22,0x63,0xed,0x3f,0x70,0xe8,0xc4,0xbe,0xda,0x20,0x22,0x40,0x14,0xe8,0x66,0xc0,0xf4,0x28,0xf1,0x3e,0xe6,0xe,0x6f,0x40,0xf0,0xe1,0x5c,0x3f,0x2a,0x2b,0x61,0xc0,0xf,0x82,0xbe,0x3f,0x6a,0x5b,0x9e,0x40,0xdf,0x8c,0xc0,0xbf,0x38,0xc5,0x54,0xbf,0x28,0xc4,0x3b,0x40,0x76,0xc2,0x4e,0x40,0xe6,0xde,0xe9,0x3f,0xc4,0xb5,0x7d,0x3f,0x1b,0x1e,0x6e,0x40,0x78,0xc3,0x95,0x40,0x68,0x81,0x8e,0xc0,0x18,0xc5,0x4c,0x40,0xb0,0xdc,0x71,0x40,0x54,0x1a,0x32,0x40,0xac,0x78,0xfd,0x3f,0x44,0x30,0xdb,0x3f,0xd1,0xa4,0x72,0x40,0x3c,0x7c,0x21,0x3f,0x64,0x74,0x90,0x40,0x8c,0x97,0x42,0xbf,0x9e,0x4,0x2b,0x40,0x9d,0xb0,0x7c,0x40,0x18,0xe7,0x75,0x3e,0xda,0x3f,0x72,0x40,0xf2,0x7d,0x4b,0x40,0x71,0x59,0xee,0x3f,0x36,0xad,0xee,0xbf,0xf2,0xb6,0x6f,0xc0,0xdb,0x6c,0xfd,0x3f,0x41,0xbb,0x3c,0x40,0x66,0x7f,0x8f,0xc0,0x20,0x22,0xb3,0xbd,0x0,0x48,0x9e,0x3a,0xff,0xb3,0x88,0xbf,0xf8,0xb9,0x3b,0x40,0x6a,0x3d,0x89,0x40,0x5e,0xbc,0xdf,0xbf,0x7d,0xc9,0x1,0x40,0x6b,0xe7,0x6d,0x40,0x8,0xd8,0xc9,0xbe,0x4c,0x14,0x2c,0x40,0xc6,0x5c,0x9b,0x40,0x3c,0x68,0xba,0xbe,0x42,0x36,0x95,0xc0,0x48,0x65,0x8d,0xc0,0xfc,0xd9,0x83,0x40,0xc8,0x51,0x4f,0xc0,0x19,0x68,0x93,0x40,0xe6,0x77,0x76,0x3f,0x56,0x6f,0x78,0xc0,0x1a,0xf4,0x9b,0x40,0xa8,0x7b,0x74,0x40,0xb2,0x35,0xb8,0xbf,0xf6,0x9,0x6b,0xbf,0x40,0x8c,0x32,0xc0,0x50,0xfb,0x27,0xc0,0x90,0x7f,0xa4,0x3f,0x8,0x29,0x92,0xbe,0x28,0xbf,0x56,0xc0,0x1e,0xb6,0x8a,0xbf,0x14,0x39,0xf8,0x3f,0x3f,0x24,0xa1,0x3f,0x82,0xef,0x88,0x3f,0xb2,0x84,0x4d,0xc0,0x44,0x3f,0x12,0xc0,0x19,0x67,0xb1,0x3f,0xa2,0x25,0x53,0x40,0x7c,0xde,0x65,0x3f,0x34,0x1f,0x74,0xc0,0x16,0x49,0xe6,0x3f,0xc4,0x9f,0x48,0xc0,0x42,0x42,0x95,0xc0,0x70,0x26,0x63,0x40,0x6a,0xc1,0x3c,0x40,0xe,0x35,0x55,0xbf,0xec,0x66,0x47,0x40,0x6d,0x6e,0xf1,0xbf,0x36,0x86,0xca,0x3f,0x90,0x30,0x9c,0xc0,0x2,0x1c,0x19,0xc0,0x7e,0xe9,0x7b,0xbf,0x64,0x25,0x85,0x3f,0x38,0x25,0x15,0x40,0x28,0x54,0x4e,0x3f,0xfa,0x71,0x1f,0xc0,0xee,0xd,0x7b,0x40,0x18,0x2f,0x3b,0x40,0xef,0x1a,0x34,0xc0,0x88,0xfd,0x4e,0x3e,0x32,0x2a,0x94,0x40,0x76,0xe2,0xd8,0xbf,0x47,0x52,0x9e,0xc0,0x39,0x3,0x6b,0x40,0x64,0x8d,0x4,0x40,0x60,0xd6,0x27,0x40,0x78,0x17,0x2c,0x3f,0x22,0xb6,0x47,0xbf,0x89,0x18,0x90,0xbf,0xe0,0xa0,0x12,0x40,0xcc,0x6f,0xa5,0xbf,0x75,0xf1,0x13,0xc0,0x10,0xb,0x4b,0xbe,0xf1,0x72,0xbe,0x3f,0x29,0xef,0x9c,0xc0,0x60,0x2b,0x76,0x3e,0x18,0xd7,0x12,0x40,0x37,0x87,0x3e,0xc0,0xbe,0x93,0x53,0x40,0xce,0x1,0x8f,0x3f,0xe2,0xf8,0x30,0x40,0xc2,0xfe,0x2,0x40,0x50,0x18,0xab,0x3d,0x6a,0xf4,0x18,0x40,0x4d,0xe7,0x83,0xc0,0xf5,0x13,0x67,0x40,0xf6,0x86,0x3e,0xbf,0xc0,0x47,0x31,0x3d,0xb8,0xb6,0x6,0xc0,0x22,0x47,0x5c,0xc0,0x60,0x39,0x40,0xc0,0x42,0x35,0x1c,0x40,0xd2,0xb,0xa9,0xbf,0x88,0xef,0x8c,0x40,0xf0,0x50,0x82,0xbf,0x1e,0x6c,0x9e,0xc0,0xdc,0x6a,0x2c,0xc0,0x58,0xa7,0x82,0xbe,0x84,0xbe,0x28,0xc0,0xcb,0xc9,0x26,0xc0,0x45,0x26,0x14,0x40,0xcb,0xd7,0x9,0x40,0xc0,0x7e,0x93,0x3c,0x35,0xed,0x75,0xc0,0xea,0x87,0x82,0xc0,0x28,0xce,0x74,0xbe,0x86,0xa7,0x96,0xc0,0x30,0xe5,0x99,0x3f,0x0,0xe4,0x7c,0xbc,0x3c,0xf3,0x59,0x3f,0xfc,0x5b,0xd4,0xbe,0xea,0x83,0x45,0x40,0xa4,0x88,0x2d,0xc0,0xba,0x31,0x8a,0xc0,0xa1,0xee,0xbf,0xbf,0x25,0x4b,0x5,0x40,0x9a,0xee,0x85,0xc0,0xe6,0x7f,0x37,0x3f,0x2a,0x5d,0x77,0x40,0x70,0x11,0x49,0x40,0x16,0x86,0x10,0x40,0x5b,0x15,0xda,0xbf,0x97,0xf7,0x93,0x3f,0x8,0xfc,0x1b,0xbe,0xad,0x27,0x69,0x40,0x29,0x42,0x28,0x40,0xe5,0x6f,0xaf,0x3f,0xe8,0xd6,0x90,0x3f,0xcd,0x5f,0xd2,0x3f,0xfc,0x7e,0x9d,0x3f,0xbe,0xbc,0x40,0xbf,0xbe,0x6,0x59,0xc0,0x51,0x23,0xc7,0x3f,0x3a,0x35,0x1f,0x3f,0x13,0xdb,0x59,0x40,0xf8,0xf5,0x38,0x40,0xa1,0x22,0x82,0xc0,0x80,0xa5,0x22,0xbf,0x75,0xd0,0x82,0xc0,0x89,0xaf,0x86,0x40,0x84,0x29,0x9,0x3f,0x94,0x18,0x5c,0xc0,0xd1,0x7e,0x8b,0x40,0xc,0xa1,0x59,0x40,0xaa,0xe7,0x8b,0xbf,0xfa,0xb1,0x21,0x40,0x80,0x9f,0x94,0xbd,0x48,0x52,0xba,0xbe,0x7e,0x8b,0x7,0x40,0xd8,0xa,0xdb,0xbe,0x62,0x2d,0x2,0xc0,0xa2,0xf9,0xbd,0x3f,0x94,0xff,0xd4,0xbf,0x68,0xeb,0x3a,0x40,0xb9,0xbd,0x8e,0x40,0x6e,0xf8,0x1d,0xc0,0x7f,0xf9,0xae,0x3f,0x4e,0x85,0x6a,0x3f,0x20,0xb7,0x1e,0x40,0x30,0x9c,0x3,0x3e,0xc8,0xcc,0x3a,0x3e,0x5b,0xda,0xa1,0x3f,0xc5,0x6b,0x84,0xc0,0xa0,0x23,0x3e,0x3f,0xa0,0xdf,0x9d,0xc0,0x2a,0xea,0x15,0xbf,0xf1,0x36,0x39,0x40,0xed,0xce,0x1d,0xc0,0x24,0x7f,0x2c,0xbf,0x46,0x33,0x83,0x40,0x6f,0xa7,0xe3,0x3f,0x80,0x91,0x1d,0x3d,0xdc,0x59,0xec,0x3e,0xe1,0x15,0x15,0xc0,0xda,0x52,0x39,0x3f,0x61,0x2e,0x80,0x40,0xcb,0xaf,0xe8,0x3f,0xfc,0x64,0x9d,0x40,0xb2,0xb9,0x31,0x40,0x7c,0x5e,0x72,0xbf,0x32,0x8f,0x40,0xbf,0xae,0x91,0x17,0x40,0xe0,0xdd,0x48,0x3e,0xab,0x38,0xb7,0x3f,0xfd,0xef,0x93,0xc0,0x52,0x3d,0x84,0x3f,0x16,0xdb,0x24,0x3f,0xff,0x52,0x94,0xc0,0xce,0x27,0x5c,0x3f,0xd9,0x19,0xee,0x3f,0x70,0x1d,0xfe,0xbd,0x1d,0xcc,0x93,0xc0,0x70,0xa7,0x8b,0x40,0x17,0xb4,0x85,0xc0,0x30,0xb5,0x3d,0x40,0xf0,0x5c,0x50,0x3e,0x84,0xac,0xab,0xbf,0xaa,0x60,0x63,0xc0,0x20,0x7d,0x8c,0x40,0x72,0xf5,0x7b,0x40,0x81,0x36,0x54,0xc0,0x98,0xf2,0x35,0xbf,0x59,0xa9,0x54,0xc0,0x72,0xac,0x26,0xc0,0x66,0x54,0x6,0xbf,0x9,0xe9,0x8f,0x40,0x80,0xf9,0x7d,0xbe,0x8,0xf,0x9d,0x40,0xae,0x59,0x9e,0xc0,0x4,0xf,0x83,0xbf,0x36,0x96,0x35,0x3f,0x8a,0xe3,0x13,0xc0,0xf8,0xe5,0x1e,0x3e,0x40,0x80,0x0,0xbd,0x5a,0xbb,0x5f,0x40,0x96,0x52,0x23,0xbf,0x1a,0x7a,0x4a,0xbf,0xed,0xd8,0x36,0x40,0x7e,0x1a,0xe9,0xbf,0x0,0xab,0x4f,0x40,0xbc,0x11,0x87,0x40,0x2,0xf3,0x3b,0xc0,0x2,0x41,0x1e,0x3f,0xb7,0x79,0xa1,0xbf,0x8b,0x38,0x7a,0x40,0x5a,0xa3,0x22,0xbf,0x78,0x39,0x73,0xbf,0xc6,0xbc,0x4f,0x40,0x94,0xb3,0x46,0x3f,0x3c,0x6,0x54,0x40,0x6c,0x60,0xf1,0xbf,0x47,0xba,0x8b,0xc0,0x2a,0x52,0x53,0x3f,0xc8,0x83,0x85,0x40,0xa0,0x95,0x71,0x40,0x7a,0xa,0xa,0xc0,0x9d,0xbb,0x8d,0x40,0xb6,0xcf,0x46,0xc0,0x81,0xbf,0x95,0x40,0x28,0x17,0x98,0xbe,0xad,0xd1,0x23,0xc0,0xa2,0x21,0x8c,0x3f,0x43,0xb6,0x82,0x40,0x35,0xbe,0x4a,0x40,0xd1,0xfc,0x24,0xc0,0xe1,0x56,0x9f,0x3f,0x2f,0x4b,0xf8,0x3f,0xf7,0xf0,0x99,0xbf,0x50,0xf,0x11,0x3f,0x0,0x14,0x97,0x40,0x35,0xd0,0xa9,0xbf,0x6,0xf5,0x77,0x40,0x52,0x2d,0x88,0xc0,0x64,0x43,0xee,0xbf,0xf1,0x51,0x94,0x3f,0xb9,0xc5,0xfd,0xbf,0x10,0xed,0x6f,0xc0,0x80,0x2e,0x53,0xbf,0xc7,0x77,0x18,0xc0,0x99,0x4e,0x1,0x40,0x44,0xbf,0x19,0x40,0x2d,0xff,0x61,0xc0,0xb0,0xfe,0x2f,0x40,0xca,0xee,0x3e,0x40,0xe8,0xe7,0x4d,0x40,0x5c,0xa9,0x4c,0xc0,0x2a,0xc1,0x7d,0xc0,0x68,0xcf,0x2e,0xbe,0x80,0x41,0xde,0x3f,0xd8,0xa7,0x11,0x40,0x7a,0xfd,0x75,0xc0,0xb6,0x87,0x83,0x40,0x67,0xe5,0x9a,0x40,0xac,0x39,0xc9,0xbe,0xb2,0xd2,0x4a,0x3f,0xca,0x14,0x5f,0x3f,0x59,0x4f,0x6d,0xc0,0xda,0x3d,0x98,0xc0,0xf0,0xff,0x45,0x40,0x46,0xc,0x81,0x40,0x40,0x4,0x4,0xbe,0x55,0x20,0x8b,0xc0,0x48,0x49,0x52,0x3e,0xe0,0x82,0x51,0xc0,0xfb,0x2d,0xdb,0x3f,0x3d,0x3e,0x92,0x40,0x8a,0xd2,0x9f,0x40,0xb4,0xe1,0x83,0x40,0xf7,0xf2,0x92,0x3f,0xfe,0x21,0x9d,0x40,0xae,0x81,0x77,0xbf,0xc8,0xb5,0x29,0xbe,0xaf,0xce,0x5b,0xc0,0xfb,0x1a,0x5,0x40,0x61,0xd,0xfa,0x3f,0x4c,0x9e,0x1,0x40,0xe5,0x65,0x66,0x40,0x13,0x63,0x8a,0x40,0x77,0x2e,0x97,0xc0,0x35,0x5b,0xb5,0xbf,0x40,0xce,0x7f,0xc0,0xab,0x2e,0x73,0x40,0xa8,0x5c,0x20,0xbe,0x66,0x43,0x8e,0xc0,0x69,0xd2,0x7,0x40,0xc1,0x24,0x44,0xc0,0xb0,0xb4,0xbd,0xbd,0x3e,0xad,0x2a,0x40,0x88,0xfc,0x31,0x40,0x88,0xdf,0x46,0x40,0xd0,0x34,0xb9,0xbd,0x74,0x6e,0xf9,0xbe,0xd0,0x7e,0x6c,0xbe,0xeb,0xad,0x9d,0xc0,0x65,0x75,0xe3,0xbf,0x90,0x85,0x73,0x40,0xc8,0xbe,0x23,0x40,0x82,0x62,0x92,0xc0,0xc6,0xa3,0x9f,0x3f,0x92,0xff,0x92,0x40,0xd8,0x73,0x7e,0xc0,0xca,0x41,0x0,0xbf,0xc5,0xfc,0x2b,0xc0,0x10,0x5c,0x93,0xbd,0xc6,0x91,0xb,0xc0,0x8f,0x26,0x8c,0x40,0xc4,0x24,0x26,0x40,0x5e,0x3,0x78,0xbf,0xa3,0x91,0x8a,0xc0,0xc2,0x47,0x2a,0xc0,0xe,0x33,0x7,0xbf,0xc8,0x3f,0xac,0x3f,0x3e,0x56,0x1,0xc0,0xc3,0xff,0x43,0xc0,0x88,0x25,0x1d,0xbf,0xf2,0x98,0x7e,0xc0,0x2f,0x79,0x8e,0x3f,0x90,0xb2,0x8f,0xc0,0x54,0xc2,0x59,0xbf,0x6b,0x3,0x86,0xc0,0x46,0xc8,0xfa,0xbf,0x60,0xa2,0x5e,0x3d,0x3a,0x7,0x1b,0xc0,0x48,0xb8,0x51,0xc0,0xda,0x58,0x10,0x3f,0xbb,0x74,0x22,0xc0,0xbc,0xee,0x8b,0x3e,0x32,0x4f,0x88,0x3f,0xe8,0x7b,0x7,0xbf,0x4d,0xd5,0x8b,0xc0,0x76,0x64,0xb6,0xbf,0x30,0xad,0x1,0xbf,0x1c,0x3a,0xbd,0x3f,0x3c,0x15,0x81,0xc0,0x41,0x80,0x5e,0x40,0x1a,0x8,0x9c,0x3f,0xe8,0x8e,0x12,0x3f,0x90,0x93,0x95,0x3e,0xb2,0x8e,0x52,0xbf,0x92,0x85,0xe7,0x3f,0x80,0xf2,0x5e,0x40,0xbf,0x63,0x82,0xbf,0x23,0xc2,0x8,0x40,0xf1,0x67,0x3a,0x40,0xb0,0x44,0x3,0x40,0x40,0xa2,0xc2,0x3c,0xb7,0x1e,0xde,0x3f,0xac,0x2c,0xf9,0x3e,0xf8,0x5,0x4a,0x40,0x5e,0xe4,0xbc,0xbf,0x50,0x52,0x32,0x3f,0x6a,0x9b,0x51,0x3f,0x99,0x37,0x98,0xc0,0xc8,0x6c,0xa2,0x3f,0x88,0x7b,0x5d,0xc0,0x95,0xd5,0x1e,0x40,0x8e,0xf9,0x7e,0xbf,0xef,0x88,0xaa,0x3f,0xf0,0x21,0x7a,0xc0,0xe4,0x2b,0x10,0x40,0x2e,0x3c,0x4e,0x40,0x32,0x7a,0xe4,0x3f,0xeb,0xbc,0xbb,0x3f,0x4c,0xd9,0x38,0xc0,0x9d,0x72,0x8f,0x40,0x18,0xa9,0xb1,0x3f,0xb0,0xbf,0x96,0xc0,0xc0,0xd6,0xcc,0xbd,0x20,0x94,0x11,0x3e,0x36,0xf8,0xda,0x3f,0xd8,0xa7,0x6d,0x3f,0xea,0xbd,0x7a,0x40,0x2a,0x35,0x7,0xbf,0xfc,0xd0,0x52,0xbf,0xe8,0x30,0x61,0xbe,0x62,0x86,0x41,0x40,0xd0,0x58,0x8c,0xc0,0xe1,0xf6,0x79,0x40,0x83,0xe7,0xf3,0xbf,0xe6,0x6c,0x2e,0x40,0xce,0x4f,0x57,0xc0,0xf,0x64,0xe6,0xbf,0xd8,0x38,0x3c,0x3e,0xb4,0xd9,0x14,0xbf,0x96,0xa4,0x4b,0xc0,0x1c,0x5f,0x90,0xc0,0x5e,0x15,0x85,0xc0,0x2e,0xca,0x96,0x40,0xa,0x2c,0x1f,0x40,0x6c,0x37,0xcf,0xbf,0xab,0xdf,0x44,0x40,0xe8,0x32,0x2d,0xbf,0xfc,0x4a,0x90,0xbe,0xc2,0x5f,0x42,0xc0,0x98,0xc3,0x44,0xc0,0x1a,0x75,0x56,0x40,0x66,0xe7,0x9f,0x40,0x64,0x86,0x9e,0xc0,0x28,0x5b,0x1f,0x3f,0x7a,0x8c,0x8f,0x3f,0x56,0xc0,0x2e,0xc0,0x4c,0xe1,0xd,0xc0,0x20,0x57,0x6e,0xc0,0x21,0x26,0xae,0x3f,0xb8,0x1c,0x99,0x40,0xc3,0x26,0xe3,0x3f,0x56,0x3e,0x4f,0xbf,0x4a,0xe7,0x96,0x3f,0x5a,0x2,0x50,0xc0,0xf4,0xca,0x24,0xc0,0x7,0xc1,0xc8,0x3f,0x62,0x93,0x8a,0x40,0xe0,0xaa,0x17,0xbe,0xe0,0x30,0xbc,0xbf,0x4c,0x31,0xf5,0x3e,0x42,0xa0,0x9f,0xc0,0x3c,0x91,0x41,0x40,0x3d,0x8b,0x43,0xc0,0xba,0x63,0xd7,0xbf,0x18,0x80,0x84,0xc0,0x9c,0x92,0xbc,0x3f,0xe6,0xfc,0xa,0xc0,0xa0,0xae,0xba,0x3e,0x10,0xee,0x42,0xc0,0xe4,0xe,0x25,0x40,0xe2,0x91,0x68,0xc0,0xb3,0xf8,0x84,0xc0,0xe3,0xd4,0x96,0xc0,0x6d,0x42,0x8b,0x40,0x24,0xb3,0x16,0x40,0x6a,0x49,0x60,0xc0,0x1,0xd4,0x9d,0xbf,0x4,0x42,0x75,0x40,0x61,0x2a,0xc4,0x3f,0x4f,0x2a,0x91,0x40,0x94,0x5d,0x3d,0xbf,0x38,0x2f,0xf7,0xbe,0xe2,0x88,0x6e,0x40,0xa8,0x33,0x53,0xbe,0x1e,0x40,0x88,0xc0,0xbd,0x97,0x91,0xbf,0x1f,0x1b,0x6d,0x40,0xb6,0x97,0x4,0x40,0xec,0x2c,0x82,0xbf,0x41,0xb4,0x9c,0xc0,0x92,0x10,0x6b,0x40,0xe,0xf8,0x8a,0xbf,0xa3,0x62,0x86,0xbf,0xc2,0x57,0x91,0x40,0x95,0x61,0x2e,0x40,0x4a,0xea,0xc5,0x3f,0x6b,0x7f,0xd8,0x3f,0x10,0x43,0xc0,0x3d,0x50,0x93,0xc1,0x3e,0x46,0xdb,0x26,0xc0,0x2a,0xe8,0xe2,0x3f,0xe4,0xb,0x1e,0x40,0x55,0x48,0x2d,0x40,0x53,0x5,0x22,0xc0,0x70,0xec,0x93,0x3e,0x9c,0xf7,0xa2,0xbe,0x1c,0x86,0x3a,0xc0,0x87,0xc5,0x8a,0x3f,0x70,0xb3,0x31,0x40,0x24,0x69,0xe0,0x3e,0x38,0xd1,0x11,0xc0,0xfc,0x4a,0x80,0x40,0x1a,0x36,0x28,0xc0,0x3e,0x7c,0xf9,0x3f,0x80,0xe9,0x29,0x3d,0xb7,0xe0,0xdf,0x3f,0x62,0x73,0xf7,0x3f,0xd5,0x7c,0x95,0xc0,0xe2,0x2b,0x9c,0x3f,0x0,0xc6,0x63,0xbb,0xd0,0x90,0x80,0xc0,0xed,0xe9,0x48,0x40,0xe4,0x26,0xef,0x3e,0x42,0x41,0xb8,0xbf,0xd0,0xa5,0x63,0xbe,0xfc,0xc4,0x61,0x40,0xc7,0x11,0xef,0xbf,0x67,0xfe,0x2d,0xc0,0xcd,0x29,0xc7,0xbf,0x5d,0x89,0x9b,0xbf,0x1a,0x34,0x7,0x40,0x90,0x44,0x6e,0xbf,0x6a,0xc7,0x13,0x40,0x58,0x4e,0x7e,0xc0,0xb0,0xc4,0x1e,0x3f,0xc6,0x9b,0x77,0x40,0x8c,0xe1,0x7,0xbf,0x25,0x81,0x80,0x40,0x69,0x0,0xc8,0x3f,0x7a,0x12,0x99,0xc0,0xe4,0x0,0x38,0xc0,0x1c,0x9e,0x7e,0x40,0x86,0xc,0x56,0xbf,0xb0,0x6d,0x98,0x40,0xe0,0xa8,0x9b,0xc0,0x2d,0x86,0x2b,0xc0,0x26,0xf2,0x73,0x40,0x58,0x4d,0x93,0x40,0x8b,0xa7,0x91,0xc0,0xb9,0x7b,0xcf,0x3f,0x7,0x7d,0x9d,0xc0,0xcc,0xe9,0x67,0xc0,0xc0,0xd4,0xf,0x40,0x15,0x0,0x1f,0xc0,0x70,0x19,0xc1,0xbe,0xaa,0xfc,0xee,0xbf,0xbe,0x2a,0x90,0xc0,0x66,0x7,0x90,0xc0,0xe8,0xef,0x3,0x40,0x5,0xf,0x43,0x40,0x92,0x88,0x64,0xbf,0xd2,0xaa,0x81,0x40,0x2b,0x53,0x6f,0xc0,0xb2,0x2a,0xa5,0xbf,0xa6,0xb0,0x8b,0xc0,0xfa,0xf8,0x92,0x40,0x8a,0xec,0x71,0x3f,0xf8,0x5,0x22,0x3e,0x4a,0x71,0x21,0xc0,0x94,0x83,0x8f,0xc0,0xfd,0xf1,0x8c,0x40,0x5c,0xc9,0xe,0x40,0x62,0xb3,0x69,0xbf,0xc4,0xae,0x91,0x3e,0xe5,0x1f,0xb4,0x3f,0xa4,0x69,0x17,0xc0,0x5f,0xd,0x9c,0x40,0xe,0x3e,0x42,0x3f,0xf8,0xd9,0x7a,0x3e,0x7e,0xb8,0x48,0x40,0x5,0xd2,0x57,0xc0,0x2,0xeb,0x3a,0x40,0x1f,0xeb,0x6,0xc0,0x4,0xf5,0x79,0xc0,0xbc,0x97,0xba,0xbf,0xe5,0x8,0xfd,0xbf,0xf0,0x3e,0x92,0x40,0x4e,0x8e,0x20,0x3f,0x7a,0x4e,0x5c,0xc0,0xe6,0x6b,0x6e,0xc0,0x70,0x6e,0x20,0xc0,0xca,0x63,0x9e,0xc0,0xa8,0x2c,0x6e,0xbe,0x30,0xa,0x93,0x3d,0x2d,0x11,0x95,0xc0,0x54,0xd5,0x73,0x3f,0x3f,0xed,0x87,0xbf,0x90,0x6c,0x50,0xbf,0x9e,0x1f,0x87,0xc0,0x6a,0x97,0x30,0x40,0xaa,0xd1,0x3a,0xbf,0xae,0x46,0x62,0x3f,0x7c,0x84,0xb3,0x3e,0x1d,0xdd,0xa0,0x3f,0x38,0xe8,0x1d,0x40,0x92,0x0,0x38,0xbf,0x96,0x85,0xac,0xbf,0x20,0x29,0x84,0xbe,0xc6,0xb8,0x84,0xc0,0x35,0x4d,0x8c,0x3f,0x69,0x6b,0x0,0xc0,0x4c,0x1d,0x75,0x40,0x59,0xe6,0x98,0x40,0xbf,0x42,0x9e,0x3f,0x3d,0x9b,0xd6,0xbf,0xa9,0x8e,0xae,0xbf,0x70,0xf2,0x71,0x40,0x4c,0xc0,0x7c,0xbf,0x36,0xb,0x1b,0x40,0x98,0xac,0x62,0xc0,0xce,0x27,0x66,0xbf,0xe,0xa8,0x12,0x40,0x32,0xd2,0x61,0x40,0xe4,0x69,0x8e,0xbe,0x24,0x57,0x13,0x3f,0xd7,0x83,0xb3,0xbf,0x11,0xa5,0x14,0xc0,0xdd,0x88,0x98,0x40,0xa8,0x5c,0x7,0xc0,0x7d,0x51,0xe0,0xbf,0xca,0xd0,0x69,0x40,0xa7,0x51,0x83,0x40,0xfc,0xd6,0xdb,0xbf,0x8f,0x5f,0xed,0xbf,0x2c,0x7b,0x69,0xc0,0xc,0xe8,0x1c,0x40,0x5c,0x29,0x77,0xbf,0x9e,0x0,0x4,0xc0,0x1,0x4c,0x86,0xc0,0x91,0x45,0xbf,0xbf,0x47,0x62,0xce,0x3f,0x64,0x47,0x87,0xc0,0x82,0x69,0x18,0x40,0xd2,0xf1,0x72,0xc0,0x70,0x9e,0x99,0x40,0x4b,0xf,0x5c,0xc0,0x53,0x9d,0x91,0x40,0x18,0x7d,0x58,0xbf,0x77,0x42,0x39,0x40,0x4c,0xc9,0xc1,0xbe,0x72,0xf0,0x1e,0xc0,0xb4,0xad,0x59,0xbf,0xae,0x56,0x4,0x40,0xde,0xa0,0x2a,0x40,0x42,0xcc,0x8e,0x40,0xc8,0x74,0x1f,0x3e,0x5b,0xc6,0xf1,0x3f,0x88,0xaf,0x53,0x40,0x7c,0xeb,0x3,0xc0,0xc8,0x76,0xcf,0xbf,0xe4,0xa8,0x12,0x40,0x90,0x5d,0x9e,0xbf,0x56,0xb7,0xb5,0x3f,0x52,0xa5,0xa,0x40,0xfe,0x37,0x44,0xbf,0x68,0x97,0xb4,0xbf,0x5a,0xd4,0x91,0x40,0xfd,0x70,0xfa,0x3f,0xc9,0x54,0x9b,0xc0,0x9a,0x69,0x96,0xc0,0x40,0xb,0x52,0xbf,0xfa,0x33,0x40,0xc0,0xca,0xa9,0x7e,0x40,0xd8,0x3d,0x6c,0x40,0xda,0xc,0x50,0x40,0x64,0x88,0x83,0x40,0xb1,0x9e,0x70,0x40,0x2,0xd,0x84,0x40,0xd0,0x54,0x37,0x3e,0xcc,0x8c,0x8a,0x40,0x70,0x5,0xd5,0x3f,0xf8,0x9f,0x23,0x40,0xbc,0x3c,0x1f,0xc0,0x46,0xde,0xa,0x40,0x6a,0x4b,0x86,0xc0,0xe0,0x92,0xb9,0x3d,0x23,0x2f,0x32,0xc0,0xe4,0xdf,0xef,0x3e,0xca,0x80,0x2,0x3f,0x5a,0x9f,0x8,0xbf,0x2b,0x22,0x9f,0x40,0xb6,0x48,0x94,0xc0,0x27,0x4f,0x9d,0xc0,0x5c,0x8e,0xa6,0x3e,0xfc,0x91,0x52,0xc0,0x28,0x62,0x54,0xc0,0x48,0x8b,0x3f,0xc0,0x6,0xe8,0x80,0x40,0xdc,0x95,0x4b,0xc0,0xdc,0x9c,0x83,0xc0,0xf9,0x84,0x65,0x40,0xc4,0xc5,0x4d,0xc0,0x8e,0x73,0xf,0xbf,0xee,0xe4,0x40,0xc0,0xb0,0x69,0xbd,0x3f,0xdd,0xe7,0x89,0x40,0x20,0x4d,0x41,0xc0,0x88,0x90,0x68,0xc0,0x7a,0x24,0x6,0x40,0x86,0x48,0x42,0xc0,0x36,0xb5,0xf5,0x3f,0x74,0x98,0x45,0x40,0xa4,0x51,0x72,0x40,0x6e,0xc4,0x24,0x3f,0x36,0xff,0x92,0x40,0x32,0xfa,0xaa,0xbf,0x40,0x1f,0x36,0x40,0x2d,0x89,0xc6,0xbf,0xe0,0x1,0x2d,0xc0,0xa6,0x62,0xbf,0x3f,0xf4,0xb4,0x2d,0x40,0x2e,0x7a,0x16,0x40,0xe8,0x27,0x51,0x40,0x0,0xff,0xcd,0xbc,0x76,0x5b,0xfb,0x3f,0x28,0x50,0x64,0x40,0x10,0xb3,0x5a,0xc0,0x90,0x30,0x78,0xbf,0xcc,0x2e,0x46,0x40,0x8e,0x64,0x69,0xbf,0x14,0xd,0x87,0x40,0x54,0x87,0x14,0x40,0xec,0x3a,0x6,0xc0,0x9c,0x1,0x7b,0x40,0x2e,0x69,0xf9,0xbf,0x76,0xe6,0x4f,0x40,0xf6,0xb,0x7b,0x40,0xb8,0x44,0x46,0x40,0x20,0x6a,0x79,0x40,0x80,0x5c,0xcd,0x3e,0x87,0x0,0x88,0xc0,0xfc,0x1f,0x7a,0x40,0xc,0x2,0xf6,0x3e,0xf8,0x1e,0xfc,0xbf,0x6c,0x32,0x45,0xbf,0x4d,0xbf,0x3b,0xc0,0xb9,0x70,0xf,0x40,0x63,0xf2,0x99,0xc0,0xda,0x57,0x14,0x40,0x49,0xe8,0x97,0xc0,0xa1,0xa4,0x1b,0xc0,0x90,0x76,0x5a,0x40,0x2a,0xc6,0x43,0xbf,0xeb,0xc6,0x5e,0x40,0x60,0x28,0x7e,0x40,0xb2,0xa2,0xc8,0xbf,0x90,0x0,0x92,0x3d,0x2,0xfb,0x72,0xc0,0x17,0xc6,0xc2,0xbf,0xb7,0x88,0xf6,0x3f,0x74,0x72,0xb9,0xbf,0x9c,0x88,0x82,0x40,0xba,0xb0,0x2b,0x40,0x20,0x9c,0x4c,0x40,0x80,0x70,0x7a,0x40,0x4,0x29,0xaa,0x3e,0x80,0xf9,0x46,0xbe,0xe8,0xba,0x7c,0xbf,0x9a,0xf4,0x94,0x40,0x3e,0xfe,0x5b,0x40,0xe4,0xb,0x74,0xc0,0x95,0x39,0xb3,0x3f,0x87,0xc3,0xaf,0xbf,0xa9,0x70,0x87,0x40,0xd,0x7b,0x38,0xc0,0x14,0x31,0x79,0xc0,0x6d,0xe1,0x8d,0x3f,0xa6,0x11,0x5b,0xc0,0x49,0x76,0x8b,0x40,0xb2,0xd5,0x94,0x40,0x18,0x8d,0x5f,0xc0,0x9a,0x28,0x58,0xbf,0xe8,0xf,0x23,0xbf,0x4,0x84,0x94,0xc0,0x2b,0x4b,0x72,0xc0,0x0,0xf2,0x94,0x40,0xb0,0x7f,0x6b,0x40,0x38,0x61,0xe3,0xbf,0x7,0x82,0xf3,0x3f,0x29,0x91,0x8b,0xbf,0xd4,0x81,0x47,0x3f,0x7c,0xa6,0xaa,0xbe,0x6,0xdc,0xe0,0x3f,0x7f,0x47,0x2c,0xc0,0xe,0x1e,0x8a,0x40,0x60,0x34,0x5e,0xbf,0xa0,0xaf,0x9d,0x40,0xb8,0xa1,0x31,0xc0,0xc0,0xaa,0x64,0xbf,0xf2,0x5b,0x66,0x40,0x54,0x28,0x93,0xc0,0x93,0x95,0x90,0x3f,0x32,0x14,0x13,0x40,0xb8,0x9d,0x6a,0xbe,0x5c,0xca,0x74,0xc0,0x66,0x8f,0x54,0xc0,0xb8,0x76,0x19,0x40,0x84,0xb8,0x9b,0xc0,0x98,0x6f,0x3d,0xc0,0x1f,0x1a,0x55,0x40,0x40,0xee,0xa3,0xbf,0xe3,0x75,0x9b,0xc0,0xb6,0x6f,0x6,0xc0,0xfc,0x6f,0x22,0x3f,0x38,0x83,0xfd,0xbf,0xcf,0x7d,0x19,0xc0,0xe,0xf1,0x36,0xc0,0x80,0x72,0x87,0x40,0x76,0xa2,0x84,0x40,0xa2,0xb9,0x5a,0xc0,0xf,0x5a,0x52,0x40,0x19,0xd6,0x98,0x40,0x58,0x33,0xfb,0xbf,0xb4,0x5c,0xf8,0x3f,0x31,0x10,0x9f,0xc0,0x86,0x16,0x82,0x40,0x5c,0xe8,0x28,0xc0,0xa2,0xa5,0x8a,0xc0,0xb3,0xc2,0x45,0xc0,0xf9,0xf0,0x9b,0xc0,0xba,0x56,0x8e,0x40,0x99,0xea,0x90,0xc0,0x87,0xc7,0x87,0xc0,0x7f,0xe1,0xc1,0x3f,0x32,0x9b,0x36,0x40,0x7f,0x9,0x15,0xc0,0x6e,0xe1,0x19,0x40,0x74,0x87,0xb,0xbf,0xe2,0x37,0x60,0xc0,0xbb,0x1d,0x10,0x40,0xd8,0x97,0x21,0x40,0x22,0x22,0x93,0xc0,0x26,0xc2,0x8a,0xc0,0x5a,0x43,0x14,0xbf,0x2a,0x60,0x7a,0xc0,0x3e,0x3c,0x73,0xc0,0x6,0xf0,0x47,0x3f,0xdc,0xe9,0xc0,0x3e,0xfc,0x3e,0xe7,0x3f,0x16,0x47,0x3e,0xc0,0x88,0x55,0x12,0xc0,0xc8,0xd3,0x9a,0xc0,0xc0,0xc8,0x2d,0x40,0x56,0x2,0x8b,0xc0,0x6e,0xf2,0x6e,0x3f,0x10,0x3,0x6f,0x40,0xa7,0x61,0xfb,0x3f,0xdc,0x9b,0x39,0x40,0x6e,0x91,0x86,0x40,0xc0,0xde,0x35,0x3d,0xc1,0x3a,0xfe,0xbf,0x80,0x19,0x4a,0x3d,0xdb,0x7,0x80,0xc0,0xb6,0x75,0x49,0xc0,0xce,0xa6,0x25,0x40,0xb7,0xf8,0x56,0x40,0xd7,0x5b,0xb,0x40,0x1c,0x89,0x89,0xc0,0xfe,0xdd,0x5a,0xc0,0xa8,0x25,0x83,0x40,0x14,0xca,0x99,0x3e,0xac,0x96,0x69,0xc0,0xe6,0xd2,0x7a,0x3f,0x96,0xec,0x31,0x40,0x48,0x46,0x32,0x40,0x7f,0x8f,0x5c,0x40,0xe9,0x22,0xf,0xc0,0x7c,0x7,0x36,0x40,0xa2,0xe5,0x62,0xc0,0x4e,0x4a,0x23,0x40,0x1a,0xf5,0x74,0xc0,0xe0,0xc5,0x10,0x3d,0x3f,0x4,0x8f,0x40,0x28,0xbf,0x68,0x40,0xc9,0x95,0x11,0x40,0xf0,0x93,0xad,0x3e,0x4c,0xad,0x30,0x40,0x40,0xa1,0x61,0x3d,0xe,0xd2,0x82,0x40,0xf4,0x7b,0x32,0x40,0x1b,0xe2,0x9d,0x40,0x3b,0x71,0xd0,0xbf,0x70,0xe5,0x27,0x40,0xba,0x5d,0x6c,0x40,0x22,0x97,0x1b,0x40,0xf5,0x6e,0x34,0xc0,0x9f,0x88,0xeb,0x3f,0x90,0x1e,0x1e,0xc0,0xc4,0x4b,0x8c,0xc0,0x51,0x33,0x8a,0x40,0xc7,0xd4,0x96,0xc0,0xec,0xbf,0x8c,0x40,0x5f,0xe2,0x8b,0xbf,0xa3,0xdc,0xc0,0xbf,0xba,0x13,0x5c,0xc0,0x51,0xc8,0xe5,0xbf,0x7a,0xe1,0x8f,0x3f,0x6a,0x83,0x25,0xc0,0x5d,0x1f,0x8e,0x40,0x7a,0xa,0xd0,0x3f,0xa4,0x9d,0x85,0x40,0x65,0x9f,0x81,0xc0,0xf7,0xfd,0x2a,0xc0,0x60,0xe6,0xc2,0xbd,0x85,0x17,0xc7,0xbf,0xb9,0x59,0x5d,0xc0,0x54,0x95,0x7,0xc0,0x80,0x7c,0x8d,0xc0,0xec,0x7b,0x8e,0x40,0x4a,0xa5,0x33,0x40,0xdd,0x2e,0x86,0xc0,0x48,0x4d,0x56,0xc0,0x3c,0xb1,0x8d,0x40,0xd5,0x91,0x83,0x40,0x41,0xf5,0x91,0x3f,0x85,0xef,0x5,0xc0,0xa,0xd9,0x7,0x40,0xd7,0xa0,0xc3,0x3f,0xe3,0x7f,0xec,0xbf,0x2a,0x9e,0x96,0x3f,0xa3,0x95,0x7d,0x40,0x8c,0x44,0x81,0x40,0xec,0xe3,0x85,0xc0,0x68,0x6,0xeb,0x3f,0xe4,0xf2,0x9b,0xbe,0xa2,0x46,0xc,0x40,0x7e,0x6b,0x1a,0xc0,0x86,0x62,0xf3,0xbf,0xce,0x4,0x75,0x40,0x6d,0xda,0x50,0x40,0x93,0xdd,0xc5,0x3f,0xfe,0xfe,0x87,0x40,0xcc,0x6c,0x64,0xc0,0x0,0x16,0x8f,0x40,0xd0,0x18,0x9a,0xc0,0x3e,0xe9,0x1b,0x40,0xb8,0xf1,0x27,0x40,0x3e,0xff,0x67,0x40,0x26,0x9a,0x3e,0x40,0xfc,0x48,0x5b,0x40,0xac,0x2a,0x80,0x40,0xc9,0x8,0x92,0xc0,0x4,0x6b,0x8d,0x40,0xe2,0xa7,0xed,0xbf,0x2e,0x2c,0xc3,0x3f,0x19,0x14,0x8c,0xc0,0xc7,0x92,0x97,0xc0,0x1e,0x3f,0x63,0x40,0xd7,0x7e,0x95,0xc0,0xcd,0x4a,0xc9,0x3f,0xe8,0xa7,0x6e,0x40,0x7a,0x1b,0x5d,0x40,0x38,0xac,0x33,0xc0,0x60,0x9d,0xd4,0x3e,0x8e,0x7c,0x60,0x40,0x37,0x90,0x98,0xc0,0xfe,0x5,0x21,0xbf,0x79,0x13,0x86,0xc0,0xca,0x2e,0x91,0xc0,0xaa,0x83,0x1a,0xc0,0x24,0xb8,0x7,0xc0,0xf7,0xbe,0x9f,0x40,0x50,0x6,0x8b,0x3d,0x16,0x86,0xef,0xbf,0xc0,0x91,0xad,0x3d,0x94,0xaa,0x10,0x40,0x2c,0x2e,0x95,0x40,0x30,0xbf,0xe7,0x3e,0x5a,0xa2,0x75,0x40,0xec,0xd,0xd3,0x3e,0xff,0x87,0x4d,0x40,0xd9,0x1e,0x8f,0xc0,0xc4,0x3d,0x7b,0x40,0x2a,0xc,0xdd,0xbf,0xdc,0x16,0x7,0xc0,0xde,0xe3,0x56,0xc0,0x14,0x94,0x4,0x40,0x52,0x3b,0x8c,0x40,0x5e,0x9c,0x22,0x40,0xc8,0x7c,0x28,0x40,0x9a,0x13,0x1a,0xc0,0x78,0x71,0x74,0xc0,0xf0,0x87,0xbe,0x3d,0xd,0x9b,0xc5,0xbf,0x6e,0xf8,0x34,0x40,0x4e,0x45,0xb2,0x3f,0x30,0x5e,0xdf,0xbe,0xcc,0x65,0x69,0xc0,0x54,0x5b,0x18,0x40,0x36,0xb5,0xfa,0xbf,0xfc,0xdc,0xa3,0x3e,0xa5,0x80,0xa2,0xbf,0xfa,0xbf,0x90,0x40,0xec,0xf0,0x2b,0x40,0xb2,0xaf,0x2a,0xc0,0xfe,0x25,0x7e,0x3f,0xc4,0x99,0xfb,0xbf,0xc,0x90,0x81,0xbf,0x59,0xb3,0x45,0x40,0x8c,0xf1,0xa4,0xbe,0xf8,0xc3,0x98,0x3e,0xea,0xc6,0x84,0x40,0xfa,0x71,0xb6,0x3f,0x44,0x42,0x17,0x40,0x4,0xb6,0x2b,0xc0,0x34,0x97,0x8b,0x40,0x7e,0x13,0x1e,0x40,0xf8,0x23,0x39,0xc0,0x42,0xa2,0x8d,0xc0,0xee,0xb1,0x5c,0xbf,0xee,0x1c,0x90,0xc0,0xb8,0x90,0x4a,0x3f,0x36,0xf9,0x65,0x40,0xda,0x75,0x5a,0xc0,0x92,0xea,0x91,0xc0,0xec,0x93,0x48,0x40,0xde,0x92,0x4c,0xc0,0xca,0x4a,0xb,0x3f,0x13,0x75,0xb8,0xbf,0xf,0xd3,0x29,0x40,0xee,0xe,0x80,0x40,0x7a,0x98,0x6a,0x40,0xe,0x3,0x9e,0xc0,0xf4,0x6,0xa,0xc0,0x32,0xf2,0x97,0x40,0xf6,0xe3,0x63,0x40,0x66,0xbe,0x2f,0xc0,0xcc,0xb1,0x8b,0xc0,0xa4,0x47,0x52,0x40,0x7e,0xce,0x8f,0xbf,0x23,0x4d,0x5a,0x40,0x84,0xe7,0x1a,0xc0,0x88,0xcf,0x90,0x40,0x6,0x5f,0x1d,0x40,0x78,0x9d,0x9e,0xbf,0xb5,0x8a,0xb5,0xbf,0x6b,0xe,0x9f,0x40,0xdf,0x30,0xfe,0x3f,0xcf,0x62,0x57,0xc0,0x4d,0xb1,0x49,0x40,0x25,0x3c,0x64,0xc0,0x50,0x1c,0x93,0xbd,0x99,0x10,0xf1,0xbf,0x1d,0x27,0x99,0xc0,0x26,0xe9,0x82,0x40,0x99,0xa3,0x80,0x40,0xb2,0x95,0x3a,0x40,0x24,0x1c,0x7b,0xbf,0x10,0x4d,0xf2,0xbf,0x61,0x87,0xd5,0xbf,0xa3,0x3b,0x4b,0x40,0xc2,0x52,0x88,0x40,0xf7,0x8,0x83,0x40,0xe9,0x4e,0x8b,0xbf,0xb,0xd3,0xdf,0x3f,0x38,0x1c,0x49,0xbf,0xb2,0x57,0xc3,0x3f,0x52,0xbd,0x60,0x3f,0x3c,0xc8,0x85,0xc0,0xe6,0x28,0x7c,0x40,0x86,0x2e,0x32,0xc0,0x8c,0xe5,0xec,0xbe,0xc6,0x98,0x3c,0xc0,0x50,0x8a,0xd9,0xbf,0x8,0xfa,0x74,0x40,0xc,0x84,0x6a,0x40,0x95,0xd7,0x88,0x40,0xb3,0xc,0x8b,0xc0,0x7c,0xed,0x83,0x40,0xe0,0xa6,0x4d,0xc0,0x98,0x44,0xb9,0xbe,0x6e,0xba,0x7e,0x40,0x1e,0x2f,0x2d,0x3f,0xf0,0xd2,0xe6,0x3f,0xb8,0x60,0x91,0x3f,0x3d,0xd0,0x83,0xc0,0x2b,0xec,0xd,0xc0,0x69,0x11,0xc6,0xbf,0x80,0x79,0xe7,0xbd,0xc0,0x33,0x18,0xbd,0xf4,0xa2,0x4c,0xc0,0xdc,0x97,0x53,0x40,0x48,0x82,0xd0,0x3e,0x5b,0x82,0xfe,0x3f,0xd,0x9f,0xb2,0x3f,0xb2,0xfd,0x98,0xc0,0x78,0x7b,0x31,0x3f,0x8a,0xa3,0x96,0xc0,0xbe,0xa1,0x8b,0x3f,0x5c,0xad,0x91,0x40,0x84,0xc2,0x6f,0x3f,0x8a,0x25,0x11,0x40,0x1f,0xcb,0x3,0x40,0xea,0xd7,0x62,0xbf,0x38,0x88,0x1e,0x3e,0x24,0xb3,0xd2,0x3e,0x19,0x92,0x6a,0x40,0x9,0xe3,0x15,0x40,0xc9,0xa0,0x8a,0x40,0x39,0x6b,0x30,0xc0,0xe4,0x8a,0x38,0xc0,0xee,0x8c,0x4d,0xc0,0x30,0xc3,0x77,0x40,0xf2,0xe,0x9,0xc0,0x5b,0x7e,0x55,0x40,0x32,0x3a,0x59,0xbf,0xf2,0x46,0x85,0xc0,0xdc,0x6f,0xa4,0xbf,0x0,0xd5,0x4a,0xbc,0x14,0x31,0xfb,0x3f,0xbe,0xa1,0x99,0xc0,0x91,0xf,0x87,0xc0,0x8b,0x91,0x2b,0x40,0x34,0xc,0x30,0xbf,0x38,0xbf,0x64,0xbf,0x4e,0xf9,0x6c,0xc0,0x91,0xf7,0x37,0x40,0xc0,0x7f,0x82,0x40,0x67,0xe2,0xba,0xbf,0x4b,0x15,0x95,0x40,0x58,0x9c,0x93,0xc0,0x2e,0x83,0x57,0xc0,0x33,0x6c,0x35,0x40,0x64,0xd3,0x3d,0xc0,0xd6,0x4b,0x5,0x40,0x86,0x9d,0x27,0xc0,0x2b,0x43,0x86,0xc0,0xd4,0x21,0x52,0x3f,0xe3,0x8a,0x2a,0x40,0x1b,0xc8,0x37,0xc0,0xfa,0xdb,0x3,0xbf,0xad,0xb,0x92,0x3f,0x28,0xb4,0x9d,0x40,0x7,0xdc,0x80,0x3f,0xdc,0x3b,0x9c,0x3e,0x6c,0x93,0x18,0xc0,0xd2,0xcb,0xe,0xbf,0x76,0xd3,0xb,0x40,0x72,0x98,0x8c,0x40,0x15,0xcc,0xeb,0xbf,0x17,0xa9,0x7d,0x40,0xf0,0x3,0x59,0xc0,0x8,0xfb,0xe2,0x3f,0x9d,0x92,0x97,0xc0,0x82,0x3a,0x9e,0x40,0xca,0x3,0x61,0x40,0x48,0xaf,0x43,0x40,0xc7,0x8,0xc1,0xbf,0xd2,0xbc,0xed,0x3f,0x2c,0x2f,0x51,0xbf,0xab,0x90,0xeb,0x3f,0xff,0x8,0x54,0x40,0xda,0x31,0x86,0x40,0xb8,0x63,0xa2,0x3e,0x7,0xe4,0x11,0x40,0xe5,0x78,0x49,0xc0,0xea,0x45,0x1,0x40,0x80,0x31,0xe4,0xbc,0x10,0xbf,0xfd,0xbd,0x53,0x88,0x6c,0xc0,0x6c,0x17,0x44,0x40,0xcd,0x2a,0x98,0xc0,0xab,0xb4,0x29,0xc0,0x2b,0x77,0x95,0x40,0x8e,0x26,0x93,0x40,0xa0,0xf1,0x2c,0x40,0x9a,0x45,0x45,0xc0,0xe8,0xbf,0x98,0x40,0x6f,0xf1,0xb7,0xbf,0x40,0x7f,0x65,0xbf,0x6e,0x9f,0x51,0x40,0x32,0x7e,0x1,0xbf,0x38,0x56,0xdf,0xbe,0xad,0x42,0x8d,0x3f,0xfa,0x9b,0x97,0x40,0x18,0xc3,0x69,0x40,0x6f,0x9e,0x5d,0xc0,0x4c,0x26,0xa1,0x3e,0x22,0x3c,0x30,0xbf,0x5d,0x75,0x91,0x3f,0xec,0x49,0x2b,0x3f,0xcc,0x44,0xf3,0x3f,0x2a,0xf,0x3f,0xc0,0x20,0x7,0x58,0xbf,0xa4,0x83,0x25,0x3f,0x9a,0xda,0x64,0xc0,0x59,0xa7,0x90,0x3f,0xeb,0x4e,0x8e,0xc0,0x56,0xab,0x4b,0xbf,0x10,0xc5,0x93,0xbf,0x58,0x40,0x28,0x40,0x20,0x28,0x41,0xc0,0xfc,0x85,0xf0,0xbf,0xae,0x88,0x4f,0x40,0x8a,0x2b,0x29,0x40,0xdc,0x3d,0x95,0x40,0xa,0x6d,0x4e,0xbf,0xa0,0x36,0xb0,0x3e,0xbe,0x49,0x33,0xc0,0x3a,0x19,0x6a,0x40,0x2e,0x97,0x94,0x40,0x46,0x68,0x62,0x40,0x8e,0xea,0x3,0x40,0x92,0x8c,0x33,0xc0,0xdc,0x48,0x1b,0xc0,0xd2,0x5,0x6b,0xbf,0x9f,0x6c,0x32,0x40,0xb0,0xda,0xd3,0xbe,0x7c,0xb8,0x13,0xbf,0xf8,0x9a,0xa3,0x3f,0x77,0xd9,0xef,0x3f,0x48,0xc4,0x72,0xbf,0x42,0xd,0x38,0xc0,0xa4,0xa1,0x8f,0x40,0x7e,0xa7,0x2c,0xc0,0xd,0x69,0x8d,0x40,0x4e,0x8,0x91,0xc0,0x8,0x55,0x77,0xc0,0xc5,0xef,0xbd,0xbf,0xb2,0xd0,0x42,0x40,0x30,0xef,0x8,0x40,0x58,0x50,0x4,0x3f,0x88,0xd2,0x1f,0x3f,0x90,0x74,0xd2,0xbd,0xdf,0x47,0x76,0xc0,0x33,0x26,0xc4,0xbf,0xcd,0x14,0x91,0x3f,0x71,0xd2,0x13,0xc0,0xf9,0x73,0x98,0x40,0x7e,0x6a,0x5a,0xbf,0xc1,0xf3,0x95,0xbf,0xbb,0xe0,0x2e,0xc0,0xf0,0xff,0x22,0x40,0x3a,0x80,0x9a,0x40,0xa4,0x79,0x8d,0x40,0x56,0x2b,0x91,0xc0,0x40,0x5d,0xdf,0xbe,0xa5,0xa6,0x8b,0xbf,0xf2,0xd,0xa0,0xbf,0x3b,0x2b,0x90,0xc0,0x9a,0xd4,0x9f,0x40,0x1e,0x8f,0x81,0x40,0xa,0x34,0x61,0xc0,0xc,0xbb,0x49,0x40,0x2,0xaf,0xbc,0xbf,0x5a,0xfe,0x91,0x40,0xe0,0x5a,0x17,0xbe,0xbc,0x14,0x27,0x40,0xd0,0x62,0x9f,0xbe,0x9a,0x47,0xbe,0xbf,0xd5,0xa,0x94,0xc0,0xf7,0x3f,0x70,0xc0,0xb2,0x1d,0x97,0x40,0xba,0x70,0x94,0x40,0x2f,0xb0,0x99,0x40,0x92,0x57,0x68,0x40,0x1b,0x32,0x90,0xc0,0x8a,0x85,0x4c,0xc0,0x60,0x18,0x8c,0x3f,0x17,0xdc,0x93,0xc0,0xc0,0x83,0x45,0xbe,0xa5,0x9d,0xd0,0x3f,0x44,0xe9,0xc7,0xbf,0xca,0xf3,0x5c,0x3f,0x8c,0xd9,0xb2,0x3e,0x53,0x1f,0xf6,0xbf,0x70,0x91,0x19,0x3f,0xc6,0xe4,0x86,0x3f,0x93,0xdd,0x85,0xc0,0xbe,0x81,0x93,0x40,0x66,0xdd,0x9e,0x40,0x86,0x75,0x83,0xc0,0x73,0x57,0x99,0xbf,0xd0,0xa,0xe,0xbe,0x80,0xed,0x2f,0xbd,0xc4,0xea,0xe1,0xbf,0xe0,0x1a,0xaa,0x3e,0x95,0x9d,0xbd,0x3f,0x6,0x4d,0xc0,0x3f,0xca,0x56,0x34,0x40,0xc,0xd3,0x72,0x3f,0x95,0xe0,0xd9,0x3f,0x54,0x82,0x2b,0xbf,0xd3,0xb,0xa8,0xbf,0x9c,0x86,0x13,0x40,0x82,0x14,0x7c,0x40,0xe0,0xcf,0x56,0x3d,0xa0,0x2f,0x78,0xc0,0xab,0x3a,0xce,0x3f,0x23,0x68,0x7b,0xc0,0x82,0x12,0xcf,0x3f,0xee,0x90,0x98,0x40,0x1e,0x7e,0x58,0xc0,0x66,0x1,0x31,0xbf,0x49,0xe4,0x95,0x40,0x7e,0x4d,0x1,0x40,0x88,0xe4,0x98,0x40,0x2e,0xe8,0x16,0xc0,0x8c,0xd4,0xf,0xbf,0x0,0x21,0x5b,0xc0,0x99,0x9a,0x2d,0xc0,0x58,0x96,0x89,0x3f,0x5a,0x98,0x81,0x40,0x1c,0x5,0x8f,0x40,0xf2,0x64,0xee,0xbf,0xe3,0xb1,0x87,0x40,0x8e,0x44,0x64,0xc0,0x34,0xdb,0x95,0xc0,0x0,0xe3,0x28,0x3f,0xce,0xe,0x95,0x40,0x26,0xc6,0x74,0x40,0x2e,0x7c,0x69,0xc0,0x1e,0x70,0x85,0xbf,0x4c,0x91,0x8d,0x40,0xe0,0x5b,0x27,0x40,0x90,0x72,0xd9,0x3d,0xe7,0xd9,0xe,0xc0,0x42,0xa0,0x4a,0x40,0xf1,0x21,0x87,0x40,0xd0,0xa1,0x4e,0x40,0x7a,0x81,0x6,0x40,0x96,0xa6,0x10,0xc0,0x34,0x77,0x9b,0xc0,0x7a,0x2c,0x90,0x40,0xb3,0x8e,0x95,0x3f,0x66,0x6b,0x21,0x3f,0x1,0xf0,0xef,0x3f,0xc,0x5c,0xf1,0xbf,0x33,0xee,0x67,0xc0,0x5e,0xaf,0x2e,0x40,0x34,0x59,0x1a,0xbf,0x66,0x1c,0x99,0xc0,0xcc,0x92,0x70,0xbf,0x38,0x57,0x40,0xbf,0xbf,0xa1,0x69,0xc0,0xfa,0x57,0x7d,0xc0,0xc4,0xfc,0x93,0xbf,0x2b,0xea,0x84,0xc0,0xc5,0x97,0x22,0x40,0xf,0x88,0x9a,0xc0,0x26,0x3e,0x11,0xc0,0x87,0xda,0x68,0xc0,0x56,0x89,0xe3,0xbf,0x6f,0xbb,0x9e,0xc0,0xce,0x4b,0xb3,0xbf,0x80,0x3e,0x54,0xc0,0x45,0xb9,0x44,0x40,0xf,0xab,0x85,0xc0,0x7d,0x1d,0x96,0x40,0xe0,0x83,0x96,0x40,0x6c,0x77,0xa8,0x3f,0x38,0xee,0xe7,0xbe,0xc,0x97,0x3d,0xc0,0x56,0x39,0xe,0xc0,0xe,0x82,0x58,0xc0,0x3a,0xb3,0x41,0x3f,0x46,0xbe,0x97,0x40,0x69,0x15,0xd6,0xbf,0x86,0xd1,0x4,0xc0,0xdd,0x16,0x8e,0x3f,0x56,0xc0,0x95,0xc0,0xf1,0x89,0xd9,0xbf,0x70,0xa4,0x5e,0xc0,0x60,0x52,0x66,0xc0,0x2a,0x3c,0xc1,0xbf,0xac,0x7b,0x78,0x40,0x85,0x24,0x8,0x40,0x67,0xff,0xb1,0x3f,0x89,0x5b,0x85,0x40,0xb4,0xd9,0x3a,0x40,0x20,0x7f,0x71,0xbd,0x19,0x8e,0x9e,0x3f,0x2,0xa2,0x30,0xbf,0x80,0x76,0x1c,0x40,0x39,0x82,0x8f,0x3f,0x73,0x9b,0xff,0x3f,0x4d,0xaf,0x95,0xc0,0x1c,0x81,0x2d,0xbf,0x26,0x25,0x2a,0x40,0x2f,0x90,0xef,0x3f,0xf8,0x85,0x9f,0x3f,0x15,0x22,0x2,0xc0,0x58,0x3e,0x4f,0x40,0xf7,0x1,0x89,0xbf,0x82,0xa9,0x2d,0xc0,0x72,0x85,0x64,0xc0,0x60,0x36,0x34,0x3d,0x2c,0xae,0x7c,0xc0,0x8,0x31,0x48,0x40,0xac,0x35,0x2a,0x3f,0x11,0x8a,0x87,0xbf,0x3c,0x4f,0x8a,0x40,0xa0,0xed,0xb2,0xbd,0xfa,0x63,0x17,0x3f,0xcc,0xc7,0x51,0x40,0x42,0x53,0x58,0x3f,0x40,0x26,0xcb,0x3c,0x7d,0x59,0x92,0x40,0x75,0xc1,0x75,0xc0,0x88,0x31,0x1e,0x40,0x58,0x4b,0xa2,0x3f,0x92,0x6f,0x46,0xbf,0x9d,0x3b,0xd1,0x3f,0x1c,0xb2,0xd1,0x3e,0x3c,0x6,0x47,0xc0,0xc0,0x43,0x58,0xc0,0x5c,0xa0,0x20,0xc0,0xae,0x6f,0x90,0x40,0x9a,0xe3,0x79,0x40,0x6c,0xdd,0x8,0xbf,0xf4,0x84,0x21,0x40,0x76,0xc9,0x41,0x40,0xf6,0xd0,0x86,0x40,0x22,0x84,0xa9,0x3f,0x7b,0x26,0x74,0x40,0x79,0x6c,0xab,0xbf,0xda,0xad,0x86,0x3f,0xdc,0xf4,0x42,0xc0,0xf6,0x9e,0x85,0xc0,0x8b,0xb7,0x8a,0xbf,0xa8,0xcf,0x80,0xc0,0x1d,0x90,0xd4,0x3f,0x9c,0x31,0x52,0x40,0xc8,0xa2,0x80,0x3f,0xc0,0x24,0x99,0xc0,0xf7,0xe9,0x7,0x40,0xe,0xd3,0x8e,0x40,0x22,0x67,0x4b,0x3f,0xde,0xdf,0x90,0xc0,0xb8,0xce,0x82,0xbf,0xf8,0x4e,0x9b,0x40,0x83,0x33,0x37,0xc0,0xbc,0xe0,0x76,0xc0,0xc8,0x81,0x6c,0x40,0x42,0xba,0x76,0x40,0xe0,0x46,0x71,0x3d,0xe8,0xbd,0x95,0x40,0xfe,0x8,0x8a,0xc0,0xe,0x10,0x45,0x40,0xa1,0xeb,0x96,0xc0,0xf9,0xa6,0xc3,0xbf,0xde,0xae,0x7e,0x40,0xbd,0x4a,0x1d,0xc0,0x43,0x1d,0x6f,0xc0,0x58,0xd,0x60,0x3f,0x20,0xa,0x9f,0x40,0x4a,0x3d,0xeb,0xbf,0xdf,0x5,0x8e,0xc0,0x62,0x8a,0x35,0x40,0xeb,0xfa,0x82,0x40,0x72,0x8,0x4d,0xc0,0xe8,0x10,0x22,0xc0,0xfa,0x3a,0x1a,0x40,0xed,0xe1,0x8f,0x3f,0x8,0x13,0x76,0xc0,0xe6,0xa6,0x79,0xbf,0x8c,0x33,0x6a,0x3f,0x16,0x18,0x1,0x3f,0x1c,0x95,0x6c,0x40,0xea,0xe0,0x2c,0x40,0x4a,0xdf,0x5,0x3f,0xd0,0x1b,0x63,0x40,0x1a,0x21,0x97,0xc0,0xb0,0x7d,0x5b,0x3f,0x98,0x3d,0xe,0xbe,0x7c,0xb9,0x4b,0xc0,0xc,0x8f,0x61,0xbf,0x25,0xbc,0xc3,0xbf,0x4b,0xd3,0x99,0xc0,0x2c,0xaf,0xbf,0x3e,0x10,0x76,0x9f,0x40,0x3b,0x65,0x57,0xc0,0xae,0xe6,0x12,0xbf,0xd1,0x1e,0x92,0xbf,0xd6,0xba,0x32,0xc0,0x22,0x1e,0x10,0x40,0x6a,0x30,0x99,0xc0,0x6f,0xc5,0x9c,0x40,0x89,0x27,0x85,0xc0,0x50,0x5b,0x6,0xbf,0x6,0x3d,0x62,0xc0,0xaa,0x8c,0x50,0xc0,0x3e,0x3c,0x75,0x40,0xde,0x3d,0x77,0xbf,0x58,0x28,0xe,0x40,0x36,0xef,0xde,0xbf,0x0,0x83,0xe0,0x3d,0x0,0x21,0x22,0xc0,0x1d,0x2a,0x87,0x40,0xf1,0xb,0x9d,0xc0,0xa8,0x7a,0x7a,0xbe,0xc6,0xc0,0x88,0x40,0xae,0x3,0x64,0xc0,0x7e,0xe6,0x47,0xbf,0x72,0x6f,0x66,0x3f,0x69,0x7e,0x9a,0x40,0x70,0x81,0xbd,0x3d,0x1a,0x3f,0x80,0xc0,0xaa,0x5b,0x60,0xc0,0x3a,0xac,0x57,0x3f,0x7a,0x24,0x88,0x40,0xde,0xcb,0x99,0xc0,0xe4,0xfd,0x6d,0xc0,0xdf,0x8f,0x81,0xc0,0x4,0x5,0x8a,0xc0,0x44,0xf7,0xcd,0x3e,0x52,0x66,0x30,0x40,0xaf,0x47,0x8a,0xc0,0x66,0x96,0x46,0xbf,0x58,0x87,0xa2,0x3f,0xae,0xb9,0xb5,0x3f,0x47,0x4d,0x9,0x40,0x1d,0xc3,0x92,0xbf,0x42,0xdf,0xb5,0xbf,0x18,0x14,0x44,0xc0,0x5f,0x2,0x94,0xc0,0x80,0x86,0x4b,0xbd,0x7f,0x83,0xc5,0x3f,0x42,0xa9,0xc,0x3f,0x6d,0xe2,0x81,0x40,0xa3,0x4a,0x99,0x40,0x66,0xff,0xb2,0x3f,0xaa,0x42,0x18,0xc0,0x26,0x8a,0x1c,0x40,0x84,0x2c,0x9,0x40,0x6a,0xa4,0x52,0xbf,0xa0,0xe2,0x84,0xc0,0x3d,0x40,0x8d,0xc0,0xee,0x12,0x83,0x40,0x2d,0xfb,0x60,0xc0,0xf7,0xea,0x91,0x40,0xce,0x99,0x85,0xc0,0x41,0xfc,0xf,0xc0,0xc0,0x3c,0xdf,0xbe,0x44,0xe3,0x92,0x40,0x62,0x41,0x59,0x3f,0x73,0x5e,0x4e,0xc0,0xf,0x6b,0x69,0x40,0xd8,0x55,0x90,0x3f,0x76,0xc1,0x53,0xc0,0xd1,0x8,0x9f,0x40,0x65,0x3a,0x84,0x40,0x0,0xde,0x8a,0xbe,0xa8,0xcf,0x82,0xbe,0x7a,0x80,0x36,0x40,0x10,0x9f,0xd2,0x3e,0x94,0x73,0x3b,0xbf,0x5,0xc,0xd5,0x3f,0x7b,0xc2,0x99,0x40,0x12,0x72,0x5a,0xbf,0x8e,0xcc,0x36,0x40,0xb0,0x3c,0x1,0xc0,0x64,0x39,0x8d,0xc0,0x1e,0xbf,0x1,0x3f,0x88,0xa1,0x50,0x3e,0xb8,0x44,0xdf,0x3f,0x68,0x7d,0x90,0xc0,0x22,0x80,0x73,0xc0,0x10,0x94,0x58,0x3e,0x14,0xb3,0xba,0x3f,0xad,0x7d,0x92,0xc0,0x46,0x7e,0x72,0xc0,0x7d,0x10,0x51,0xc0,0xe,0x99,0x19,0xc0,0xd4,0xd6,0x77,0x40,0x69,0xea,0x3f,0x40,0x32,0x72,0x8b,0x40,0x84,0xd5,0x8f,0x40,0xca,0x2f,0x30,0x40,0x6c,0xd7,0x33,0xc0,0x82,0x99,0x96,0xc0,0xe6,0x4,0x69,0xc0,0xc6,0xda,0x8c,0xc0,0xd1,0xa3,0x80,0x40,0xe7,0x4c,0x2d,0xc0,0x9d,0x47,0x4a,0x40,0xc9,0xba,0x8f,0xbf,0xac,0x8c,0x3f,0xc0,0x3a,0xa1,0x35,0x3f,0x36,0xfd,0xb7,0xbf,0xf0,0xf8,0xc5,0xbd,0x36,0xc7,0xac,0x3f,0xd2,0xc9,0x9b,0xc0,0xa1,0xf8,0x98,0xc0,0x9b,0xae,0x93,0x40,0x8e,0x3b,0xbd,0x3f,0xee,0x56,0x7b,0xbf,0xcc,0xb,0x34,0x40,0xa8,0x1f,0xfb,0xbe,0x97,0xf5,0xbd,0x3f,0x2f,0xc4,0x63,0xc0,0xdc,0x5a,0x39,0xc0,0x93,0x60,0xd9,0x3f,0x70,0x0,0xfd,0x3e,0x4a,0xf,0x44,0xbf,0x90,0x96,0x3a,0xbf,0x94,0xc9,0x8,0x40,0xc4,0xdd,0x80,0x40,0xa,0xba,0x5d,0x40,0x58,0xce,0x2e,0xc0,0xd8,0xbf,0x3,0xc0,0xb5,0x32,0x8b,0xbf,0x63,0x13,0xde,0xbf,0x46,0xfd,0x45,0xbf,0x74,0xed,0xd9,0xbe,0x3c,0x12,0x59,0x40,0x7,0x9a,0x51,0xc0,0x82,0x4e,0x8f,0x40,0xbd,0x73,0x76,0x40,0xda,0x81,0x94,0x40,0x7b,0x91,0x59,0x40,0x24,0x6,0xa,0x40,0x47,0xfa,0x79,0xc0,0xa2,0x4e,0x73,0x40,0x64,0xdf,0x9e,0xc0,0xdc,0xd3,0x65,0x3f,0x7f,0xc3,0x9d,0x40,0xb8,0xd3,0x43,0x3f,0xc0,0x59,0xd6,0x3e,0x3c,0x3b,0x4c,0xc0,0xa0,0x36,0x88,0xc0,0x1a,0x31,0x34,0x3f,0x15,0x2f,0xed,0x3f,0x8c,0x5b,0x33,0xc0,0x7e,0x5c,0x9,0x3f,0xb8,0xd9,0xc2,0x3e,0x44,0x36,0x39,0xc0,0xa2,0x40,0x7e,0x3f,0x84,0xe1,0x84,0xc0,0x6,0x6f,0x34,0x40,0x3e,0x93,0x44,0xc0,0x90,0x1,0x6b,0x40,0xfa,0x6b,0x83,0x40,0xf0,0x45,0x3d,0x40,0xa0,0x5d,0x60,0xc0,0xa4,0xd3,0x5e,0x40,0xe0,0x6b,0x9a,0x3d,0x88,0xf,0x9a,0xc0,0x3c,0x2c,0x7d,0x40,0x3b,0x71,0x93,0x40,0xe2,0xf8,0xd,0x40,0x85,0x7d,0x80,0xc0,0x13,0x6e,0xa6,0xbf,0x40,0xe2,0xeb,0xbe,0x3,0xd,0x90,0x40,0xfa,0xf7,0x88,0xc0,0x77,0x50,0x62,0xc0,0x62,0x48,0x25,0x40,0xe9,0x7c,0xd5,0x3f,0x6a,0xa5,0xc2,0xbf,0x7,0x3,0x86,0xc0,0xc0,0x85,0x7,0xbf,0xf2,0x0,0x49,0x40,0xa0,0x8d,0x8e,0x40,0x88,0x30,0x3,0xbe,0x4,0xf4,0x3b,0xc0,0x45,0x1f,0xb9,0x3f,0xd,0xc5,0x70,0x40,0xf9,0xef,0x40,0xc0,0xb1,0xad,0x91,0x3f,0x40,0x8f,0x32,0x40,0xee,0x3d,0x35,0xbf,0x17,0xe3,0x82,0xc0,0xa0,0x3f,0x27,0xc0,0xbe,0xf4,0x9b,0xc0,0xc0,0x2a,0x3,0xbe,0xc3,0xf9,0x67,0x40,0x8,0xb9,0xc5,0xbe,0x8d,0x4b,0x74,0x40,0xbe,0x23,0x80,0xc0,0xc4,0xfb,0x98,0x40,0x72,0x53,0xb2,0xbf,0x93,0xb1,0x58,0xc0,0xf3,0x7f,0x7f,0x40,0x46,0x5d,0x89,0xbf,0x74,0xeb,0xfe,0xbe,0x6c,0xcd,0x13,0x40,0x3c,0xb4,0x16,0xbf,0x10,0xf7,0x77,0xbe,0x0,0xe1,0x16,0x40,0x3a,0x2d,0x98,0x40,0xba,0x9d,0xe,0xc0,0x80,0x62,0x3d,0x3e,0x29,0x53,0xb5,0xbf,0x6c,0xb1,0x96,0x3e,0xc,0x62,0x43,0x40,0x18,0x88,0x66,0x40,0xe6,0xc,0x7d,0xbf,0x9c,0x9b,0x30,0xc0,0x36,0x33,0x18,0x40,0xa6,0x90,0x61,0xc0,0x3f,0x6e,0x9e,0xc0,0x5e,0xc3,0x5,0xc0,0x6e,0x64,0x68,0xc0,0x70,0x19,0x5a,0xc0,0xa3,0x27,0x5,0x40,0xc6,0x1b,0x91,0x3f,0xbe,0xc3,0x23,0x40,0xef,0xa4,0x8e,0x3f,0xdb,0x73,0x88,0x3f,0xb4,0xc,0x6c,0x40,0x1e,0x67,0x31,0x40,0x23,0xef,0x62,0xc0,0x1a,0x97,0x93,0x40,0x32,0xa2,0xdf,0x3f,0xd,0xc3,0x8e,0x40,0xc2,0xf7,0x84,0x40,0xe7,0x9,0xdc,0xbf,0xd4,0xd4,0xa6,0xbe,0x49,0x5a,0xbb,0x3f,0xf2,0x78,0x8d,0xc0,0x7f,0x13,0xfe,0xbf,0x97,0xb9,0x8b,0xc0,0x88,0xb2,0x8d,0x3f,0xa0,0x97,0xb,0x3f,0xc8,0xe8,0x5f,0x40,0xa3,0xc7,0x93,0xc0,0xa4,0xea,0x6b,0x40,0x8e,0x52,0x26,0x40,0xfc,0xb6,0x76,0xbf,0xc7,0x1b,0x9f,0xc0,0xcc,0x1e,0x8d,0xbe,0xae,0x5,0xd8,0xbf,0x4d,0xf5,0x28,0xc0,0x6a,0x21,0xfb,0xbf,0xdb,0x7d,0x8d,0xbf,0x5,0x9d,0xb7,0xbf,0xf0,0x2,0xf,0xbe,0xc0,0x9c,0x65,0xc0,0xe8,0x2e,0xe3,0x3f,0x2c,0xb6,0xb,0xc0,0xbc,0x9b,0x65,0xc0,0x78,0x1,0x6,0xbe,0xc4,0xe6,0xfe,0xbe,0x52,0x65,0x88,0xc0,0x6,0x46,0x95,0x40,0xc2,0x9a,0x7c,0xc0,0x2,0x8,0x84,0x40,0xf8,0x2d,0xe,0x3f,0x3a,0x12,0x74,0xc0,0x60,0x5,0x76,0xc0,0xf5,0xfb,0xf4,0xbf,0xaa,0xf3,0x98,0x40,0xc6,0x60,0x90,0x40,0xe1,0x97,0x1f,0x40,0x3c,0x2,0x95,0x40,0x4b,0xe4,0x40,0x40,0xf0,0xf1,0xb8,0x3f,0x7e,0x2a,0x8f,0x40,0x64,0x60,0x3d,0x40,0x0,0x30,0x54,0x3f,0x17,0x1,0xe7,0x3f,0x40,0x7,0xb3,0x3e,0x58,0xe6,0x9,0xc0,0x54,0xd3,0x13,0x40,0x6c,0x52,0x18,0x40,0x9,0x7a,0x42,0x40,0x63,0x9,0x63,0x40,0xfe,0xe7,0x90,0x40,0x1c,0x28,0xb6,0x3f,0xa3,0xd7,0xca,0xbf,0x23,0xc8,0xd2,0x3f,0x48,0xc3,0x2a,0x40,0x5e,0x9c,0x63,0xc0,0xc,0x3e,0x3f,0xc0,0xc8,0xbe,0x75,0xc0,0x5e,0x2c,0x2e,0xc0,0xf3,0xca,0x95,0x40,0xf5,0xa4,0x26,0x40,0xf0,0xd3,0xb3,0xbe,0x76,0x9,0x67,0xc0,0xf2,0x14,0xb7,0x3f,0xbc,0x1c,0x65,0x3f,0x30,0xc0,0x82,0x3d,0x5a,0x7d,0x50,0xc0,0x2c,0xf7,0x9c,0x40,0x16,0x61,0x2b,0x3f,0x3a,0x36,0x75,0xc0,0x9d,0x23,0x37,0x40,0xbe,0x66,0x5f,0xbf,0x19,0x64,0x5c,0xc0,0x90,0xbc,0x66,0xc0,0xb8,0xa4,0xca,0xbe,0xd0,0x6a,0x29,0xc0,0x9a,0xcf,0x56,0xc0,0x28,0x53,0x11,0x40,0x98,0x67,0x70,0xbe,0xd,0x8c,0x4a,0xc0,0x70,0x81,0x6a,0x3e,0xe8,0x4c,0x9c,0xc0,0x44,0xbb,0x7d,0x40,0xe8,0xd4,0x91,0xc0,0x4a,0xfa,0x38,0xc0,0x83,0x5a,0x81,0xbf,0x4b,0x2f,0x98,0xc0,0xf8,0x34,0x8a,0xc0,0x24,0x65,0x76,0xc0,0x56,0xa7,0x4a,0xc0,0x5f,0x91,0xbe,0x3f,0xce,0x30,0x32,0x40,0xb6,0xfe,0x5b,0xc0,0x9b,0x5f,0x16,0x40,0x66,0xea,0xe,0xc0,0x6,0x66,0x6a,0x40,0x30,0x5,0x9d,0xbf,0x4a,0xac,0xd,0x40,0x80,0xc7,0xa8,0x3f,0x90,0xff,0xd8,0xbf,0x36,0xeb,0x8,0x3f,0xe4,0xb,0x19,0x40,0xe6,0x71,0x4c,0x40,0x1b,0x3e,0x8d,0x3f,0x2a,0xca,0x17,0x40,0xf9,0x1f,0xc3,0x3f,0x6,0xcd,0x7e,0x40,0x93,0xc2,0x5b,0xc0,0x92,0x3,0xa,0xc0,0x80,0xc2,0x2d,0xbc,0xe8,0x88,0x45,0x40,0xe8,0x1c,0x9d,0xc0,0x22,0x27,0xe,0x40,0x4a,0xb,0x99,0x40,0x12,0xc9,0x4e,0x40,0xaa,0x60,0x8d,0x40,0xb8,0x20,0xe5,0xbf,0xc,0x34,0x8,0x3f,0xef,0x13,0x8a,0x40,0x1,0x4a,0x43,0xc0,0x6d,0x1b,0x81,0xbf,0xc6,0xee,0xd,0xc0,0x57,0x6,0x72,0x40,0xae,0xa6,0x87,0x3f,0x31,0x63,0x8f,0xc0,0xb6,0x5,0x6c,0x40,0xa8,0xec,0x83,0x40,0xb4,0xbe,0x87,0xbe,0x78,0x4a,0x93,0x40,0x96,0x87,0x90,0xc0,0x9c,0x5d,0xce,0x3e,0x38,0x53,0x21,0x3f,0xb2,0xe7,0x9c,0x3f,0x1c,0x3f,0x1a,0x40,0x72,0x78,0xd8,0x3f,0x96,0xd2,0x95,0x40,0x3a,0x97,0x33,0xc0,0x76,0xcf,0x70,0x3f,0x4e,0x64,0x6,0x40,0xf2,0x55,0x7d,0xc0,0x98,0xb7,0xf5,0xbf,0xfc,0x3e,0x7d,0xc0,0x10,0x9e,0xec,0xbf,0xf4,0xa1,0x2a,0xc0,0xe2,0x2b,0x74,0x40,0x37,0x59,0x1c,0xc0,0xc,0x91,0xad,0x3f,0x9d,0xa3,0xc,0xc0,0x22,0x69,0x4e,0x40,0xa0,0x76,0x8e,0xbd,0xf2,0x49,0x59,0xc0,0x8a,0xec,0xd3,0xbf,0x60,0x8f,0x49,0xc0,0x40,0xfc,0xd1,0x3f,0xae,0xce,0x8b,0x40,0xd3,0x53,0xce,0x3f,0xb9,0x8d,0xa4,0x3f,0xc0,0x57,0x7b,0xc0,0x4c,0x61,0xfc,0x3e,0x8e,0x54,0x10,0x40,0x50,0x2d,0x66,0x3e,0xa6,0xa4,0x9c,0xc0,0xd3,0x85,0x49,0xc0,0x18,0xb2,0x99,0xc0,0x7c,0x90,0x54,0x3f,0x1b,0x36,0xcc,0x3f,0xdc,0x2d,0x23,0x40,0xb8,0x64,0x46,0x40,0xd9,0x40,0x56,0xc0,0x33,0x30,0xc4,0x3f,0x6,0x6a,0x9b,0x40,0xfc,0x54,0x8,0xc0,0x17,0xb6,0x9f,0xc0,0xd3,0x44,0xb5,0xbf,0x34,0x95,0x9,0xc0,0xea,0xda,0x6e,0x40,0xfb,0x92,0x73,0x40,0x24,0x54,0x95,0x40,0x10,0x7b,0x5a,0x40,0xdc,0xb3,0x9c,0x3e,0xe2,0x38,0x28,0xc0,0xda,0x28,0x63,0x3f,0x92,0x62,0x71,0xbf,0x20,0xb9,0xd,0xc0,0xb,0xf1,0x86,0xc0,0x3f,0x55,0x88,0x40,0x72,0xdb,0x92,0xc0,0x87,0xf1,0xae,0xbf,0x44,0x5c,0xaf,0x3f,0x8e,0xd8,0x3b,0xc0,0x1,0x9a,0xa5,0xbf,0x5,0xce,0x85,0xc0,0x39,0x76,0x91,0x3f,0x5e,0xfc,0x91,0x40,0xe2,0x1e,0xd1,0x3f,0x6,0x13,0x25,0xbf,0x70,0x9d,0x64,0x40,0xc4,0x77,0x81,0x40,0x98,0x8a,0x86,0x40,0x3a,0x46,0xe8,0xbf,0x7f,0xb7,0xe1,0x3f,0x4e,0x9b,0x9d,0x3f,0xbd,0x6c,0x8f,0x3f,0xc5,0xa9,0x6a,0x40,0x47,0xb7,0x3,0xc0,0x79,0x98,0x5e,0xc0,0xd2,0x7f,0x3,0x40,0xd4,0x6d,0x90,0x3f,0xb1,0xd2,0x1e,0xc0,0xaa,0x2e,0x4c,0x40,0x70,0x3a,0x7,0xbf,0x78,0x6,0x90,0x40,0x42,0x6a,0x80,0xc0,0x1a,0x1d,0x9,0xc0,0xec,0xb7,0x12,0x40,0x83,0x35,0x30,0xc0,0x90,0x10,0x7,0xbe,0x11,0xb7,0x8c,0xbf,0x46,0xdf,0x5c,0x40,0x34,0x0,0x91,0xc0,0x2d,0x19,0x61,0xc0,0x84,0x14,0x83,0xc0,0xf4,0xfe,0x31,0x3f,0x60,0xa6,0x69,0xbe,0x93,0xe2,0xe,0xc0,0xed,0xe9,0x6b,0xc0,0xc4,0x40,0x27,0x40,0x40,0xbc,0x55,0xc0,0xd4,0xb4,0x4e,0xc0,0x1e,0x2d,0x39,0xbf,0x2b,0x7c,0x9e,0xc0,0xb8,0xd4,0xcc,0xbf,0xb8,0x8e,0x1a,0x3f,0x1e,0x72,0x30,0x40,0x90,0x81,0xac,0x3d,0x8b,0xb5,0x97,0x40,0xe8,0x8,0x6b,0xbf,0x5,0x2b,0xf7,0x3f,0xcc,0xe0,0x4c,0xc0,0x54,0x7d,0x21,0xbf,0x5d,0x94,0x80,0x40,0x8,0xbc,0x56,0x40,0xd4,0x26,0xff,0xbe,0xa1,0x13,0x20,0xc0,0x36,0x77,0xd4,0xbf,0x49,0x1d,0x81,0xc0,0xa4,0x25,0x1d,0x40,0xfa,0x7b,0x95,0x40,0xe4,0x5c,0x20,0xbf,0x65,0xfd,0x3a,0xc0,0x18,0xee,0x9e,0x40,0x26,0x8,0xf4,0xbf,0x8,0xd7,0x7c,0xbf,0xfc,0x7d,0x57,0xc0,0xbb,0xfd,0x81,0x40,0x52,0xd2,0x55,0x3f,0x11,0x21,0x9f,0xc0,0x94,0x77,0x96,0x40,0x24,0xe4,0x42,0x40,0xf5,0x4c,0xea,0x3f,0x9f,0x39,0x9e,0x40,0x48,0x7b,0x87,0x3f,0x28,0xb0,0x1a,0xc0,0xd9,0xaf,0xf8,0xbf,0xf,0x97,0x24,0x40,0x1a,0x9b,0x31,0xc0,0x8f,0x3f,0x51,0x40,0xc4,0xd1,0x32,0xc0,0xa4,0xe1,0x82,0x40,0xc2,0x8b,0x7c,0xbf,0x57,0x6a,0x72,0x40,0xbe,0xf0,0x32,0xc0,0x4,0x68,0xbb,0x3f,0xd7,0xcb,0x63,0x40,0x6a,0xa,0x95,0x3f,0x9e,0xc5,0x25,0xbf,0x39,0x4a,0x42,0xc0,0xa8,0x5b,0x15,0xc0,0x2a,0x65,0xf7,0x3f,0xc6,0x48,0x84,0x40,0x18,0x59,0x33,0xc0,0x7b,0x61,0x1b,0xc0,0xb4,0x41,0x45,0xc0,0x5c,0x70,0xb0,0x3e,0xee,0x43,0xa,0xc0,0x80,0xbb,0xdc,0x3f,0xad,0xdf,0xef,0xbf,0xeb,0xc8,0xaa,0xbf,0x9d,0xce,0x8e,0x40,0x46,0x10,0x21,0xc0,0x48,0x44,0x8a,0xc0,0x8a,0x88,0x30,0x3f,0xde,0xb4,0x71,0xc0,0xfb,0x8a,0xc9,0xbf,0x16,0xe3,0x7d,0xc0,0xce,0xf6,0x64,0xc0,0xf0,0x65,0xe5,0x3e,0xf9,0x5b,0x11,0x40,0x25,0xdb,0xa4,0xbf,0xd0,0xf6,0x99,0xc0,0xca,0xc0,0x82,0xc0,0xa0,0x11,0xa8,0xbe,0xb4,0x2f,0x20,0x40,0x3e,0x97,0x9d,0xbf,0xd8,0xeb,0x8,0x40,0xf9,0xa,0x83,0x3f,0x1a,0x2c,0x8c,0x40,0xd4,0x75,0xd,0x40,0xd8,0xb8,0x4d,0x3f,0xfa,0x44,0x27,0xc0,0x14,0x5c,0xee,0xbe,0x7e,0x39,0x85,0x40,0xc6,0xed,0xeb,0x3f,0x82,0xe2,0x53,0xc0,0xca,0xe7,0x7e,0x40,0x3d,0xf8,0x2b,0x40,0xb0,0xb7,0x30,0xc0,0x60,0xb3,0xb4,0x3e,0x13,0xdf,0xda,0x3f,0x1c,0x69,0x4,0x40,0xc4,0x59,0x39,0xbf,0xb8,0x81,0x1d,0xbe,0x7e,0x60,0x3f,0x40,0xb0,0x4,0x8c,0x3d,0xba,0x97,0x17,0xc0,0x7a,0x8d,0x6d,0x40,0xa6,0x93,0x66,0x40,0x1a,0xe4,0x3,0xc0,0x71,0xc5,0x90,0xc0,0x1d,0x3e,0x1a,0xc0,0x49,0x1a,0x67,0xc0,0x6c,0xac,0x4d,0xbf,0x30,0x32,0x8c,0xc0,0xd6,0x88,0x6e,0xc0,0x9c,0x5,0xc7,0x3f,0x2a,0xe,0x10,0xbf,0x4c,0x36,0x2a,0xbf,0x70,0xa3,0x43,0x3f,0x28,0xf7,0xc6,0x3f,0xa2,0x8a,0x66,0x40,0x24,0xd6,0x25,0xbf,0xc,0xbf,0x8e,0xbe,0x65,0x13,0x95,0xc0,0x2d,0x25,0x9a,0xc0,0xd2,0x1e,0x59,0xc0,0x5d,0x7b,0x29,0x40,0xce,0x31,0x20,0x40,0xac,0x14,0xdf,0x3f,0xf0,0x73,0x2c,0x40,0xfc,0xe2,0x40,0xbf,0x1a,0xbf,0x57,0xc0,0xea,0x4d,0x65,0x40,0x85,0x68,0x94,0xbf,0xc8,0x96,0x61,0xbf,0xc8,0x1c,0x48,0xc0,0x59,0xcc,0x59,0x40,0x52,0xfa,0x73,0x40,0x4a,0xf0,0x19,0xc0,0x9a,0xc0,0x89,0x40,0xa4,0x1c,0x4d,0x40,0xeb,0xdd,0xb3,0x3f,0x54,0x5c,0x18,0xc0,0x8d,0xbe,0x56,0xc0,0x4,0x5f,0x35,0x3f,0xe8,0x63,0xd,0x40,0x1c,0x97,0x51,0xc0,0x30,0x12,0x71,0x40,0x12,0x39,0x46,0x40,0xf0,0xf0,0xaf,0x3d,0x81,0xe2,0x9f,0xc0,0x1e,0xd,0x7a,0xc0,0xc6,0x10,0x62,0x40,0x2c,0x42,0xf5,0x3e,0xa0,0x5,0x52,0xbf,0x4e,0x7c,0x4d,0xc0,0x88,0x19,0x15,0xc0,0x3f,0xb2,0x85,0x40,0x7f,0x56,0x18,0x40,0x8c,0x17,0xca,0x3e,0x72,0x27,0x74,0x40,0x71,0xce,0x3a,0xc0,0x28,0xe,0xd8,0xbf,0x9a,0xfa,0xe2,0x3f,0xab,0x92,0x73,0xc0,0xce,0x9f,0x8d,0x40,0x7c,0x42,0x4f,0x40,0xde,0x5f,0x55,0x3f,0xbc,0x18,0x7d,0xc0,0xaa,0x8f,0x6f,0x40,0xe9,0x2d,0xe8,0xbf,0x8a,0xe,0x4b,0xbf,0xfc,0x62,0x85,0x40,0xcc,0x29,0x8c,0xbf,0x16,0xd1,0x97,0x40,0x26,0x69,0x4,0xbf,0xb4,0x98,0x3f,0xc0,0x5d,0x35,0x90,0xbf,0x64,0x12,0x95,0xc0,0xaa,0x16,0x43,0x40,0xa4,0xd7,0x17,0x40,0x2a,0x83,0x68,0x3f,0x8d,0x18,0x8c,0xc0,0x36,0x3c,0xce,0x3f,0x1c,0xba,0x35,0x40,0x48,0x65,0x89,0x40,0x4c,0xcf,0x6,0xc0,0xb8,0xc6,0x0,0x40,0x38,0xc1,0x15,0x40,0xe8,0xe3,0x21,0xbf,0xf4,0x6f,0xe6,0x3e,0x88,0x40,0x4a,0x40,0x30,0x8c,0xd4,0x3e,0xcd,0xf7,0xbc,0xbf,0xd8,0x5d,0xf6,0x3f,0xd8,0x8a,0xab,0x3e,0x93,0x7c,0xd6,0xbf,0xbe,0xb5,0x1,0xbf,0xb6,0x27,0x3a,0x40,0xfc,0x2f,0x9e,0x40,0x97,0xf6,0xa8,0xbf,0xf7,0x5a,0x78,0x40,0x1b,0x6d,0x9a,0x40,0xa4,0x6,0x3c,0x40,0xa,0x49,0x1d,0x40,0xfc,0xa,0x87,0xc0,0xbe,0xe1,0x13,0xc0,0x62,0x0,0x4,0xc0,0xf1,0xc3,0x9b,0x40,0x78,0x11,0x4b,0x3f,0x47,0x8,0x88,0xc0,0x50,0x16,0x8e,0xc0,0x4f,0x90,0x89,0xc0,0xbf,0x25,0x68,0xc0,0x1e,0x41,0x41,0xc0,0x60,0x6f,0x2a,0xc0,0xd8,0xe3,0x6d,0x40,0x8e,0x50,0x3,0xc0,0x86,0x28,0x93,0x40,0x9a,0x5a,0x92,0xbf,0x44,0x42,0x81,0xc0,0x51,0xbe,0xea,0xbf,0xfc,0xde,0xd,0xc0,0x2,0xfc,0x5b,0xc0,0xc5,0x3c,0x95,0xc0,0x0,0x70,0x32,0x3e,0x8c,0x6e,0x78,0xc0,0x5d,0x2b,0xb8,0xbf,0xf6,0x38,0xa8,0xbf,0xb6,0xc7,0x38,0xc0,0x40,0xf3,0x41,0xbe,0x66,0xf4,0x77,0xc0,0x9e,0xe,0xd0,0xbf,0x2a,0x9f,0x8d,0x40,0x7e,0xfa,0x93,0x40,0x38,0x44,0xce,0x3e,0x6e,0xd4,0x94,0x3f,0x3,0x22,0x8e,0x40,0xfa,0xa3,0x99,0x40,0x30,0xdc,0x16,0xc0,0x14,0x67,0x4a,0x3f,0xea,0x4e,0x7d,0xbf,0xfe,0x7f,0x5b,0xc0,0x5d,0x4,0x8e,0x40,0x6b,0xcd,0x7d,0x40,0x8,0xbb,0x5c,0x3e,0xbb,0xed,0x83,0x40,0x31,0xec,0xaa,0x3f,0x67,0x42,0x53,0x40,0x5a,0x89,0x7,0x40,0xad,0x6f,0x17,0x40,0x87,0x75,0xe4,0x3f,0xd,0x98,0x20,0x40,0x2b,0x99,0x8c,0x40,0xd9,0x44,0xfa,0x3f,0x4b,0x1f,0x4c,0xc0,0x62,0x7a,0xeb,0x3f,0x1d,0xc4,0x9f,0x40,0x19,0xa7,0x84,0x40,0xb,0xd0,0x49,0x40,0xfd,0xa0,0xf2,0xbf,0xc6,0xd,0x9e,0x40,0x5a,0x9d,0x69,0x3f,0x73,0x21,0x2c,0xc0,0xe0,0x54,0x40,0xbe,0xc8,0x7b,0x68,0x40,0xd0,0xed,0x92,0xc0,0xdf,0xa1,0x92,0xbf,0xc,0x8a,0x6e,0x40,0xd2,0x68,0xb0,0xbf,0x16,0x39,0x1,0xc0,0xb4,0x8a,0xac,0xbf,0x4c,0xb9,0xd1,0x3f,0x12,0xec,0x76,0xc0,0xaa,0xef,0x21,0x3f,0xcd,0x7e,0xa4,0x3f,0x2d,0xf7,0xa8,0x3f,0xd0,0x78,0xcf,0xbd,0x0,0x78,0x1d,0x40,0x74,0x1c,0x97,0xbe,0xfe,0x33,0x78,0x40,0xa1,0xda,0x53,0x40,0xff,0x1d,0x5d,0xc0,0x42,0x22,0x7a,0xbf,0x28,0xe1,0x78,0x40,0xd0,0x54,0x0,0xbf,0xd8,0xc2,0xc3,0xbf,0x68,0x4c,0xa0,0xbe,0x19,0x17,0x93,0xbf,0x18,0x53,0xdf,0xbf,0x8a,0x9c,0x8d,0x3f,0x5a,0xd2,0x86,0x40,0x32,0x8c,0x39,0x3f,0xe3,0xef,0x33,0x40,0x92,0x13,0x77,0x40,0x56,0x3d,0x50,0xc0,0x99,0x9b,0x63,0xc0,0x36,0xa3,0x3c,0xbf,0x8,0xa7,0xbe,0x3f,0x76,0x4d,0x1b,0xbf,0x0,0xf8,0x15,0xc0,0x14,0x3e,0x5c,0xc0,0xc0,0x86,0x15,0x3e,0x93,0x14,0x6e,0x40,0x78,0xdc,0x5c,0x3e,0xc3,0x68,0x98,0x40,0x7e,0x71,0x17,0xc0,0x4e,0xbe,0x93,0x40,0xf6,0x27,0x4d,0xc0,0x41,0x3d,0x7e,0x40,0x2c,0xc0,0xb,0x3f,0xcd,0x24,0x9f,0x40,0x5a,0x42,0x98,0x40,0x99,0xfe,0xda,0xbf,0x4c,0x34,0xbb,0xbe,0xdd,0xc9,0xad,0xbf,0xc,0x60,0x8e,0x3f,0xf2,0xba,0x1d,0xc0,0xba,0xba,0x94,0xbf,0x32,0xf5,0x41,0xc0,0x3b,0xe3,0x42,0x40,0xe,0xd4,0x7c,0x40,0x90,0xe7,0xc,0x3f,0xd8,0xd1,0x1b,0xbe,0xec,0x2,0x70,0xc0,0x6,0xc6,0x91,0xc0,0x1,0xe9,0x76,0xc0,0x52,0xef,0x6c,0xc0,0x7a,0xa5,0x83,0xc0,0xf6,0x9,0x16,0x40,0xb2,0x19,0x74,0xc0,0x32,0x59,0x19,0x40,0xcf,0xec,0x54,0x40,0x0,0x7d,0xa5,0xbc,0x38,0x9e,0x97,0x3f,0x92,0xb9,0x47,0x40,0x9d,0x17,0x91,0xc0,0x15,0x34,0x8a,0x40,0x31,0x8f,0x9d,0x40,0xb4,0xad,0x98,0x40,0xde,0xd6,0xf9,0xbf,0x2,0x72,0x44,0x40,0xf3,0x66,0xeb,0xbf,0x12,0x1c,0x47,0x3f,0x16,0xce,0x85,0x40,0x13,0x16,0x86,0x3f,0x18,0xc,0xea,0x3f,0x11,0x62,0xaa,0xbf,0xe6,0xe5,0x17,0xc0,0x77,0x89,0x82,0x40,0xb9,0x66,0x90,0xc0,0x10,0xd8,0x5f,0x3f,0x3c,0x8a,0xf7,0xbe,0xbb,0x44,0xb4,0xbf,0x3e,0x4d,0x9c,0xc0,0xd2,0x48,0x3e,0xc0,0xd0,0xa5,0x36,0xc0,0xb4,0xe9,0x40,0x3f,0x88,0xa0,0xf9,0x3f,0x1a,0x6f,0x91,0xc0,0xba,0x1c,0xf6,0xbf,0x76,0x90,0x98,0xc0,0x2e,0xd6,0x5a,0x40,0xf8,0x0,0x93,0xc0,0x92,0x3a,0x2b,0xbf,0x4,0xae,0x36,0xbf,0xb2,0x75,0x2f,0xc0,0xc3,0xe2,0x65,0x40,0xa6,0xe7,0x8,0x40,0x52,0xfa,0x26,0x40,0x72,0x95,0x61,0x40,0xc7,0xd4,0x1f,0xc0,0x5b,0xd2,0x1a,0x40,0x29,0x55,0x81,0x40,0xdb,0xf0,0x92,0xbf,0xb4,0x88,0xd1,0xbe,0x68,0x31,0xf2,0x3e,0x81,0x1e,0x9d,0xc0,0x5c,0x39,0x8,0xbf,0xf0,0x20,0x19,0xbf,0x7c,0xa6,0x68,0xc0,0xbc,0x17,0x6a,0x40,0xaa,0xc7,0x8c,0xc0,0x18,0x28,0x0,0xc0,0x8,0x6f,0x3c,0x40,0x2c,0x8a,0x46,0x3f,0xee,0xba,0x1,0x40,0x50,0x7d,0x5c,0x3e,0xe0,0xe2,0x94,0xc0,0x98,0xce,0x65,0xc0,0x50,0xae,0xd8,0xbf,0xc6,0x77,0x57,0xc0,0xc,0x54,0x47,0xc0,0x6e,0x26,0xcf,0xbf,0x7e,0x9d,0x8e,0x40,0xc9,0x1,0x78,0x40,0x9e,0x9f,0x80,0x3f,0xc7,0x47,0x4d,0xc0,0x48,0xdb,0x40,0xc0,0x57,0xad,0x9c,0x40,0x56,0x97,0x1e,0x3f,0xde,0xef,0x10,0x3f,0xd4,0x59,0x35,0xc0,0xed,0x5f,0x23,0xc0,0x6e,0x50,0x1d,0x40,0xf4,0x9d,0xdb,0xbe,0xaa,0xa2,0x5,0xbf,0xa6,0xa5,0x1d,0xc0,0x7e,0x20,0x6d,0xc0,0xdf,0x7e,0x4e,0xc0,0xc8,0x84,0x9d,0xc0,0x5d,0x88,0x92,0x40,0x16,0xe2,0x3b,0x3f,0xb4,0x33,0x33,0x3f,0x88,0x43,0x70,0x40,0xa6,0xc7,0x20,0x40,0x8a,0xfb,0x3a,0xbf,0xd1,0x21,0x46,0x40,0xb0,0x4b,0xa4,0x3d,0xef,0xf7,0x9b,0xc0,0x56,0xb2,0x81,0x40,0x34,0x8a,0x3c,0xc0,0xca,0xd1,0x71,0xc0,0x12,0xd7,0x93,0xbf,0x17,0x38,0x9c,0x3f,0x80,0xb8,0x7b,0x40,0x43,0x63,0x9e,0xc0,0x25,0xbc,0x95,0xc0,0x22,0x3f,0x55,0xc0,0xf0,0xef,0x3a,0xc0,0xa3,0x4f,0x9d,0x40,0x20,0xc3,0x9e,0xbd,0xd0,0x41,0x68,0x40,0xaf,0x73,0xb4,0x3f,0xdd,0xf8,0x3a,0x40,0x8a,0xe8,0x25,0xc0,0xfb,0x50,0xb,0x40,0x2c,0x4f,0xe8,0x3f,0x36,0x4c,0xdc,0x3f,0x2a,0x41,0x70,0xc0,0x34,0x85,0xdc,0xbf,0xdf,0xe7,0x87,0x40,0xbe,0xa,0x8c,0xbf,0xc8,0x78,0x68,0xc0,0x1a,0x7a,0x87,0xc0,0xa4,0xe3,0x81,0xbf,0x49,0x18,0x14,0x40,0x81,0xcb,0xbc,0xbf,0x8c,0x39,0x64,0x40,0xa6,0x62,0x8,0x40,0xb6,0x0,0x80,0xc0,0xa0,0x4e,0x54,0x3d,0xbc,0xde,0x91,0x40,0xf8,0xf,0x47,0x40,0x6d,0xd4,0xe5,0xbf,0x89,0x83,0x6d,0xc0,0x36,0x37,0xa6,0x3f,0xae,0x9c,0x19,0x40,0xe3,0xbb,0x83,0xbf,0x76,0x82,0x88,0xc0,0x6a,0x93,0x9a,0x40,0x4a,0xa5,0x1a,0x40,0xd,0x4d,0x9f,0xc0,0x0,0x6e,0x61,0x3e,0x29,0xe2,0x8f,0xbf,0xe,0x70,0x94,0x40,0x54,0xf3,0x28,0x40,0xf3,0x99,0xa9,0x3f,0xe8,0xb4,0xbc,0xbf,0x6c,0xf0,0x6b,0xc0,0xdd,0x27,0xc8,0x3f,0x8c,0x6f,0x1,0x40,0x0,0xb,0xdb,0x3d,0x85,0xa6,0x8c,0x40,0x93,0xaa,0x37,0x40,0x8c,0xba,0x85,0xc0,0x3c,0x22,0x8d,0xbe,0xac,0xb0,0xe,0xc0,0xb8,0x14,0x6c,0xbe,0x60,0x65,0xe9,0x3e,0x88,0x39,0x1d,0x3f,0xfe,0x32,0x44,0x40,0xd0,0x9a,0x5c,0x40,0x5c,0xd5,0x87,0x3e,0x53,0x5c,0xf0,0xbf,0x8c,0x49,0x1f,0xc0,0xfc,0xc9,0x25,0x40,0xa5,0xb8,0xe7,0x3f,0x38,0x8c,0x87,0x40,0x1d,0xe2,0x86,0xc0,0x80,0x4b,0x74,0xc0,0xa8,0x7e,0x3f,0xc0,0x1c,0x3d,0xd,0x40,0x32,0xd7,0x78,0x40,0x5c,0x57,0xce,0xbe,0x1c,0xe9,0x85,0xc0,0x24,0xb5,0x4b,0x3f,0xdf,0x9c,0x89,0xc0,0x7f,0x6d,0x4c,0x40,0x66,0x32,0x70,0xc0,0x94,0xf2,0x39,0x3f,0x40,0xea,0x63,0x3d,0x5c,0x18,0x21,0x40,0x60,0xaf,0x5d,0xc0,0x5a,0x9f,0xf,0x40,0xf0,0x12,0xe,0x3e,0xc8,0x63,0x1c,0x3f,0x86,0x11,0x59,0xc0,0x9d,0x2a,0x97,0x40,0x84,0x2,0x67,0xbf,0xec,0x74,0x3a,0xc0,0xb3,0x52,0xb3,0xbf,0x8f,0x20,0xbe,0xbf,0xa5,0x16,0x9f,0x40,0xb6,0x4f,0x6a,0x40,0x0,0xc8,0xb4,0x3c,0x3b,0x24,0x9a,0x40,0x80,0x19,0xed,0xbc,0xe,0x6f,0x16,0x3f,0xee,0x88,0x67,0x3f,0x5c,0x77,0xea,0xbe,0xcc,0x2c,0x72,0xc0,0x36,0x5b,0xbe,0x3f,0x34,0xcd,0xc6,0xbe,0x48,0xc9,0xfc,0x3f,0x10,0xa,0x31,0x40,0x72,0xbe,0x67,0x40,0x47,0xd6,0xaa,0x3f,0xc4,0x83,0x80,0x3e,0x31,0xc7,0x9,0xc0,0x93,0xd2,0x95,0x40,0x8d,0x9e,0x8d,0xc0,0xe8,0x56,0x27,0xc0,0xee,0x34,0x20,0x3f,0xf,0x98,0x19,0x40,0x48,0x99,0x39,0x40,0xb9,0x78,0x8d,0xc0,0x61,0x56,0xde,0x3f,0x47,0x20,0x85,0xc0,0x1a,0xbc,0x62,0x40,0xe1,0xf4,0x87,0xc0,0x22,0x45,0x63,0x3f,0x9c,0xb3,0x52,0x3f,0x8a,0x79,0x88,0xbf,0x3e,0xfc,0x10,0x40,0x33,0x9a,0x5c,0x40,0x59,0xdb,0xde,0x3f,0x9d,0x3b,0x86,0x3f,0xef,0xbd,0x9c,0x40,0xda,0x24,0x97,0x40,0xd6,0x60,0x5c,0xc0,0x69,0x2,0x90,0x40,0xe,0xee,0x8b,0x40,0x40,0x61,0x86,0x3c,0xf3,0x90,0xd5,0x3f,0x86,0x41,0x1,0xc0,0xc4,0x55,0xf9,0xbf,0xa,0xf0,0x52,0x3f,0x4e,0x8e,0xe,0xc0,0xcc,0xaa,0xa6,0x3f,0x54,0x4c,0x7,0x40,0xb3,0x4f,0x3b,0x40,0xe6,0x2a,0x64,0xc0,0x8,0x28,0x22,0xc0,0xd0,0x5e,0x5f,0xbf,0xa6,0xd,0x0,0x40,0x24,0xf6,0x0,0xc0,0x60,0x44,0x17,0xc0,0x96,0xf5,0x96,0xbf,0xe1,0x48,0xda,0x3f,0x8,0x43,0x52,0x3e,0xb5,0xae,0xa0,0xbf,0xc3,0x8a,0xa2,0x3f,0x7b,0xc,0x70,0xc0,0xc,0x80,0x99,0xc0,0x9c,0xde,0x34,0x40,0x4b,0x1a,0x8f,0x40,0x60,0x29,0x37,0xbe,0x6e,0x1a,0x27,0x40,0xd3,0x4a,0x61,0x40,0x78,0x38,0x89,0x40,0xb0,0x6,0xc6,0x3e,0xd8,0x3c,0xef,0xbe,0xb9,0x7e,0x99,0xc0,0x38,0x28,0xae,0xbe,0x8c,0x4a,0xb5,0xbf,0x70,0x65,0x18,0xbe,0x58,0x14,0x99,0x40,0xeb,0xe9,0xcf,0xbf,0x76,0xc3,0x81,0xc0,0x3f,0x93,0x91,0x40,0x40,0xa4,0x72,0x3e,0x56,0x82,0x4f,0xc0,0x58,0xf3,0x60,0x3e,0x70,0x27,0xa4,0xbd,0xa3,0xe7,0xd3,0x3f,0x1e,0xd9,0x93,0x40,0xff,0x55,0x2f,0xc0,0x49,0x51,0x3a,0xc0,0x30,0x7e,0xa6,0xbe,0x1a,0x72,0x31,0x40,0x52,0x5d,0x9f,0x40,0xca,0x5d,0x4d,0xc0,0x42,0x93,0x18,0xc0,0x74,0x40,0xaa,0xbe,0x3a,0x8,0x84,0xc0,0x14,0xbf,0xea,0xbe,0xca,0xad,0x72,0x40,0xc4,0xf3,0x90,0x40,0x52,0xff,0x67,0x40,0xe4,0x18,0x50,0xbf,0xe,0xd8,0x1d,0xc0,0xd4,0xe8,0x7b,0x40,0x5c,0xa2,0xba,0xbf,0xa8,0xb7,0x33,0x3e,0xe,0xbc,0x93,0x40,0x20,0xfb,0xca,0xbe,0x36,0x7b,0x6e,0x40,0xc3,0xed,0x37,0xc0,0x20,0x80,0x96,0x3d,0xd0,0xdc,0x9e,0x40,0x0,0x30,0xca,0x3b,0x92,0x38,0x50,0xc0,0xbc,0xca,0x87,0x3f,0x44,0x8,0x1c,0xc0,0x3,0xf8,0x2e,0x40,0xb0,0x5e,0x69,0x40,0xac,0x51,0x63,0xbf,0xad,0xd7,0x40,0x40,0x0,0x4d,0x83,0x40,0x56,0xed,0x5e,0x40,0x62,0x96,0x3d,0x40,0x59,0x4e,0x95,0xc0,0x2a,0x38,0x83,0xc0,0x80,0x26,0x80,0x40,0x83,0x40,0xf0,0x3f,0xa8,0xe3,0x7a,0xc0,0x6a,0x48,0x89,0x40,0x80,0x60,0xab,0x3e,0x68,0x5a,0x90,0xc0,0x71,0x81,0x0,0xc0,0x77,0xe2,0x86,0xc0,0x0,0x6a,0xe0,0xbf,0x78,0xae,0xf1,0xbe,0xc4,0xb5,0xda,0xbe,0x8a,0xd,0x33,0xbf,0x64,0xc8,0xff,0xbe,0x13,0x43,0x82,0x40,0xc4,0x49,0x5f,0x40,0x5,0xcd,0x92,0xc0,0x22,0x6b,0x95,0x3f,0x94,0x6,0x24,0xc0,0x48,0xde,0x71,0xbf,0x99,0xf7,0xfa,0xbf,0xb,0xc1,0x21,0xc0,0x3e,0xcc,0x2c,0xc0,0x7f,0x42,0x9e,0xc0,0x49,0x67,0xf4,0xbf,0x8c,0x2,0x78,0xbf,0x90,0x1c,0x93,0xc0,0x3c,0x76,0xca,0x3f,0x42,0x5f,0x29,0xc0,0xab,0xab,0xb7,0xbf,0x54,0x9c,0x0,0x40,0x13,0x8,0x9a,0x40,0x2,0x37,0x19,0x40,0xa2,0x5e,0x6d,0xc0,0x4c,0x92,0x67,0x40,0xa2,0xcc,0x1,0xbf,0x2,0xb9,0xe9,0x3f,0xf6,0xdc,0x44,0xc0,0x2e,0xb2,0x95,0x40,0x4b,0x4c,0x4c,0xc0,0xc4,0xf6,0x48,0x40,0x9a,0x1b,0x86,0x40,0x48,0x6d,0xf9,0x3e,0x72,0xfc,0x77,0x40,0x20,0xd2,0x3e,0x40,0xb0,0x10,0x41,0xbf,0x4,0xcd,0x21,0x3f,0xf0,0x19,0xd7,0x3d,0x2a,0x15,0x4f,0xbf,0x30,0xc0,0x8d,0xc0,0xce,0xe2,0x34,0x40,0xfa,0xeb,0x98,0xc0,0xf7,0x87,0xe9,0x3f,0x72,0xd6,0xe8,0xbf,0xfc,0x60,0xa2,0x3e,0x68,0xff,0x83,0xbf,0x86,0xbb,0x36,0xc0,0x91,0x3c,0xf0,0xbf,0xc8,0x39,0x90,0xc0,0x89,0xc6,0x3e,0xc0,0xfa,0x13,0x26,0x40,0x78,0x16,0x84,0x40,0xaf,0xfe,0x97,0xc0,0x95,0x5,0x92,0xbf,0xe8,0x81,0xe5,0x3e,0x4b,0x11,0x32,0xc0,0xce,0x57,0x6d,0x3f,0x26,0xc5,0xc,0xbf,0xae,0x73,0x53,0x3f,0xd3,0xe3,0x31,0xc0,0x3f,0xdc,0x89,0xc0,0xc8,0x93,0x5,0xbf,0xc,0x7,0x5a,0x40,0xa0,0x2b,0x8b,0x40,0xa6,0xf4,0x7d,0x40,0x6c,0x70,0x87,0x3e,0x1c,0x40,0x71,0x40,0xfb,0xa9,0x2,0xc0,0xca,0xbd,0x68,0x40,0xa4,0x76,0x46,0x3f,0xca,0x6f,0x72,0xc0,0xfa,0xe7,0xd1,0xbf,0x2f,0x6f,0x8e,0x40,0xe,0x97,0xeb,0xbf,0x87,0x26,0x9e,0xc0,0xfc,0x7a,0x9a,0x40,0x13,0x61,0xc7,0x3f,0xb,0xe9,0x8d,0x3f,0xbe,0x86,0xd,0xc0,0x94,0xca,0x90,0x40,0xc3,0x99,0x83,0x40,0x7a,0x87,0x81,0xc0,0xb0,0x5e,0xc,0x40,0xe2,0xaa,0x92,0x40,0x2,0xee,0x72,0xc0,0xfb,0xff,0xb8,0x3f,0x6d,0x19,0x8,0xc0,0x7e,0x68,0x63,0x40,0x10,0xa2,0x5b,0x40,0x14,0xc2,0x24,0x40,0xe2,0x8c,0xa9,0xbf,0x70,0xa0,0x81,0x40,0xda,0xf0,0x98,0xbf,0xfe,0x40,0x54,0x40,0x5d,0x47,0x17,0x40,0x69,0xa8,0x83,0xc0,0xd2,0xed,0x49,0xc0,0xa8,0xb0,0xce,0xbe,0x31,0x59,0x83,0xc0,0x1a,0xe,0xa5,0xbf,0x42,0x44,0x2d,0x40,0x5,0xaa,0x90,0x40,0xd4,0x79,0xca,0xbe,0x81,0x3f,0x99,0xbf,0x8c,0x4f,0x71,0xc0,0x1c,0x44,0xc2,0x3f,0x8e,0x28,0x37,0x3f,0xa0,0x90,0x8,0x40,0xca,0x54,0x87,0xc0,0xa0,0x5,0x7a,0x3e,0xec,0x6e,0xd,0xc0,0x1a,0x95,0x34,0xc0,0xe9,0x8,0x1f,0x40,0xea,0x6,0x83,0xc0,0xb7,0x3d,0x3f,0xc0,0x10,0xa2,0x6b,0x40,0x2b,0x44,0x51,0xc0,0x2c,0x94,0x57,0x40,0x16,0x96,0xe9,0xbf,0x2b,0xc7,0x5a,0xc0,0xec,0x54,0xa5,0xbe,0xd0,0xdd,0x44,0xc0,0x0,0xdf,0xa7,0x3f,0x9e,0xb7,0x63,0x40,0x84,0x77,0x72,0xc0,0xbb,0x8e,0x58,0xc0,0xa,0x53,0x5e,0xbf,0xc8,0x7a,0x28,0x3e,0xc7,0x86,0x8a,0x40,0x2e,0x5a,0x7b,0x40,0x2,0x28,0x2d,0xc0,0x42,0xcb,0x50,0x40,0x92,0x2f,0x39,0x40,0x1e,0x20,0x75,0xc0,0x15,0x15,0x46,0x40,0x47,0x3c,0x9a,0x40,0x25,0xd1,0x95,0xbf,0x8e,0x1e,0x8a,0x40,0xe2,0xce,0x97,0x40,0x98,0xc1,0xa0,0x3f,0xf0,0x4f,0xdd,0x3d,0x4e,0xca,0x84,0x40,0xae,0x3a,0x5d,0x40,0xd4,0x40,0x98,0x40,0x4c,0x34,0x4d,0xc0,0x1f,0x47,0xda,0x3f,0x4e,0x55,0x43,0x40,0x66,0x4d,0x50,0xc0,0xe0,0xbd,0x59,0x3f,0x86,0xce,0x2d,0xc0,0xaa,0xa0,0x66,0xc0,0xc,0x2f,0x9d,0x40,0xe4,0xb3,0x81,0xc0,0xc2,0x71,0x92,0xc0,0x28,0x3e,0x85,0x40,0x20,0x4f,0x3d,0x40,0xf9,0xda,0x8f,0x3f,0xb2,0x6a,0x67,0x40,0x40,0xf7,0x1a,0x3e,0x8f,0x6c,0xcc,0xbf,0x52,0x45,0x3d,0xbf,0xb2,0x99,0x6f,0x3f,0xee,0xf0,0x98,0xc0,0x34,0x2b,0x91,0xc0,0x94,0xc,0xe6,0xbf,0xfa,0x4b,0x11,0x3f,0x2a,0xd7,0x53,0x40,0x91,0xc8,0x16,0xc0,0x44,0xd9,0x86,0xc0,0xaa,0xaa,0x8f,0xc0,0xd0,0xec,0xab,0xbd,0x54,0x45,0x48,0xc0,0xe,0xa1,0x8c,0xbf,0x88,0x7d,0x4e,0xc0,0x4,0x36,0x10,0x40,0x6,0x92,0xd5,0xbf,0x4e,0x9f,0x5f,0xc0,0xec,0x25,0xca,0x3f,0x0,0xb6,0x46,0xbe,0x30,0xb4,0x47,0x40,0x6c,0x4f,0x8a,0x3e,0x12,0x6c,0x4,0x40,0x90,0xcb,0xd5,0x3f,0x8,0x0,0x33,0xc0,0xfc,0xb9,0x7f,0x40,0x2a,0xc5,0x67,0x3f,0x94,0x8a,0x3d,0xbf,0x26,0x1f,0x35,0x3f,0x24,0x82,0x90,0x40,0xf2,0x2,0x6c,0x40,0x16,0x67,0x87,0x40,0x28,0xf,0x36,0xc0,0xd1,0x8c,0x9c,0xbf,0x73,0x80,0x8e,0x3f,0x90,0x25,0x2e,0xbf,0xc6,0xf7,0x70,0xbf,0x59,0xc9,0x70,0x40,0x8c,0xa7,0x2b,0xc0,0x2e,0xee,0x12,0xc0,0x1a,0xe2,0x37,0x3f,0xdc,0xa1,0x12,0xc0,0x8e,0xca,0x35,0xc0,0x84,0xd8,0x7f,0xc0,0x96,0x99,0x57,0x40,0x6e,0x6f,0x1f,0xc0,0xcc,0x88,0x20,0xbf,0x30,0xc,0x50,0x40,0x64,0x6e,0x99,0xc0,0xd0,0xa9,0x85,0xbd,0xd7,0xc1,0x13,0xc0,0xa2,0x19,0x66,0xc0,0x1a,0xf0,0x1f,0x3f,0x5b,0xe9,0xc4,0x3f,0x83,0x98,0x4f,0x40,0xb4,0xb1,0x9f,0x40,0x7f,0x95,0xd1,0x3f,0x10,0x1c,0xba,0xbd,0xb2,0x37,0x29,0xc0,0xdb,0xd9,0xb3,0xbf,0x2a,0xaf,0x91,0xc0,0x7f,0x85,0x92,0xc0,0x59,0xfc,0x74,0xc0,0xcc,0xfb,0x5f,0x40,0x12,0xf4,0x7,0x40,0x1a,0xbb,0x92,0x40,0x48,0xa0,0x5c,0x40,0xd4,0xe2,0x5e,0x40,0x2f,0x74,0x84,0x3f,0x4f,0xe6,0x21,0x40,0x68,0xa2,0xe5,0x3f,0x82,0x71,0x7e,0xc0,0x70,0xa8,0x7d,0xc0,0xca,0x52,0x80,0x40,0xf9,0xa1,0x48,0x40,0x4a,0x5b,0xa5,0xbf,0xaf,0x9e,0x36,0xc0,0x9e,0x85,0x60,0xc0,0x3,0xa2,0x75,0xc0,0x2,0xa4,0xcc,0xbf,0xe0,0x4d,0xd6,0x3e,0x88,0x19,0x15,0x3e,0xfd,0xb1,0xeb,0x3f,0xac,0xd0,0x1b,0x3f,0x6d,0xf7,0xa4,0x3f,0xc2,0xde,0x6f,0x40,0x16,0x2d,0x8f,0x3f,0xa4,0xc8,0xa6,0xbe,0xb5,0xa2,0x1d,0x40,0x7,0xa7,0xdd,0x3f,0x7e,0x78,0x9,0x40,0xdd,0xc0,0xac,0xbf,0x1,0x86,0x9f,0xc0,0xf0,0x28,0xe1,0xbf,0x61,0x95,0x81,0x40,0xfc,0x27,0xdb,0xbf,0x72,0x88,0x20,0xc0,0x9b,0xcc,0x8,0xc0,0x47,0x58,0x44,0x40,0x6,0xb9,0x93,0x40,0x3b,0x4a,0x98,0xc0,0x98,0x84,0xdd,0xbf,0x98,0xb4,0x7d,0x40,0x64,0xb7,0x8e,0x3f,0x36,0x9c,0x4b,0x40,0xce,0xff,0x7c,0xc0,0xd8,0x1e,0x3f,0x40,0xd1,0xbb,0x1f,0xc0,0x16,0x51,0x47,0xc0,0x6f,0x4,0xff,0xbf,0x91,0xd9,0x69,0xc0,0xdd,0x68,0xbe,0x3f,0x9a,0xde,0x56,0x40,0x5f,0xa7,0x50,0xc0,0xa5,0x1a,0xe5,0x3f,0x6e,0xa3,0x6d,0xc0,0x86,0xd1,0x2f,0x40,0xa0,0xaf,0xdc,0xbe,0xdc,0x48,0xad,0x3e,0xda,0xe8,0x7c,0xc0,0x5d,0x58,0xea,0x3f,0x92,0x56,0xf3,0x3f,0x17,0x10,0xe2,0xbf,0x1c,0x15,0xa,0xc0,0x6c,0x82,0x7a,0x40,0x4d,0xba,0x63,0x40,0xa7,0xf1,0x22,0xc0,0x3c,0xad,0xe3,0x3f,0x48,0x2f,0x8,0xc0,0x4c,0xce,0x96,0xc0,0x90,0x25,0x60,0xbe,0xf2,0x14,0x88,0xc0,0xfb,0x2b,0x17,0xc0,0x24,0xbc,0xbf,0xbe,0x31,0xac,0x4c,0xc0,0x72,0x16,0x3a,0x40,0xcd,0x5b,0xbd,0xbf,0x5c,0x1,0x7a,0xc0,0x1a,0xd1,0x57,0x3f,0x56,0x98,0x9d,0x3f,0x4f,0x14,0xab,0xbf,0x22,0xd9,0x71,0xc0,0x81,0x68,0xe,0x40,0x28,0xeb,0xd7,0xbf,0x97,0x71,0x3,0xc0,0x8e,0x72,0x81,0x40,0x38,0x3d,0x34,0xc0,0xd2,0x3a,0x36,0x40,0x60,0xd6,0x57,0x3d,0x85,0x90,0x8a,0xbf,0xc4,0xcf,0x47,0xc0,0x85,0xd0,0x9a,0x40,0x24,0x9a,0xfa,0x3e,0xae,0x9a,0x36,0x3f,0xa3,0x2,0x7f,0xc0,0x2f,0xd9,0x62,0x40,0xe0,0xf5,0x4e,0xbd,0xb9,0xa8,0xe,0x40,0xdc,0x8,0x59,0x40,0xfb,0xa7,0x98,0x3f,0xd1,0x3b,0x3b,0x40,0xec,0xd1,0x14,0xc0,0xf6,0x2,0x6,0x40,0x1f,0xd1,0x2,0x40,0x39,0x4d,0x21,0x40,0x13,0xe0,0xd4,0xbf,0xdc,0x1c,0x33,0x40,0xde,0xb2,0x8b,0x40,0xd0,0x6c,0x1c,0xc0,0x18,0x9d,0x6,0xbf,0x54,0x60,0xf5,0xbe,0x4,0xf8,0x20,0x40,0xa8,0x9,0x19,0xbf,0xba,0x90,0x91,0x3f,0x9a,0x1b,0xf4,0xbf,0xe2,0x49,0xc9,0x3f,0x88,0x39,0x3d,0x40,0x18,0x1,0x7f,0x3f,0x91,0x59,0x9b,0x40,0x78,0x3d,0x8e,0x40,0x3b,0x72,0x63,0xc0,0xea,0xf8,0x5d,0xc0,0xc8,0x89,0x7f,0xc0,0xd8,0xf3,0x83,0xbf,0x14,0x25,0x28,0x40,0x78,0xaf,0x4,0xc0,0xf0,0xb3,0x9c,0xbf,0x8c,0x57,0x14,0xc0,0xed,0x7,0xb5,0x3f,0x87,0x44,0x84,0x3f,0x4c,0x15,0x82,0xc0,0x46,0xed,0x20,0xc0,0x1e,0xf2,0x41,0xbf,0x31,0x81,0x93,0x40,0x9e,0x61,0x97,0xc0,0xb8,0x8d,0x94,0xc0,0xc1,0x4d,0x7,0x40,0x7,0x7b,0xcd,0x3f,0x0,0x3b,0xe2,0xbe,0xde,0x61,0x7e,0xc0,0x9,0xd1,0x1d,0xc0,0xce,0x65,0x5d,0x40,0x36,0x13,0x95,0x40,0x88,0xe2,0x6e,0x3f,0x9f,0xcb,0x9f,0x40,0xaa,0xbb,0x7d,0x40,0x40,0x7e,0xb4,0xbe,0x42,0xf6,0x46,0xc0,0x8a,0x9e,0x2e,0xc0,0x86,0x95,0xbb,0xbf,0xe0,0x8d,0x82,0xc0,0x17,0xc7,0x9e,0x40,0xe8,0x22,0x1a,0x3e,0x38,0x48,0x99,0xc0,0xdc,0xf3,0x20,0xc0,0x99,0x46,0xcf,0xbf,0x8,0xa1,0x81,0xc0,0xf2,0x56,0x89,0xbf,0xf2,0xf9,0x4e,0xc0,0xec,0x0,0xa4,0xbf,0xfe,0xc8,0x6e,0xc0,0x98,0x6f,0x18,0xbe,0xe2,0x80,0x5b,0xc0,0xe1,0xd2,0xff,0x3f,0xcc,0x36,0x98,0x3f,0x5c,0x72,0xb8,0xbe,0x9f,0xc2,0x40,0x40,0xfa,0xe0,0x1a,0x40,0xb4,0x9d,0x8f,0xbe,0x60,0xd9,0xc5,0x3d,0x74,0x7e,0xfd,0x3f,0x68,0x5e,0x89,0xc0,0xae,0x58,0x78,0x3f,0xd0,0x2d,0xcf,0x3e,0x50,0xd3,0xf9,0xbd,0x74,0x99,0xab,0xbf,0x96,0x8b,0x1e,0xc0,0xad,0xe0,0xcb,0x3f,0xe1,0x9c,0x5b,0xc0,0xa1,0xc5,0xf7,0x3f,0x20,0xb0,0x83,0xc0,0x82,0xeb,0xaa,0x3f,0xc4,0x59,0xeb,0x3e,0x98,0x75,0x19,0xc0,0x74,0x30,0x14,0xc0,0x3d,0xcc,0xaf,0xbf,0x8,0xa6,0x14,0xc0,0x88,0x63,0xaf,0xbf,0x91,0xea,0x92,0xbf,0x5f,0xda,0x80,0x40,0xa0,0xf7,0x37,0x3e,0x1b,0xa9,0x8c,0x40,0x10,0xd5,0x7b,0xbf,0x64,0xd3,0x79,0xc0,0xab,0xc2,0x91,0xbf,0xd5,0xff,0x2c,0x40,0xe2,0xd7,0x58,0xc0,0x11,0xb2,0x7f,0x40,0x5c,0xb6,0xe7,0xbe,0xd4,0x5b,0x79,0x40,0x28,0x7f,0xa3,0xbf,0xa3,0xee,0x8c,0xc0,0xf0,0xe4,0x3e,0xc0,0xc8,0xa9,0xec,0x3e,0x9a,0x35,0x66,0xc0,0x9e,0x21,0x8c,0x40,0xe,0xc2,0x85,0x40,0x2a,0xf6,0x98,0xbf,0x4f,0x4,0x6d,0x40,0x56,0x71,0xbf,0x3f,0x8,0x6,0xdd,0xbe,0x4,0xc,0x9e,0xc0,0x77,0xb9,0x87,0xc0,0xcc,0xa3,0x73,0xc0,0xb4,0x14,0x9b,0xbe,0x7c,0xec,0x73,0x40,0x1b,0x49,0xa5,0x3f,0xdc,0x11,0x50,0xbf,0x64,0xa6,0x44,0x40,0x48,0x4e,0xe,0x40,0xc5,0x3a,0x5c,0xc0,0x42,0x75,0x8e,0x3f,0xe4,0x64,0xac,0x3e,0x96,0x2a,0x2,0x40,0xb6,0x7e,0x4,0x3f,0x85,0x89,0xbe,0xbf,0x3c,0x85,0x11,0xc0,0xca,0x93,0x78,0x40,0x3d,0xf7,0xca,0x3f,0x2d,0xfa,0x4d,0x40,0xb5,0x46,0x79,0x40,0x34,0xb2,0x2,0x40,0x87,0x5a,0x7f,0xc0,0x0,0xc1,0x18,0x3f,0x92,0x9,0x40,0x40,0x2f,0x2a,0xb5,0xbf,0x7c,0xe1,0x74,0x40,0x8b,0xd3,0x16,0xc0,0x2,0x5b,0x95,0xc0,0xc5,0x64,0x9f,0x40,0x3c,0x6b,0x4e,0x40,0xc3,0x30,0x83,0x40,0xbc,0xbc,0x44,0x40,0x8b,0x10,0x88,0xc0,0x95,0xaa,0xc4,0x3f,0x16,0x98,0x93,0x40,0x64,0x83,0x35,0xc0,0x14,0xe6,0x57,0x3f,0x5d,0x7d,0xb1,0x3f,0x80,0xfe,0x8d,0xc0,0x90,0x5c,0x1,0x3f,0x7d,0xc8,0xeb,0x3f,0x90,0x88,0xfa,0xbd,0x3f,0xbf,0x84,0xc0,0x2e,0xd,0x23,0x40,0x11,0xb0,0x84,0xc0,0x2e,0x9a,0xc8,0x3f,0x20,0xf5,0x64,0x3e,0x0,0x61,0x6e,0x3e,0x72,0x97,0x64,0xc0,0xf2,0x10,0xf7,0xbf,0xfb,0xe3,0xbb,0xbf,0x7c,0xa6,0x14,0xc0,0xa1,0x4c,0xf3,0xbf,0xc,0x9f,0x15,0x3f,0xbc,0xaa,0x99,0x40,0x94,0x43,0x4,0xc0,0x98,0x8d,0x8a,0xc0,0xed,0x8f,0xaf,0x3f,0x9d,0x6a,0x8f,0x40,0x73,0x58,0x9d,0xc0,0x2a,0x8c,0x8c,0x40,0xcf,0x1b,0x67,0x40,0xe7,0x5e,0xc3,0x3f,0xb1,0xbe,0x3c,0x40,0xcc,0xc5,0x4a,0xc0,0x72,0xb9,0x91,0xc0,0xc6,0x63,0x91,0x40,0x48,0x3c,0x1e,0x40,0x11,0xf4,0x51,0xc0,0x7a,0x83,0x60,0xc0,0x2b,0x56,0xab,0x3f,0x1f,0x9b,0x51,0x40,0x3,0x17,0x8c,0x40,0x2,0x1b,0x21,0x3f,0x4e,0x4d,0x3b,0x40,0x64,0xe7,0xf9,0x3f,0x5,0x4f,0xe2,0x3f,0xc8,0x37,0x20,0xc0,0xcd,0xc7,0x67,0xc0,0x82,0x60,0x9b,0x40,0x96,0xda,0x84,0x3f,0x97,0xd7,0x8f,0xc0,0x9d,0xa7,0xec,0xbf,0xfc,0x1d,0xfe,0x3e,0xfe,0xbb,0x56,0x3f,0xd,0x49,0x6f,0xc0,0x11,0xc7,0x8b,0x40,0x4a,0x8d,0x93,0xc0,0x54,0xca,0x1c,0x40,0x8d,0x6c,0xd,0xc0,0x98,0x86,0x62,0xc0,0x44,0x88,0xd,0x40,0x3,0x63,0x99,0xbf,0x1e,0x74,0xfe,0xbf,0x96,0x42,0x6,0xbf,0x78,0x98,0xe4,0xbf,0xf3,0xf5,0x94,0x40,0x54,0xb2,0x96,0xc0,0x3b,0x66,0xdb,0xbf,0x22,0x60,0x1b,0xbf,0xc0,0xec,0xb1,0xbf,0xa8,0x53,0x44,0xc0,0xf8,0x9e,0x29,0x3f,0xe0,0x96,0xce,0x3d,0x18,0x50,0x4b,0x40,0xb1,0x30,0xd2,0x3f,0xf2,0x18,0x5b,0x40,0x3c,0x4,0x62,0xc0,0x81,0x7a,0x85,0x40,0x8d,0xe2,0x5,0xc0,0x0,0x91,0x82,0xbd,0xcc,0xa1,0xeb,0x3f,0x7f,0x42,0x84,0xbf,0x67,0xc6,0xa9,0xbf,0x2d,0x6e,0x11,0x40,0xa0,0x8e,0x66,0x40,0xd1,0x1c,0x50,0xc0,0xeb,0x56,0x38,0x40,0x2c,0xed,0x53,0x40,0xce,0x1,0x5,0x40,0xae,0xba,0xcd,0x3f,0x12,0xcb,0x2b,0x40,0x15,0x8f,0x97,0x40,0xa3,0x5f,0x59,0x40,0xb0,0x3d,0x23,0x3e,0x4d,0x73,0x5a,0xc0,0x70,0x6c,0xfa,0xbd,0x82,0xe3,0x37,0xc0,0x36,0x18,0x8d,0x40,0x22,0xb,0xbe,0xbf,0x20,0x8b,0xb8,0x3e,0x4,0x5e,0x7,0x40,0xd7,0x99,0xde,0x3f,0x9c,0x36,0x83,0xc0,0xd6,0x8f,0x4e,0xc0,0xd6,0xc1,0x5a,0x3f,0xc8,0xa,0x6b,0xc0,0xfc,0x27,0xf9,0x3f,0x6b,0xa4,0xa9,0x3f,0x65,0x28,0xf9,0xbf,0x5a,0x1d,0x7d,0xc0,0x2a,0x2a,0x44,0x3f,0x64,0xa9,0x32,0xc0,0xf3,0x8c,0x99,0x40,0x2,0xa9,0x4e,0x40,0xb7,0xcb,0x4c,0x40,0xff,0xb0,0x15,0x40,0x13,0x89,0xf9,0x3f,0x74,0x34,0x70,0xc0,0x46,0x57,0x98,0x40,0x31,0xc9,0x82,0xbf,0xaa,0x66,0x39,0x40,0xfd,0xe8,0x92,0x40,0x60,0x26,0x76,0x3f,0x44,0xe2,0x67,0xc0,0xc8,0x2,0x73,0xbe,0x40,0x57,0x3a,0xc0,0x1b,0x48,0x82,0xc0,0xd4,0xa2,0x64,0x40,0xde,0xb1,0xf1,0xbf,0x40,0x8a,0x80,0x40,0x33,0x8,0x3a,0xc0,0x8a,0x93,0x4,0x40,0xd0,0x55,0xac,0xbe,0x6a,0x7f,0xe,0xbf,0xfa,0xd3,0x38,0x40,0xa3,0xdf,0x90,0xc0,0x77,0xb7,0x85,0x40,0x25,0x39,0x83,0xbf,0xe2,0x84,0x10,0x40,0x5d,0xe9,0x3d,0xc0,0xb0,0xe9,0x26,0xc0,0x0,0x71,0xed,0xbd,0x76,0x2c,0x99,0xbf,0xf4,0x12,0x2,0xc0,0xf2,0x28,0x2d,0x40,0xb0,0xbe,0xb,0xbf,0x16,0x55,0x3,0xc0,0xe4,0x3d,0x12,0xbf,0x68,0x52,0x8f,0x40,0xf2,0x2d,0x83,0xc0,0xac,0x5,0x55,0xbf,0x30,0x39,0x48,0xbf,0xda,0xcd,0x1b,0x40,0x6c,0xe5,0x83,0x40,0x22,0xef,0x48,0xc0,0xe6,0x21,0x6d,0xbf,0xf1,0xe8,0x94,0xc0,0x0,0xa7,0x6c,0xc0,0x58,0xf3,0xef,0x3f,0x2a,0x63,0xb,0xbf,0xa3,0xec,0x6c,0x40,0xa0,0x89,0xf3,0xbe,0x5c,0x1b,0x12,0xc0,0x72,0x1e,0xd3,0xbf,0x20,0x8f,0x7,0x3f,0xdf,0xfd,0x4c,0x40,0xf4,0xb1,0xd1,0x3e,0x9d,0xf8,0x91,0x3f,0xc8,0xbf,0xe0,0xbf,0x95,0x26,0xf3,0x3f,0x62,0xf9,0x57,0xc0,0x1d,0xcb,0x46,0x40,0x38,0x86,0x5c,0xbe,0x96,0x68,0x86,0x40,0x9e,0xe4,0x22,0xc0,0xcb,0xd9,0x9c,0x40,0x10,0x4e,0x4b,0x40,0xf6,0x38,0x81,0xc0,0x5a,0xf1,0xbd,0xbf,0xe1,0xbb,0x8b,0x40,0x78,0x5d,0xd9,0x3f,0xe,0x13,0x85,0x40,0xa8,0x3a,0x86,0xbf,0xc4,0xa8,0x8,0xc0,0x96,0x3a,0x54,0x40,0xeb,0x8,0xc0,0xbf,0x21,0x1a,0x91,0x40,0x3c,0xdd,0x3a,0x40,0x38,0x49,0x9f,0x40,0x4c,0x56,0x71,0x40,0xfa,0xa,0xbe,0xbf,0xe,0xf2,0x86,0x40,0x3c,0x43,0x78,0xc0,0xcd,0x8f,0x9c,0x40,0x80,0xa3,0x56,0xbc,0xba,0xd6,0x11,0xc0,0x8a,0xe2,0xba,0x3f,0x12,0xbf,0x2b,0x40,0xc0,0x44,0x70,0x3e,0x86,0x70,0x63,0x40,0xbc,0xf1,0xb5,0xbe,0x7d,0x3b,0x9d,0xc0,0x14,0x5e,0x4e,0x40,0xa0,0xf1,0x38,0x3d,0xad,0x94,0x33,0x40,0x92,0xd,0x1e,0xc0,0xf4,0xc,0x51,0x40,0xa7,0x5d,0xf0,0x3f,0xd5,0xed,0x39,0xc0,0xa5,0xbc,0x94,0xc0,0x28,0x8c,0x2a,0xbe,0xf2,0x96,0x6e,0x3f,0xc1,0x4,0x41,0xc0,0x70,0xf4,0xa9,0xbf,0x67,0xf0,0x89,0xbf,0x29,0x91,0x8b,0xc0,0x29,0x14,0x6,0xc0,0x1c,0x39,0x28,0xc0,0xa0,0x95,0x71,0x3e,0xfa,0xbe,0x9e,0x40,0xe7,0x37,0x42,0x40,0xa0,0x19,0x22,0x40,0x8d,0xc5,0x8a,0x40,0x2c,0xcb,0xcb,0x3e,0x30,0xbf,0x83,0x3f,0x8c,0xb7,0x31,0xc0,0x4e,0x3e,0x32,0x40,0x9e,0x53,0x26,0x40,0xe1,0x6c,0x9d,0x3f,0xcc,0x67,0x44,0xc0,0x90,0xc7,0xa2,0x3f,0x54,0xae,0x1d,0x3f,0x56,0xf6,0x3e,0x40,0x4c,0xc1,0xf1,0xbe,0xb4,0x80,0x8f,0x40,0xd4,0x38,0x5e,0xbf,0x99,0x68,0x3c,0x40,0xfc,0xae,0x7e,0x3f,0xe8,0x7a,0x78,0xc0,0x58,0xd7,0xf2,0x3f,0x5a,0x66,0x8f,0xc0,0x46,0x38,0x88,0xc0,0xeb,0x7e,0x74,0x40,0x7c,0x88,0x45,0xc0,0xbc,0x47,0x51,0xc0,0xac,0x10,0xa7,0xbf,0x5,0xd2,0x83,0x40,0x67,0xec,0x9d,0x40,0x1f,0x4a,0xff,0xbf,0x5e,0xb3,0x31,0xc0,0x67,0x3b,0x41,0xc0,0x52,0xe9,0x16,0xc0,0x43,0xac,0x98,0xc0,0x37,0xeb,0x11,0xc0,0x95,0xf1,0x91,0x3f,0x3d,0xa8,0xbf,0xbf,0x4a,0x2f,0x9a,0xc0,0x9e,0x78,0x22,0xbf,0x24,0x38,0x92,0x40,0x3,0x93,0x8c,0x3f,0x2,0xfe,0xd6,0x3f,0xdc,0xda,0x75,0xc0,0x32,0xcf,0x76,0xc0,0xa2,0x73,0x53,0xc0,0x86,0xe1,0xba,0xbf,0x4,0x1c,0x14,0xbf,0xdc,0x2d,0x9,0xc0,0xe2,0xe2,0xda,0x3f,0x3a,0x42,0x4c,0x40,0x5b,0xe5,0xa0,0xbf,0x1a,0x4a,0x93,0xc0,0x1c,0xc,0x2,0xc0,0xd,0x4a,0x8a,0x40,0x2e,0x4b,0x82,0xc0,0xa3,0x94,0xe5,0xbf,0x48,0x7f,0x8,0x40,0xe1,0xf3,0x93,0xbf,0x6a,0xc5,0x96,0x40,0xa8,0xa8,0xc2,0xbf,0xbb,0xcd,0x64,0x40,0x84,0xa3,0x2c,0x40,0x41,0x86,0x91,0xc0,0xff,0xf,0x9a,0x40,0x2c,0xba,0x48,0xc0,0x48,0x46,0x43,0x40,0xf2,0xd7,0x49,0xc0,0x75,0x75,0xec,0xbf,0x16,0x6a,0x2,0x40,0x80,0xad,0x65,0xbf,0x94,0x3e,0x57,0xc0,0xc0,0x3c,0x5d,0x40,0xac,0x28,0xbc,0x3f,0x90,0x8c,0xba,0x3d,0x45,0x2b,0x84,0x40,0xb7,0xd6,0xf8,0x3f,0x6e,0xe3,0x91,0x40,0x0,0xb8,0xba,0x3a,0xe6,0x6b,0x88,0xc0,0x9e,0x58,0x3a,0x40,0xdc,0xec,0x7e,0xc0,0x3f,0x5b,0xe7,0x3f,0x0,0xfa,0x96,0xbd,0xc8,0xd5,0x93,0xbe,0xd8,0x5a,0xe,0xc0,0x16,0x96,0x3c,0xc0,0xde,0x90,0x8a,0xc0,0x43,0xfb,0x93,0x3f,0xd0,0x1d,0x50,0xbf,0xed,0x34,0x3f,0xc0,0x9b,0xc9,0x8c,0x40,0x28,0x81,0x5b,0x40,0xf2,0xf,0x8a,0x3f,0x7b,0x8d,0xab,0x3f,0x24,0xda,0x26,0xbf,0xc6,0x1a,0x6c,0x40,0x52,0x6d,0x9a,0xc0,0x8,0x7e,0x42,0xc0,0x57,0x84,0x62,0x40,0xa,0xf9,0x62,0x40,0xe0,0xfa,0x58,0xbe,0x5c,0x2c,0xbd,0xbf,0xdb,0xea,0x13,0x40,0xe8,0xca,0x5f,0x40,0x64,0x80,0xed,0xbf,0xe0,0x1d,0x20,0x40,0x16,0x4d,0x1a,0x40,0x8,0x9,0xf,0x3f,0x9d,0xd8,0x40,0xc0,0xa8,0xb1,0x61,0x3f,0x9a,0xa4,0x4a,0xbf,0xa6,0x9e,0xb0,0x3f,0xf8,0xb6,0x68,0xc0,0x9d,0xec,0xf2,0x3f,0x9e,0xa9,0x8c,0x40,0x66,0xbe,0x1b,0xc0,0x4f,0xbc,0x69,0x40,0xb9,0x5,0xc,0x40,0x78,0x3d,0x38,0xbf,0x7d,0xf9,0x3f,0xc0,0x9e,0x71,0x24,0x40,0x93,0x68,0x6f,0xc0,0x5e,0xf2,0x36,0x40,0x92,0x82,0x81,0xc0,0xcc,0x89,0x29,0xc0,0x18,0xa3,0x0,0x3f,0x31,0xcc,0x22,0x40,0x4,0xe7,0x93,0xc0,0x98,0x67,0xaf,0x3f,0x80,0x2d,0xbb,0xbd,0xf3,0x3d,0x3a,0xc0,0x28,0xe9,0xa7,0xbf,0x60,0x82,0x7b,0x40,0x2,0xbb,0x64,0xc0,0xa3,0xc9,0x12,0xc0,0xe,0xfc,0x6a,0x3f,0x5f,0x91,0x82,0xc0,0xf4,0xc2,0xe,0x3f,0x6,0xff,0xa9,0x3f,0x4b,0x23,0xcd,0x3f,0xad,0x11,0xf5,0x3f,0x28,0x88,0x8c,0x40,0xe8,0x2d,0xee,0x3e,0x77,0xb9,0x91,0x40,0x24,0xc8,0x12,0xc0,0xa2,0x80,0x11,0x3f,0xca,0x21,0x4b,0xc0,0xd6,0x46,0x9c,0xc0,0xd6,0x30,0x28,0x3f,0xec,0x9d,0xa7,0xbe,0x42,0xad,0x29,0xc0,0x0,0x3d,0x13,0xc0,0xf9,0x21,0x73,0xc0,0x80,0x9e,0x7e,0x3f,0xae,0xbf,0x63,0x40,0x90,0x1,0x11,0xc0,0xdb,0x1c,0x8b,0x40,0x50,0xbc,0x7c,0xc0,0x22,0xf0,0x81,0xc0,0x8a,0xdb,0x9d,0x40,0xff,0xe8,0xd0,0x3f,0xe2,0xa9,0x2d,0xc0,0x70,0xd6,0x21,0xc0,0x50,0x6e,0xc,0xbe,0xe4,0x0,0x80,0xc0,0x6e,0x7e,0x3a,0x40,0x40,0x1,0xc8,0xbf,0x5d,0x66,0x91,0x40,0x9d,0xaf,0x69,0x40,0xd8,0xe8,0x75,0x40,0x91,0x86,0x91,0xc0,0x24,0xd0,0x26,0x40,0x8d,0x5d,0x44,0xc0,0x25,0xab,0x18,0xc0,0x48,0x8a,0x45,0x40,0x79,0x8f,0x8c,0xc0,0x82,0x47,0xd1,0xbf,0x7a,0xa9,0xb,0x40,0x76,0xcd,0x1f,0xc0,0x5c,0xf,0x8e,0x40,0x28,0xb1,0x57,0x40,0x8e,0x4a,0x60,0xc0,0x1c,0xe2,0x6c,0x3f,0x2a,0x1c,0x9b,0xc0,0xd,0x79,0x3a,0x40,0x99,0x4e,0x9f,0xbf,0x40,0x36,0xa2,0x3f,0xfb,0xfe,0xf0,0xbf,0x77,0x62,0x73,0x40,0x1a,0x61,0x2c,0x3f,0x4a,0xc1,0x6b,0xc0,0x2a,0xab,0x9b,0xc0,0xe3,0xd0,0x7,0xc0,0x64,0x24,0xe5,0xbe,0xd8,0x8f,0xab,0xbf,0x2a,0x79,0x54,0xbf,0xe8,0x17,0x25,0xc0,0x70,0x19,0xe4,0xbd,0x33,0x87,0x10,0x40,0x73,0xa3,0x13,0xc0,0xf,0xb0,0x86,0xbf,0x8,0xb8,0xf,0xbf,0xe6,0x4f,0x6a,0x40,0xbc,0xd6,0x8a,0xbe,0x1e,0xd,0xca,0xbf,0x6,0x7d,0x45,0x40,0xf4,0x30,0x78,0x3f,0x52,0x41,0x3,0x40,0x86,0x34,0x17,0xc0,0x92,0x26,0x5,0xc0,0xd3,0xf8,0x1c,0x40,0x34,0xc4,0x38,0x40,0x3,0x6e,0xca,0x3f,0xc6,0x96,0xbb,0x3f,0x20,0xc6,0x16,0x3d,0x81,0xf1,0x81,0xc0,0x34,0x19,0x41,0x3f,0x54,0x24,0x96,0x3f,0xd6,0x8c,0x33,0x40,0xb6,0xc,0x2b,0x3f,0xf9,0xa4,0x9e,0x40,0x8a,0xc0,0x11,0xbf,0x2f,0x8d,0x45,0x40,0x97,0x8e,0x8d,0xc0,0x24,0x48,0x40,0xbf,0x8a,0x7e,0x4e,0xc0,0x0,0x1c,0xc5,0x3b,0x5,0x89,0x8e,0xc0,0x46,0xca,0x16,0xc0,0x5a,0xec,0x7c,0x40,0xee,0xdc,0x2,0x40,0xc2,0xd9,0x72,0x40,0xd6,0x98,0x4,0x40,0x23,0x14,0x43,0x40,0xda,0x11,0x2d,0xc0,0xad,0xeb,0xe8,0x3f,0xe3,0x43,0x97,0xc0,0xc4,0x5,0x6a,0xc0,0xb0,0xab,0x95,0xc0,0x28,0xd6,0x3d,0x40,0xc9,0x23,0xc7,0x3f,0xf4,0x87,0x47,0xc0,0xec,0x10,0xc1,0x3e,0xdc,0xc1,0x8b,0x40,0x81,0xa1,0x34,0xc0,0xfa,0xfb,0x5b,0xc0,0x12,0x94,0x76,0xc0,0x24,0xbf,0x2d,0xbf,0x3,0xab,0x8e,0x40,0x9c,0xdb,0x7f,0x3f,0x60,0x90,0xf0,0xbe,0x14,0x4e,0x4a,0xbf,0xe,0xcb,0xad,0xbf,0xac,0x26,0xa,0xc0,0x46,0x1c,0x96,0x40,0xe6,0x48,0xf8,0xbf,0xe3,0x2e,0xe3,0xbf,0xaa,0x74,0xdb,0xbf,0xf3,0xf8,0x8b,0x40,0xb4,0x2,0x43,0xc0,0xa7,0x28,0x9d,0x40,0xc0,0x2a,0x53,0x3d,0x70,0xe1,0x5,0xc0,0x66,0xb1,0x46,0x40,0x96,0x3e,0x85,0x40,0x74,0xa0,0xc7,0xbf,0xaa,0x53,0x36,0x40,0x37,0x29,0x3d,0xc0,0xde,0x47,0x7,0xc0,0x7e,0x70,0x52,0x40,0xba,0x59,0x93,0x40,0xa6,0x7,0x87,0xc0,0x9,0x6d,0x4f,0xc0,0xa8,0x17,0x6a,0xc0,0x7c,0x2d,0xdd,0xbe,0x44,0x26,0xb,0xbf,0x86,0x82,0x4b,0x40,0xbd,0x53,0x9e,0x3f,0x72,0x3a,0x73,0xc0,0x84,0xab,0xb6,0xbe,0x5,0xb6,0x3c,0xc0,0x5a,0x83,0x1,0x3f,0x6a,0xe3,0xca,0x3f,0x94,0x44,0x92,0xc0,0x40,0xd7,0x9f,0x40,0xa6,0x24,0x2a,0x40,0x76,0xb4,0x9e,0xc0,0xb4,0x35,0xe,0xc0,0xe2,0xe,0x8d,0x40,0x30,0xcc,0xa8,0x3e,0x6,0xaf,0x7b,0xc0,0x76,0x21,0x1a,0xc0,0x24,0xa9,0x90,0xc0,0xb3,0x39,0xc2,0x3f,0xfe,0x2,0x21,0xc0,0x95,0x2e,0x97,0x40,0x36,0x65,0xb4,0x3f,0xac,0xd8,0x27,0xc0,0xf6,0x3c,0x67,0x40,0x78,0xa2,0x78,0xbf,0x14,0x1b,0x55,0xc0,0x8f,0xf7,0x81,0xc0,0x4a,0xa5,0x12,0xc0,0xae,0x92,0x5,0x40,0xcb,0x6b,0x91,0x3f,0xeb,0xe6,0xc3,0xbf,0xa7,0x29,0xde,0xbf,0x5d,0x83,0xa1,0xbf,0xf0,0x3e,0x58,0xc0,0x72,0x0,0x94,0x40,0x3e,0x11,0x8e,0xc0,0x2c,0x4e,0x14,0xbf,0xbc,0x7f,0x2f,0x3f,0x0,0x3e,0xb7,0x3c,0x30,0xc2,0x5f,0xbe,0x86,0xe4,0x7d,0xc0,0x70,0xda,0xa,0xc0,0xe2,0xde,0x31,0xc0,0xa2,0xc7,0x91,0x40,0xbf,0x31,0xc3,0xbf,0x98,0xc0,0x65,0xc0,0x30,0x34,0x5f,0xc0,0xf8,0x99,0x68,0xc0,0xd6,0x81,0x68,0xbf,0xc7,0xe8,0x6,0xc0,0x5c,0x3d,0x68,0xc0,0x79,0x12,0xdd,0xbf,0x4b,0xc8,0x7f,0x40,0x6,0x41,0x8e,0xc0,0x20,0xa4,0xc7,0xbe,0x32,0xa8,0x95,0x40,0x11,0xf0,0x4b,0x40,0xad,0xb3,0x99,0x3f,0x9e,0xbf,0x6,0x40,0x87,0xe8,0xdf,0xbf,0x71,0xf5,0x77,0xc0,0x72,0xb4,0x44,0xc0,0x74,0x92,0x3a,0xc0,0x2c,0xc9,0x69,0x40,0xe0,0x67,0x2d,0x3d,0x80,0x13,0x82,0xc0,0x71,0x26,0x6f,0xc0,0xb4,0xae,0xb0,0xbe,0x11,0x21,0x34,0x40,0x4a,0x35,0x19,0x3f,0x64,0xaa,0x66,0x3f,0x3a,0xe8,0x91,0xbf,0x60,0xf4,0x82,0xbd,0xdc,0xe3,0x3c,0x40,0xad,0x45,0xd0,0x3f,0x92,0x42,0xd5,0xbf,0x92,0xe1,0x9f,0x40,0x45,0x10,0x61,0x40,0xbf,0xb4,0xdb,0x3f,0xd,0x9b,0x18,0x40,0xd8,0x58,0x56,0x40,0x70,0xf3,0x3e,0xbf,0xc4,0x77,0x61,0x3f,0x8e,0xd7,0xc6,0xbf,0xe0,0xe2,0xc8,0xbf,0xf8,0xf3,0x47,0x3e,0x89,0xb3,0x56,0xc0,0xba,0x30,0x8e,0x40,0xf4,0x9e,0x55,0xc0,0x57,0x3f,0x4d,0xc0,0x26,0xa5,0x31,0xbf,0x9d,0xe6,0x50,0x40,0x78,0x48,0x1e,0xc0,0xb8,0xe5,0xac,0xbe,0xac,0x16,0x33,0x40,0xd3,0xfb,0x8b,0xc0,0x52,0xb0,0x94,0x40,0xa4,0x84,0x2c,0x40,0xe,0x28,0xd8,0x3f,0x0,0xe2,0x86,0x3b,0x1a,0xff,0x3b,0x40,0x8a,0x84,0xb4,0xbf,0x84,0x18,0xdb,0x3e,0xce,0x3a,0x6e,0x40,0xbd,0x76,0x32,0xc0,0x98,0x9d,0xab,0x3e,0xd0,0x27,0x64,0x40,0x20,0x42,0xe3,0x3e,0x2a,0x5,0x3f,0xc0,0xc0,0x8a,0x6b,0x3f,0x92,0x30,0x88,0xbf,0xbb,0x20,0x89,0xc0,0x40,0xaf,0xc9,0x3d,0x8,0xcd,0x40,0x3e,0x24,0x90,0x4f,0x40,0xa8,0x9c,0x71,0xbe,0x35,0xc0,0x66,0xc0,0x7c,0x3f,0x8b,0x40,0x28,0xc8,0x87,0x3f,0x9b,0x7e,0xb3,0xbf,0x13,0xcc,0x40,0x40,0x1e,0x42,0x6a,0x40,0x32,0xd,0x65,0x40,0x1c,0xb6,0x7a,0x40,0x5c,0xf,0x0,0xc0,0x2d,0x94,0x93,0x40,0xd8,0x33,0x44,0x40,0xea,0xee,0x57,0xc0,0x4f,0xa3,0x19,0x40,0xca,0x55,0x34,0xc0,0xbe,0x24,0xd,0x40,0xad,0xc7,0x37,0xc0,0x3d,0xda,0x1c,0x40,0x74,0xa1,0x3,0xc0,0x43,0x2f,0x8d,0x3f,0xb3,0x67,0x80,0xbf,0x96,0x83,0x29,0x40,0x30,0x7a,0x91,0xbd,0xde,0xe9,0x14,0x40,0xa9,0x60,0xf5,0xbf,0xfe,0x12,0x16,0x40,0x3a,0x2c,0x2f,0x40,0x94,0xa7,0xb9,0x3e,0xde,0xc2,0xbd,0xbf,0xa6,0x5d,0x44,0x3f,0x20,0xe,0x94,0xc0,0x4,0xcb,0xc6,0xbe,0xe1,0xdb,0x83,0x40,0x70,0x4b,0x20,0x40,0xe8,0x5e,0x1a,0xbe,0xfa,0x35,0x24,0xc0,0xdf,0x8f,0x86,0x3f,0x37,0x97,0x8c,0x40,0xf6,0x5e,0x20,0x40,0xf0,0x5f,0xc3,0x3d,0x7f,0x85,0xc3,0x3f,0xa8,0x64,0xcf,0x3e,0x25,0xdb,0x9a,0xbf,0x7f,0xef,0x6a,0xc0,0xb4,0xf6,0x17,0xc0,0x3c,0x2a,0x8,0xc0,0xd6,0xff,0x3a,0xc0,0x7,0x55,0x9a,0x40,0xd1,0x63,0x88,0xc0,0xe8,0xbc,0x82,0x3e,0xf4,0x80,0x8f,0x3e,0xe,0xa1,0x20,0xc0,0x80,0xd2,0x1d,0xbf,0x93,0x8c,0xe9,0x3f,0xe7,0x7d,0x60,0xc0,0x16,0x83,0xd4,0x3f,0x2c,0x25,0x8b,0xbe,0x4,0x71,0x1b,0xc0,0x54,0x23,0x76,0xc0,0xd0,0xf9,0xf8,0xbe,0x22,0xbb,0x15,0xc0,0x49,0xbb,0xdc,0x3f,0x2,0x6c,0x9e,0xc0,0x94,0x9b,0x72,0x40,0x86,0xd0,0x9a,0x40,0x64,0x4d,0xd0,0x3e,0xa4,0xf2,0x59,0xc0,0x93,0x99,0x9a,0xc0,0x79,0x28,0x1a,0x40,0xeb,0xb7,0xd9,0x3f,0x90,0xe5,0x84,0x40,0x9e,0x2a,0x2a,0xc0,0x16,0xfb,0x34,0x40,0x10,0xd4,0x1,0xc0,0x9e,0x60,0x71,0xc0,0xfc,0xd9,0xd3,0x3e,0x7e,0x77,0xb9,0xbf,0x60,0x10,0x11,0x40,0x4,0xdf,0x28,0xc0,0x9,0x50,0x4e,0x40,0x53,0xa,0x68,0xc0,0x6d,0x35,0xa3,0x3f,0x16,0x5,0x55,0x40,0x44,0xbb,0xbe,0xbf,0xde,0x12,0x97,0xc0,0x1,0x1c,0xf1,0x3f,0x36,0x8d,0x8c,0xc0,0xb9,0x9d,0x28,0xc0,0x56,0x5c,0x10,0xc0,0xcb,0x9a,0x28,0xc0,0xd4,0xfb,0x92,0x40,0xf1,0x2d,0x6f,0xc0,0x3,0x8a,0x74,0x40,0xb6,0x62,0x50,0xc0,0xdb,0xa4,0x80,0x40,0xab,0x58,0xd3,0xbf,0xb8,0xeb,0x53,0xbf,0x16,0x82,0x61,0xc0,0x1a,0xa2,0x13,0x3f,0x1d,0x57,0xfe,0xbf,0xee,0x2d,0x95,0xc0,0x54,0x1a,0x1d,0x40,0x60,0x10,0xd5,0x3f,0x4b,0x7c,0x53,0xc0,0x7d,0x92,0x96,0x40,0x18,0xeb,0xfb,0xbe,0x48,0x85,0x50,0x40,0x8c,0x2b,0xe3,0xbf,0xc,0x8b,0x9e,0xc0,0x52,0x30,0x19,0xc0,0x49,0x96,0x77,0xc0,0x93,0x7,0x91,0x40,0x22,0xba,0x82,0x40,0x36,0xe6,0x71,0xbf,0x82,0x98,0x9d,0xc0,0xca,0x75,0x46,0x40,0x86,0xed,0xd1,0x3f,0xc8,0xf9,0x4c,0x40,0xc0,0x12,0x7f,0x3f,0xe,0x3f,0x7,0x40,0xc0,0x60,0xa2,0xbe,0x1e,0xd1,0x9d,0x40,0x58,0xb0,0x6c,0xbf,0xac,0x45,0x15,0x40,0xa0,0x74,0x9b,0xc0,0xa0,0xed,0x37,0xbf,0xb6,0x8a,0x7,0x3f,0x1e,0xbe,0x82,0x40,0x38,0xe0,0x2c,0x40,0x4f,0x6f,0x9b,0x40,0xe6,0xcc,0x21,0x3f,0x77,0x15,0xd2,0xbf,0x4,0x6f,0x87,0x3e,0x40,0xa2,0xe5,0xbd,0xee,0x29,0xbf,0x3f,0x26,0xab,0x71,0x3f,0x26,0xce,0xf,0xc0,0x9a,0x8d,0xa,0x40,0x5c,0xf1,0x9,0x3f,0xb3,0x18,0x63,0xc0,0xc0,0xb,0x13,0x3e,0x12,0x90,0x62,0xc0,0x40,0x26,0xd5,0xbd,0x7c,0x33,0xaf,0x3f,0xe1,0xe8,0x9f,0xc0,0xff,0xd9,0x5f,0x40,0x6d,0x1a,0x11,0xc0,0x92,0x6b,0x68,0xbf,0x3f,0x7e,0x92,0xbf,0x80,0x7c,0x78,0x40,0x62,0x1,0x46,0xc0,0x6d,0x1d,0x9e,0xc0,0x32,0x28,0x93,0xc0,0x18,0x9c,0x11,0x40,0xf8,0x6,0xe2,0xbf,0xce,0x3b,0x3e,0x3f,0xde,0xf,0x1b,0x40,0x50,0x42,0xc2,0x3d,0xc3,0x4d,0x9f,0x40,0x61,0x73,0x0,0x40,0x7a,0x24,0x99,0xc0,0x24,0xae,0x7c,0xc0,0x4c,0xcd,0x8f,0xc0,0xf6,0xc2,0x59,0xc0,0xe,0xdc,0x9c,0xbf,0x97,0xfa,0xef,0xbf,0x52,0x3e,0x97,0xc0,0x80,0xa,0x6,0x40,0x4a,0x35,0x73,0x3f,0xc8,0x1e,0x2a,0xbf,0x2d,0x26,0xf7,0x3f,0x9f,0x17,0xad,0xbf,0xbc,0xd4,0xd2,0x3e,0x8b,0xa,0x8,0xc0,0xdc,0x84,0x2a,0x40,0x1a,0xc8,0x7c,0x40,0x24,0x14,0x6f,0x3f,0xc6,0x52,0x81,0x40,0xb1,0xba,0xd4,0x3f,0xb7,0x2f,0xb4,0xbf,0xc,0x31,0x6d,0x40,0x94,0xf3,0x7e,0x3f,0xbe,0x69,0x82,0x3f,0x2e,0x95,0x7,0x3f,0x5a,0xef,0x81,0x40,0x3e,0xee,0x4b,0xc0,0x6e,0xc7,0xec,0xbf,0x98,0x14,0x44,0xc0,0x6f,0x90,0x52,0xc0,0x2e,0xc6,0x24,0x40,0x56,0x20,0xe,0xc0,0xcc,0xb0,0x43,0x3f,0xef,0x35,0x86,0x40,0x2a,0x55,0x26,0x40,0x84,0x40,0xdb,0x3e,0xf3,0x44,0x82,0x40,0xa8,0x20,0xe1,0xbf,0xc9,0x86,0x81,0x40,0x67,0x41,0x93,0x40,0xac,0x95,0x9b,0xc0,0x62,0x5a,0xf7,0x3f,0xa2,0x25,0x6,0x40,0xa3,0x77,0xc6,0x3f,0xd9,0x10,0x89,0x40,0x2e,0x70,0x93,0x40,0x8,0xfa,0xa2,0xbf,0x4a,0xb3,0x54,0x3f,0x86,0xfb,0xcd,0xbf,0x7c,0x9e,0x85,0xc0,0x64,0x3e,0x85,0xbe,0x6d,0x24,0xbe,0x3f,0x74,0xeb,0xe0,0xbf,0x43,0xf4,0x10,0x40,0xfa,0xfc,0x8c,0xc0,0xd0,0x47,0x51,0xc0,0x7,0x73,0x55,0xc0,0x60,0x93,0x54,0xbd,0x6,0x3b,0x4d,0x40,0x5e,0x3d,0x2d,0x40,0x98,0x65,0x7e,0x40,0xb8,0xa8,0x92,0x40,0x2e,0xf1,0x80,0xc0,0xde,0x78,0xc6,0x3f,0x3c,0xff,0x34,0xc0,0x6c,0xa3,0x6d,0xc0,0xcd,0x7,0x95,0x40,0x2,0xf6,0x84,0xc0,0xc3,0x95,0x8c,0xc0,0xb6,0x76,0x7c,0xc0,0x26,0xa4,0x49,0x40,0xa4,0xca,0x71,0xc0,0xf3,0xcc,0x0,0x40,0xc4,0xee,0x76,0xc0,0x9a,0xab,0xa5,0x3f,0x1c,0x2e,0x8,0x40,0xa6,0xd2,0x6c,0xc0,0x2c,0xf8,0x14,0xbf,0xf4,0xd2,0x5b,0xc0,0xa2,0xeb,0x8d,0x40,0x2d,0x10,0x90,0xbf,0xb2,0xf5,0x6a,0xc0,0xaa,0x2b,0x7c,0xbf,0x9d,0x96,0xee,0x3f,0x1e,0x27,0x6e,0xc0,0xbe,0x19,0x6e,0x40,0x74,0x3,0x4e,0x3f,0xaa,0xf4,0x83,0xc0,0x3f,0x6d,0x55,0x40,0x8e,0xec,0xca,0x3f,0x62,0xc6,0x29,0x40,0xd6,0x20,0xb,0xbf,0xe5,0xc9,0x25,0xc0,0x8b,0x4e,0x28,0xc0,0x48,0xec,0xe8,0x3f,0xc0,0x8f,0x66,0x40,0x5f,0xf7,0xd0,0x3f,0x1,0x5e,0x20,0xc0,0x42,0x41,0x9e,0x40,0x98,0xf,0x3c,0x3f,0xb4,0xbc,0x48,0xc0,0xfe,0xe8,0x30,0x40,0xe8,0xe4,0x2d,0x40,0xc4,0xcd,0x79,0xbf,0x9c,0x8d,0xd5,0xbf,0xe7,0xf0,0x42,0xc0,0x82,0x51,0x44,0x40,0x31,0x35,0x9d,0x40,0xa3,0x6c,0xa9,0xbf,0x34,0xab,0x15,0x40,0x0,0xd5,0x3d,0x40,0x39,0x11,0xdd,0x3f,0xb2,0x5d,0x8c,0xc0,0xc7,0x34,0x51,0x40,0x6,0xad,0x7b,0xbf,0xb,0x9b,0x96,0xc0,0x19,0xd8,0x6,0xc0,0x6e,0xda,0x77,0xbf,0xaa,0xa9,0x53,0x40,0x5d,0x88,0x9b,0xc0,0x80,0xf2,0xa5,0x3f,0xd5,0xf4,0x7d,0xc0,0x62,0x70,0x61,0x40,0x84,0xce,0x5c,0xc0,0xda,0x7a,0x6b,0xc0,0xd3,0x6f,0xda,0xbf,0x85,0x8d,0xdd,0xbf,0xeb,0x93,0xa8,0xbf,0x92,0x5d,0x85,0xc0,0x5a,0xb6,0x2a,0xc0,0xf7,0xa1,0x84,0xbf,0x0,0xb3,0x1f,0x40,0x49,0x91,0x89,0x3f,0x22,0x3c,0x6f,0x40,0x38,0x6,0xa,0xc0,0x69,0x63,0x83,0xbf,0xee,0xb3,0x2f,0x40,0x88,0x2a,0xde,0xbf,0x48,0x24,0x96,0xc0,0xb0,0x63,0x93,0xc0,0x41,0xf2,0x50,0xc0,0xae,0xca,0x74,0x3f,0xeb,0x74,0x8f,0xc0,0x24,0x12,0x83,0xbf,0xde,0x76,0x9f,0xc0,0x9c,0x2d,0xcc,0xbf,0xd3,0x6b,0xe8,0xbf,0xf9,0x68,0x94,0xc0,0xa9,0x2f,0x8a,0x40,0xc2,0xcd,0xa6,0x3f,0x76,0x3f,0x17,0xc0,0xac,0xd0,0x99,0x40,0xf8,0x6f,0x85,0x40,0xec,0xbf,0xd5,0x3e,0x40,0x4d,0x10,0xbf,0x8a,0x29,0x76,0x40,0x68,0xe9,0xee,0x3e,0x3e,0x7d,0x5,0x3f,0x3e,0xaa,0x5,0xbf,0xb2,0x1c,0xc7,0x3f,0xee,0xd5,0x2c,0x40,0xa8,0x5,0x8c,0x40,0x34,0x77,0x53,0xc0,0x60,0x7f,0x13,0x3e,0x3f,0x82,0x93,0x3f,0xd,0x7,0xf5,0x3f,0x8f,0xcb,0x42,0x40,0x3c,0xa1,0x44,0x40,0x3a,0xbd,0x9a,0xc0,0xf9,0x66,0xdb,0x3f,0x60,0xd,0x4e,0x3d,0xe8,0xd1,0x10,0x3e,0x8a,0xd9,0x8a,0xc0,0xa6,0x70,0x70,0x40,0xb5,0x7e,0xda,0x3f,0xed,0x51,0x89,0xc0,0x2b,0x8a,0x85,0x40,0x8c,0xa7,0x7a,0x40,0xd7,0xb2,0x8f,0xc0,0x44,0x5c,0xbe,0xbf,0x16,0x8b,0x9b,0xc0,0x60,0x64,0x6f,0xbe,0x40,0x7a,0xdb,0xbe,0xa8,0xd1,0x9a,0xc0,0xfe,0x88,0x45,0xc0,0x80,0xc7,0xbc,0xbe,0x82,0xdf,0x9e,0x40,0xaa,0x67,0x40,0x40,0x7c,0x5b,0x97,0x40,0xe8,0xb5,0xa7,0x3e,0x4c,0x2e,0x83,0xc0,0x18,0xbf,0x22,0x40,0xf7,0x61,0x8d,0xbf,0xc6,0x1d,0x46,0x3f,0x61,0x60,0x9d,0x40,0xbb,0x8d,0x3b,0xc0,0x20,0xe9,0xd2,0x3d,0x23,0x41,0x92,0xc0,0x7,0xdc,0xd5,0xbf,0x88,0x12,0x62,0xbf,0x38,0xe4,0x5d,0x3f,0x68,0x6c,0x80,0x40,0x3,0xa4,0x9a,0x40,0xb8,0xf5,0x83,0x40,0x3c,0x6b,0xf3,0x3e,0x34,0x20,0x78,0x40,0xf9,0x2e,0xeb,0xbf,0x3e,0x25,0xf1,0xbf,0xcf,0xeb,0xdf,0xbf,0x78,0xc0,0x3e,0xc0,0x37,0x4d,0xad,0xbf,0x64,0x3b,0x58,0xbf,0x17,0x5d,0x29,0xc0,0x79,0x9,0x96,0x3f,0x6,0x89,0xcf,0x3f,0x5a,0x59,0x3f,0xc0,0xb6,0xba,0x97,0xc0,0xdc,0xff,0xff,0xbe,0xb0,0x11,0x84,0xbd,0xee,0x45,0x80,0x3f,0x6e,0x57,0x32,0x40,0xe,0x63,0x31,0xc0,0x5d,0x86,0xa3,0xbf,0x3a,0xb,0x3a,0xc0,0xe,0x48,0xa4,0xbf,0x84,0x9f,0x84,0xc0,0x65,0x73,0x9b,0x40,0xf1,0x5b,0x9e,0xc0,0x65,0x7d,0xf9,0x3f,0x58,0x98,0xc3,0x3e,0x60,0xae,0xc8,0x3d,0x6c,0x62,0x9,0xc0,0x5d,0xac,0x43,0x40,0xc,0x2c,0x47,0x3f,0x84,0xc8,0x6e,0xbf,0xfb,0x9a,0x96,0x40,0xef,0x9,0x97,0xc0,0x9e,0xb6,0x52,0xbf,0xac,0xbd,0x97,0xc0,0x68,0xd8,0x55,0x40,0x21,0x53,0x38,0xc0,0x36,0x59,0x9,0x3f,0x5,0xd8,0x90,0xc0,0x64,0xd6,0x2e,0x40,0x59,0x39,0x8b,0xbf,0xee,0x7a,0xa0,0x3f,0x34,0xb8,0x9f,0x40,0x44,0x46,0xc0,0x3f,0x64,0x3a,0x6a,0x40,0xe6,0x46,0x22,0x40,0xe8,0xf7,0x8d,0xbe,0x2c,0xd3,0xe6,0xbe,0x47,0xcf,0x83,0xc0,0xa8,0xfe,0x7f,0xc0,0x7e,0x2b,0x17,0x40,0x58,0xdc,0x9d,0x3f,0xe8,0xe,0xef,0x3e,0xc8,0x67,0x84,0x40,0xea,0xf1,0x9f,0xc0,0x1c,0x68,0x66,0x40,0x6a,0x96,0x1c,0x40,0x8c,0x76,0x7c,0xc0,0x76,0x46,0x89,0x3f,0x89,0x3d,0xc0,0x3f,0x98,0x62,0x83,0xc0,0xe,0x12,0x11,0x40,0x8f,0xc0,0xd7,0xbf,0xec,0xee,0xd,0xc0,0xfc,0x2c,0xae,0xbe,0x9,0xe2,0xf0,0x3f,0x14,0x51,0x29,0x40,0x46,0x5e,0x9a,0xc0,0x8,0x2b,0x42,0x3e,0xca,0xf4,0x94,0xc0,0xd5,0xd7,0x98,0x3f,0xa,0x9c,0x74,0xbf,0x4c,0xcc,0x20,0xbf,0xaf,0xca,0x84,0xc0,0x8f,0xb0,0x30,0x40,0xdf,0x41,0x45,0xc0,0x50,0xb9,0x25,0xbf,0xb2,0x2a,0x8d,0xc0,0x71,0x4f,0x64,0x40,0x9a,0x26,0x7d,0x3f,0xb0,0x73,0xef,0x3e,0xfe,0xee,0x6e,0x40,0xd4,0xb6,0x1c,0x3f,0xd4,0xff,0x5f,0x40,0x18,0x91,0x6f,0xc0,0x1e,0x5e,0xd,0xbf,0x1f,0xad,0x2b,0xc0,0x36,0x8e,0xd6,0x3f,0x28,0xf0,0x97,0xc0,0xdd,0x4e,0xb5,0xbf,0x74,0x8f,0xa6,0x3e,0xeb,0x33,0x9f,0x40,0xeb,0x4d,0xf8,0xbf,0x3a,0x28,0x42,0xc0,0xd1,0xda,0x41,0xc0,0x8e,0x24,0x11,0xc0,0xac,0x3c,0x32,0xbf,0x64,0xed,0x6e,0x40,0xd8,0xc7,0x3e,0xbe,0x3d,0x57,0x22,0xc0,0x0,0xc2,0xbf,0xbc,0x84,0xb,0x8f,0xc0,0xe0,0x64,0x67,0xbd,0x5c,0xb8,0x53,0xc0,0xcf,0x9,0x8a,0x40,0xa4,0x99,0x86,0x40,0xb0,0xac,0x39,0xc0,0x40,0x4e,0x9e,0x3f,0x9d,0x78,0xad,0xbf,0x5e,0xcf,0xd6,0xbf,0x7b,0x3c,0x8d,0x40,0x52,0x18,0x8d,0x40,0x69,0xa7,0x73,0x40,0x97,0xb,0x99,0xc0,0xd6,0x4e,0x8a,0x3f,0x88,0x54,0x28,0x40,0xbf,0x7d,0x15,0x40,0x3a,0x5b,0x5a,0xc0,0xd0,0x64,0xc,0x40,0x7f,0xa8,0xd7,0xbf,0x94,0xd8,0xdd,0x3e,0x78,0x2d,0xa0,0xbf,0x18,0x19,0x12,0x3f,0xa8,0xda,0x1d,0xc0,0x77,0x8c,0xd,0x40,0x2c,0xbf,0xc3,0xbf,0xd2,0xc8,0xc3,0xbf,0x85,0x54,0xfd,0x3f,0x70,0x20,0xf6,0x3f,0x53,0xa4,0x19,0x40,0x2a,0x74,0xcf,0x3f,0x1e,0x8f,0x16,0xc0,0xcc,0xb6,0x79,0xbf,0xb5,0xf9,0x20,0x40,0x45,0x95,0x9e,0xc0,0xe4,0x4a,0x2f,0x40,0xfc,0xa2,0x55,0x40,0x5a,0x22,0xab,0x3f,0x95,0xb4,0x4e,0x40,0xd2,0xf2,0x95,0x40,0x1,0xc0,0x84,0xbf,0xa4,0x63,0x2f,0xc0,0xd4,0x60,0x4d,0xc0,0xf5,0xfb,0xf9,0x3f,0x94,0x73,0x43,0xc0,0x50,0xef,0xd8,0x3e,0x20,0x47,0x36,0xbf,0x94,0x8e,0x63,0xc0,0x5,0xff,0xa5,0x3f,0x67,0xa8,0x29,0xc0,0xbe,0x2e,0x5b,0x3f,0xb4,0xe5,0x1c,0x40,0x7e,0x84,0xbb,0xbf,0xb,0xec,0xad,0xbf,0xd2,0xd1,0x44,0xbf,0x58,0x2c,0xa8,0xbe,0xcf,0x63,0x90,0x3f,0xd9,0xa2,0x53,0x40,0x2b,0x94,0x96,0xc0,0x62,0x30,0x8d,0x40,0x16,0xc9,0x9f,0x40,0x32,0x34,0x2f,0xc0,0x58,0x17,0x2c,0x40,0x4c,0xc5,0x9d,0x3f,0x88,0x90,0x5c,0xc0,0x8,0x5f,0x68,0x3e,0x2,0x9d,0x9c,0xbf,0x6,0xcd,0x82,0x40,0x54,0x6d,0x7,0xc0,0xb2,0x93,0x7a,0xbf,0x56,0x4d,0x82,0x40,0xa6,0xf7,0x2f,0xc0,0x90,0xc5,0x92,0xc0,0xe8,0x74,0x85,0x40,0xb6,0x16,0x1c,0x3f,0x68,0xca,0xef,0x3f,0xe0,0x6c,0x69,0x3f,0x11,0x77,0x6,0xc0,0x6,0x9e,0xab,0x3f,0xc5,0xcd,0x5,0x40,0x48,0x8b,0x10,0x3e,0xe2,0x49,0x1e,0x40,0x90,0x82,0x6e,0xc0,0xc2,0x4f,0xa7,0x3f,0xbd,0xa,0x87,0x40,0x7c,0x8b,0xc0,0xbe,0x55,0x28,0x95,0x40,0x3a,0xe3,0x43,0xbf,0xc2,0xac,0xe,0xc0,0xe8,0x37,0x5f,0x3e,0xd4,0x9a,0x4c,0x40,0xe8,0x80,0x2f,0x3e,0x2,0x6c,0x5c,0xc0,0x5e,0xaf,0x41,0x40,0x5b,0x9c,0xcb,0x3f,0x71,0xbd,0x5f,0xc0,0x88,0x71,0x3a,0x3f,0xa8,0x87,0xf2,0x3e,0x43,0x96,0x85,0x3f,0x12,0x40,0x5,0xbf,0x4,0x7a,0x77,0x40,0x52,0x84,0x7b,0xc0,0x40,0xc3,0xa6,0xbe,0x26,0xaa,0x68,0x3f,0xe0,0xe9,0xc,0xc0,0xc,0xe4,0xb9,0xbe,0x14,0x48,0x9a,0xc0,0x0,0xac,0xe9,0x3a,0xd0,0x65,0x58,0x3e,0x6,0x7,0x5e,0xbf,0x55,0x41,0x9c,0xc0,0x29,0xa9,0xc,0x40,0xb6,0xb9,0x2,0xc0,0xa2,0x8f,0x97,0x40,0xea,0x9a,0x97,0x40,0x72,0x2b,0x8a,0x40,0x3d,0x8d,0x81,0x40,0xc0,0x1e,0x7a,0x40,0x40,0xf8,0x37,0x3d,0x6,0xa0,0x10,0x40,0x36,0x53,0xbc,0xbf,0xc0,0xca,0xab,0xbd,0xc2,0xb8,0x63,0xc0,0xe0,0xa3,0x1e,0xbf,0x70,0xf7,0xb0,0x3e,0xea,0x48,0x4c,0xbf,0x67,0xae,0x93,0xc0,0xde,0xdb,0x6f,0x3f,0xa,0x32,0x7,0xbf,0x3d,0x12,0x3,0xc0,0x93,0xa3,0x2,0xc0,0x4c,0x5f,0x4,0xc0,0x92,0x27,0x40,0x40,0xc,0xe8,0x97,0x3f,0xa6,0x6f,0x14,0xbf,0xab,0xe,0xeb,0xbf,0x0,0xe5,0x30,0x3d,0xed,0xad,0x52,0xc0,0xa9,0xa7,0x9f,0x40,0xc2,0xba,0x64,0xc0,0xe2,0x78,0xe,0x40,0xd3,0xfc,0x8a,0xc0,0x74,0xa4,0x64,0xc0,0xe8,0xf5,0x9c,0xc0,0x74,0x7f,0x27,0xc0,0xe8,0xc1,0x89,0xc0,0x2e,0x52,0x34,0xc0,0xae,0x72,0x89,0xbf,0x6a,0x26,0xce,0x3f,0xa,0x7e,0xb,0xc0,0xda,0x9b,0x3d,0x40,0x1,0x9d,0x63,0xc0,0x9d,0x8b,0x86,0xc0,0xa7,0xcc,0x7e,0xc0,0x2d,0xfd,0x83,0xc0,0x21,0x61,0xeb,0x3f,0xba,0xb7,0x67,0x40,0xcc,0x93,0xef,0x3f,0x78,0x2c,0xe2,0x3e,0x80,0xd0,0x85,0x40,0x7e,0x7f,0x22,0xbf,0xe3,0x67,0x34,0x40,0x54,0x39,0x18,0xc0,0xe0,0x5c,0x56,0x3f,0xcc,0x5e,0x13,0xbf,0xaa,0x4,0x85,0x40,0x12,0x9b,0x4,0xc0,0x31,0xc3,0x44,0x40,0xf8,0x89,0xc8,0xbe,0x86,0xe2,0x5a,0xc0,0xb8,0x70,0x8,0xc0,0xf7,0xd4,0x91,0xc0,0xeb,0x8a,0x54,0x40,0x25,0xa,0xf8,0x3f,0x5f,0x2c,0x71,0xc0,0xc3,0x4b,0x34,0xc0,0x9f,0x5e,0x36,0x40,0xd1,0x23,0x67,0x40,0xc6,0x6b,0x4a,0x40,0x40,0x11,0x49,0x40,0x8f,0xeb,0xc0,0xbf,0x9d,0xc4,0x92,0x40,0xa5,0x18,0x96,0xc0,0x91,0x7a,0xd5,0xbf,0x16,0x62,0xc,0x40,0xf0,0x5c,0x11,0x40,0x9f,0xd2,0x9c,0xbf,0x16,0x1f,0x20,0xc0,0xf2,0xd5,0xe6,0x3f,0xde,0x7c,0x2b,0x40,0x98,0x1,0xe,0x40,0x78,0xad,0x93,0x3e,0x5d,0xe1,0x9d,0x3f,0xc9,0x28,0x80,0xc0,0x36,0xb1,0x97,0xc0,0xe0,0x59,0x84,0xc0,0xcc,0x1b,0x5e,0x40,0x2a,0x4c,0x22,0xbf,0x65,0x9e,0xb0,0x3f,0x9c,0x7e,0x32,0x40,0x44,0xa6,0x47,0xc0,0xd8,0xe6,0x7e,0x3e,0x4b,0x6a,0x85,0x40,0xc8,0xed,0xee,0x3f,0x7e,0xfc,0x80,0x40,0x78,0xb3,0x17,0x40,0x98,0x31,0x67,0xc0,0x54,0xf3,0x8a,0xc0,0x7a,0xc4,0x45,0xbf,0xab,0x24,0x85,0xc0,0xc3,0xfc,0xf8,0x3f,0x8f,0x75,0x66,0x40,0x7d,0xa2,0x50,0x40,0x7d,0xf7,0x99,0x40,0xca,0xd8,0x1,0xc0,0x5e,0x9a,0x79,0x40,0x72,0xe1,0x89,0xc0,0xae,0xc4,0x13,0xc0,0x44,0x32,0x89,0x3e,0x4a,0xfb,0x55,0x40,0xcd,0x34,0x55,0xc0,0xf0,0xbc,0x97,0xc0,0xc,0xf1,0x8f,0xc0,0x6,0x14,0x79,0x3f,0x30,0x3c,0x2f,0x40,0x35,0x57,0x92,0x40,0x24,0xf,0x6a,0x40,0xab,0xf5,0x9b,0x40,0x7a,0x8,0x82,0x40,0x7c,0xc2,0x98,0xc0,0xe1,0xd3,0x9f,0xc0,0x38,0x2f,0xa2,0x3f,0x4a,0xe9,0x62,0xc0,0x8,0x99,0xb3,0x3f,0x66,0x81,0x87,0x40,0xe2,0x41,0x4c,0x3f,0xa3,0x1e,0x89,0xbf,0xc5,0xc9,0xed,0xbf,0x20,0x1f,0x29,0xc0,0xad,0x3,0x81,0x40,0x1a,0xff,0xc7,0xbf,0x9c,0x68,0x7a,0x40,0x53,0xac,0xb4,0x3f,0x8,0x99,0xb,0xbe,0x1e,0x97,0x68,0x40,0x61,0x56,0xac,0xbf,0xd3,0x2c,0xcd,0x3f,0x3a,0x21,0x7e,0x3f,0x77,0xa3,0x95,0xc0,0x48,0x9b,0x52,0xc0,0x71,0x44,0x8f,0x40,0x62,0xee,0x10,0xbf,0x38,0xe8,0x18,0xc0,0xc4,0x4,0x69,0xc0,0x80,0x13,0x94,0xbc,0xf8,0x37,0x72,0xc0,0xbe,0x62,0xd9,0xbf,0xdf,0xe1,0x72,0x40,0x1e,0x12,0x9c,0x40,0x66,0xc2,0x83,0x40,0x91,0x99,0xa2,0xbf,0xf2,0xe7,0x8e,0xc0,0xba,0xc7,0x22,0x40,0xc6,0x20,0xc3,0xbf,0x2e,0x48,0x63,0xc0,0xb,0x91,0x9f,0x3f,0xa6,0x25,0x63,0xbf,0x28,0xe5,0x95,0x40,0x8a,0x15,0x8d,0x3f,0x9a,0xd5,0x3,0x40,0x31,0x93,0xb3,0x3f,0x7f,0x6c,0xd2,0x3f,0xe7,0xbb,0x99,0xc0,0xc4,0xc,0xca,0xbe,0x3f,0x3,0xcc,0x3f,0xf0,0x9b,0x4a,0xc0,0xc8,0x70,0x86,0x40,0x86,0x65,0x7,0x3f,0x8c,0x63,0x12,0x3f,0x99,0xfa,0xd9,0x3f,0xa1,0x99,0xf1,0xbf,0x93,0x19,0x41,0x40,0xaa,0xa1,0x13,0x40,0x44,0x5d,0x10,0x40,0x1b,0x46,0x37,0xc0,0x96,0xea,0x2b,0xbf,0x52,0x51,0xcf,0x3f,0x70,0xc3,0x1e,0xbe,0xff,0xb8,0xfb,0xbf,0x10,0x48,0x4f,0xbf,0xa0,0xaa,0xe6,0x3f,0x1,0x52,0x22,0xc0,0x96,0xe3,0x9f,0x40,0xd7,0xaf,0xf0,0x3f,0x4a,0x99,0x6c,0x40,0xe,0xa9,0x45,0x3f,0x12,0x2c,0xdf,0x3f,0x0,0x50,0x70,0xbf,0xab,0xba,0xee,0xbf,0x3c,0x1b,0x5f,0xbf,0x7c,0xd,0x5a,0xc0,0x40,0x41,0x94,0xc0,0xea,0xa0,0x3,0xbf,0x1,0xb8,0x4d,0x40,0x86,0x57,0xfe,0x3f,0xfe,0x6e,0x9c,0x40,0x6c,0x94,0x24,0xbf,0x7a,0x3,0x43,0x3f,0x50,0x6,0x51,0x3f,0x47,0x93,0x31,0x40,0xee,0xf5,0x8c,0x40,0x82,0x3b,0x71,0xc0,0x39,0xcc,0xdb,0xbf,0x60,0x7b,0x3,0xbf,0x8c,0x3d,0x74,0xbf,0x30,0xb9,0x48,0x40,0x1c,0x5d,0x9d,0xc0,0x79,0xab,0x5a,0xc0,0x34,0xb4,0x50,0xc0,0xb1,0xa2,0x8,0x40,0xd4,0xc1,0x70,0xc0,0x60,0xf2,0x13,0x3f,0x32,0x89,0x23,0xbf,0x88,0x74,0x8a,0x3f,0xa0,0x84,0xad,0xbd,0x68,0x75,0x56,0x3e,0x5e,0x9f,0x68,0x40,0x12,0x45,0x73,0x3f,0x83,0x87,0x15,0x40,0xa2,0xe,0x62,0xc0,0x6b,0x9f,0x90,0xbf,0xa8,0xab,0x21,0xc0,0x76,0xb2,0x60,0xc0,0x6,0x2,0x3d,0xc0,0x46,0xd0,0xa2,0xbf,0x3,0xf7,0xcd,0x3f,0xde,0x52,0xb0,0xbf,0xee,0x5d,0x77,0xc0,0x74,0xc2,0x5a,0xc0,0xc7,0xad,0x8a,0x3f,0x4,0x19,0x88,0x3e,0x75,0xcb,0x91,0xc0,0x29,0xf,0x81,0x3f,0x5c,0xc9,0xc0,0x3f,0xac,0xae,0x8f,0x40,0x7a,0xde,0x97,0xbf,0x2d,0x8a,0x5e,0x40,0xd0,0xe4,0xe,0xc0,0x46,0x7,0x8a,0x40,0xab,0xe1,0x82,0xc0,0xed,0x4a,0x9a,0xbf,0x5d,0x11,0x88,0xc0,0xa8,0x5,0x16,0xc0,0x92,0x6a,0xda,0x3f,0x36,0xf5,0x10,0x40,0x9b,0x64,0x4d,0x40,0x94,0xa8,0x86,0x40,0xee,0xf0,0xca,0xbf,0x26,0xc,0x48,0xc0,0x98,0x60,0x77,0x3f,0x39,0x2f,0x7b,0xc0,0xe0,0x6,0x16,0xc0,0xee,0x12,0x95,0xbf,0xa,0xa6,0x97,0xc0,0x38,0xb3,0xa0,0xbf,0x10,0xa8,0x2b,0x3f,0x9f,0xbf,0xc3,0xbf,0x27,0xad,0x1e,0xc0,0xc0,0x56,0x4f,0x3e,0x84,0x73,0x23,0xc0,0x93,0xec,0x13,0xc0,0x19,0x72,0x44,0xc0,0x5b,0x56,0xf3,0xbf,0x34,0xe7,0xb1,0x3e,0x71,0x30,0x24,0xc0,0x48,0xde,0x4b,0xc0,0x32,0xf5,0x69,0xc0,0x81,0xf2,0x96,0xc0,0x42,0x9d,0x54,0x3f,0x6c,0xce,0x71,0xbf,0x4e,0x8b,0x99,0x3f,0xd5,0x4f,0xe9,0xbf,0x90,0xe2,0xa0,0x3f,0x8b,0x20,0x65,0x40,0xe2,0xd9,0x27,0x3f,0x1d,0x74,0x7f,0x40,0xcb,0xa7,0x87,0x40,0x30,0xd1,0x23,0x3e,0x5d,0xfd,0x65,0x40,0x14,0x17,0x8e,0xbe,0x5b,0x71,0x91,0xc0,0xca,0xec,0x77,0xbf,0xd4,0xda,0x0,0x40,0xec,0x78,0x3d,0x40,0x74,0x90,0x18,0x40,0x60,0xc6,0xab,0x3f,0xa8,0xd9,0x19,0xc0,0x98,0x2d,0x7d,0x3e,0xd4,0x46,0xa3,0x3e,0xb1,0x2f,0xa1,0x3f,0x34,0x6a,0x48,0x40,0xe8,0x2b,0x5c,0xbf,0x24,0xf7,0x7,0x40,0x32,0xd4,0x9a,0xc0,0xca,0x11,0x65,0xc0,0x71,0x2e,0xc9,0xbf,0x8,0xa7,0x66,0x40,0x81,0xd5,0x94,0xbf,0xca,0x7f,0x38,0xc0,0x78,0xd3,0x80,0x40,0x62,0x6d,0x69,0xbf,0xa0,0xe7,0xd6,0x3f,0x30,0xf3,0xf4,0x3f,0x5b,0x79,0x95,0x40,0x24,0x7c,0x7a,0x3f,0xf0,0x92,0x1,0xbf,0xa3,0xbd,0x3c,0x40,0xc6,0x45,0x14,0xbf,0x3c,0xb2,0x6a,0x40,0x7b,0xc9,0x9b,0x40,0xb2,0xd7,0x72,0xbf,0xe4,0x17,0x33,0xc0,0x1c,0xcb,0xa4,0xbf,0xb9,0xb3,0x8e,0x40,0xd7,0xe9,0x8e,0xc0,0x38,0x4e,0xab,0x3f,0x7e,0x8f,0xc9,0x3f,0x12,0xc9,0x24,0x40,0x82,0x1,0x7e,0xc0,0xfb,0x26,0x49,0x40,0xb2,0x3e,0x9b,0x3f,0x8c,0xbb,0x1e,0xc0,0x90,0x3,0x8b,0xc0,0xa,0x84,0x5,0x3f,0xd3,0x96,0x86,0x40,0xae,0x62,0x8c,0x40,0xcc,0x89,0xe5,0x3f,0x30,0x16,0x8f,0x40,0x88,0xc4,0x55,0x40,0xc,0x8f,0x96,0x3f,0xda,0xc6,0x95,0xbf,0xac,0x54,0x2b,0x40,0xe9,0x78,0x9e,0x40,0xd6,0x1a,0x6b,0xc0,0x42,0xf1,0xa8,0xbf,0x28,0xff,0x16,0xbf,0x74,0x33,0x57,0xc0,0x73,0x27,0x67,0x40,0x99,0xb5,0x17,0x40,0xb0,0x4f,0xc8,0x3d,0xf2,0x1,0x1f,0xc0,0x39,0x42,0x9d,0x40,0xb4,0x68,0x28,0xc0,0xad,0x1b,0x91,0xc0,0x37,0x15,0x96,0xc0,0x3a,0x78,0x54,0xc0,0x49,0x40,0x6e,0xc0,0x6c,0xc,0x89,0x40,0x4c,0x7f,0x10,0x40,0x4f,0x40,0x93,0xc0,0x5c,0x1c,0x88,0x40,0xd2,0xbd,0x9e,0xc0,0xc,0x3b,0x60,0x3f,0xdb,0x98,0x15,0xc0,0x2e,0xe9,0x4c,0x40,0xae,0x6b,0x29,0xc0,0xc4,0xd7,0x15,0xbf,0x72,0x51,0xfa,0x3f,0x24,0x3a,0xe2,0xbf,0xc6,0xfd,0xb8,0xbf,0x58,0x6d,0xb7,0x3f,0x28,0xe3,0x6e,0x3f,0xd8,0xe7,0x5c,0xc0,0x59,0x5d,0x80,0xc0,0x14,0x8b,0xec,0xbf,0x16,0x34,0x3d,0x40,0xe8,0x95,0x3b,0x40,0x73,0x6f,0x9f,0x40,0x70,0x9d,0xab,0xbf,0xba,0xae,0x13,0xc0,0xcc,0xe7,0x4a,0xc0,0x21,0x82,0xbb,0xbf,0xe8,0x4,0x2e,0xbe,0x24,0xf4,0x80,0xc0,0x11,0x92,0x1d,0x40,0x98,0x7b,0x36,0xc0,0x34,0x3b,0x31,0x40,0xb4,0xfc,0xfd,0x3f,0xa8,0x86,0x0,0x40,0x3c,0x4d,0x19,0xbf,0xa6,0x3c,0x5e,0xc0,0xbf,0x15,0x85,0x40,0xb8,0x24,0x2d,0xc0,0xc7,0x41,0x88,0x40,0x8e,0xdd,0x27,0xbf,0xb8,0x9d,0x60,0x40,0x54,0x3d,0x48,0xbf,0xca,0x73,0x9b,0xc0,0xc4,0x1e,0x97,0x40,0x26,0x76,0x29,0xbf,0x83,0x94,0x3,0x40,0x5a,0x4a,0x64,0xc0,0xf2,0xd7,0x62,0x40,0x7f,0x8,0x7,0x40,0x2e,0x4c,0xf8,0x3f,0xec,0x72,0x94,0xc0,0x53,0x92,0x26,0xc0,0xa0,0xf1,0x65,0xbd,0xf8,0xa5,0x40,0xc0,0xbe,0xc0,0x0,0xc0,0x50,0x92,0x6a,0xbe,0xc0,0x60,0x27,0x3e,0x8f,0x0,0x4a,0x40,0x57,0xdf,0x20,0xc0,0xa3,0x5d,0x8f,0xc0,0x87,0x8b,0x97,0x40,0xcc,0x9e,0x23,0x40,0xb1,0x89,0x9c,0x3f,0xb2,0xe8,0x7a,0xbf,0xd2,0x61,0x2b,0xc0,0x48,0x41,0xb2,0xbe,0x6,0xfb,0x8d,0x40,0x1a,0xdf,0x85,0xc0,0xac,0x71,0x41,0x40,0xc1,0x56,0x62,0xc0,0x32,0x3,0xb1,0x3f,0x1a,0x24,0x52,0x40,0xb0,0x4f,0x3e,0x3e,0x70,0x5f,0x80,0xbd,0xc5,0xba,0xcf,0x3f,0xfd,0x84,0xb4,0xbf,0x52,0x8b,0x5b,0x3f,0xc4,0xa3,0x81,0x40,0x61,0x85,0x82,0x3f,0x1a,0x64,0x65,0xc0,0xc7,0xe5,0x9e,0xc0,0x49,0x8c,0x22,0x40,0xd6,0x84,0x99,0xc0,0x28,0x25,0x85,0x40,0x3d,0x7b,0x76,0xc0,0x5d,0x3,0x99,0xc0,0x8e,0x1c,0x87,0x40,0x86,0x44,0xdf,0xbf,0xe7,0x61,0x72,0xc0,0x16,0x7c,0x80,0x40,0xec,0xbd,0x3e,0xc0,0x98,0x25,0xc4,0x3f,0x44,0xbd,0xd0,0xbf,0x80,0x91,0xe3,0xbc,0xd1,0x47,0x4d,0x40,0x41,0x5f,0x66,0x40,0xf4,0x6b,0x3b,0xc0,0xba,0x6b,0x89,0x3f,0xf6,0xbe,0x24,0x40,0xff,0xb,0xb3,0x3f,0x4e,0xf4,0x92,0xc0,0x3f,0xe8,0x8d,0x40,0xc7,0x8d,0xb9,0x3f,0xa6,0xb2,0x5d,0xc0,0x8c,0xba,0x40,0x40,0x4,0x2f,0x9a,0xbe,0xbb,0x40,0x87,0xc0,0x88,0xe4,0x5d,0x3f,0x19,0xda,0x83,0xc0,0x9c,0x99,0x42,0xc0,0xbc,0x85,0x36,0xc0,0xd6,0x44,0x9e,0xbf,0x10,0xea,0xa0,0x3d,0x54,0xf7,0xd6,0xbe,0x71,0x9,0x8a,0x3f,0x4b,0xfc,0x5,0x40,0x2e,0xdc,0x49,0x40,0x2,0xf5,0x2,0xc0,0xa4,0x4,0x9f,0x40,0x84,0xda,0xbe,0xbf,0x10,0x20,0x93,0xc0,0x1e,0xf0,0x48,0xc0,0x8,0x71,0x6f,0xbe,0x40,0xe9,0x2d,0x3d,0x1f,0x7a,0x98,0x40,0x4b,0x35,0x22,0x40,0x3a,0x6,0x47,0x40,0x8a,0x5b,0x49,0x3f,0x5e,0x48,0x95,0x3f,0x7e,0xef,0x75,0xbf,0x2,0xce,0x8e,0xc0,0xaa,0xbf,0x12,0x40,0x7e,0x1e,0x8a,0xc0,0xea,0x39,0x24,0x3f,0x30,0xbc,0xb8,0x3d,0xa0,0x79,0x94,0x40,0x8a,0xa5,0x91,0xc0,0xc6,0x5b,0xe7,0xbf,0xa3,0x77,0x8f,0x40,0xa0,0xe6,0x8b,0xc0,0x47,0xe3,0x84,0x3f,0x8c,0x63,0x8f,0xc0,0xa4,0xb4,0xe2,0xbf,0x9c,0xb1,0x40,0xbf,0xf0,0x2e,0xe0,0x3d,0xdb,0x73,0x3a,0xc0,0x8f,0x20,0x81,0x40,0xfc,0xf,0x3,0x40,0xe4,0xc4,0x26,0xc0,0x1c,0xe1,0x4a,0xc0,0x8c,0x2e,0x6a,0xbf,0xb8,0x9f,0x29,0x40,0x90,0x3e,0x67,0xc0,0xad,0x8,0xdb,0xbf,0x8e,0x6e,0x7d,0xc0,0x88,0xfc,0x93,0xc0,0xb6,0x92,0x61,0x40,0x94,0x9,0xc6,0xbf,0x2e,0x7e,0x53,0x40,0x40,0xcf,0x15,0x40,0xe6,0x79,0xea,0x3f,0x1,0xe5,0x7f,0xc0,0x1c,0xc2,0x19,0xbf,0x4f,0xb3,0x89,0x40,0x16,0x0,0x28,0x3f,0xe2,0x3,0x0,0xc0,0x6a,0xcb,0x8b,0x40,0x42,0x4c,0x5a,0x3f,0xb0,0x32,0x59,0xc0,0x18,0xac,0x95,0x3e,0x91,0xd5,0x13,0xc0,0x5f,0xa9,0x8d,0x3f,0x26,0xd6,0xd0,0x3f,0xd0,0x10,0x8d,0x40,0xee,0x1e,0x2c,0x3f,0xd0,0x87,0xed,0x3d,0xa6,0xd7,0x13,0x40,0x66,0xd,0x43,0xc0,0x84,0xec,0x98,0x40,0x10,0xe6,0x26,0x40,0x74,0xdc,0x21,0xc0,0xbe,0x24,0xf4,0xbf,0x9a,0xe4,0x50,0x3f,0xec,0xba,0x3c,0x3f,0xb6,0xae,0x79,0xbf,0x3d,0xee,0x12,0xc0,0x8f,0xe8,0x4d,0x40,0x38,0xb5,0x35,0x40,0xcd,0x66,0x80,0x40,0x74,0xe3,0x86,0xc0,0xfe,0x56,0xa0,0xbf,0x79,0x87,0xe5,0xbf,0xb6,0x54,0x82,0xc0,0x1e,0x69,0x95,0x40,0xe,0x80,0x53,0x40,0x78,0x5d,0x6a,0xc0,0x91,0x73,0xfa,0xbf,0xa0,0x87,0x4a,0x40,0x57,0xbf,0x97,0x40,0x23,0xff,0x2a,0x40,0xc5,0x5f,0x8a,0xbf,0xc8,0x56,0xf9,0xbe,0x29,0xa5,0x90,0xbf,0x93,0xa1,0x6d,0xc0,0xd9,0x1b,0x58,0x40,0xce,0xbe,0x24,0x3f,0xde,0xb7,0xa0,0xbf,0xbe,0xa6,0xf9,0x3f,0x5e,0x48,0x4a,0x40,0x80,0x9c,0x7b,0x3f,0x80,0xd2,0xa2,0x3e,0x6c,0xb2,0xea,0xbe,0xc4,0xf7,0x40,0x40,0xee,0xca,0x39,0xbf,0x8f,0x6a,0x8c,0xc0,0xab,0x2b,0x87,0x40,0x18,0xd6,0xb6,0x3e,0xf0,0xe4,0xa7,0xbd,0x5b,0xfb,0xf8,0x3f,0x5d,0xca,0x70,0x40,0x4f,0xc4,0xb9,0x3f,0x8c,0xe2,0x1d,0xc0,0xa4,0x58,0x93,0x40,0x1c,0x1d,0x0,0x40,0x4c,0x1d,0x8e,0x40,0xa8,0x0,0x4f,0x3f,0xf9,0x6d,0x83,0x40,0x46,0x2d,0x96,0x3f,0xac,0xb0,0x1,0xc0,0x15,0x67,0x3a,0x40,0x70,0x1,0xa2,0x3d,0xc6,0x9a,0x4b,0x3f,0xba,0x9f,0x94,0x40,0xbc,0x9f,0x1e,0xc0,0x86,0xc8,0x1c,0xc0,0xb8,0x29,0x9f,0x40,0x64,0x5a,0x7,0x3f,0x4f,0xa2,0x82,0x40,0x3c,0xb,0x3,0x40,0x18,0x31,0x1,0xc0,0x34,0xd6,0xbd,0xbe,0x6b,0x2b,0xa5,0xbf,0x6b,0xef,0x74,0x40,0xdc,0xda,0x72,0x3f,0x3c,0x6,0x51,0xbf,0xed,0xe8,0x2b,0xc0,0x8,0xb2,0x2c,0x40,0x94,0xae,0xc6,0xbf,0x90,0x87,0x1c,0x3f,0xa,0xcc,0x8d,0x40,0x92,0x2,0xc0,0x3f,0x2e,0xba,0x23,0xbf,0xab,0x7a,0x84,0x40,0x5a,0x50,0x85,0x40,0x44,0xc9,0x6c,0xbf,0xc,0x9d,0x5d,0x3f,0xa7,0x95,0x86,0xc0,0x20,0x9f,0x93,0x40,0x64,0x7f,0x8a,0xc0,0x5a,0x23,0x59,0x40,0xf3,0x11,0x43,0xc0,0x5f,0xc6,0x9d,0x40,0x4f,0x77,0xc0,0xbf,0x90,0x85,0x4d,0xc0,0xcb,0xad,0x1a,0xc0,0xd3,0xfa,0x9b,0xc0,0xb4,0xeb,0x20,0xc0,0xc1,0x29,0x49,0xc0,0x49,0xd6,0xad,0xbf,0x6,0x6f,0x8a,0xbf,0x1d,0x6a,0x20,0x40,0xba,0xf5,0x4,0xc0,0x15,0xb8,0xe1,0xbf,0x37,0x8c,0x87,0x3f,0xa6,0x63,0x9b,0x3f,0xc4,0x42,0x62,0xc0,0x84,0x20,0x8d,0xc0,0x1e,0x67,0x8b,0x40,0xd6,0xae,0x3b,0xbf,0x88,0xdf,0xe7,0x3f,0x2a,0xa5,0x86,0xc0,0x88,0xd2,0xf4,0xbf,0x60,0x7b,0x7e,0xc0,0x3f,0x96,0xca,0x3f,0xc,0x82,0x14,0x40,0x66,0xe6,0x26,0x40,0x6b,0x1,0xc0,0x3f,0x90,0xfe,0x15,0xc0,0x9d,0xd8,0x22,0x40,0xdf,0x2e,0x76,0x40,0x4c,0xc0,0x6,0xc0,0xa2,0xa5,0x75,0xc0,0x10,0xcb,0xc9,0xbf,0xa9,0x46,0x8d,0x40,0xf7,0xcc,0x56,0x40,0x38,0x8b,0xfa,0xbf,0x8e,0xdc,0x32,0xbf,0x64,0xd2,0x2,0x40,0xf0,0xe5,0xdd,0xbf,0xa4,0x32,0x83,0xbf,0xc7,0xc9,0x52,0x40,0x58,0x37,0x93,0x3e,0xb0,0x90,0x48,0xbf,0xaa,0x19,0x0,0x40,0x6c,0xe9,0x56,0x3f,0xfc,0xaa,0x9e,0xc0,0x1c,0x8d,0x90,0xc0,0x4d,0x4c,0x68,0xc0,0x38,0x86,0x55,0xc0,0x4c,0xfe,0xb9,0xbe,0x8a,0x1a,0x2b,0x40,0x4a,0xd8,0x20,0x40,0x50,0xf0,0x3e,0x40,0x23,0x7d,0xff,0x3f,0x88,0x7a,0xe,0xbf,0xed,0x28,0x0,0xc0,0x0,0x2e,0xd6,0x3b,0xe8,0x48,0x90,0x40,0xce,0x67,0x35,0xc0,0x1a,0x7f,0x85,0xc0,0xef,0xf5,0xd8,0xbf,0xa,0x52,0x7a,0x40,0x2a,0x59,0x65,0x40,0x70,0xf8,0x23,0xc0,0x71,0x9f,0xc1,0x3f,0xcc,0x96,0x88,0xbe,0x62,0xab,0x49,0x40,0xa,0x5,0x20,0xbf,0x6b,0xf2,0x44,0xc0,0xc5,0x31,0x91,0x40,0x38,0xac,0x3d,0xc0,0x36,0x52,0xfe,0x3f,0x7c,0x98,0x8b,0x3f,0x95,0xd1,0x84,0xbf,0x52,0x1,0x15,0xc0,0xd4,0x62,0x7f,0x40,0xf3,0x8a,0x51,0x40,0x7a,0x9d,0x17,0xc0,0x7,0x96,0x99,0x40,0x20,0x7e,0x2e,0x40,0x78,0x4c,0x6f,0xbf,0x36,0xd5,0x1e,0xbf,0x4d,0xa5,0x99,0xc0,0x82,0x63,0x51,0xc0,0x2,0xb6,0x3,0x3f,0xce,0xc6,0x98,0xc0,0xdc,0x47,0x9e,0xc0,0x12,0x88,0x24,0x40,0x5f,0x9f,0x17,0xc0,0x2,0xf0,0x82,0x40,0x87,0xe9,0x40,0xc0,0x1b,0xba,0x89,0xc0,0x4f,0xf9,0xfc,0xbf,0x46,0x71,0x4,0xbf,0x70,0xa8,0x8a,0xc0,0x20,0xd6,0x94,0x40,0x8e,0x70,0x81,0xc0,0xe8,0xc2,0x5b,0xbf,0x98,0xb8,0xa9,0x3f,0x90,0xf,0x3f,0x3e,0xae,0x46,0x76,0xc0,0xb0,0x18,0xf0,0xbe,0x1a,0x76,0x97,0xc0,0xe2,0x81,0xa5,0x3f,0x6e,0xe0,0x80,0xc0,0x22,0x41,0xd3,0xbf,0x98,0x24,0x16,0xc0,0x6d,0x5e,0x97,0x40,0x94,0xf2,0x16,0x3f,0x39,0x78,0x14,0xc0,0x2c,0xaf,0x62,0x3f,0x6c,0x46,0x99,0xc0,0xbc,0x60,0xf6,0xbe,0x9c,0x3b,0xdc,0xbf,0xe4,0xd8,0x1c,0xbf,0xba,0xa6,0x48,0xc0,0x1,0xe5,0xc,0x40,0xa0,0xb4,0xb9,0xbd,0xf1,0xab,0x3c,0x40,0x8e,0x96,0x3e,0x40,0x6c,0x54,0x23,0x40,0x4e,0x2,0x88,0xc0,0x64,0x4f,0x3a,0xc0,0x1d,0x5,0x9b,0xc0,0xc8,0xae,0x21,0x3e,0x80,0xcd,0x1,0x40,0x60,0x1a,0x48,0x40,0x1e,0x4e,0x3e,0xc0,0x74,0x53,0xce,0x3e,0x3f,0xab,0x62,0x40,0x20,0x4c,0x42,0x40,0x91,0x7c,0x2b,0x40,0x70,0xd5,0x1b,0xbf,0x46,0x55,0x91,0xc0,0xe8,0x32,0xf,0x3f,0xe2,0x3f,0x83,0x3f,0x34,0xd,0x5,0x40,0x2e,0x42,0xc,0xc0,0x86,0x1e,0x41,0xc0,0x89,0xc5,0xa1,0xbf,0xaa,0x65,0x2e,0x40,0xba,0x4e,0x6e,0x40,0x2e,0x13,0x8a,0xc0,0x90,0xeb,0x17,0xbf,0xd6,0x28,0x3,0x40,0x58,0xb4,0x1a,0x40,0x57,0x94,0x90,0x40,0xf8,0x57,0x3e,0x40,0xd,0x82,0x4,0xc0,0xd0,0x8d,0x78,0x40,0xb0,0x28,0x24,0x3f,0xa0,0xf1,0x6a,0x40,0xd8,0x16,0x7a,0xc0,0xf3,0x93,0x82,0xbf,0x2c,0xe6,0x91,0xc0,0x3c,0x84,0x26,0x40,0x7d,0x50,0xa5,0x3f,0x6,0x15,0x62,0x40,0x9a,0xcd,0x17,0xbf,0x96,0xb,0x71,0x40,0xe8,0x6d,0x59,0x40,0x16,0xe0,0x99,0x40,0xce,0xbe,0x26,0xc0,0x6c,0x7a,0x91,0x3f,0x56,0xd3,0xbc,0x3f,0xda,0xab,0x64,0x40,0x64,0xa2,0x78,0x3f,0xcc,0x69,0x92,0xc0,0xf2,0x9,0x88,0x40,0x84,0xc8,0x46,0x3f,0x2b,0xe8,0x11,0xc0,0x8,0xd0,0x42,0xbe,0x7e,0x73,0x42,0xc0,0xa8,0xa5,0x6,0x40,0xc,0x1e,0x9a,0x40,0xe6,0x6f,0x62,0x40,0x90,0xec,0x96,0xbd,0x3a,0xb9,0x9a,0xc0,0x3e,0x7e,0x4f,0xc0,0x3e,0xdf,0x57,0xc0,0x56,0x97,0x5f,0xc0,0xe7,0xf7,0x88,0x40,0x2,0x22,0x30,0xc0,0x1a,0xd7,0xb,0x40,0x12,0xfc,0xb9,0xbf,0x10,0x38,0x7d,0xbe,0x9e,0xfe,0x9d,0xc0,0x9b,0xb3,0xdd,0x3f,0xbc,0x5b,0x49,0x40,0x92,0x7e,0x7a,0xc0,0xb8,0x8,0x85,0xbf,0xc4,0x8f,0x49,0xbf,0xb4,0x96,0x50,0x40,0x45,0x0,0xb5,0x3f,0xa6,0x6e,0xe,0xc0,0xcc,0xaf,0x69,0x40,0xfe,0x12,0x64,0x3f,0xc6,0xab,0x6,0xc0,0xf8,0x6a,0x37,0xc0,0x6a,0x22,0x23,0x40,0x3e,0xdb,0x53,0x40,0x6,0x67,0x89,0x40,0x35,0x7,0x11,0x40,0x76,0x37,0xb1,0x3f,0x18,0x2a,0x90,0xc0,0x98,0xa,0xf3,0x3e,0xc9,0xd8,0x85,0xbf,0x40,0x38,0xc3,0xbd,0x33,0x2c,0xc3,0x3f,0x27,0x79,0x96,0xbf,0x80,0xd8,0xa6,0xbc,0x46,0x64,0x78,0x40,0x9d,0x6b,0xa1,0x3f,0x14,0x2d,0x41,0x40,0xdd,0xf6,0x50,0x40,0x3a,0xda,0x42,0xbf,0x90,0xa,0x67,0x3e,0xae,0xf1,0x77,0xc0,0xa0,0x3b,0x97,0xbe,0x71,0xa7,0x3e,0xc0,0x8,0x14,0x10,0x40,0x9a,0x34,0xef,0xbf,0x9c,0x44,0x56,0x40,0x8,0xde,0x6d,0xc0,0xa,0x5a,0x75,0x3f,0xdc,0x6c,0x84,0x3f,0x6c,0xb7,0x1,0x3f,0x53,0x6b,0x75,0xc0,0x4a,0x79,0x59,0xc0,0xfe,0xb3,0x8c,0x40,0x7e,0x83,0x9e,0x3f,0x62,0xf6,0x1c,0xc0,0xea,0x38,0xfa,0x3f,0x87,0x8f,0x59,0x40,0x9d,0xf8,0xc3,0x3f,0x40,0x9f,0xca,0xbf,0x87,0x41,0xbe,0x3f,0xf8,0x99,0x8e,0xc0,0xd2,0x93,0x2b,0x40,0x57,0x3b,0x33,0xc0,0x48,0x44,0x6d,0xc0,0xc0,0x63,0xbd,0xbe,0xe3,0xa8,0x43,0xc0,0x4e,0x42,0xa,0xc0,0xca,0x7f,0x19,0xc0,0x36,0xdb,0x77,0x3f,0x1c,0x47,0x88,0xbf,0xc3,0x3f,0x80,0x40,0x8,0x41,0x3b,0xc0,0x8a,0x4,0x7d,0x40,0x28,0x28,0xc8,0x3e,0x80,0x7e,0xdd,0xbe,0x46,0xd6,0x87,0x40,0x88,0x16,0x29,0x40,0x64,0x64,0x66,0xc0,0xbc,0xb2,0x21,0x40,0xd9,0x41,0x55,0x40,0x0,0xfd,0xc5,0x3b,0xf6,0x36,0x43,0x40,0x8f,0xda,0xdb,0x3f,0xa0,0x22,0x6c,0x40,0x8a,0xb0,0x5b,0xc0,0xb9,0x5b,0x94,0xc0,0x0,0x2b,0xf7,0xbc,0xc0,0xce,0x22,0x3e,0xb2,0xe3,0x8c,0xc0,0x9b,0x4d,0x80,0xc0,0x72,0xf9,0x65,0x40,0x50,0x89,0x78,0xc0,0x1c,0x1e,0x2f,0x40,0xc8,0xee,0x60,0x40,0x96,0xbb,0xb7,0xbf,0x22,0x71,0x16,0xc0,0x10,0x33,0xc6,0xbf,0xf8,0xa3,0x77,0x40,0x52,0x99,0x3b,0x40,0x85,0xe4,0x8b,0xc0,0x26,0x47,0x84,0xc0,0x44,0x19,0xc,0x40,0xb0,0xf8,0x76,0xc0,0x44,0x62,0xa4,0xbf,0xc4,0x25,0x84,0xbf,0xc4,0xd6,0x86,0x40,0x48,0xa2,0x6e,0xc0,0x46,0x78,0x43,0xbf,0x27,0xa1,0x7a,0x40,0xc4,0x88,0x61,0x40,0x9a,0xbe,0x9b,0xc0,0x2e,0x69,0x76,0xc0,0xf0,0xe4,0x1d,0x40,0x8c,0x27,0xfb,0xbf,0xd7,0x99,0x63,0x40,0x1a,0x63,0xb9,0x3f,0xe4,0xaa,0x66,0x40,0x72,0x10,0xe,0xc0,0x2,0xbc,0x34,0x3f,0x51,0xba,0x69,0xc0,0x80,0x62,0x89,0xc0,0xdd,0x5d,0xd8,0xbf,0x14,0x8a,0x94,0x40,0xf8,0xaa,0x6b,0x40,0xc8,0xea,0x64,0x40,0x78,0x96,0x72,0x40,0xa4,0xd0,0x96,0xc0,0xae,0xe0,0x5e,0x40,0xf8,0xc4,0x7b,0x40,0x96,0x5d,0xa2,0xbf,0xe7,0x73,0x85,0xc0,0xc,0x7b,0xaf,0xbf,0x33,0xb,0x7d,0x40,0xa,0xe3,0x20,0xc0,0x5f,0x67,0xe,0xc0,0xd6,0x11,0x3a,0xc0,0x7a,0x74,0x1f,0xc0,0x1,0x9,0xaf,0xbf,0x52,0x70,0x8,0x3f,0x54,0x54,0x36,0x40,0xf0,0x63,0xf1,0x3d,0xce,0xac,0x89,0xc0,0x90,0x2b,0x71,0x40,0xa0,0xf2,0xad,0x3d,0xa3,0x13,0xee,0xbf,0xe1,0x77,0x76,0xc0,0xe,0xb,0x4d,0x3f,0x3a,0xdc,0xd4,0x3f,0xde,0xdf,0x84,0xc0,0xa4,0xce,0x78,0xc0,0xb9,0x52,0x2d,0x40,0xef,0x36,0xd4,0x3f,0xb6,0x27,0x6f,0xbf,0x4,0x95,0x13,0xbf,0x57,0xd0,0xf5,0xbf,0xfb,0x16,0x98,0x3f,0x30,0xf0,0x40,0x3f,0x86,0x4e,0xa8,0x3f,0x62,0x46,0xbb,0x3f,0x12,0x2b,0xb3,0x3f,0xd3,0x46,0xb8,0x3f,0x9d,0x77,0x1,0xc0,0xfe,0xe8,0x9c,0x40,0x27,0x5e,0x4,0x40,0x2c,0xd7,0x7b,0xbf,0x30,0x87,0xf7,0x3d,0x6e,0xd7,0x97,0xc0,0xfd,0xfb,0xe7,0xbf,0x30,0xd,0xd1,0xbf,0x1e,0xb2,0xc,0x40,0x9c,0xef,0x9f,0x40,0xeb,0xcb,0xca,0xbf,0x74,0xd,0x89,0x40,0x48,0xe9,0x96,0x3f,0x74,0xb2,0x33,0xc0,0xb6,0xb1,0x2d,0xc0,0xbc,0x7b,0xcc,0xbe,0x60,0xcb,0x49,0x3e,0x9b,0x43,0xbc,0xbf,0x70,0x2e,0x1f,0x40,0x93,0x7b,0x9a,0x40,0xf9,0xa9,0xbb,0x3f,0x67,0x73,0x68,0x40,0x4e,0xdd,0x12,0x3f,0x97,0xe8,0xe8,0xbf,0x92,0x78,0x72,0x40,0x24,0x38,0x96,0x40,0xac,0xa4,0x40,0xc0,0xd0,0xe1,0x1a,0xc0,0xe8,0x6f,0x83,0x40,0xa8,0x60,0xb,0x40,0xcd,0x54,0x93,0x40,0xfe,0xe7,0x52,0x40,0x63,0x3,0x98,0x40,0x88,0x0,0x9f,0xbe,0x78,0xd8,0x95,0x3e,0xfd,0xd0,0x60,0xc0,0x94,0x19,0x54,0x3f,0xf4,0xba,0x45,0x40,0x3c,0xe4,0x5e,0xbf,0x9e,0x27,0x2d,0x3f,0xc0,0x22,0x44,0xc0,0x92,0xef,0x81,0x40,0xa,0x75,0x91,0xc0,0xca,0x8e,0x1c,0xbf,0x10,0x37,0x8f,0x40,0x9b,0x2e,0xa9,0xbf,0xfe,0x6d,0x24,0xc0,0xe6,0x61,0x55,0xbf,0xe8,0xab,0x20,0xc0,0x56,0x1e,0x30,0xc0,0x44,0x12,0x76,0x40,0x20,0x49,0xd7,0x3f,0x68,0x94,0x14,0x40,0x5e,0x38,0x8b,0xc0,0x63,0x7a,0xd1,0x3f,0xa2,0xc5,0x6,0xc0,0xc0,0xe3,0x3c,0xc0,0x63,0x5b,0x20,0xc0,0xae,0xb0,0x7c,0x40,0x6a,0x3b,0x64,0xc0,0x2c,0x6d,0x18,0xc0,0x2f,0xdc,0x8b,0xc0,0xce,0x4d,0x59,0x40,0x66,0x39,0x85,0x40,0x32,0xa,0xd2,0x3f,0x70,0xee,0x83,0x40,0x6c,0x44,0xdb,0x3e,0x90,0xf4,0xf7,0xbe,0xb8,0x11,0x95,0x40,0xf7,0x56,0x88,0x40,0x38,0xaf,0x84,0x40,0x25,0xfb,0x7c,0x40,0x52,0x41,0x80,0x40,0x58,0x36,0x2f,0x40,0x28,0xdc,0xeb,0xbf,0xad,0xdd,0x21,0xc0,0x1c,0x29,0x9c,0x3e,0xd7,0xba,0xef,0xbf,0x9e,0x9e,0x56,0xc0,0x2e,0xb3,0xc,0x40,0xf2,0x26,0x9a,0x40,0x28,0x22,0x8d,0xc0,0x82,0x2a,0x75,0xc0,0x64,0x5,0x3e,0x40,0x54,0x7c,0x96,0xc0,0x1f,0x7c,0x91,0xc0,0xd9,0xd5,0xe1,0x3f,0x14,0xa2,0x9c,0xc0,0xc2,0x31,0xfc,0x3f,0x19,0x1e,0x6b,0xc0,0x9c,0xe2,0x46,0x3f,0x86,0xd7,0x96,0xc0,0x4d,0xb6,0x9c,0x40,0x18,0x9a,0xed,0xbe,0xab,0xa,0x8f,0x40,0x70,0x3a,0x82,0xbe,0x98,0x68,0xc2,0x3f,0xbe,0x11,0xd,0x40,0x4,0xbb,0x36,0xc0,0x68,0x56,0xe6,0xbf,0x60,0x6c,0x12,0xbd,0x36,0xb2,0x87,0x40,0x98,0x10,0xca,0xbe,0xa3,0x31,0x9e,0x40,0x62,0x54,0x91,0x40,0x7a,0xb7,0x22,0x40,0x85,0x6d,0x95,0xc0,0x81,0xa8,0xc6,0xbf,0xa4,0x5b,0x88,0xc0,0x4c,0x37,0x97,0xc0,0x80,0x4f,0x50,0xbe,0x8d,0x74,0x9a,0x40,0x83,0x86,0x61,0x40,0xc6,0x7b,0x81,0x3f,0x6c,0x14,0x4f,0xc0,0xa5,0xe6,0x6b,0xc0,0x74,0x6,0x12,0xc0,0x2a,0x7b,0x2,0x40,0x48,0x9,0x1a,0xbe,0xe4,0xe7,0x5b,0xc0,0x6c,0x18,0x1b,0x40,0x6,0xbe,0x88,0xc0,0xa8,0x37,0x36,0x3f,0x33,0xb,0xb7,0xbf,0x72,0xd5,0x9c,0x40,0x6c,0x59,0x94,0xc0,0xe,0xf7,0x86,0x40,0xee,0x30,0x6f,0xbf,0x3f,0xb4,0x6d,0xc0,0xe3,0xaa,0xb2,0xbf,0xa6,0xf9,0x43,0xbf,0x80,0x88,0x76,0xbe,0xa4,0xf9,0xc5,0x3f,0x70,0xeb,0x87,0x40,0x0,0x80,0x6d,0x3f,0x0,0x2,0x57,0x40,0xb8,0xf2,0x76,0xc0,0xdb,0x26,0x1e,0xc0,0xe7,0xf,0x79,0xc0,0xa1,0xcb,0xb5,0x3f,0x84,0x6d,0x95,0x40,0x96,0x45,0x89,0xc0,0xf6,0xb1,0x84,0xbf,0x88,0x94,0xfb,0xbe,0xaa,0xcd,0x39,0xc0,0x28,0x28,0x75,0xc0,0x16,0x9b,0x46,0x40,0x25,0xdb,0xc7,0xbf,0x7a,0xa,0x37,0xc0,0x6e,0xec,0x2e,0xbf,0x1a,0xe7,0x85,0xc0,0x29,0x7d,0x95,0x40,0x1e,0xf1,0x8b,0x3f,0xab,0x9f,0x9b,0xbf,0xe7,0xe3,0xd9,0x3f,0x40,0xdb,0x57,0x40,0x38,0x61,0xe,0xbf,0x64,0x13,0xb,0x40,0xca,0xb2,0x94,0xc0,0x6e,0xfb,0x83,0x40,0xec,0xd1,0x63,0x40,0xe1,0x25,0xe4,0xbf,0x7a,0x19,0x2,0x40,0x5,0x5e,0xc9,0x3f,0x35,0x99,0x90,0xbf,0xa4,0xc5,0x9f,0x40,0xc1,0x8b,0xbc,0x3f,0xcc,0x95,0x68,0xc0,0xa4,0xbf,0x66,0x3f,0x7,0x24,0xb6,0xbf,0x50,0x9,0x98,0xc0,0x8a,0xf6,0x6c,0x40,0x96,0xf6,0x81,0x3f,0xe1,0x56,0x7e,0xc0,0x2c,0xc8,0x1c,0x40,0x91,0x56,0x15,0xc0,0xa0,0x26,0x7a,0x40,0x16,0x1b,0x3,0xbf,0x52,0x6f,0x18,0xbf,0xa2,0xf9,0x72,0xc0,0xc5,0xdf,0x20,0xc0,0x10,0x27,0x66,0x40,0x2e,0x80,0x1f,0x40,0x17,0x97,0xd,0xc0,0x62,0xe4,0x1,0x3f,0xb7,0x3d,0x88,0xbf,0x6f,0x64,0x80,0xc0,0x47,0x43,0xde,0x3f,0xa0,0x53,0x9,0xc0,0x56,0x28,0x51,0x40,0x0,0xa4,0xdd,0xbe,0xcb,0x55,0xc0,0x3f,0x0,0xbf,0x6f,0xbf,0xa8,0x91,0xde,0x3e,0xc2,0x17,0x7b,0x40,0xa0,0x59,0x8b,0xc0,0x19,0x51,0x9b,0x40,0xb5,0x7e,0xb7,0x3f,0xbe,0xe0,0x6a,0xc0,0x35,0x75,0x91,0xc0,0x6c,0x71,0x9f,0x3e,0xff,0x29,0x1f,0xc0,0x1c,0x7a,0x9c,0x40,0xe8,0xdf,0x1d,0xc0,0xd4,0xe9,0x89,0x40,0xe4,0xa0,0x43,0x40,0xee,0x92,0x58,0xc0,0x54,0x29,0xc3,0xbf,0xb0,0xbe,0x54,0x40,0xf0,0xc0,0x34,0xc0,0x2a,0x32,0x49,0xc0,0xca,0xc6,0x34,0xc0,0x4e,0x8a,0x51,0xbf,0xf6,0x3b,0x28,0x40,0x28,0x15,0xf9,0xbe,0x8a,0x13,0x85,0x3f,0x5b,0x5f,0xcc,0x3f,0x24,0xe9,0xba,0xbe,0x9a,0xfc,0x30,0x40,0xaa,0xba,0x6c,0x40,0x16,0x2c,0x2e,0xc0,0x86,0x4e,0x17,0x40,0xc6,0xea,0x73,0xbf,0xd8,0xa3,0x58,0xbe,0x20,0x76,0x82,0xc0,0x84,0x4c,0x88,0x40,0x8c,0x3e,0x41,0x40,0x25,0x11,0x17,0x40,0x11,0xd6,0x24,0xc0,0x80,0x3,0x3d,0x3f,0x25,0x13,0x65,0x40,0xc,0xee,0x70,0x3f,0x6c,0x93,0x9d,0xc0,0x55,0x47,0x4c,0x40,0xe7,0x70,0x84,0x40,0xdb,0x4e,0x8a,0x3f,0xac,0x6e,0x46,0x40,0x16,0x4,0x5b,0x40,0xc2,0xb2,0x75,0xc0,0x6a,0xf,0x8b,0xbf,0xa8,0x3e,0x54,0x40,0x8a,0xca,0x91,0xbf,0xab,0xc,0x9c,0xc0,0x6b,0x14,0x9e,0xc0,0xe0,0x97,0x39,0x40,0xb0,0xf3,0xd8,0x3e,0xe8,0xc8,0x21,0x40,0x5b,0xef,0x88,0xc0,0x0,0x4e,0x3b,0x3b,0x82,0x7e,0x80,0xc0,0x1a,0x56,0x17,0x40,0x78,0xa5,0x4a,0xc0,0x7e,0x8f,0x32,0xc0,0x71,0xeb,0x4f,0xc0,0xa,0x88,0x4a,0xc0,0x60,0xbd,0x7,0xbf,0x58,0x80,0x9f,0x3f,0xb0,0x41,0x5e,0x40,0x68,0x7b,0x9d,0x40,0x9c,0xa4,0xb4,0xbf,0x8d,0xc0,0x8e,0x3f,0xde,0x2d,0x8,0xc0,0x9a,0xe2,0x98,0xc0,0x7c,0x71,0xa3,0xbf,0x6e,0x33,0x77,0x40,0x43,0x9d,0xe2,0x3f,0x20,0x3f,0xc,0xbd,0xf8,0x9b,0x84,0xc0,0x2c,0x2c,0x20,0xc0,0x21,0x3a,0xa9,0x3f,0xad,0x89,0x96,0x40,0xec,0x7d,0x81,0xbe,0x3e,0xe,0x3a,0xc0,0x8,0x83,0x10,0x40,0xa4,0xd2,0x3,0x3f,0x32,0x2f,0x14,0x40,0xd2,0x1b,0x19,0xbf,0xd4,0x32,0x39,0x40,0x8,0x36,0x28,0x40,0x8f,0x8a,0x56,0xc0,0xb2,0x79,0x8d,0x3f,0x80,0xd2,0x6d,0x3f,0xd4,0xa8,0x88,0x40,0xd6,0x2c,0x84,0xc0,0x4,0xc1,0x69,0x40,0x4,0xfc,0xb3,0x3e,0x8,0xd5,0x38,0x3f,0x14,0x51,0xbd,0x3f,0x7c,0x5e,0x85,0xc0,0xdb,0xc0,0x51,0xc0,0xbe,0x33,0x98,0xc0,0x8c,0x8c,0x6d,0x40,0xfe,0x2d,0x85,0x40,0x3c,0x41,0x23,0xc0,0x66,0x5b,0x1,0x40,0x56,0xea,0x54,0x40,0xb4,0xf,0x9b,0xc0,0xc8,0x94,0xb1,0x3e,0xcf,0xc0,0x8d,0x3f,0x3c,0x87,0x77,0xc0,0xfd,0x77,0xee,0xbf,0xa4,0xcf,0x13,0x40,0xfa,0x93,0x3a,0x40,0xd8,0xf6,0x37,0xbe,0xfe,0x52,0x5e,0x40,0xee,0x15,0x28,0x40,0x5c,0x2a,0xf1,0xbf,0xee,0x86,0x2f,0xc0,0x21,0x7c,0x5a,0x40,0x40,0xac,0x1f,0x3d,0xd7,0x37,0x34,0x40,0x46,0x20,0x73,0x3f,0xd5,0x93,0x8c,0xbf,0x35,0x26,0x6,0x40,0xd,0x7c,0x50,0xc0,0x56,0x7d,0x3d,0x3f,0x26,0x66,0xf5,0x3f,0x62,0xec,0x3f,0xc0,0xd8,0x1c,0x82,0x40,0xb4,0x1a,0xa4,0xbe,0xb0,0x18,0x68,0xc0,0x9c,0x9d,0xbb,0x3f,0x72,0x74,0x39,0xc0,0xc9,0x2b,0x44,0xc0,0x80,0x32,0x89,0x3c,0x43,0xa1,0x13,0x40,0x15,0xbf,0x99,0x40,0x18,0xa0,0x83,0x3e,0x56,0xdb,0x85,0x40,0x16,0xd7,0x8d,0x40,0x97,0x16,0xac,0xbf,0xdc,0x62,0x98,0xbe,0x8,0xe2,0x9a,0xc0,0xf0,0xc5,0xc6,0xbf,0x6d,0xc,0x4c,0x40,0x80,0xd4,0xcd,0xbe,0x96,0x11,0x1e,0xbf,0x6b,0x10,0xc5,0xbf,0x79,0x9,0x25,0x40,0x4b,0x8a,0x80,0x40,0xaf,0x61,0x46,0xc0,0xeb,0x79,0x1a,0x40,0x76,0x3,0x29,0xc0,0xae,0x74,0x48,0x40,0xc0,0x36,0x8b,0xbc,0x4e,0xca,0xf,0xc0,0x66,0x60,0x48,0x40,0xc2,0xfc,0x88,0xc0,0xe5,0x32,0x21,0x40,0x78,0x3a,0x77,0xbe,0x5c,0x91,0x41,0xc0,0x98,0xfb,0x68,0xc0,0x40,0x8b,0x34,0xc0,0x0,0xe9,0xf2,0x3b,0xb8,0xde,0x8,0x40,0x48,0x8c,0x28,0xbe,0x23,0x9a,0xa6,0xbf,0x6b,0x98,0xbf,0xbf,0xba,0xdf,0x8d,0x3f,0x16,0x82,0x58,0x40,0xe8,0xf8,0x11,0x3e,0x41,0xba,0x2e,0xc0,0x8e,0x42,0x40,0xbf,0x7,0xe1,0x73,0xc0,0xd,0xb7,0xfe,0x3f,0x7b,0xa0,0x13,0xc0,0x58,0xea,0xe9,0x3f,0x34,0xd7,0xa3,0xbe,0xf8,0xce,0x81,0x40,0xce,0xbc,0x12,0xc0,0xce,0xe1,0x56,0xc0,0xc4,0x6e,0xa4,0x3e,0xfe,0xe2,0xd2,0x3f,0x34,0xc3,0x7b,0xc0,0x86,0x35,0x3a,0xc0,0x2c,0x29,0x6d,0x40,0xd2,0x6f,0x87,0x40,0x48,0x6,0x45,0x40,0x7e,0xa5,0x6a,0x40,0xf7,0x68,0x29,0x40,0xb1,0xdd,0x84,0x40,0x7a,0x39,0xb0,0x3f,0xfa,0x35,0x5b,0xc0,0x1e,0x4f,0x2d,0xc0,0x6a,0x59,0xc,0x40,0xe8,0xad,0x20,0xbe,0x55,0xc0,0x90,0x40,0x1c,0xb4,0x9d,0x40,0x6e,0x9b,0x73,0x40,0xbf,0x13,0x48,0xc0,0x6f,0x5b,0xc1,0xbf,0x2e,0xd6,0x86,0x40,0xf6,0x2e,0x41,0x3f,0xa0,0x65,0x89,0x40,0x22,0xef,0x3d,0x40,0x28,0x83,0x98,0xc0,0xba,0xe3,0xc0,0x3f,0x11,0x56,0x84,0x3f,0x68,0xd0,0xad,0xbe,0x78,0xc0,0x7f,0x40,0xb4,0x9a,0x64,0xc0,0x3c,0xba,0x95,0x40,0x2a,0xc7,0x7c,0x40,0x7e,0x8c,0xa9,0x3f,0xc0,0x29,0x88,0x40,0xf6,0x32,0x6f,0x3f,0xf8,0x5f,0xb,0xc0,0xb6,0xbb,0x56,0xc0,0x8e,0x8e,0x95,0x40,0xd6,0x8d,0x61,0xbf,0x14,0xb8,0x88,0x3f,0xe6,0xc4,0x86,0xbf,0xca,0x42,0x3d,0x40,0xa8,0x59,0x99,0x3e,0x62,0xec,0x26,0xbf,0xf8,0xbc,0x1d,0xc0,0xbd,0xdf,0x90,0x40,0x8d,0x37,0x9b,0x40,0x70,0xb6,0x29,0x40,0xd0,0x0,0x72,0xbe,0x4d,0xe3,0x58,0x40,0xf1,0xec,0x89,0x40,0x8e,0xe9,0xbe,0xbf,0xc8,0x8d,0x72,0xc0,0xec,0x67,0x91,0xc0,0xc,0x27,0x6,0xc0,0xc5,0xf1,0x54,0xc0,0xb8,0x7f,0xdb,0xbf,0xc8,0xb8,0x88,0xbf,0xb,0x75,0x6d,0xc0,0x93,0xd5,0x48,0x40,0xea,0xf1,0x8b,0x40,0xa,0x10,0x8c,0x40,0x53,0x59,0x14,0x40,0x19,0x74,0xf9,0x3f,0xab,0xd4,0x84,0xc0,0xa0,0xf5,0x7f,0x3e,0x1b,0xd1,0x86,0x40,0xc3,0xda,0x8e,0x3f,0x27,0x8d,0x16,0x40,0xea,0x28,0x98,0x40,0xba,0x6d,0x16,0x3f,0xcc,0x2,0xdb,0xbf,0xda,0xcd,0x96,0x40,0x81,0x91,0x92,0xc0,0xf0,0x5f,0xdc,0xbd,0xcf,0x63,0x81,0x3f,0xc2,0x86,0x13,0x3f,0x4e,0x5f,0x84,0xc0,0xe8,0xaa,0xc,0xc0,0x3,0x5b,0x8e,0x40,0xf4,0xd9,0xae,0xbe,0x98,0x3d,0xc0,0x3f,0xba,0xcf,0xf2,0x3f,0x96,0xed,0xfd,0x3f,0x29,0x92,0x46,0x40,0x95,0xf8,0xda,0x3f,0x72,0xfa,0x62,0xbf,0x62,0x73,0x4f,0xbf,0x3f,0x3,0x3d,0xc0,0xdc,0x4a,0x38,0x40,0x34,0xbc,0x9d,0x40,0x7e,0x2,0x92,0x40,0xd2,0x50,0x3c,0xc0,0x70,0x57,0x1,0x40,0x60,0x97,0x39,0xc0,0x56,0x4e,0x9b,0xc0,0x64,0xaf,0x86,0x40,0xfa,0x68,0x17,0x40,0xbf,0xbe,0x86,0xc0,0x76,0x5b,0x88,0x3f,0x7a,0xe9,0x92,0x40,0xf0,0xa4,0x30,0xbe,0x1a,0xf5,0x60,0x3f,0x5a,0xd0,0x10,0x40,0x4e,0x64,0x1d,0x40,0x6,0x55,0x10,0x3f,0x84,0x9a,0x4c,0x3f,0xf0,0x9b,0xf,0xc0,0x28,0xd3,0x8,0x40,0xdb,0x92,0x86,0xc0,0x20,0xcb,0x9,0x40,0x12,0xdb,0x8c,0xc0,0xbb,0x5d,0x82,0xbf,0x27,0x12,0x28,0x40,0x4c,0x22,0x28,0xc0,0x89,0x88,0xbb,0xbf,0x5c,0x5,0xd5,0xbf,0xa,0x10,0x13,0xc0,0x28,0x45,0x44,0xbf,0x64,0x1c,0x33,0xc0,0xae,0xf5,0x64,0xc0,0xe8,0xdd,0x72,0xbf,0x35,0x23,0xde,0xbf,0xf9,0x12,0x94,0x3f,0x8e,0x9,0x33,0x3f,0xa4,0xcb,0xad,0x3e,0xf4,0x25,0xc2,0x3e,0x70,0x54,0x6,0x3f,0xbf,0xde,0x1d,0x40,0xda,0xf7,0x16,0x3f,0x6d,0x51,0xf0,0x3f,0xe7,0x78,0xae,0x3f,0x4a,0x4,0x6d,0x3f,0xfc,0xbc,0x8c,0x3f,0x42,0x1b,0x74,0x40,0x34,0x6b,0x8d,0xbf,0x60,0x29,0xf3,0x3e,0x7d,0x7d,0xa0,0xbf,0xd0,0xeb,0x33,0x40,0xb4,0xd1,0xf6,0x3f,0x98,0x78,0x41,0x3f,0xe8,0x80,0x27,0xc0,0x94,0x6d,0x5c,0xc0,0x9e,0xf7,0x70,0x3f,0x3,0xa7,0x82,0x40,0xea,0x59,0x2f,0xc0,0x98,0x57,0x10,0x40,0xc4,0xdb,0x11,0xbf,0xe6,0x91,0x19,0x40,0x9c,0xe2,0x73,0x3f,0x33,0x55,0xe0,0x3f,0x8a,0xd8,0x32,0x40,0x3f,0xf1,0x3,0x40,0x7a,0x66,0x8,0x3f,0xe8,0x5a,0x97,0x40,0x36,0x10,0x50,0xc0,0xc,0xe,0xd1,0x3e,0x96,0xcf,0x8e,0xc0,0xc8,0xe7,0x72,0xc0,0x2,0x41,0x9a,0xc0,0x18,0xc0,0x1f,0xbe,0xc8,0x27,0xb5,0x3f,0x74,0xb,0x9e,0xbe,0x32,0x82,0x2,0xc0,0xbc,0x13,0x39,0xc0,0x10,0x5a,0xb8,0x3d,0x27,0x19,0x21,0xc0,0x98,0xd1,0x51,0xbe,0x3f,0xf1,0x83,0x40,0x1e,0xb4,0x46,0x40,0xc2,0x44,0xb7,0x3f,0xe,0x26,0xe9,0xbf,0x63,0xb0,0x96,0xc0,0x24,0x90,0x14,0xc0,0x40,0xe0,0x36,0xbf,0xf4,0x1d,0x2f,0xc0,0x14,0xb5,0xf9,0xbf,0xb2,0x2e,0x10,0xc0,0x87,0x60,0x91,0x40,0x4c,0x58,0x9c,0xbe,0xb0,0x67,0x80,0x40,0x94,0x55,0x60,0xc0,0xdf,0xb2,0x1a,0x40,0x12,0x94,0x90,0xc0,0x6c,0xcf,0xd2,0xbf,0x47,0xa4,0x2,0xc0,0xaa,0x12,0x95,0xc0,0xe2,0x81,0x6e,0xc0,0xca,0xd,0x57,0xc0,0xee,0xc3,0x5e,0xbf,0x95,0x64,0xd3,0xbf,0x78,0xa3,0x93,0xc0,0xe,0x59,0x4f,0x3f,0xde,0xac,0xa,0x40,0xe,0x51,0x5c,0x3f,0x45,0x1c,0x73,0x40,0x28,0x17,0xde,0xbe,0x58,0xc8,0x7e,0x40,0xe8,0x80,0xa5,0xbe,0xa4,0x8b,0xbb,0xbe,0xec,0xd4,0x93,0xbe,0xfe,0x88,0x0,0xc0,0xd8,0x6c,0xf6,0xbf,0x62,0x5d,0x9a,0x3f,0x7e,0x10,0x2f,0xc0,0x18,0xf,0xdd,0x3f,0x7c,0xa,0x80,0xc0,0xf2,0x1b,0x1c,0xbf,0xa8,0x25,0x39,0xbf,0xf2,0x3f,0xf,0xc0,0xd4,0x91,0x64,0x40,0xe6,0x9b,0x81,0xc0,0x42,0xc7,0x18,0x40,0xb4,0xa6,0x8f,0xc0,0xa,0xd3,0x3d,0x40,0x55,0x41,0x97,0x40,0x71,0x99,0x95,0xbf,0xa8,0x59,0xbc,0xbe,0x20,0xe5,0x15,0xbe,0xfd,0xe0,0x37,0x40,0xcc,0xb6,0x9a,0x3e,0x70,0xfc,0x9c,0xbf,0x9f,0x6d,0x8d,0x40,0x5e,0xcb,0x75,0x40,0xe4,0x80,0xa9,0xbe,0xda,0x65,0x23,0xc0,0x3c,0xb1,0x37,0x40,0x7e,0xf6,0xd,0xc0,0x20,0x4a,0x35,0xc0,0x3e,0xaf,0x46,0xc0,0xc8,0xf4,0xa6,0x3e,0xca,0x50,0x8,0xc0,0x30,0xb9,0x56,0x40,0x36,0x8c,0x5f,0x40,0xbe,0x93,0x8,0xc0,0x8e,0x78,0xfd,0xbf,0x66,0xef,0x67,0x40,0xf7,0x54,0x24,0xc0,0x48,0xa3,0x4a,0x40,0x98,0xd3,0x9d,0xbe,0xbe,0xc3,0x66,0x40,0xf8,0x52,0x22,0x40,0x20,0x1e,0x64,0xc0,0xac,0x1,0x65,0xc0,0x68,0x94,0xc,0x40,0x5b,0xbd,0x1b,0xc0,0x64,0xed,0xd0,0x3e,0xa0,0x1c,0x77,0x3f,0xee,0x55,0x81,0xc0,0x38,0x5f,0x8b,0xbe,0x4a,0x5,0x5d,0x40,0x60,0xef,0x48,0x3e,0xa5,0x69,0x48,0xc0,0x8,0x8d,0x8b,0x40,0x7,0x25,0x88,0x40,0xf3,0x5e,0x99,0x3f,0x2c,0x5,0x42,0xc0,0x8a,0xc3,0x9,0x40,0x13,0xf1,0xb4,0x3f,0xfc,0x72,0x3d,0xc0,0x7e,0xf6,0x67,0xc0,0x7a,0xad,0x4,0xc0,0x80,0x11,0x97,0x40,0xae,0x3a,0xa,0x3f,0x60,0xc4,0x94,0xbd,0x66,0x7b,0x13,0x40,0xc8,0xc9,0x33,0xc0,0x2a,0x65,0xca,0xbf,0x10,0x6c,0x5d,0x3f,0x5c,0x80,0x8b,0x40,0xfc,0xe1,0xb2,0xbe,0xc7,0xea,0x8e,0x3f,0xcf,0x1f,0x85,0xc0,0x41,0xb0,0x95,0xc0,0x4d,0x4,0x86,0x3f,0x40,0x1c,0x4b,0xbd,0xe4,0x15,0x7b,0x40,0x55,0x40,0x92,0x3f,0x8e,0xce,0x8f,0x40,0xec,0xba,0x73,0xbf,0x54,0xd9,0xae,0xbf,0x8c,0x42,0xdb,0xbe,0xf7,0xce,0x13,0xc0,0x3c,0xc7,0xa6,0x3e,0xc5,0x15,0x84,0xc0,0xb8,0x10,0x11,0x3f,0x3c,0xce,0xae,0xbe,0xd2,0x8e,0xc6,0x3f,0xbf,0x27,0x9b,0x40,0x38,0xd8,0xe4,0x3f,0xd8,0x10,0x55,0x3f,0x12,0x1,0x51,0xc0,0xda,0x8e,0xdc,0xbf,0x7f,0x1b,0xfb,0xbf,0x7c,0x39,0x87,0xc0,0x26,0x17,0x2b,0x40,0x66,0x3,0x98,0x40,0xe2,0x84,0x54,0x40,0x54,0x1f,0x7c,0x40,0xbe,0xc5,0x2f,0xc0,0x4,0xc6,0x3,0xc0,0x59,0x88,0xc8,0xbf,0x5c,0x33,0x10,0xc0,0x20,0x59,0x7c,0xc0,0xa3,0x9d,0x83,0xc0,0xe0,0x85,0x73,0xbe,0xbd,0xbb,0x3d,0xc0,0x36,0xe5,0x70,0xc0,0xee,0x1a,0x9c,0x40,0xc6,0xbf,0x95,0xc0,0xba,0xdb,0xc8,0xbf,0x4a,0x96,0x4e,0x40,0xd4,0xc8,0x23,0xc0,0x4b,0x89,0x14,0x40,0x1a,0xfb,0x64,0xc0,0xe0,0x8e,0x42,0xbd,0x6a,0xa6,0xe9,0x3f,0x6b,0xff,0xc6,0xbf,0x2e,0xf5,0x63,0xc0,0xe4,0xed,0x7a,0x3f,0xac,0xe6,0x55,0xbf,0xae,0xaa,0x8b,0x40,0xc6,0x74,0x44,0xbf,0x74,0x36,0x77,0x40,0x36,0xc2,0x7,0xc0,0x2c,0x61,0xf9,0xbf,0x0,0x23,0x6b,0x3c,0x70,0x72,0x33,0x40,0xdd,0x9d,0x93,0x40,0x4c,0xd5,0x15,0x40,0xc4,0xdd,0xf,0xc0,0x80,0x6b,0xaf,0x3e,0x79,0x89,0x54,0x40,0x5b,0x45,0x7f,0x40,0x7e,0xbc,0x65,0x40,0xf6,0xea,0xd7,0x3f,0xd8,0xb1,0x1d,0xbf,0x93,0xf5,0x5a,0x40,0x0,0x8d,0xd6,0x3f,0x9c,0x4c,0x8a,0xc0,0x6a,0xaa,0x9c,0x40,0xac,0x65,0xbb,0xbe,0x7c,0x11,0x99,0x40,0x2e,0xa7,0x3d,0x40,0x60,0x62,0xa1,0xbe,0x8c,0xb2,0x88,0xc0,0x90,0x39,0x99,0xc0,0xbc,0x74,0x19,0xc0,0xb6,0x4d,0x5,0x40,0xd4,0x79,0xc5,0x3e,0x24,0xd6,0xfa,0x3e,0x32,0x6d,0x82,0xc0,0xc4,0x2d,0x30,0x40,0xa,0x84,0x9e,0xbf,0xbc,0xf2,0x27,0x40,0xbf,0x45,0x82,0xc0,0x90,0xce,0xaf,0x3d,0x74,0x13,0x22,0x40,0x5c,0xbd,0xbd,0x3f,0x2c,0x27,0x9f,0xc0,0xf6,0xa4,0x86,0x40,0x68,0x2d,0x6e,0xc0,0xbe,0x6c,0x93,0xc0,0xba,0xdf,0x5d,0xc0,0x98,0x97,0x97,0xc0,0xf2,0xaa,0xe9,0x3f,0xdc,0x2c,0x71,0x40,0x0,0xa9,0x80,0x40,0x94,0xee,0xe0,0x3f,0xbb,0xb6,0xab,0xbf,0x7d,0x19,0x87,0x3f,0x78,0x48,0xc6,0x3f,0xd6,0x9a,0x9e,0xc0,0x80,0xe6,0xfc,0xbc,0x34,0xe5,0x9f,0x3f,0x60,0x85,0x81,0x40,0x4d,0x9c,0x40,0x40,0x2e,0x9a,0xb4,0xbf,0xa8,0x7d,0x68,0xbe,0x64,0xd4,0x4b,0x40,0x41,0x4f,0x91,0x40,0x0,0xe8,0x23,0xc0,0xaf,0x9d,0x9e,0x40,0xf6,0x19,0x5b,0xbf,0x88,0xd4,0xe,0xc0,0x0,0x15,0xe5,0xbc,0x12,0xd6,0x7a,0x40,0x5,0xbc,0x36,0xc0,0xb8,0xdf,0x32,0x3e,0xc8,0x2c,0x38,0xc0,0xe8,0x2d,0x0,0xbe,0xbc,0x7f,0x5f,0x40,0xb4,0x63,0x1e,0xc0,0x1b,0xcd,0xf,0xc0,0x7,0x88,0xb1,0x3f,0x12,0xa7,0x16,0x40,0x0,0x22,0xc4,0xbe,0x3,0x5f,0x93,0xbf,0x30,0x19,0xa2,0xbe,0x65,0x87,0xc2,0x3f,0x40,0x72,0x8e,0x40,0x35,0x3a,0x10,0x40,0x20,0xb5,0x4f,0x3f,0xb8,0x7c,0xd4,0x3f,0x98,0xc5,0xbf,0x3f,0x68,0x8c,0x71,0xbe,0xac,0x15,0x57,0xc0,0x2,0x50,0x17,0xc0,0x61,0x4f,0xe0,0x3f,0xd0,0xb2,0xe0,0x3f,0x5a,0xc6,0x22,0xc0,0x6c,0x85,0x30,0xc0,0xf0,0x58,0x34,0x40,0x4e,0x79,0x67,0xbf,0x1e,0xe7,0x42,0x40,0xa,0x4b,0xaa,0x3f,0xae,0x8a,0x78,0x3f,0x16,0x12,0x11,0xbf,0xb,0x3c,0xb,0xc0,0x3b,0xe1,0xa1,0x3f,0x94,0x9d,0x48,0xc0,0x69,0x36,0xd,0xc0,0x6b,0x99,0x66,0xc0,0x0,0x9c,0xd1,0xba,0x32,0x31,0x2d,0xc0,0xed,0xc,0xec,0xbf,0xb8,0xf5,0xce,0xbf,0xd0,0xf0,0xc,0x40,0xdf,0x4b,0x31,0x40,0xec,0x4e,0x58,0x40,0xbc,0xec,0xd,0xbf,0x6,0x2,0x98,0x40,0xe6,0xb4,0x20,0xc0,0x76,0x26,0x29,0x3f,0xb3,0xb1,0xa9,0x3f,0xb2,0x42,0x92,0xc0,0xe2,0x7d,0x47,0x40,0xfb,0x13,0x61,0x40,0x22,0x69,0x6f,0x40,0xb6,0x59,0x5d,0x40,0xce,0xd1,0x34,0x40,0x65,0x32,0x42,0xc0,0x77,0x6f,0x66,0x40,0x66,0xa3,0xf0,0xbf,0xeb,0xc7,0xb0,0x3f,0x3,0x8d,0x91,0xc0,0xbc,0xab,0x12,0xbf,0x8e,0xf5,0x12,0xc0,0xd6,0x1c,0x1b,0xc0,0xad,0x5e,0x6e,0xc0,0xac,0xd,0xe1,0xbe,0x9a,0x62,0x46,0xc0,0x68,0x1d,0x48,0xc0,0x10,0x41,0x94,0xc0,0x0,0xb,0x53,0x40,0x7e,0x40,0x68,0x40,0xac,0x76,0x43,0xbf,0x20,0xf3,0x31,0x40,0x42,0x40,0x91,0x3f,0xae,0x2c,0x43,0xc0,0x14,0x9d,0x3c,0xbf,0x4a,0xc8,0xa,0x40,0x0,0x66,0xe9,0x3c,0xa0,0x90,0x83,0xbe,0x96,0x4e,0x40,0xbf,0x9e,0xa4,0x61,0x40,0x5c,0x24,0x66,0xc0,0x5c,0xfe,0xcc,0x3e,0x3c,0x72,0x4c,0xc0,0x58,0x2d,0x3b,0x40,0x54,0x16,0xd6,0xbe,0x30,0xc0,0x3c,0xc0,0x7e,0xd0,0x53,0xc0,0xb8,0x83,0xeb,0xbe,0xd0,0xb7,0xb8,0x3e,0xa8,0x74,0x41,0x40,0xa2,0xeb,0x80,0xbf,0x3c,0xd1,0x26,0xc0,0x7c,0xe3,0x9a,0xc0,0x78,0x47,0x56,0xbe,0x34,0x8b,0x85,0x40,0xce,0x8f,0x94,0xc0,0x21,0xb8,0x80,0xbf,0xa6,0xeb,0x79,0x40,0xca,0xa6,0x8c,0x40,0x42,0xbf,0x52,0xc0,0x94,0x72,0x8b,0xc0,0x8c,0xc4,0x9e,0x40,0xce,0x77,0x19,0xc0,0xbb,0x58,0xaf,0x3f,0x4,0xc0,0x9e,0xc0,0x16,0xa4,0x12,0x40,0xe0,0x38,0x11,0xbd,0x5e,0xa4,0x72,0xbf,0x20,0x38,0x1f,0xc0,0x25,0x2c,0xb,0x40,0x46,0xc8,0xff,0xbf,0x3d,0x1b,0xe,0xc0,0xae,0x42,0x4a,0xc0,0xc1,0xa8,0x82,0x40,0x90,0x74,0xc,0x3e,0xbe,0x16,0x4b,0xbf,0xe4,0x37,0x7c,0x3f,0x26,0x94,0x58,0x40,0x4e,0x1e,0x86,0xc0,0xc5,0x72,0x51,0x40,0x52,0x9d,0x12,0x40,0xe6,0x8a,0x2c,0x40,0x20,0x91,0x23,0xbf,0xc4,0xf2,0x3e,0xc0,0xb8,0x2b,0xa8,0xbe,0x18,0xcd,0x9a,0x40,0xb2,0xda,0x3d,0xc0,0x41,0x2,0x85,0xc0,0xbc,0x8f,0x9f,0xbf,0x6f,0x63,0x2,0x40,0xea,0x59,0x7e,0xc0,0x24,0xee,0xd3,0xbe,0xdc,0xd2,0x75,0x3f,0x92,0x8b,0xaa,0xbf,0xe4,0xbe,0x86,0xc0,0xcb,0x17,0xe5,0xbf,0x16,0xa9,0xb3,0xbf,0xcb,0x88,0xf1,0x3f,0xc4,0xa9,0x9f,0xc0,0xc,0x5d,0x87,0x3f,0x10,0xbe,0x1a,0xbf,0x7,0x50,0x5a,0x40,0xc0,0xc7,0x26,0xc0,0x3c,0x44,0x34,0x40,0xf0,0x79,0xe0,0xbd,0xcd,0x87,0xc8,0x3f,0x4,0x86,0x97,0xc0,0x1c,0x22,0x2d,0xbf,0x6e,0x52,0x48,0xc0,0xd8,0xe9,0x30,0x40,0x52,0x5,0x8e,0xc0,0x8d,0x88,0x6e,0x40,0xb6,0xec,0x88,0xc0,0x66,0x25,0x4e,0x40,0xdd,0x16,0xe3,0xbf,0x9e,0x4a,0x89,0xc0,0x80,0x80,0xa4,0x3e,0x24,0x70,0x88,0xc0,0x80,0x80,0xcc,0x3f,0xa,0x2,0x96,0x40,0x18,0x43,0xf4,0xbe,0xb4,0x42,0x3a,0xc0,0x7c,0xd,0x70,0x40,0x98,0xe4,0x7,0x3f,0xd8,0x81,0x9b,0x3e,0x88,0x6d,0x22,0x40,0x48,0x99,0x98,0xc0,0x56,0xb0,0x19,0xc0,0x2d,0xc,0xd0,0x3f,0x8c,0x6a,0x86,0x3e,0x66,0xd5,0xfa,0xbf,0x72,0x16,0x6a,0xc0,0xeb,0x83,0x65,0x40,0x7f,0x2b,0xbe,0xbf,0x7c,0x5f,0xb5,0xbe,0x7e,0xd9,0x34,0x40,0x30,0xac,0x8c,0xbd,0x7e,0x4c,0x7f,0xc0,0xd6,0xe5,0x91,0xc0,0xac,0x18,0xe5,0x3e,0xd,0xb8,0x8a,0x3f,0xb0,0xa1,0x57,0x40,0xf2,0xe1,0x23,0x40,0xa6,0x19,0x9e,0x40,0x1c,0xbb,0x11,0x40,0x66,0x1,0x1b,0x40,0x23,0x46,0x8b,0x40,0xac,0x9,0x4,0xc0,0x2c,0x86,0x20,0x40,0xed,0xfe,0xb3,0xbf,0xbc,0x9d,0x2f,0x3f,0xb,0xc6,0x2b,0x40,0xc4,0x94,0x94,0xc0,0x10,0x77,0x3e,0x40,0x6a,0x5a,0x65,0x3f,0x26,0xf1,0xb5,0xbf,0xce,0xc1,0xf6,0xbf,0xaf,0xea,0xe7,0xbf,0xfb,0xbe,0x90,0x3f,0x7c,0x1a,0x16,0xbf,0xf7,0x5e,0x9a,0x3f,0x7e,0x65,0xd0,0xbf,0x20,0xc2,0x79,0x3d,0x88,0x7e,0x7d,0x40,0xe6,0xbf,0x9f,0xc0,0xb0,0x5f,0x10,0xbf,0x95,0x0,0x30,0x40,0x66,0x3c,0xa,0x40,0x3e,0xd,0xc3,0x3f,0x3e,0xf9,0x59,0x40,0x3e,0xbe,0x99,0xc0,0x40,0x1b,0x79,0xc0,0x43,0xfc,0x97,0xc0,0x7c,0xaf,0x89,0x40,0x41,0xdf,0x36,0x40,0x63,0xcd,0x58,0x40,0xd8,0x1,0x96,0x40,0xd9,0xe7,0xbb,0xbf,0x5a,0x16,0x96,0x40,0x80,0x14,0xd9,0x3e,0xff,0x24,0x90,0x3f,0x7d,0x73,0xa5,0xbf,0xc,0xd0,0xd2,0xbf,0xee,0xd2,0x36,0xc0,0x9d,0x85,0xaf,0x3f,0xfb,0x78,0x3d,0x40,0xf8,0xcf,0x40,0xc0,0xca,0xe3,0x17,0xc0,0xca,0xc4,0x59,0xbf,0xce,0xb1,0x95,0xc0,0xf6,0xdd,0x4b,0xbf,0x5b,0x7b,0x92,0x3f,0x80,0x15,0xce,0xbe,0xb0,0x3d,0xb7,0x3e,0x67,0x9f,0x41,0x40,0xe6,0x39,0x5d,0xc0,0x9b,0x10,0xd1,0xbf,0x49,0xbd,0x85,0xbf,0x79,0x49,0x8,0x40,0xd8,0xb5,0xbc,0x3f,0x92,0x77,0x8a,0xc0,0x2c,0xd8,0xd7,0xbe,0x22,0x4e,0x78,0xc0,0xdb,0x6f,0x7a,0xc0,0x32,0x6e,0x16,0x3f,0x9a,0xa,0x3c,0xc0,0x3a,0xe7,0x7e,0x40,0x48,0x3e,0x29,0xc0,0x6,0x1a,0x80,0xbf,0x6,0xff,0x10,0x40,0x46,0x5,0xb9,0x3f,0x24,0xd1,0x52,0x3f,0xb8,0xfb,0x1b,0xbe,0xc5,0x91,0x80,0xbf,0x8e,0x91,0x14,0xc0,0x82,0x8c,0x9b,0x40,0x7b,0xd2,0x72,0x40,0x34,0x40,0x1d,0xc0,0x80,0x8,0x40,0x40,0x64,0x1a,0xd1,0x3f,0x46,0x5f,0x57,0xc0,0xd5,0x6f,0x17,0xc0,0x0,0xf5,0xb4,0xbc,0x80,0x43,0x3b,0xc0,0xde,0x5b,0x48,0xc0,0x70,0x7c,0xcc,0xbd,0x74,0x34,0x8b,0xc0,0x34,0x12,0x52,0xc0,0xdc,0x93,0x4b,0x3f,0x8e,0x74,0x4,0xbf,0x86,0x5b,0x19,0x40,0xb2,0xd6,0x64,0x40,0x71,0x71,0x4c,0x40,0xb6,0x2a,0xf,0xc0,0xe0,0x93,0x15,0x3f,0x95,0x95,0xd4,0xbf,0x9c,0x22,0x9b,0x3f,0x8d,0xb1,0x92,0xc0,0x5c,0x37,0x82,0x40,0x3a,0x2,0x52,0x40,0x91,0x59,0x88,0xbf,0x57,0x7e,0x9,0xc0,0x12,0x20,0x85,0x40,0xcb,0x56,0x30,0x40,0xdb,0x3c,0x9b,0x40,0x5c,0xfc,0x3c,0xc0,0x20,0xc2,0x60,0xc0,0xc6,0xd9,0x8f,0xc0,0xce,0xf7,0x40,0xbf,0x80,0x8,0xd1,0x3c,0x60,0x67,0x82,0x40,0xfd,0xde,0x25,0xc0,0x68,0x67,0x8f,0xc0,0x0,0x28,0x57,0x3e,0x9e,0xa2,0x61,0x3f,0x7c,0x2d,0xb0,0x3f,0x43,0xd8,0xfc,0xbf,0x72,0x2,0x7b,0xc0,0xbc,0x22,0x95,0xc0,0xa6,0xf0,0x9e,0x40,0x9d,0x89,0xa6,0xbf,0x68,0x2e,0x70,0xbf,0xd6,0x19,0x2e,0x40,0xbe,0xe7,0x29,0xc0,0x50,0x85,0x92,0xc0,0xa5,0xe2,0x9b,0xc0,0xfc,0x2e,0x89,0xbe,0xa2,0xf2,0xc9,0x3f,0x5b,0xfe,0x16,0x40,0x3e,0xed,0xf,0xc0,0x18,0x3b,0xbb,0x3e,0x10,0xd2,0x65,0x3e,0x24,0x9,0x43,0x40,0x2a,0x88,0x40,0xc0,0x77,0xc9,0x6b,0x40,0x5a,0x92,0x90,0xbf,0x60,0x89,0x9,0x40,0x76,0x39,0x84,0xc0,0xf9,0x44,0xe4,0xbf,0xa8,0xe2,0x30,0xc0,0x38,0xcf,0x1a,0xc0,0x5c,0xbc,0x77,0xc0,0x3b,0xdc,0x92,0x3f,0xa3,0x4c,0x9c,0x40,0x28,0xfa,0x70,0x40,0xfa,0xf1,0x47,0xc0,0xdc,0x9b,0xff,0xbe,0xc1,0xa7,0xaa,0xbf,0x8c,0xc7,0xb,0xc0,0x1f,0x22,0xc,0xc0,0xd,0x3e,0xaa,0x3f,0xb2,0x66,0xa,0xc0,0x96,0x15,0x60,0xc0,0xae,0x1e,0x2b,0x3f,0xef,0x12,0x98,0x40,0x20,0x5c,0x2b,0xbe,0x21,0x94,0x9a,0x40,0x65,0x91,0x4c,0xc0,0xcd,0x64,0x86,0x40,0x70,0xe5,0xef,0xbd,0x95,0x49,0x64,0x40,0x3c,0xe9,0x2c,0x3f,0xa4,0x5e,0xa2,0x3f,0xdc,0x71,0x86,0xc0,0xd0,0xa9,0x69,0xbf,0xe0,0x88,0x75,0xbd,0x6a,0xe5,0x4d,0xbf,0xbb,0xb9,0x50,0x40,0xba,0x3c,0xef,0xbf,0xa8,0xa2,0x0,0xc0,0x8b,0x2c,0x68,0xc0,0x7d,0x6d,0xd3,0x3f,0x6f,0xf8,0x83,0x40,0xa8,0xc9,0x62,0x3f,0xfa,0x7a,0x44,0xc0,0xa2,0xec,0xf2,0x3f,0x82,0x9,0x2b,0x3f,0xd1,0xea,0x4a,0x40,0x0,0xa9,0x92,0xbb,0x48,0x45,0x95,0x40,0x66,0x70,0x8a,0x40,0xbd,0xc6,0x4b,0xc0,0xdf,0xb3,0x73,0x40,0x8f,0x2e,0xd8,0xbf,0xf2,0x4a,0x9c,0xc0,0x5d,0x6c,0x95,0x40,0x5c,0x29,0x2c,0xc0,0x84,0x96,0x4b,0x3f,0x96,0xb,0x93,0x40,0x1e,0xcc,0x19,0xc0,0x54,0x9,0x66,0x40,0x0,0x6c,0x98,0x3f,0xa0,0x64,0x16,0x3d,0x84,0xe3,0xf6,0x3f,0xe4,0x56,0x12,0xc0,0xf8,0x92,0x8,0xc0,0xb6,0x62,0x87,0xc0,0x78,0xfe,0x83,0x40,0x1e,0xdb,0x6,0xc0,0xa8,0xb6,0x7a,0x40,0xe6,0x3f,0x27,0x3f,0xbc,0xcc,0xa3,0xbe,0x49,0x8d,0x8c,0x40,0xe8,0x19,0x20,0x40,0x9c,0xe7,0x2f,0x40,0xf6,0x1e,0x33,0xbf,0xb8,0xc6,0x5,0x40,0x7a,0xaf,0x99,0xc0,0x30,0x6b,0xf5,0xbd,0x80,0xf6,0x8d,0xbc,0xbf,0x20,0x85,0xc0,0x60,0x87,0x6a,0xbf,0xd2,0x57,0xd5,0x3f,0xce,0x0,0x58,0x40,0xc4,0x71,0xe2,0x3e,0xcc,0x26,0xf3,0xbf,0x3f,0x88,0x17,0xc0,0x30,0xdd,0x4e,0xc0,0x50,0xc0,0xee,0xbf,0xce,0x1d,0x1b,0xc0,0x57,0x73,0x73,0xc0,0x62,0xbb,0x7a,0x3f,0xaa,0x2,0x4e,0xc0,0x60,0xca,0xe8,0xbd,0x1a,0x27,0x66,0x40,0xb6,0xdb,0x54,0xc0,0x27,0xbf,0x48,0x40,0xa9,0x7e,0x81,0xc0,0xe8,0x72,0x87,0xc0,0x3a,0xd,0x9a,0x40,0x25,0xe8,0x1c,0xc0,0x5f,0x91,0x88,0x40,0xff,0x8f,0x8f,0x40,0xb7,0xb0,0xb0,0x3f,0x28,0x94,0x1f,0xc0,0x75,0x62,0xa5,0x3f,0xf4,0x30,0x85,0x3f,0x29,0x47,0x85,0x3f,0xe2,0x6e,0x1f,0x3f,0xf3,0x36,0x9d,0x40,0xfe,0x6e,0x30,0x3f,0xa1,0xd3,0x1e,0x40,0x74,0x6a,0xee,0xbf,0x96,0x19,0xd2,0xbf,0x76,0xbb,0x84,0x40,0xa8,0xc0,0xd7,0xbe,0xe6,0x2a,0x5,0x40,0x3a,0xd2,0xc,0xc0,0xf0,0x3f,0x77,0x3f,0xd4,0x67,0x78,0xc0,0x66,0xeb,0x32,0x3f,0x84,0x3d,0x45,0x3f,0x70,0x2a,0xd8,0xbe,0x72,0x5,0x1,0x40,0xa5,0xa9,0x2b,0x40,0x28,0x6c,0x63,0x40,0x50,0x5,0x92,0xc0,0xe4,0xe4,0xc7,0xbe,0x84,0xf1,0x38,0x40,0x8,0xac,0x54,0x40,0xe,0xc6,0x7a,0xc0,0x0,0x44,0xb6,0xba,0x1c,0xd3,0x83,0xbe,0x84,0xce,0x54,0xbf,0x59,0x22,0x9,0x40,0x55,0xed,0x5,0x40,0x57,0x67,0x91,0xc0,0x8c,0xce,0x4c,0x3f,0xb5,0x5c,0x2c,0xc0,0x87,0x14,0x25,0x40,0x30,0x44,0xea,0xbd,0x7c,0x5e,0x5e,0x3f,0x40,0xcb,0x32,0xbf,0x54,0xfa,0x7e,0x40,0xc7,0xa3,0x84,0xc0,0x4c,0x14,0xb,0x40,0x58,0xb5,0x9b,0x40,0x61,0xd3,0xfc,0xbf,0x11,0xa4,0xa4,0x3f,0xc4,0xff,0x1d,0xc0,0x45,0x89,0x1a,0xc0,0x3e,0xa7,0x2e,0xc0,0x7b,0x2c,0x1e,0x40,0x84,0x63,0x4e,0x40,0x30,0x30,0x29,0xbf,0xd8,0xae,0x1b,0xbf,0x64,0xf8,0x66,0xc0,0x40,0xc0,0x2c,0x40,0x7f,0x94,0x11,0x40,0x18,0x82,0x67,0xbe,0x62,0x13,0x49,0xc0,0x67,0x89,0x20,0x40,0xa4,0xf1,0x50,0xc0,0x16,0x69,0x50,0x40,0xc1,0x8a,0x7e,0xc0,0x44,0xa8,0xe0,0x3f,0x46,0x65,0x58,0xc0,0xba,0x68,0x16,0x3f,0xfe,0xaf,0x9a,0x40,0x9a,0xf9,0x60,0x40,0xb6,0xb,0x6f,0xc0,0x7f,0x8d,0x98,0xbf,0x74,0x66,0x54,0x3f,0xe0,0x94,0xd5,0xbf,0x38,0xb3,0x6b,0xbf,0xb6,0xca,0x71,0x40,0x3a,0x71,0x6f,0xc0,0xe6,0xd5,0x7a,0xc0,0xf2,0x5b,0x83,0xc0,0x20,0x52,0xba,0xbd,0x82,0xf2,0x5a,0xbf,0x40,0x4b,0xa6,0x3f,0x44,0x41,0x2f,0xc0,0xb6,0x51,0x25,0xc0,0x5,0x87,0x11,0xc0,0x90,0x23,0xf6,0x3f,0x8a,0x86,0x9a,0x40,0x65,0x3c,0x8a,0xc0,0x22,0x5,0x30,0x40,0xc,0x3c,0x53,0x40,0xdb,0x92,0x61,0xc0,0xbe,0xc5,0x3a,0xc0,0x42,0x85,0x78,0x40,0xfd,0xfe,0xf8,0xbf,0x17,0xf,0x2c,0x40,0x90,0xff,0xc9,0x3e,0x62,0xac,0x8e,0xc0,0x39,0x65,0x2c,0x40,0x38,0x87,0xb,0x3f,0x2a,0xc5,0x42,0xc0,0x28,0x51,0x60,0x3f,0x1f,0x4d,0xf2,0xbf,0xf6,0x8c,0x35,0xc0,0x4d,0xdc,0xc6,0xbf,0xb1,0xdb,0x82,0xc0,0xf4,0xa8,0x94,0xc0,0x80,0x99,0xd6,0xbd,0x56,0xb7,0x50,0xc0,0xd0,0xb9,0xd9,0x3f,0xd5,0x7e,0x58,0x40,0x3e,0xc0,0x12,0xbf,0x7a,0x41,0x87,0xc0,0x96,0x54,0x92,0xc0,0x98,0x21,0x28,0x40,0x88,0xde,0xa7,0x3e,0x95,0x20,0x8b,0xc0,0x5a,0x0,0xc,0xc0,0x8e,0x3,0xc8,0x3f,0xcc,0xf9,0xcf,0x3e,0xcc,0xf0,0x19,0x40,0x3c,0x9f,0x96,0x40,0xa8,0xa3,0xe5,0xbf,0x34,0x62,0xc3,0xbf,0x41,0x6b,0x9e,0xc0,0xad,0x88,0x92,0x40,0xf8,0xf8,0xdb,0xbe,0x1c,0x43,0xb9,0xbf,0x44,0xa,0xe8,0xbe,0xe6,0x9f,0xa,0xc0,0xe2,0xb1,0x4,0x3f,0x25,0x92,0x6d,0x40,0xf2,0x69,0xdf,0x3f,0x94,0x95,0x9e,0x3f,0xc8,0xde,0x12,0xc0,0x5a,0x46,0x31,0x40,0x5c,0x35,0x9f,0x40,0x94,0x98,0x88,0xc0,0x80,0x3a,0x35,0xc0,0x56,0x79,0x9b,0x40,0xad,0x50,0x77,0x40,0x82,0x2b,0xa7,0x3f,0x3f,0x5f,0x92,0x40,0xe0,0xcd,0xd3,0xbd,0x92,0x35,0x97,0x3f,0xd2,0x9b,0x18,0x40,0xd1,0x6a,0x95,0x40,0xb0,0x47,0x70,0xc0,0x50,0x3c,0xf,0x40,0xa,0x37,0x2,0x40,0x1d,0xcb,0x5,0xc0,0x4,0x84,0x8,0xc0,0xf9,0x2f,0xf4,0x3f,0x2c,0x95,0x3e,0xc0,0xc,0x9e,0x2c,0x40,0xc6,0xaf,0x51,0x40,0x63,0x18,0x1d,0x40,0x91,0xa0,0x2f,0xc0,0x62,0x96,0x96,0x40,0x9e,0xdb,0xf3,0x3f,0x24,0x5,0x9d,0xc0,0x4b,0x64,0x9a,0xc0,0x21,0xe2,0xe2,0x3f,0x1a,0xa0,0x13,0x40,0xf2,0xca,0x8a,0x40,0x17,0xaf,0x77,0x40,0x16,0xb4,0x46,0x40,0x26,0x91,0xc0,0xbf,0xc0,0xaf,0xad,0xbe,0xd6,0x6c,0x48,0xc0,0x80,0xa7,0x2a,0x3e,0x4a,0x2e,0x87,0x3f,0x34,0xf8,0x11,0x40,0x29,0xe4,0x83,0x3f,0xde,0x47,0x68,0x3f,0x0,0xb7,0x89,0x3b,0x1a,0xd4,0x7a,0xc0,0x3a,0x78,0xb,0xc0,0x81,0x80,0x94,0xbf,0xe4,0x15,0xab,0x3f,0x20,0x32,0x46,0x3e,0x29,0x9,0x34,0xc0,0x44,0xd4,0x14,0xc0,0x43,0x19,0x9e,0xbf,0x19,0x71,0x88,0x40,0x1c,0x77,0x55,0x40,0xb9,0x80,0x89,0xc0,0x14,0x6d,0x2d,0xc0,0x4b,0x3e,0xee,0x3f,0x55,0x87,0xdc,0xbf,0x89,0x95,0xc7,0xbf,0x63,0x52,0x82,0xc0,0x5c,0xd5,0x2,0xbf,0xbd,0xc9,0xdc,0x3f,0x78,0xf9,0x8d,0x40,0xb7,0xae,0xad,0xbf,0xcd,0x34,0xfd,0xbf,0x6,0x99,0x6c,0x3f,0x98,0xf6,0xca,0x3e,0xb4,0x2d,0x1b,0x3f,0x98,0x72,0x94,0xc0,0x30,0xdc,0x79,0x40,0x20,0x7a,0x71,0xbd,0x6c,0xb7,0xdb,0xbe,0xb,0x2,0xcf,0xbf,0x9,0x72,0x93,0xc0,0x9,0xa0,0xd3,0xbf,0xd4,0xe2,0x92,0xc0,0x6c,0xa9,0x3,0x40,0x2b,0xe1,0x27,0xc0,0x5e,0x25,0x91,0xc0,0x1d,0x1d,0x22,0xc0,0x8f,0x61,0xfa,0x3f,0xcc,0x17,0x32,0xc0,0x9e,0x4e,0x77,0xc0,0xd8,0xb2,0xfb,0xbf,0x23,0x68,0x96,0x40,0xc0,0xd6,0x30,0x40,0xe,0x17,0x99,0x3f,0x19,0xc4,0xa4,0xbf,0x10,0x93,0x2,0xc0,0xca,0x3e,0x83,0x3f,0x82,0x1e,0x66,0x40,0x8c,0xe0,0x76,0xc0,0x38,0xc,0x79,0x40,0xb,0x1,0x9a,0xc0,0x5e,0xa2,0x90,0xc0,0x98,0x9a,0x98,0xc0,0x1f,0x20,0xcf,0x3f,0xe0,0x3d,0x52,0x3e,0x58,0x94,0x9f,0x3f,0x13,0xc0,0x6a,0xc0,0x85,0x45,0x41,0xc0,0xf8,0xee,0x6,0x40,0x64,0x46,0x64,0x40,0xae,0x3a,0x86,0xc0,0xa4,0x31,0x8e,0x3e,0xc0,0xf4,0xa9,0xbe,0xc2,0xce,0x9b,0xbf,0xd4,0x57,0xdd,0x3f,0x92,0xf3,0x73,0xc0,0xba,0x2d,0x1d,0x40,0x9f,0x3e,0xf9,0xbf,0x38,0xfc,0x57,0x40,0x35,0xae,0x9e,0xbf,0x2a,0x51,0x60,0x40,0xf2,0xbe,0x55,0xc0,0xc2,0x43,0x91,0xc0,0x5b,0x4d,0x9d,0x40,0x5b,0x5c,0xd9,0xbf,0x20,0x7d,0x2d,0x3d,0x3c,0x4c,0x6a,0x40,0xa2,0xe5,0x8e,0x40,0x15,0x55,0x86,0x3f,0xe3,0x4a,0x95,0xc0,0x78,0x55,0x46,0xc0,0xe,0x2d,0x47,0x40,0xa1,0x1,0xcb,0x3f,0x9,0xd0,0x2d,0x40,0x27,0x3d,0xf0,0xbf,0xa2,0x6d,0x94,0xc0,0xec,0x2c,0x4d,0xbf,0x4,0xec,0xff,0x3f,0xc8,0x68,0x5f,0x40,0xd9,0x83,0x54,0xc0,0x32,0x0,0x1d,0xc0,0x5a,0x7c,0x85,0x40,0x54,0x4a,0x83,0x40,0x14,0x35,0x9b,0x40,0x5e,0x58,0x64,0x40,0x6f,0x6c,0xab,0x3f,0x0,0x8e,0x41,0xbc,0xa1,0xfc,0x6d,0xc0,0xb,0x18,0xe6,0xbf,0x2c,0xca,0x9c,0xc0,0xee,0xef,0x50,0x40,0xc6,0x5f,0x45,0x40,0x54,0x48,0x10,0x40,0xcc,0x77,0x63,0xbf,0x54,0x68,0x87,0xc0,0x65,0x88,0x8b,0x40,0x25,0x3a,0x91,0x3f,0x8d,0x4a,0x87,0x3f,0x48,0xf1,0xa2,0xbf,0x72,0x21,0x67,0xc0,0x1c,0x56,0xd,0x3f,0x88,0x8a,0x49,0xbf,0x0,0x61,0x90,0x40,0xa,0xa8,0xed,0x3f,0xc7,0x51,0xd7,0x3f,0x46,0xf6,0x6a,0x40,0x4e,0x54,0x28,0xc0,0xe0,0x1f,0x57,0x40,0x0,0xb2,0xed,0x3c,0x5e,0xe,0x93,0xc0,0x49,0xc0,0x48,0x40,0xcc,0x6d,0x57,0xc0,0xa4,0x43,0x44,0x40,0x3a,0x43,0x78,0x40,0xac,0x69,0xbc,0xbe,0xef,0xa6,0xd2,0xbf,0xd4,0xbc,0x57,0x3f,0xb1,0x31,0x6f,0x40,0xc9,0x66,0x22,0x40,0x29,0x1e,0x74,0x40,0xc8,0xa7,0x14,0xbe,0x61,0xcf,0x71,0xc0,0x67,0x28,0xe,0x40,0x4c,0x65,0xbc,0x3e,0x2d,0xc6,0x98,0x3f,0x8,0xf6,0x94,0x40,0xf,0x95,0x92,0xbf,0x6e,0x7f,0x91,0x40,0x2b,0xf9,0x3c,0xc0,0x8f,0x14,0x4f,0xc0,0x8a,0x42,0x51,0x40,0x1c,0x51,0x73,0x40,0x95,0x12,0xf3,0xbf,0x7a,0xcc,0x6a,0x3f,0xd2,0x21,0x13,0x3f,0xa6,0x5f,0xcc,0x3f,0x3e,0x73,0x41,0xbf,0xd9,0xe5,0x9b,0xc0,0x37,0xb6,0xd5,0x3f,0xd0,0x51,0x9b,0xc0,0x3e,0x99,0x5c,0xc0,0xda,0x20,0x7c,0xc0,0x64,0xcc,0xfb,0x3f,0xd6,0x36,0xb,0x40,0x7c,0x69,0x3a,0xc0,0xb4,0x43,0x8f,0x40,0xa1,0xa0,0x60,0xc0,0x24,0xab,0x69,0x40,0x73,0x0,0xc,0x40,0x19,0x46,0x8c,0xbf,0xd0,0x20,0x7d,0x40,0xac,0x8f,0x6b,0x40,0x74,0xa9,0x82,0x40,0xaa,0xfa,0x81,0xc0,0xa6,0x64,0xef,0xbf,0x1f,0x85,0x62,0xc0,0x42,0x8e,0x7f,0x40,0xe0,0x67,0x8f,0x3f,0x94,0xe4,0x21,0xc0,0xd2,0x20,0x28,0xbf,0xa4,0x14,0x5d,0x40,0xc7,0x62,0x95,0x40,0x40,0xee,0x28,0x3d,0x69,0xb,0x91,0xc0,0xd1,0x19,0x12,0xc0,0xdf,0x9e,0x60,0x40,0xfa,0xc9,0x42,0x3f,0x34,0xd0,0x55,0x40,0x5b,0xdb,0x83,0x40,0xd4,0x3b,0xdb,0xbf,0xfa,0xbe,0x39,0x40,0x3a,0xf5,0x13,0xbf,0x90,0xe3,0xd,0xc0,0x74,0x6,0x5d,0xc0,0x3c,0xf6,0x79,0x3f,0x7,0x8b,0x8b,0x3f,0xfe,0xf9,0x51,0x40,0xac,0xf7,0x9c,0x40,0xb0,0x0,0x7b,0xc0,0x7a,0xe9,0x4d,0xbf,0x1e,0xa2,0xc1,0xbf,0xf4,0xbe,0x23,0x40,0x6c,0xb,0x1c,0x40,0x60,0x1b,0x91,0x40,0x3e,0x5d,0x5c,0x40,0xfc,0x5b,0x59,0x40,0xd2,0xd7,0x72,0xc0,0xa6,0xf1,0x53,0xc0,0x8e,0x33,0x80,0xc0,0xcf,0xc4,0x1d,0xc0,0x65,0x89,0x1d,0xc0,0x7a,0x93,0x5f,0x40,0x0,0x48,0x1b,0xc0,0x60,0x3f,0x89,0x40,0xd0,0x3,0x87,0x40,0xa0,0x83,0x47,0x40,0x3e,0xba,0x3b,0x40,0x70,0x40,0x63,0x40,0x26,0xcb,0x51,0x3f,0x44,0x9d,0x54,0xc0,0x16,0x1d,0x6f,0x40,0xf6,0x2b,0x69,0x40,0xe4,0xc6,0x59,0x40,0x3c,0x66,0x5f,0xc0,0x8c,0x54,0x21,0xbf,0x22,0x7f,0x4f,0x40,0x68,0x77,0x22,0xbe,0x44,0xfc,0xb4,0xbe,0xde,0xff,0x2a,0xc0,0x11,0x3a,0x20,0x40,0x36,0x21,0xd,0x40,0x2d,0xb0,0x8b,0xbf,0xae,0x2d,0x6c,0x40,0xcc,0x41,0x3c,0xc0,0x26,0x72,0x26,0x40,0x68,0xf2,0x56,0xbe,0x92,0x4d,0x1,0xc0,0xae,0x12,0x46,0x3f,0xba,0xa3,0x8b,0xc0,0xc4,0xa2,0x82,0x40,0xc4,0x4a,0x87,0xbf,0xa8,0xad,0x24,0xc0,0xec,0x2b,0xfb,0x3e,0x8,0x24,0x38,0x40,0x84,0xf6,0x6d,0x40,0xca,0x9f,0x53,0x40,0x92,0xa9,0x6b,0xbf,0xfe,0x42,0x91,0x3f,0x7f,0xdd,0x92,0x40,0x75,0xe8,0x2b,0x40,0x8b,0x6b,0x9f,0x40,0x40,0x9b,0x5d,0x3f,0x1f,0xb4,0x99,0xc0,0x3b,0xd9,0xbd,0x3f,0x29,0x84,0xa2,0xbf,0xe6,0xe8,0x64,0x3f,0x5,0xba,0xf9,0x3f,0x1b,0x94,0x34,0x40,0x94,0xb5,0x17,0xc0,0x76,0x84,0x6d,0xc0,0x7e,0x87,0x92,0x40,0x2a,0xe8,0xa1,0x3f,0x58,0x70,0x19,0x40,0x40,0x48,0xae,0x3f,0xf2,0x90,0x65,0xbf,0xed,0x51,0x93,0xc0,0x32,0x96,0x8f,0x40,0x76,0x9a,0x97,0x40,0x30,0xf5,0xd4,0xbd,0x49,0x6e,0xa7,0xbf,0x9e,0xa9,0xc,0x40,0x93,0xaf,0x95,0xc0,0x44,0x65,0xb0,0x3f,0xb2,0x8c,0x88,0x40,0x6a,0xb2,0xa6,0xbf,0x14,0xae,0x8d,0xbe,0xee,0xed,0x1e,0x40,0xfc,0x9d,0xe7,0xbe,0x80,0x11,0xd2,0xbd,0xda,0xe0,0xcb,0x3f,0xc0,0x3c,0xc6,0xbe,0x0,0xab,0xb8,0xbc,0xe8,0xe0,0x9a,0xbe,0xea,0xcd,0x33,0x40,0x2e,0xc9,0x93,0x40,0xcc,0xbc,0xe4,0x3e,0xa,0x2a,0x3c,0x3f,0x32,0xb2,0x63,0xc0,0x94,0x43,0x32,0x40,0x8d,0xe0,0x34,0x40,0xce,0x35,0x69,0xc0,0x1,0xb1,0x3b,0x40,0x49,0x6b,0xaf,0x3f,0x2,0x6b,0x44,0xc0,0x66,0xf8,0x52,0xbf,0x8d,0x6f,0x8e,0xc0,0xe0,0x3a,0x2d,0x3f,0xd,0xb6,0x20,0x40,0x56,0xea,0x5c,0xc0,0xc4,0x3e,0xc0,0xbe,0x86,0xca,0x7b,0x40,0xc5,0x3f,0x75,0x40,0x37,0x65,0x4c,0x40,0x8,0x1f,0x33,0xc0,0xe0,0x7c,0xe8,0xbd,0x52,0x4f,0x1a,0xc0,0x82,0x16,0x8f,0x40,0xf0,0x54,0x62,0x3e,0xdc,0x38,0x45,0xc0,0xe,0x7c,0x31,0xbf,0xe4,0x14,0x8e,0x3e,0xcb,0xd4,0xd7,0x3f,0xd6,0xde,0x42,0xbf,0xfc,0xbb,0x58,0x3f,0x1f,0xbe,0x96,0xc0,0xbb,0xa0,0xc1,0xbf,0xc2,0xd5,0x30,0x40,0x8c,0x60,0x3,0x40,0x98,0x73,0x9c,0x40,0xc3,0x9b,0x7f,0x40,0x81,0xf,0x26,0x40,0x2c,0x5b,0x1b,0xc0,0x3a,0x5d,0x90,0x40,0xc0,0x74,0x5b,0x40,0x88,0x64,0xe5,0xbf,0x92,0x35,0x14,0xc0,0x8,0xef,0x1e,0xc0,0xac,0x21,0x4b,0xc0,0x24,0x3f,0x0,0x40,0xf4,0x70,0x26,0xc0,0xd0,0x6f,0x8d,0x40,0x86,0xd5,0x8f,0x3f,0xc0,0x24,0xac,0x3d,0xa0,0x59,0xc9,0x3f,0x7b,0x2a,0x34,0x40,0xb2,0x73,0x54,0xbf,0x9e,0x85,0x77,0xc0,0x8b,0x47,0x9c,0xc0,0xb4,0xc8,0x94,0x40,0x47,0xb3,0x95,0x40,0x57,0xf4,0xef,0xbf,0x7c,0xe4,0x8c,0x40,0x3b,0x6c,0xfd,0x3f,0x2,0x1d,0x8b,0xc0,0x6a,0x3e,0x45,0xbf,0xb0,0x7d,0x90,0xc0,0x2e,0xda,0xa,0x40,0xf3,0xd7,0xe3,0x3f,0x11,0x51,0x18,0x40,0xe8,0xc,0x4e,0xbe,0xfc,0x5d,0x39,0x3f,0x9c,0x18,0x40,0xc0,0x98,0x8e,0x84,0xc0,0xb8,0xba,0xe1,0xbf,0x4d,0x7d,0xe9,0x3f,0x32,0x9a,0x6c,0xbf,0xe6,0x12,0x84,0xbf,0xf4,0xa7,0x2e,0xc0,0x8,0xc4,0x1f,0xc0,0x9,0x86,0x27,0xc0,0x29,0x7,0x84,0xbf,0x2b,0x76,0x95,0x40,0xba,0xc4,0xa3,0xbf,0x8e,0x59,0x29,0xbf,0xf8,0x22,0x28,0xc0,0x10,0xaf,0x42,0xc0,0xdf,0xb1,0x9c,0xc0,0x5c,0xe1,0x4b,0xc0,0xdb,0x6b,0xb8,0xbf,0x60,0x10,0x94,0xbf,0xac,0x4b,0x5c,0xc0,0x94,0x2c,0xc6,0xbe,0xe7,0xeb,0x86,0x40,0x12,0x25,0x77,0xc0,0x28,0xbc,0x47,0x40,0x3a,0x3d,0x76,0xc0,0xd6,0xfa,0x67,0x3f,0xa0,0x3d,0x47,0x3d,0x92,0xcb,0x80,0xc0,0xa0,0xe5,0x23,0xc0,0xc2,0xfd,0x17,0xc0,0x26,0xa1,0x73,0xc0,0x94,0xc4,0xba,0x3e,0x28,0x97,0x7e,0xc0,0xca,0x1,0x95,0x40,0xe4,0xac,0x91,0x3e,0x62,0xe8,0x73,0xc0,0x2b,0xe8,0xff,0xbf,0x35,0xbb,0x8b,0x40,0x20,0x3f,0x52,0xbe,0x1d,0xff,0x12,0x40,0x42,0xd0,0x5b,0x40,0xff,0x70,0x23,0xc0,0x9f,0x4f,0x89,0x40,0x80,0x6,0x29,0xc0,0xe0,0x64,0x85,0xc0,0x66,0xf5,0x41,0x40,0x7a,0x30,0x73,0xc0,0x3,0x5f,0x59,0xc0,0xc6,0xa2,0x73,0xc0,0xf8,0x18,0xdf,0x3f,0xc4,0xb4,0x81,0xbe,0x3e,0xce,0x89,0x40,0x38,0x7f,0xc,0xc0,0xa0,0x26,0x77,0x3e,0x76,0x77,0x25,0x40,0x58,0x3,0x51,0xbf,0x40,0x70,0xb3,0xbe,0x7c,0x8a,0x4b,0xc0,0xdc,0x94,0x3d,0x40,0xe2,0xe,0xf0,0x3f,0x6c,0x1c,0x5b,0xbf,0x29,0x3b,0x7,0xc0,0x8a,0x16,0x55,0x40,0x6,0x4f,0x8c,0xc0,0x70,0x56,0x6,0x40,0x20,0x5f,0x5f,0x40,0xd9,0xae,0xd6,0xbf,0xd9,0x40,0xfe,0x3f,0x3c,0x95,0xab,0x3f,0x4e,0x65,0x30,0x3f,0xd3,0x84,0x9,0xc0,0x1c,0x47,0x3a,0xbf,0xf2,0x58,0x3e,0xbf,0x8a,0x97,0xf6,0x3f,0xf0,0x85,0x9e,0xc0,0xd0,0x35,0x7e,0xbe,0x2b,0xf1,0xc9,0x3f,0x35,0xaf,0xc0,0x3f,0x50,0xfc,0x2d,0xc0,0x62,0xa4,0xe4,0xbf,0x96,0xfb,0x3d,0x40,0xec,0x5f,0x95,0x3f,0xa5,0xb,0x9f,0x40,0x36,0xac,0xe5,0xbf,0xe5,0x72,0x31,0x40,0x3e,0x3a,0x2f,0xbf,0x7a,0x0,0x4b,0x3f,0x30,0xa9,0xe4,0xbd,0x88,0xd3,0x97,0xc0,0xae,0xc3,0x1,0x40,0x76,0x24,0xb0,0x3f,0x22,0x66,0x8b,0xc0,0xa8,0xb,0x30,0xbe,0xb4,0x74,0x6f,0x3f,0x52,0xc1,0x80,0x40,0x5e,0x16,0x9e,0x40,0x5c,0x1,0x63,0xbf,0xaa,0x22,0x62,0xbf,0xe0,0x3f,0x8f,0xbf,0x40,0x95,0x6b,0xc0,0xe3,0x7a,0x1c,0x40,0x64,0xa6,0x9c,0x40,0x16,0x8a,0x89,0x40,0x9a,0x6d,0x8b,0xc0,0xe4,0xc6,0x93,0xc0,0xb6,0x16,0x50,0xc0,0x46,0xe7,0x65,0xbf,0x96,0x91,0xa5,0xbf,0xa8,0x5b,0x96,0xc0,0xe4,0x86,0x8b,0xc0,0x14,0x54,0x7d,0xc0,0xda,0x4e,0xb8,0xbf,0x90,0x5a,0xa6,0x3d,0xe9,0xb3,0x99,0x40,0x64,0xf2,0x96,0xc0,0x86,0xea,0x43,0x40,0xee,0x9b,0x2,0xc0,0xe6,0x4d,0x9e,0x40,0x2e,0xd4,0x85,0xc0,0xc7,0x95,0x8d,0xc0,0x40,0x11,0x3d,0xbf,0x64,0x60,0x4,0x40,0x8,0xe8,0x82,0xc0,0x4b,0xa6,0x95,0xbf,0x5a,0x27,0x7b,0xc0,0xb8,0xf1,0x36,0x40,0x74,0x28,0x18,0xc0,0xce,0xc8,0x1a,0xc0,0x24,0xf,0x8a,0xc0,0xad,0xb8,0xc1,0x3f,0xfe,0x0,0x93,0x40,0xbe,0x7a,0xa3,0x3f,0x55,0x4b,0xfa,0x3f,0x8f,0x2a,0x7a,0x40,0xb0,0xac,0xac,0xbe,0x80,0x3,0xcc,0xbc,0x76,0xbd,0x88,0x40,0xf6,0xc3,0xd6,0xbf,0xb6,0xa9,0x92,0xc0,0xb4,0x6f,0x24,0x3f,0x8c,0x36,0x8,0x40,0xd2,0x3b,0xd3,0x3f,0x4e,0xcb,0x6d,0x40,0x64,0xbc,0x85,0x40,0x0,0x82,0x7,0x3c,0x7d,0x34,0x3c,0x40,0x56,0xa,0x87,0xc0,0x98,0x65,0x9,0x3f,0x7a,0xfb,0x3b,0x40,0xfd,0x3d,0x44,0x40,0x56,0x12,0x96,0xc0,0x4b,0x19,0x8c,0x40,0x78,0x49,0x2c,0x3e,0x20,0x85,0x2,0x3f,0x34,0x2a,0x97,0x3e,0x50,0x55,0x9b,0x3d,0x3c,0x46,0x40,0xc0,0x88,0x7c,0x8b,0x40,0x81,0x65,0xc8,0x3f,0x6e,0xc7,0x60,0xc0,0xe2,0x3e,0x75,0xc0,0x60,0x5c,0x33,0x40,0xb6,0xfc,0x7b,0x40,0x32,0x0,0x66,0x3f,0x53,0xd,0x8c,0x40,0xdc,0x13,0xd3,0xbe,0x48,0x48,0xfb,0xbf,0xe,0x3b,0x13,0x40,0xc0,0xde,0x1c,0xbd,0xda,0xb,0x1c,0x3f,0x2c,0x8c,0xc9,0x3e,0x1e,0x34,0x71,0x40,0x88,0x7b,0x15,0x40,0x98,0x48,0x28,0x40,0x80,0xef,0xf,0x3f,0x24,0xb,0xbc,0xbf,0xb8,0xd1,0x5e,0xc0,0x2c,0x30,0x23,0xbf,0xba,0xdc,0x8d,0xc0,0xae,0x6a,0x34,0xc0,0x2,0x84,0x9c,0xbf,0xba,0xc1,0x6e,0x40,0xf0,0xeb,0x9e,0xc0,0xeb,0xcb,0x3b,0x40,0x29,0xb8,0x43,0xc0,0xfe,0x78,0x94,0xc0,0xb6,0x22,0x58,0xc0,0xa8,0x8,0x58,0xc0,0xd0,0xfd,0x9a,0x40,0xc0,0x3c,0x69,0x40,0xc0,0x2,0x98,0x40,0x19,0xc6,0x2c,0xc0,0x10,0x6a,0x99,0xc0,0x5a,0xfd,0x98,0xbf,0x96,0xa8,0x7c,0x40,0x34,0x1c,0x25,0x40,0xfd,0x3a,0x7e,0xc0,0xd8,0xac,0xb6,0xbf,0xa8,0xb5,0x12,0x3e,0x43,0xeb,0x9a,0x40,0x12,0x28,0x5c,0xc0,0xc2,0xfc,0x58,0x40,0x62,0x2e,0x3c,0x40,0x3b,0x5e,0x2c,0xc0,0x5a,0x77,0x6e,0xc0,0x8c,0x66,0x3f,0xc0,0x33,0x99,0x53,0x40,0xbe,0xb7,0x9b,0xc0,0x48,0x1a,0x59,0x40,0xd9,0xd0,0x92,0x40,0x7c,0x24,0x96,0xc0,0xfc,0x1,0x40,0xbf,0xb2,0x72,0x58,0x40,0x50,0xbd,0xa1,0xbf,0xe0,0xb6,0x8,0x40,0x20,0x32,0x3c,0xbd,0xb6,0xcc,0x10,0xc0,0x29,0x9e,0x67,0x40,0xbc,0xab,0x44,0x3f,0x5c,0x95,0x3d,0xbf,0xe7,0x16,0xd9,0x3f,0x2,0xc7,0x29,0xc0,0x36,0xa2,0x74,0xbf,0x2,0x9e,0x3e,0xc0,0x65,0xfb,0x37,0xc0,0x60,0x7a,0x38,0xc0,0x90,0x9a,0xac,0xbe,0xc8,0x3f,0x6a,0xc0,0xfe,0xb5,0x11,0xbf,0xd2,0x51,0xcc,0xbf,0xed,0x5a,0x85,0xbf,0xc6,0x18,0x16,0xc0,0x44,0xc,0x45,0xc0,0xf9,0xbe,0x93,0x40,0x4d,0xea,0xf4,0x3f,0xbb,0xcc,0x86,0x40,0xe8,0x22,0x90,0xbe,0xbe,0xc0,0x6b,0x40,0x20,0xe9,0xa0,0x3d,0x60,0x44,0xf1,0x3d,0x79,0x60,0x94,0xc0,0x58,0xb0,0xdd,0x3f,0x8e,0xf6,0x2f,0x40,0x34,0x40,0x9a,0xbf,0x56,0xd7,0x8d,0xc0,0x7d,0xa7,0x5f,0xc0,0x1d,0xb9,0x5d,0x40,0x58,0x61,0xb9,0xbf,0xb7,0x69,0x22,0x40,0xd8,0x24,0x6e,0x3f,0x8a,0x30,0x89,0x40,0x88,0xb3,0x2f,0xbe,0xf,0x6e,0x91,0x3f,0x90,0x89,0x5e,0xc0,0xd4,0xcc,0x56,0xc0,0x14,0xc2,0x6e,0x40,0x82,0xdc,0x4f,0xc0,0x98,0x89,0x3,0x3e,0xaf,0x45,0x98,0xc0,0xf8,0x50,0xf2,0xbf,0xf6,0xda,0x26,0xbf,0x6a,0x51,0x41,0x40,0xe9,0xdc,0x45,0x40,0xd0,0x6b,0xdc,0x3f,0xb0,0xa0,0x9a,0xbf,0x53,0xbe,0x9,0x40,0x25,0x5e,0xa4,0x3f,0x24,0x18,0xcd,0x3f,0x7a,0x3f,0x39,0x3f,0x0,0x12,0xa7,0xbe,0x34,0xf8,0x95,0x40,0x80,0x4a,0x5f,0x40,0x9c,0x43,0xb1,0xbe,0x85,0x68,0x9d,0xc0,0xb1,0xe0,0x9a,0x3f,0x92,0x3c,0x60,0x3f,0x65,0xe5,0x16,0x40,0x97,0x5e,0x96,0xc0,0x66,0xcb,0x75,0x3f,0xa8,0x3a,0x87,0x40,0xea,0x4d,0x29,0x3f,0xa7,0xa,0x1e,0xc0,0x7c,0xde,0x17,0xc0,0x22,0x2c,0xc0,0x3f,0x69,0xf0,0xc,0x40,0x92,0x20,0x77,0xc0,0x3c,0x7c,0x8e,0x40,0x88,0x7d,0x27,0xc0,0xbe,0x8a,0x89,0x3f,0x5e,0x9c,0x4d,0x40,0xa7,0x5e,0x6a,0xc0,0xf2,0xf2,0x5f,0x40,0x0,0x68,0xd8,0x3c,0x35,0x9c,0xc9,0xbf,0x8,0x8b,0x4b,0xc0,0x3b,0xb1,0x80,0x40,0x9e,0xff,0x38,0x40,0xea,0xb8,0x89,0xbf,0x6e,0x1e,0x9b,0x3f,0x7f,0xb9,0xad,0x3f,0x83,0x7d,0x80,0xc0,0x92,0xbc,0x8d,0x40,0x91,0x6,0x8b,0xc0,0xfc,0xd8,0xed,0x3f,0xc2,0x85,0xa,0x40,0xd0,0x1a,0x9c,0xbd,0xe2,0xa,0x24,0xc0,0x5d,0x8f,0x86,0xc0,0x50,0x6f,0x53,0x40,0x98,0x99,0x91,0xbe,0x40,0xff,0xa,0xc0,0xb4,0x33,0xe0,0xbf,0xae,0xc6,0xa,0x3f,0xec,0xd,0x79,0x40,0xcc,0xa6,0x8f,0xc0,0xce,0xd4,0x1d,0x3f,0xc8,0xd8,0x8d,0xc0,0xfc,0x39,0x85,0xc0,0x62,0xc4,0x42,0xc0,0x3c,0xd7,0x6b,0x40,0xd8,0xb9,0x79,0xbf,0xac,0x9,0x1a,0x3f,0x2c,0x4f,0xf7,0x3f,0xf8,0x65,0x2b,0x3f,0x46,0x43,0xf3,0x3f,0x39,0x30,0x25,0xc0,0xfa,0x8a,0xac,0x3f,0x66,0x16,0x79,0x40,0x7f,0xb3,0x9b,0xc0,0xb8,0xb6,0x2e,0x40,0x44,0x99,0x95,0xbf,0xfc,0xf6,0x36,0x40,0xa5,0x46,0x96,0xbf,0x15,0xe5,0x9b,0x3f,0x51,0x4a,0x75,0xc0,0x5d,0x30,0xae,0xbf,0x2a,0xc1,0x14,0xc0,0xc2,0x3c,0x76,0xc0,0x4,0x7f,0xa9,0x3f,0xd5,0x13,0x95,0x40,0xe4,0x4d,0x6e,0xc0,0xa5,0x6,0x9e,0x40,0x7a,0x1c,0x11,0x3f,0xa6,0xb5,0x99,0xc0,0x8a,0x92,0xb5,0xbf,0x34,0x29,0x51,0x40,0xab,0x99,0x87,0xc0,0x58,0x2d,0x4a,0xbf,0x84,0x2c,0x96,0x40,0xc7,0xd7,0xc4,0xbf,0x7e,0xcb,0x3c,0x40,0x30,0xa0,0x7c,0xbf,0xfa,0x98,0x2d,0xbf,0xe4,0x2f,0x36,0xc0,0xda,0x29,0x6f,0x40,0x8e,0x30,0x8d,0xc0,0x18,0xc9,0x52,0xc0,0x46,0x11,0x8f,0xc0,0xc8,0x88,0x29,0x3f,0x2e,0xeb,0x40,0xc0,0x9f,0x8e,0x91,0x40,0x43,0xff,0x5,0x40,0x56,0x2b,0x4b,0x40,0xfa,0x13,0xd,0x3f,0x75,0x6d,0x81,0x40,0x81,0x6,0x2a,0xc0,0x1b,0xd2,0xd5,0xbf,0x31,0xb,0x87,0x40,0x80,0xc6,0x1,0x40,0x1c,0x1d,0x46,0xc0,0xf8,0xaf,0xe,0xbe,0x3,0x3,0x6,0x40,0xee,0x9b,0x54,0x3f,0x6,0xe8,0x9e,0x40,0xc4,0x89,0x4,0xc0,0xc6,0x57,0x9c,0xc0,0xa0,0xad,0x33,0x40,0x88,0xbd,0xb4,0x3e,0x5c,0x75,0x81,0xc0 }); - // [-0.28461337 -4.4953146 2.9698997 4.5361137 1.2827688 4.9171333 -2.9463 - Tensor *b = NN_tensor(1, (size_t[]){ 56 }, DTYPE_F32, (uint8_t[]){ 0xd8,0xb8,0x91,0xbe,0x9e,0xd9,0x8f,0xc0,0xd6,0x12,0x3e,0x40,0xd8,0x27,0x91,0x40,0xc5,0x31,0xa4,0x3f,0x28,0x59,0x9d,0x40,0xad,0x90,0x3c,0xc0,0x28,0x20,0x64,0xbf,0x86,0x31,0x59,0x3f,0xd8,0x15,0x69,0xbe,0x26,0x91,0x81,0x40,0xea,0x63,0x7a,0x40,0xfe,0x3d,0xa0,0xbf,0xad,0x50,0x92,0xc0,0x8b,0xad,0x85,0x3f,0x52,0x82,0x49,0x40,0x1e,0x5e,0x17,0x3f,0xd5,0xca,0xe6,0xbf,0x5d,0x7a,0xaf,0x3f,0x6e,0xb5,0x95,0xc0,0xcd,0xf8,0x84,0x40,0xc2,0x4f,0x2c,0x3f,0x28,0xbe,0x9b,0x40,0xe2,0x79,0x88,0x40,0xf0,0x7d,0x36,0x40,0x1a,0x16,0xe8,0xbf,0x64,0xdc,0x23,0xc0,0x10,0xdf,0xa6,0x3e,0xdd,0x45,0x96,0x40,0xd4,0xf,0x32,0xbf,0x5c,0xd8,0x6b,0x40,0xb8,0xa,0x3,0xbf,0x4e,0xc3,0xfc,0x3f,0xda,0x64,0x2f,0xc0,0xa0,0x33,0x1f,0x3e,0xb5,0xe2,0x89,0x40,0x82,0x6e,0x82,0xc0,0x28,0xfe,0x1c,0xc0,0x5c,0x3c,0x64,0xbf,0xe,0x25,0x95,0xc0,0xf2,0xed,0x89,0xc0,0x50,0x2a,0xc6,0x3d,0x70,0xb0,0x1d,0xbf,0xb0,0x70,0x51,0x40,0x2,0xc0,0x8,0xbf,0xe7,0x46,0x60,0x40,0x32,0xea,0x35,0x40,0xf2,0x9a,0x79,0x40,0x96,0x94,0x84,0xbf,0xf8,0xec,0x1c,0x3f,0xcb,0xb6,0x8b,0xc0,0x12,0x10,0x38,0x40,0xac,0x92,0x6,0x40,0x68,0x50,0x83,0x3f,0x95,0xe,0x89,0xbf,0xec,0x62,0x91,0x40 }); - - - // [[[[ 22.802946 24.099442 63.91566 ... 98.62219 -90.273445 - Tensor *golden = NN_tensor(4, (size_t[]){ 1, 12, 12, 56 }, DTYPE_F32, (uint8_t[]){ 0x6f,0x6c,0xb6,0x41,0xa8,0xcb,0xc0,0x41,0xa3,0xa9,0x7f,0x42,0x22,0xba,0x3d,0xc0,0x3a,0x25,0x4e,0xc0,0x0,0xa7,0x9d,0xc1,0x6a,0xd9,0xce,0x42,0xb7,0xb4,0xa6,0xc1,0xd9,0xc9,0x4f,0xc1,0x14,0x55,0xb0,0xc1,0x98,0x19,0xa9,0x42,0x15,0x8b,0x39,0xc2,0x90,0x69,0xc3,0x40,0xad,0xfa,0x27,0xc2,0xbb,0x95,0x30,0x42,0x8e,0xd5,0xbe,0xc2,0x6f,0x69,0xb5,0xc1,0xab,0xb1,0x31,0xc2,0x69,0xdf,0x4c,0x42,0xca,0xa7,0x8,0xc1,0xf0,0x4c,0xdf,0x40,0xd1,0x83,0x43,0x42,0x5e,0xe3,0xde,0xc0,0x24,0xba,0x31,0x43,0x22,0xd7,0x25,0x42,0xf4,0xc3,0x8a,0xc2,0xfb,0x8d,0x87,0xc2,0x6e,0x5,0x4f,0xc1,0x69,0x24,0x5f,0xc2,0x42,0x29,0x28,0x41,0x83,0xf8,0x6c,0xc2,0xf0,0xbe,0x73,0x42,0x74,0xb2,0x27,0xc2,0xe0,0x16,0xac,0xc2,0xb0,0xdc,0x1f,0x41,0xb7,0xc5,0xab,0x42,0xf4,0xdb,0x1,0x41,0xb9,0x77,0xd7,0x42,0xa8,0x38,0x85,0x42,0xa2,0x53,0xef,0x40,0x33,0x6f,0xc3,0x42,0x5d,0x63,0x49,0xc2,0xcd,0x55,0x3b,0x40,0xa8,0x80,0x99,0xc1,0xd1,0xfd,0x89,0xc2,0xe4,0x87,0x8c,0xc2,0x5a,0xfa,0xe1,0x41,0x9b,0xf2,0x10,0xc3,0x7f,0x9c,0x6a,0xc2,0x81,0xf2,0x81,0xc0,0x61,0xc8,0x2c,0x43,0x42,0x2e,0x86,0x42,0xd9,0x81,0x93,0x42,0x90,0x3e,0xc5,0x42,0x1,0x8c,0xb4,0xc2,0x78,0xf6,0x9,0xc2,0xe4,0x8c,0xe7,0x40,0xd1,0x5a,0xfe,0xc2,0x36,0xf8,0x86,0xc2,0x8c,0xd,0xd6,0x42,0xd3,0xbe,0x35,0xc2,0x6f,0x18,0x2,0x42,0x7a,0xd5,0x9d,0xc0,0x5d,0x6c,0x70,0xc2,0x3c,0x52,0xb3,0x42,0xc6,0x28,0x77,0xc2,0xd8,0xa,0x17,0xc3,0x6f,0x52,0xc7,0xc2,0x69,0x11,0x89,0xc2,0x7b,0x6f,0xa,0xc0,0x54,0x5d,0xff,0x42,0xc8,0xab,0x2,0xc3,0xce,0x53,0xc7,0x42,0x54,0xa8,0xda,0x42,0x86,0x8d,0x59,0xc2,0xea,0x83,0xb7,0x41,0x6c,0x40,0x9,0xc3,0xe7,0xf9,0xeb,0xc2,0x69,0xf7,0xe,0x40,0xa2,0x11,0xdc,0xc2,0x83,0x9b,0x2a,0x43,0x37,0x7,0xa8,0x41,0x87,0x7a,0x10,0xc2,0xb5,0xe0,0xdd,0x41,0x1a,0xf8,0xd5,0x42,0xa3,0x27,0x17,0x42,0x35,0xb3,0xe2,0xc2,0xfa,0x68,0xfe,0xc1,0x86,0x59,0xe2,0x41,0x90,0xdd,0xa8,0xc2,0x33,0xbf,0xfd,0xc1,0xce,0x33,0x39,0xc1,0xa1,0xe0,0x17,0xc2,0x40,0x3b,0xe6,0x41,0xef,0x49,0xb2,0xc2,0xc4,0xe1,0x17,0xc3,0x5e,0xd5,0x20,0x42,0x25,0x75,0x5a,0x42,0x64,0x83,0xb7,0xc1,0x9c,0x68,0x4c,0x42,0x4f,0x92,0xa4,0x40,0xe6,0xf0,0xd,0xc3,0x11,0xf9,0x14,0x42,0x68,0x1,0xeb,0xc2,0x6a,0x68,0x13,0xc2,0xa2,0x5d,0x68,0xc0,0x6f,0x9e,0x78,0xc2,0xff,0xb6,0x8d,0x42,0xbe,0xbe,0x93,0x40,0xfe,0x61,0x54,0xc2,0x45,0x70,0x1a,0x43,0x5f,0xe0,0xcd,0x42,0x3e,0x2e,0x5,0xc2,0x14,0x32,0x97,0xc2,0x23,0x64,0x35,0x42,0x70,0x14,0xef,0xc2,0xdf,0x6f,0xc8,0xc2,0x1e,0x4f,0xf4,0x40,0x43,0x6,0x83,0x43,0xbd,0x73,0x33,0xc2,0x82,0x88,0xf,0xc3,0xfa,0x3b,0xec,0x41,0x60,0x2e,0x16,0xc2,0xd4,0xf8,0xed,0xc2,0x5a,0x41,0x7b,0x42,0xd8,0xc3,0x7c,0xc2,0x19,0x7e,0x86,0x40,0xaa,0x78,0xed,0xc1,0x52,0xcf,0x82,0x42,0x35,0x8f,0x85,0x42,0xcd,0xca,0xa7,0x42,0x29,0xba,0x80,0x42,0x79,0x5b,0x3a,0xc2,0x71,0x96,0xb2,0xc1,0x36,0x39,0x27,0xc2,0x1b,0xf9,0x2d,0x42,0x1a,0xd1,0x47,0x42,0x75,0xbe,0x97,0xc2,0x68,0x3d,0xfe,0xc2,0xb5,0x4,0xa0,0xc2,0xf0,0x7e,0x4e,0x41,0xdb,0x37,0x6a,0xc2,0x50,0xcc,0x42,0x42,0x8c,0x41,0xbe,0xc1,0xc1,0xa9,0x12,0x42,0xc0,0xfb,0x6,0xc2,0xb5,0xf1,0x1a,0x43,0xf,0x2c,0x2e,0x42,0x70,0x7b,0x90,0x41,0xb0,0x95,0x3b,0xc2,0x29,0x30,0x2a,0xc0,0x12,0x3c,0x38,0x42,0xc0,0x84,0xb4,0x42,0x93,0xc4,0x1c,0x42,0x8,0xd3,0x4e,0x42,0x98,0x54,0x0,0x42,0x88,0xbd,0xd8,0x42,0x4,0xa6,0xa1,0xc2,0xe,0x81,0x8c,0x42,0x4d,0xfa,0x28,0x42,0xac,0x4d,0xc2,0xc2,0x88,0x93,0x5e,0xc2,0x5,0x87,0xa1,0x40,0xfc,0x8d,0x0,0x41,0x10,0x60,0x2b,0x42,0x7,0x21,0x60,0xc1,0xca,0x16,0x5b,0x41,0x5d,0x2e,0x8b,0xc1,0x19,0x91,0x8f,0xc2,0xa0,0x17,0x81,0xc2,0x44,0x66,0x37,0x41,0x34,0x79,0x5d,0x41,0xa3,0xb,0x6e,0xc2,0x42,0xc0,0xf2,0xc2,0xd0,0xe7,0xb0,0x42,0x5c,0x4c,0x7,0x43,0xdf,0xdc,0x10,0x42,0x92,0xa9,0xb4,0xc2,0xb3,0xc,0x85,0xc2,0xea,0x9e,0x1c,0x42,0xdd,0xb3,0x21,0xc2,0x59,0xe1,0xb0,0xc2,0x43,0xe8,0x1d,0x42,0x43,0xaa,0x13,0xc3,0x72,0x3a,0x2b,0xc3,0xc5,0xec,0x45,0x42,0x4d,0xac,0x2b,0xc1,0xd0,0x65,0xbd,0x41,0xef,0x52,0x67,0x42,0x77,0xb4,0xd,0xc3,0x6,0xd5,0x84,0x42,0x30,0xe6,0x24,0x42,0xee,0x78,0xb7,0x42,0xe4,0xaf,0xf5,0xc2,0x7d,0xbb,0x1,0x43,0x8c,0x9b,0x26,0xc1,0x36,0xac,0x26,0x41,0x2d,0xbd,0x7c,0xc2,0x52,0xe3,0xf7,0xc1,0x78,0x92,0xfd,0x41,0xde,0x51,0xa7,0x3f,0x39,0x2c,0x90,0x42,0xd,0x91,0x6f,0xc2,0x80,0x39,0xa9,0xc1,0x1c,0x3e,0x6b,0xc2,0xb5,0x97,0xaa,0x42,0x6e,0xeb,0x95,0xc2,0xea,0xce,0xe5,0x41,0xb9,0x54,0x11,0xc2,0x6f,0xb,0x95,0x42,0x47,0x2d,0x31,0x41,0xf,0x88,0xe6,0x41,0x5b,0xf1,0x9d,0x42,0xf1,0x94,0x84,0x42,0x79,0xad,0xcf,0xc2,0x1f,0x2,0x95,0xc0,0x9a,0xfd,0x64,0x42,0xef,0x51,0x7c,0x42,0x95,0x2,0xea,0x42,0xa9,0x18,0x88,0xc2,0x7,0x2f,0x6f,0xc2,0xcc,0xfa,0xa0,0x41,0xfd,0x4,0x85,0x42,0x32,0xe3,0x23,0x42,0xa6,0x73,0xf0,0xc1,0xc8,0xeb,0x9d,0x42,0xc6,0xd,0x65,0x42,0xff,0xdf,0x22,0xc3,0xab,0x30,0x90,0xc2,0x94,0xc4,0xa2,0xc2,0x75,0xeb,0xa4,0xc1,0x34,0xab,0xe,0xc0,0x15,0x5d,0x49,0x42,0x6b,0xef,0xb8,0xc2,0xcc,0xfc,0xdb,0xc1,0x60,0x6b,0x6c,0xc1,0xb,0xb6,0x7a,0xc2,0x4,0x4b,0xe1,0x42,0xdc,0x38,0xad,0x41,0xd1,0x9a,0x7,0x43,0x46,0xde,0xf0,0x40,0x69,0x61,0xd9,0x40,0x7,0x41,0x6,0x42,0x18,0x33,0x2b,0xc3,0x3f,0x57,0xc8,0x40,0x47,0x4c,0xa9,0xc2,0x94,0x14,0x99,0x42,0x6c,0x1f,0x2b,0xc2,0x61,0x14,0x31,0x42,0xc2,0x16,0xe,0x42,0x15,0x60,0x2e,0x41,0x1,0x8d,0xc7,0x41,0x44,0x74,0xc9,0x42,0x0,0x29,0xf7,0xc1,0x52,0xdc,0xc1,0x41,0xd0,0xa1,0xb,0xc1,0x31,0x4f,0xd7,0x41,0xe8,0x30,0xa9,0xc2,0x93,0xfc,0x1a,0xc3,0x98,0xe7,0x8b,0x42,0xff,0xe2,0x24,0xc2,0x4a,0xe1,0x53,0x42,0x6f,0x88,0x8f,0x42,0x8e,0xba,0xbb,0xc2,0xf2,0xcf,0xad,0x41,0x87,0xd,0xe3,0x41,0x6b,0xb8,0xdb,0xc2,0x1d,0x7f,0x0,0x43,0x55,0xb4,0x65,0x43,0x60,0x3,0x63,0xc2,0x98,0x3d,0xd3,0x3f,0x3c,0x2d,0x3d,0xc1,0xc4,0x14,0x9b,0x42,0x4,0x8,0xe3,0x42,0xa9,0xd7,0xcc,0xc2,0x12,0x34,0x4e,0xc3,0xf8,0x35,0x83,0x41,0x93,0x2b,0x22,0xc1,0x36,0x42,0x95,0x42,0xb6,0xdf,0x7f,0x42,0x7f,0x66,0xb2,0x42,0x66,0x5f,0x9f,0x41,0xf9,0x94,0x81,0x42,0x6,0x63,0x2d,0x42,0x8e,0x28,0x2b,0x42,0x8a,0x3d,0x39,0x43,0x27,0x84,0x3f,0xc2,0xfb,0x6e,0x96,0x42,0x7e,0xed,0x9,0xc2,0xae,0x76,0x10,0xc2,0x86,0x1a,0x92,0xc1,0xe6,0xfd,0x67,0xc2,0x76,0x55,0x8a,0x41,0x26,0xd5,0x7e,0xc1,0x47,0x70,0x7,0x41,0xe7,0xc,0x66,0x42,0x1c,0xda,0x9b,0x42,0x80,0xe2,0xde,0xc1,0x1f,0xb0,0xda,0xc0,0x42,0x46,0xc3,0x42,0xee,0x77,0x11,0x42,0x99,0x7b,0x73,0xc2,0xc,0x38,0x72,0x41,0x11,0x9b,0x25,0x42,0x34,0x59,0x62,0x42,0x36,0x7c,0x96,0x42,0x50,0x6c,0x13,0xc3,0x19,0xb9,0xc8,0xc2,0x47,0x71,0x9d,0x42,0x56,0x3f,0x94,0xc2,0x29,0x55,0x86,0xc2,0xc6,0xa9,0x46,0xc0,0xa,0xa5,0x14,0xc2,0x9,0x6,0xff,0x41,0x6c,0x3c,0x28,0xc1,0x6a,0x27,0xb4,0xc2,0x3e,0xab,0x2f,0xc0,0xa0,0x42,0x29,0xc2,0xd5,0x1f,0x5,0xc2,0xf7,0x64,0x53,0x42,0x9a,0x57,0xba,0x40,0x5c,0xc7,0xa2,0xc2,0xb6,0x64,0xd5,0xc1,0x75,0xae,0x46,0x40,0xbc,0x59,0x85,0x42,0x58,0xa0,0x6,0x41,0x81,0x71,0x84,0x42,0x80,0xd5,0xa1,0x41,0x8a,0x85,0xc9,0xc2,0x8c,0xf6,0xf7,0x41,0x3,0x1a,0x8e,0xc1,0xe2,0x44,0x1c,0x43,0x15,0x0,0x23,0x42,0xb3,0xb4,0x47,0x42,0xbf,0xd2,0x77,0x42,0x3c,0x62,0xaa,0x42,0x25,0x18,0xc7,0xc2,0xc,0xf7,0x5a,0xc2,0x8,0xa8,0x23,0x41,0xd2,0x78,0x80,0xc2,0xb4,0x21,0xf1,0x41,0x36,0x8f,0x55,0xc2,0xaf,0x8c,0xa,0x43,0x42,0x24,0xff,0xc2,0x30,0x51,0x58,0xc2,0x65,0x3b,0xee,0xc2,0x51,0x6d,0xe4,0x42,0xbb,0x2d,0x21,0xc3,0xc3,0x4c,0xe,0x42,0xc9,0x85,0x33,0xc3,0xaa,0xa9,0x8e,0xc2,0xf5,0xfe,0xe6,0x42,0xbc,0xf8,0xa4,0xc0,0xe6,0xad,0x0,0xc3,0x8d,0x4c,0x97,0x42,0x93,0x72,0x2b,0x42,0x76,0xd2,0xc,0x43,0xf3,0x9b,0xe0,0x42,0x8c,0xc,0xe,0x42,0xfa,0xf4,0xc7,0x41,0x7e,0x58,0x7,0x42,0xf9,0x59,0x23,0xc3,0x98,0x36,0x80,0xc2,0x8f,0x41,0x0,0x43,0x25,0x65,0xb2,0x41,0xd5,0xb,0xad,0xc1,0x52,0x17,0x10,0x43,0xd3,0xb5,0x6c,0x43,0x8,0xdb,0xa4,0x42,0x1a,0xaf,0xaa,0x42,0xa0,0xec,0x5a,0xc2,0x3d,0xda,0xd3,0x42,0x64,0x38,0x89,0xc2,0xa0,0x97,0x0,0x42,0x85,0xee,0xfb,0xc1,0x21,0xe4,0x20,0x41,0xd,0x7f,0x41,0xc1,0x46,0x8b,0x1,0x41,0x79,0xf4,0x9a,0x42,0xdb,0x72,0x4d,0x43,0x50,0xe7,0x54,0x42,0x3f,0x33,0x22,0x40,0x32,0x8a,0x14,0x42,0x4,0xf3,0xdc,0xc2,0x7b,0x4f,0x39,0x42,0xac,0xd0,0x99,0x42,0xdf,0x7f,0x8d,0x42,0xbb,0x51,0x71,0x42,0x51,0xce,0x7c,0xc1,0xd,0xea,0x30,0xc2,0x3b,0xba,0x72,0xc2,0xb7,0xc8,0x1e,0xc3,0x4,0x29,0xae,0xc2,0x91,0x8c,0x6e,0xc3,0x72,0x5b,0x5,0x43,0x12,0x72,0x6,0x41,0xda,0xd0,0xb,0xc3,0x98,0xcc,0xc0,0x40,0xf6,0xff,0x92,0x41,0x8a,0x56,0x65,0x41,0x5b,0xf7,0xa1,0xc2,0xb6,0xf2,0xa4,0xc2,0xc1,0xca,0x89,0xc2,0x13,0x61,0x5b,0xc2,0x3c,0x6d,0x11,0x42,0xc8,0x56,0x7a,0x42,0x3f,0xb1,0x4,0x42,0x53,0x5f,0xf2,0x42,0x5c,0xb5,0x9e,0xc2,0x86,0xe7,0x90,0x42,0x4f,0x52,0x57,0xc3,0x42,0x23,0xa2,0x41,0xef,0x15,0x71,0x42,0x84,0x4a,0xa8,0x42,0x3e,0xa3,0xe1,0xc2,0x7d,0x6e,0x51,0x43,0x26,0x55,0xd,0xc2,0xa3,0xdf,0x8a,0xc2,0xe3,0x42,0x3f,0x41,0x11,0x28,0xd8,0xc2,0xa8,0x61,0x13,0x43,0x1b,0x32,0x19,0x42,0xb7,0xe6,0x98,0x42,0x15,0x4a,0xc1,0x42,0xec,0x38,0x36,0x42,0x87,0x39,0x1c,0x43,0xb6,0x16,0xd4,0xc2,0xc4,0xa9,0x4,0xc1,0x61,0xff,0x80,0x42,0x10,0x7f,0xe7,0xbf,0xeb,0x5e,0xec,0xc2,0xd6,0x4b,0xd7,0xc0,0x90,0xb6,0x22,0x42,0xf6,0x8a,0xb4,0xc2,0xdd,0xc3,0x55,0x42,0xb,0xe7,0x40,0x42,0x25,0x3a,0x0,0xc2,0x2d,0x43,0x2b,0xc2,0x3f,0x7f,0x4e,0xc2,0xae,0x14,0xed,0xc1,0xee,0xa8,0x73,0xc2,0x64,0xef,0x1,0x42,0x4d,0x39,0x1,0xc3,0x65,0x38,0x9a,0xc1,0xb1,0x46,0xc1,0xc2,0x9a,0x12,0xa0,0x42,0x55,0xe4,0x78,0x41,0xce,0xe7,0xa2,0x42,0xeb,0x75,0xfa,0x42,0x7e,0xc5,0xf2,0x42,0xb2,0x8c,0x59,0x42,0x14,0x43,0xfc,0x42,0xb3,0xfe,0xa5,0xc0,0x75,0x40,0x31,0xc3,0xc0,0x2a,0x87,0x41,0xa7,0xf2,0xd5,0xc2,0xf4,0x5d,0xf,0xc2,0xaa,0x72,0xce,0x41,0xab,0xc6,0x60,0xc1,0xa7,0x85,0xcb,0xc0,0x44,0x6f,0xca,0x40,0xb7,0x31,0x68,0xc3,0x3,0xe9,0x9c,0x40,0x18,0x35,0x6,0x43,0x89,0x0,0x3f,0x42,0xf,0xe6,0x5e,0x41,0xc9,0x7a,0xaa,0x41,0xe6,0x4,0xd5,0x41,0x1a,0x3d,0x99,0xc2,0x26,0x27,0xe1,0x42,0x91,0xcd,0x40,0x42,0x88,0x5e,0x8,0x42,0x26,0xac,0xaf,0x42,0xb3,0x1a,0xf,0xc1,0xd7,0x3a,0x88,0x42,0xa9,0xed,0xf5,0xc2,0x30,0x9d,0xcc,0xc1,0xa8,0xd9,0xa5,0x42,0x6f,0x5c,0x43,0x42,0x7b,0x68,0x7a,0x42,0x66,0x12,0x36,0xc1,0xda,0x61,0xfc,0xc1,0x8b,0xe7,0x42,0xc3,0x28,0x3d,0x60,0x42,0xf5,0x46,0x99,0x42,0x1f,0x44,0x84,0xc2,0x93,0x8a,0xfa,0xc1,0x93,0x85,0x2b,0xc1,0xf8,0xda,0xc0,0x3f,0xa3,0x88,0x16,0x43,0xfc,0xdf,0x3c,0xc2,0x7c,0x76,0xc9,0xc2,0x26,0x61,0x1f,0xc1,0x72,0x50,0xb4,0xc0,0x10,0x4a,0xe4,0x41,0xfc,0xfc,0x85,0x42,0x66,0xa7,0x24,0x43,0xaf,0x97,0x36,0xc2,0x15,0xe6,0x6a,0x42,0x43,0xb3,0x15,0xc2,0xbb,0xb,0x6c,0x42,0xf9,0x46,0x9,0x42,0xfe,0xdb,0x23,0x40,0xfc,0xb5,0x4b,0x42,0x44,0xee,0x5b,0xc2,0x45,0xd9,0x4a,0x42,0xdd,0x29,0x7,0xc3,0x90,0x4c,0xc1,0x41,0x9d,0xcc,0xdb,0x42,0x44,0xa6,0x85,0x41,0xe3,0xad,0x2a,0xc2,0x14,0x15,0xf3,0x42,0x94,0x9e,0xc3,0xc1,0x4c,0x7a,0x51,0xc2,0x21,0xe1,0x93,0x42,0xbf,0x3e,0x34,0x42,0xe9,0x92,0xc0,0xc1,0xe5,0x8,0xe1,0xc2,0x40,0x75,0xce,0xc2,0xed,0x9f,0xed,0x41,0x2b,0x3a,0xd5,0x41,0xa2,0xdb,0xc7,0xc2,0xcf,0xdd,0x29,0x41,0x56,0x5b,0xa1,0xc2,0x37,0x87,0x43,0x43,0x82,0x83,0x1e,0xc2,0x54,0x6c,0x4f,0xc2,0x45,0xca,0x26,0x42,0x91,0x76,0x98,0xc1,0xbb,0x55,0x2c,0x42,0x9c,0x51,0xb,0x42,0xf0,0x5,0xd1,0xc0,0x71,0x16,0x72,0x42,0xde,0xf7,0x53,0x42,0x59,0x2b,0xe1,0x42,0x8b,0x46,0x23,0x40,0x4f,0x71,0x43,0xc3,0x12,0xbe,0x77,0x42,0xe9,0xb5,0x30,0xc3,0xc4,0x7e,0x9c,0xbf,0x20,0xce,0xf8,0x41,0xc5,0x34,0xac,0x42,0x8a,0xcf,0x24,0xc2,0xe3,0x59,0x6b,0x42,0x7f,0xa8,0xd5,0xc2,0xac,0xeb,0xdc,0xc0,0xef,0xcc,0xb3,0x42,0xf6,0x5a,0xae,0xc2,0x11,0xfe,0x3c,0x42,0xc6,0x15,0x32,0x42,0x3d,0x68,0xe0,0xc2,0x7d,0x8c,0xaa,0xc0,0xa4,0x53,0xfe,0x42,0x58,0x20,0xb2,0x42,0x11,0x73,0x85,0xc0,0xe9,0x4,0x14,0x42,0xab,0xe5,0x18,0xc3,0xe,0x67,0xf1,0xc1,0x12,0xd9,0xe7,0x42,0x27,0xbe,0xc9,0x42,0xe0,0x1,0x88,0xc1,0xf2,0xa,0x2,0x40,0xa6,0x9f,0xb4,0x42,0x10,0xc7,0x8f,0xc2,0xca,0x3e,0x2c,0xc0,0xfc,0x6,0x4d,0xc2,0x3c,0x27,0x66,0x43,0xa3,0xbd,0x79,0xc2,0xf8,0x14,0x52,0xc1,0x54,0x37,0x32,0xc2,0x3c,0x52,0x30,0x43,0x8,0xbc,0x9b,0x41,0xa0,0xbc,0x56,0x42,0x10,0xfe,0xf6,0xc2,0xcb,0xc6,0x9a,0xc2,0x48,0xfe,0x56,0x43,0xe,0xf0,0x8d,0x42,0xfc,0xbc,0x80,0xc2,0x21,0xd3,0x9a,0x42,0x54,0x97,0x71,0xc2,0xb1,0x4d,0xad,0x42,0xdd,0xf3,0xb5,0xc2,0xea,0x3f,0xe3,0x41,0x66,0x87,0x8c,0xc1,0x84,0xea,0x5,0x41,0xc2,0x25,0xa2,0x40,0xee,0xb4,0x7d,0x42,0x93,0xe6,0x44,0x42,0x8,0x3b,0x6a,0xc1,0xec,0x4a,0xbe,0x41,0xa5,0x33,0x82,0x40,0x14,0xf9,0x57,0xc2,0x9e,0x4e,0x1b,0x41,0xbe,0x7f,0x9d,0x42,0x1e,0xc5,0xa9,0xc2,0x33,0x41,0xc2,0x41,0x9e,0x65,0x7a,0x42,0x35,0x13,0xb6,0xc2,0xc3,0x81,0xb1,0xc2,0xca,0x76,0x6d,0x42,0xe2,0x40,0x43,0xc2,0x11,0x3a,0xd8,0x3f,0xa2,0x3d,0x9e,0x3f,0x5e,0xc,0x2,0x42,0x79,0x3d,0x79,0xc2,0xcc,0xf2,0x6f,0xc1,0xde,0x2f,0xd2,0xc2,0xd0,0xad,0x3a,0x42,0x4d,0x82,0x91,0x42,0x86,0x90,0x12,0xc3,0x4b,0x56,0xb7,0xc2,0x27,0x59,0x9e,0xc2,0xe5,0x62,0x1d,0xc2,0xb8,0x57,0x5a,0xc1,0x7e,0xb1,0xb1,0xc2,0xd4,0x1,0xe1,0xc2,0xbf,0x12,0xa5,0x41,0x38,0x80,0xa8,0x41,0x66,0x32,0x3b,0x42,0xd0,0x6a,0x7c,0x41,0xaf,0xbe,0xaa,0xc1,0x6,0xf2,0x1e,0xc3,0xd3,0x48,0xcd,0xc1,0x50,0x7a,0x22,0x42,0x74,0x21,0x48,0x42,0x41,0x31,0x1f,0xc2,0x93,0x22,0x96,0x42,0xee,0xb6,0x4d,0xc1,0x7f,0xfb,0xe0,0x42,0x2,0x5,0x90,0xc2,0xc7,0x9e,0xa0,0xc2,0xc6,0x81,0x3c,0xc0,0x14,0xec,0x8a,0x41,0x8e,0x82,0xc5,0xc1,0x4a,0xe,0x26,0xc2,0xe6,0x32,0x91,0x40,0xfb,0x1d,0xe2,0xc1,0xeb,0x1a,0xb7,0x42,0xfe,0x71,0xa,0xc2,0xcc,0xe2,0x42,0x40,0x66,0xb0,0xa,0xc1,0x43,0x73,0xfe,0xc1,0x28,0xc4,0x54,0x42,0x56,0x48,0x1e,0xc3,0x30,0x8,0xd8,0x41,0xb9,0xed,0x32,0x42,0xb0,0x35,0xa5,0x42,0x96,0x2,0xc8,0xc2,0xc2,0x17,0x81,0xc1,0x56,0x8c,0x78,0x41,0x47,0x86,0x1,0xc2,0x2e,0x5,0x75,0x42,0x4d,0x26,0x95,0xc2,0x86,0x81,0x23,0xc3,0x27,0x60,0x1c,0x42,0xa6,0xd0,0x28,0xc1,0xb7,0xb1,0x82,0xc2,0xd8,0xe4,0x8c,0x41,0xd5,0xbc,0x91,0x42,0x43,0x56,0x2b,0xc3,0x2c,0x66,0x7d,0x41,0xb,0x30,0xec,0x41,0x53,0xe0,0xc9,0xc1,0x3a,0xf,0x8b,0xc1,0xc2,0xcd,0x82,0x42,0x56,0x17,0x7b,0x41,0xc5,0xad,0x82,0xc2,0x59,0x4e,0x45,0xc2,0xee,0x1e,0xb0,0xc1,0x42,0x1d,0xa4,0x40,0x14,0x61,0xa,0xc2,0xa8,0xdc,0xaf,0xc2,0xbb,0x6f,0xd8,0x42,0xcb,0xcf,0xc,0x43,0x39,0xda,0x2,0xc3,0x49,0x12,0x8,0xc2,0xf8,0x84,0xfa,0x42,0xf2,0x20,0xff,0xc2,0xb9,0x1e,0x67,0xc2,0x82,0xd5,0x2b,0xc1,0x61,0xab,0x75,0x42,0xc9,0x10,0x94,0x42,0x7d,0x9e,0xf3,0x40,0xaa,0x5e,0x1e,0xc2,0xd5,0x62,0x49,0x40,0x71,0xb4,0xd7,0xc2,0x5f,0x8e,0xb,0xc3,0xbb,0x15,0xf6,0x42,0x28,0xd2,0x74,0x42,0x9a,0x12,0x54,0xc3,0x74,0x8,0x99,0x41,0xe5,0xfa,0xf1,0xc0,0xf3,0x69,0xa2,0xc2,0x5e,0x7e,0x95,0xc2,0x33,0x44,0x95,0xc1,0x4f,0x91,0xbb,0xc2,0xe9,0x4d,0x45,0xc3,0x34,0xa6,0xe2,0x42,0xce,0xc9,0x25,0x40,0x8a,0x58,0xb5,0x41,0x74,0xfd,0x64,0xc2,0x63,0xbf,0xa3,0x42,0xe0,0x8,0xbb,0x41,0xa4,0x5f,0x76,0x41,0x94,0x4,0xd4,0xc1,0x42,0x1,0x9a,0x42,0x5a,0x1c,0xdc,0xc1,0x7a,0x93,0x31,0x43,0x33,0xbd,0xd,0x42,0x2,0x97,0xb8,0xc2,0x71,0x1d,0x86,0x42,0xd9,0xa6,0xbd,0x42,0xd9,0x16,0xd9,0xc2,0xaa,0xcb,0x1a,0x42,0x18,0xb5,0x95,0x42,0x58,0x29,0xd2,0xc2,0x3e,0x89,0xe,0x42,0x71,0x1,0xc1,0x42,0xa4,0x55,0x9,0x41,0xc6,0xbd,0x2e,0x43,0xd4,0x6e,0x26,0xc3,0x7d,0x4c,0x45,0xc2,0x7b,0xe9,0xa3,0x42,0x24,0x20,0x29,0xc2,0x58,0x17,0xa6,0x42,0x9d,0x9c,0x38,0x42,0xcd,0xe,0x78,0x42,0xc4,0xd8,0x6a,0x42,0x98,0x62,0xaf,0x42,0x75,0x4f,0x3e,0x43,0x8e,0x64,0x55,0x41,0xbe,0x8c,0xf5,0xc0,0x35,0xea,0xae,0x42,0xa6,0x47,0x81,0xc1,0xd3,0x3f,0xc7,0xc2,0xc5,0xc6,0xdc,0x42,0x73,0xe2,0x19,0x42,0x1a,0x56,0xbc,0x42,0x87,0x24,0x4d,0x43,0x72,0x3e,0x0,0x43,0xd6,0xd8,0x73,0x41,0x51,0x8b,0xe0,0x42,0x29,0x56,0xa,0xc3,0x4b,0xe0,0x2,0x43,0xe9,0xf3,0x2d,0x43,0x43,0x67,0x81,0x42,0x95,0xd4,0x5b,0x42,0xba,0xfd,0x83,0xc2,0x52,0xa6,0xaa,0x41,0xea,0xe0,0xce,0xc1,0xba,0x6b,0xc8,0x42,0x25,0x46,0x63,0x41,0xea,0x90,0x3d,0xc2,0x72,0x90,0xfb,0x41,0x21,0xa9,0x74,0xc2,0xb5,0xe0,0x58,0xc2,0x52,0xa1,0x9e,0x42,0x48,0x6,0x30,0x43,0x89,0xc3,0xad,0x42,0x0,0xff,0x5b,0xc1,0x96,0x93,0x0,0x41,0xb4,0x9b,0x97,0xc0,0x4,0x8f,0x1f,0x41,0xb2,0x57,0x1,0x42,0xf6,0xfb,0xb8,0xc2,0xee,0x7e,0x26,0x43,0x59,0x19,0x39,0x42,0x53,0x56,0x8a,0x42,0xdd,0x24,0xd,0x42,0x18,0x28,0x13,0x43,0x5c,0x31,0xcf,0xc1,0x9a,0x39,0xd1,0x42,0xc1,0xed,0x97,0xc2,0x89,0x44,0x87,0xc2,0x52,0xa2,0x9,0xc3,0x92,0x32,0xa,0xc3,0xb3,0xa5,0xde,0x41,0x3a,0xf8,0x99,0x41,0xef,0x7e,0xab,0xc2,0x7,0x67,0x90,0xc0,0x0,0x2e,0x52,0xc2,0x62,0x2f,0xc1,0x42,0xe2,0x83,0x26,0xc3,0x48,0xf1,0x64,0xc3,0x62,0xef,0xb8,0xc1,0xbc,0xb4,0x84,0xc3,0x76,0x44,0x33,0x42,0x43,0x3f,0x5a,0x42,0x72,0x78,0x88,0xc2,0x58,0x9a,0xd0,0xc2,0x88,0x86,0x5c,0x43,0x20,0x80,0x6,0x40,0x73,0x4d,0xc,0x43,0x11,0xa1,0x84,0x42,0xde,0x2d,0x40,0x41,0x23,0xb4,0x2b,0x43,0xb,0x55,0x3,0xc3,0x3,0xcc,0x1d,0xc2,0x96,0xea,0x7d,0xc2,0xec,0xf5,0xb3,0xc2,0x39,0xff,0x7f,0x42,0xe0,0x5b,0x34,0x42,0x6c,0x1f,0xd,0x43,0xf9,0x87,0xc,0xc3,0x75,0xd3,0x16,0x43,0xd7,0x72,0x29,0x42,0x36,0x7,0xba,0x42,0x77,0x77,0x53,0xc2,0xa0,0xf2,0xa3,0x42,0xdc,0x89,0xa9,0xc2,0xc3,0x43,0xb2,0xc2,0x44,0x85,0xfa,0x41,0x20,0x45,0x36,0x42,0x24,0xd8,0x7,0x43,0xdd,0x2f,0x16,0xc3,0xb6,0xdd,0x4e,0xc1,0x9a,0xef,0xa8,0xc2,0xf7,0xfc,0xdf,0x42,0x21,0xf,0x68,0xc2,0xb4,0x4a,0x74,0x41,0x48,0x48,0x29,0xc3,0xa8,0x5f,0xbf,0xbe,0x3,0xb0,0x8a,0x41,0xd7,0xce,0x9e,0xc2,0xd2,0xaf,0x6b,0x40,0xfc,0x7e,0x39,0x41,0xad,0x68,0x9c,0x40,0xed,0xc5,0xc8,0xc1,0xda,0x61,0x72,0xc1,0x34,0xf6,0x68,0x42,0xba,0x92,0x59,0xc2,0x88,0x8f,0xf3,0x40,0x1a,0xcb,0x4b,0xc2,0x94,0xd8,0xdc,0xc2,0xe6,0xa9,0x4,0x42,0xfe,0x2d,0x38,0x43,0x62,0x1,0x3d,0xc3,0x81,0x72,0x40,0x42,0xaf,0x45,0xfb,0x42,0xf6,0x12,0xf0,0x41,0xf0,0x79,0xde,0xbe,0x59,0x68,0x32,0xc2,0xd2,0xd2,0xbd,0xc1,0xf0,0x29,0xa7,0xc2,0xaf,0x2e,0xe3,0x41,0x10,0x62,0x3,0xc3,0x16,0xfd,0xe3,0xc1,0x53,0x9d,0x65,0xc2,0x3,0x84,0x9c,0x41,0xd6,0xf2,0x82,0x43,0xe9,0x53,0x26,0x43,0xfd,0x28,0x5f,0x42,0xf4,0x41,0xfb,0xc2,0xfa,0xd,0xf8,0xc1,0x8d,0xcf,0xea,0x42,0x23,0x86,0xee,0x42,0xf2,0x52,0x75,0x42,0x15,0xed,0x3,0xc3,0x56,0xc2,0xb9,0x42,0xb0,0x6f,0x9d,0xc2,0x3,0x30,0xd8,0xc2,0xfe,0xd2,0x29,0x43,0x89,0xd,0x2d,0x43,0xf6,0xfb,0xb5,0xc1,0xbc,0xc2,0x35,0xc1,0xf2,0x33,0x30,0xc2,0x11,0x12,0x21,0xc3,0xee,0xf2,0xf2,0xc2,0x5d,0xac,0x81,0xc2,0x48,0x97,0x10,0x43,0x5d,0xa2,0x7d,0xc1,0x33,0x2,0xe4,0x42,0x7b,0xdc,0xf6,0x42,0x20,0x4f,0x39,0x41,0x40,0xe4,0xc5,0x42,0xbd,0xee,0x63,0xc2,0xa2,0x15,0xcf,0xc2,0x7d,0xc7,0x9b,0xc2,0x65,0x4a,0xe,0x42,0x39,0xed,0x4d,0x41,0x12,0xfd,0xf2,0x42,0x69,0xc4,0x4d,0x42,0x5d,0xb1,0x26,0x42,0x96,0x9c,0x9e,0x42,0x8e,0xf7,0x54,0xc2,0x7c,0x49,0x77,0x42,0x1c,0x4c,0x30,0xc1,0xf7,0x1e,0x5a,0xc2,0x28,0x7,0xe1,0x3e,0x48,0x10,0x1d,0x41,0x7d,0x50,0xa,0xc2,0x8a,0xe7,0x5e,0x42,0x27,0x51,0xf9,0x42,0x53,0x5e,0x85,0x42,0x9b,0xa5,0x46,0xc2,0xff,0xc2,0x5f,0xc3,0xea,0xc8,0x50,0xc2,0xe0,0x3c,0x3c,0xc2,0x45,0xaf,0x9a,0xc1,0x9e,0x99,0x90,0x42,0xe1,0xb7,0xd4,0xc1,0xa7,0x4f,0x59,0x42,0xad,0x5c,0x1c,0xc3,0xc6,0x79,0x87,0x42,0x10,0x2f,0xa5,0xc1,0x8e,0x1f,0xed,0xc2,0x1d,0xf0,0x72,0xc2,0x11,0x53,0x23,0x42,0x51,0xe,0x89,0x42,0xac,0x3a,0x70,0x42,0x1d,0xe4,0x7,0x43,0xa1,0x4a,0x48,0x42,0xf6,0x71,0x37,0xc1,0x9d,0x43,0xe,0xc1,0x7c,0x96,0xf6,0x41,0x7a,0xbf,0x8a,0xc2,0xf0,0xec,0x1a,0xc3,0xe,0x5c,0xd1,0xc1,0xff,0xe0,0x10,0x43,0x1c,0x1c,0xcc,0x41,0xa4,0x80,0x17,0x43,0xb8,0x18,0x8b,0xc2,0xd2,0x27,0xcb,0x41,0xd9,0xb9,0x84,0xc1,0xa7,0xda,0xcd,0xc1,0xcc,0xc7,0x81,0xc2,0x2d,0x9e,0x20,0x42,0x84,0xe8,0x45,0x42,0xf1,0x87,0x8e,0x42,0x32,0x6d,0xac,0xc2,0xe6,0xb,0xa5,0xc2,0x4f,0x58,0x41,0xc2,0x4a,0x0,0xe6,0xc2,0xc2,0xde,0x5e,0xc1,0x45,0xbd,0x1a,0x42,0x14,0x3f,0x4,0xc3,0xa8,0x5a,0xcf,0x42,0x49,0xaa,0x3,0x43,0x83,0x64,0x87,0xc2,0x9e,0xa0,0xbb,0xc2,0x86,0x9d,0x97,0xc2,0xd,0x52,0x89,0x42,0x6f,0x96,0xc1,0x42,0xd0,0x7b,0x2f,0xc3,0xd0,0x1,0xdc,0x42,0x6d,0x51,0xdd,0xc1,0x12,0x31,0x2c,0xc3,0x4b,0xa7,0x1,0x42,0x6e,0xbf,0xfd,0x42,0x49,0x14,0x1c,0x43,0x1c,0xe9,0xb7,0x41,0xb6,0xd1,0x73,0x42,0xac,0x63,0xaa,0x42,0x24,0x12,0x35,0x42,0xb8,0x6c,0x4,0x43,0x80,0x64,0xa6,0xbe,0x9,0x7b,0x3c,0x42,0x34,0x8,0xdb,0xc2,0x9a,0x69,0x3e,0xc2,0x2b,0xda,0x27,0x40,0x75,0xab,0x8b,0x42,0xb3,0xc4,0xb,0xc2,0x24,0x5a,0x9e,0xc1,0xf3,0xad,0xcc,0x42,0x48,0x69,0x99,0x40,0xfb,0xae,0x59,0xc2,0x8e,0xd3,0x8a,0xc2,0x4c,0x0,0x1e,0xc3,0x39,0x8b,0x95,0x41,0x2,0x39,0x26,0xc3,0x98,0x40,0x8f,0xc2,0xef,0x41,0xa8,0xc2,0xf0,0xd6,0x4e,0x3f,0x32,0x62,0x23,0x42,0xd0,0xdd,0xd6,0x42,0x5b,0x41,0x25,0xc3,0x5b,0x57,0x2,0xc2,0x32,0x77,0x90,0xc3,0xcd,0x35,0xbf,0x42,0xc3,0xc,0xa5,0xc2,0x96,0x7f,0xe2,0x41,0xae,0xc3,0xa2,0x42,0x15,0x1e,0xcd,0x42,0x76,0xed,0x99,0x42,0x2b,0x68,0xe4,0x41,0xe7,0x73,0xe7,0x41,0x5b,0xb,0xd4,0x41,0x8d,0x26,0xca,0x42,0xfe,0x31,0xf0,0x40,0xb5,0x9c,0xf6,0x41,0xfd,0x65,0x54,0xc2,0xc8,0xd5,0x4d,0xc2,0xa8,0xf6,0x41,0xc2,0x9e,0xf2,0xdf,0x41,0x5e,0x9b,0x4d,0x43,0x50,0x91,0xaa,0x42,0x4e,0x25,0x7a,0xc2,0x1,0xe9,0xaa,0xc2,0x36,0x3c,0xd4,0xc1,0xbd,0x65,0x77,0xc2,0x48,0xe8,0xdf,0x42,0x4d,0xe1,0xa2,0x42,0x58,0x65,0x8a,0xc2,0x7f,0x8d,0xd0,0x42,0x37,0xef,0x19,0xc2,0x15,0x78,0x8b,0x42,0x87,0xed,0x55,0x41,0xbb,0x9e,0xf0,0x42,0x74,0x57,0xb9,0xc0,0x4e,0x7e,0xaf,0xc1,0xbe,0x88,0x8b,0xc2,0x8a,0x75,0x2b,0x42,0x95,0x98,0xe1,0x42,0x56,0x6e,0x87,0x43,0x58,0x9,0xc7,0xc2,0xca,0x92,0x1f,0x43,0xbf,0x91,0xc2,0xc2,0x9c,0x4c,0x1e,0x43,0x91,0xcc,0x55,0xc2,0x5,0xbe,0x85,0x42,0x98,0xf1,0xd5,0xc2,0xa5,0x71,0xf9,0x42,0x8a,0xf2,0xb4,0x41,0x18,0xdf,0x80,0x40,0xb,0x4b,0x85,0xc2,0x72,0x39,0x57,0xc2,0x8f,0x4,0xa5,0xc2,0x18,0x8f,0x4,0x42,0xc9,0x1b,0x1c,0x42,0x72,0x46,0xab,0xc2,0xbb,0x52,0x78,0xc2,0x5b,0x3b,0xee,0x42,0x4c,0xcd,0x43,0x42,0x70,0xff,0xe5,0x42,0x12,0x6c,0xdc,0xc2,0x12,0xc3,0xb8,0xc2,0x75,0xec,0x8b,0x41,0x44,0x48,0x99,0xc1,0x32,0x90,0xe9,0x41,0xe,0xbf,0x21,0x43,0xc1,0xd2,0x6a,0xc2,0xfd,0x21,0xaf,0x42,0xda,0x13,0x2a,0x41,0x37,0x51,0xa5,0x42,0xab,0xb2,0x0,0xc3,0xbc,0xc4,0x86,0xc2,0xa9,0xbe,0xc3,0x41,0x32,0x7f,0x99,0x40,0x99,0x1c,0x8a,0x42,0x84,0xea,0xea,0xc2,0x4e,0x1a,0x80,0xc2,0x41,0x5e,0x77,0xc2,0xc9,0x15,0xf4,0x41,0x59,0x63,0xbb,0xc2,0x50,0x48,0xb1,0x42,0xe9,0x98,0xa1,0x41,0x96,0xd7,0x5d,0xc1,0xb5,0xee,0x48,0xc3,0x51,0x12,0x6d,0x42,0x43,0x88,0x87,0x42,0x58,0x7,0xba,0x42,0xd3,0x83,0x4f,0x42,0x85,0x61,0x12,0x43,0xe0,0xea,0xc8,0x41,0x6,0x97,0x9b,0xc2,0x18,0x49,0xbd,0x42,0x46,0x9b,0xd8,0xc1,0x9b,0xcc,0xac,0xc1,0x19,0x65,0x6c,0x42,0xf0,0xfe,0xee,0x41,0xe8,0xae,0x6f,0x42,0xba,0x53,0x12,0xc3,0x38,0x18,0x33,0x42,0x2e,0x4b,0x9e,0xc2,0xec,0x8e,0xf7,0x42,0x9c,0x1c,0x5b,0xc1,0xa2,0xc0,0x85,0x42,0x3f,0xe3,0x56,0xc2,0x83,0xc,0x15,0x43,0xf,0x0,0xba,0xc1,0x7f,0xc7,0x44,0xc2,0x48,0x44,0x9f,0xc2,0x55,0x1a,0x8a,0x41,0x34,0x99,0x19,0x43,0x54,0xce,0x3c,0x41,0xe,0xff,0xb3,0xc1,0x25,0xe6,0x7f,0x41,0xa,0xe9,0x70,0xc2,0xa8,0x8d,0x36,0xc2,0xab,0x18,0xcf,0xc1,0xc7,0x47,0x5b,0xc2,0xe0,0x6,0x12,0x43,0xe3,0xfc,0xe6,0x41,0x49,0xe4,0xb9,0x42,0x76,0xce,0x75,0xc3,0xb2,0x80,0xa7,0x42,0xe7,0x1b,0x42,0x43,0xa9,0xf,0xfc,0xc1,0x85,0x3c,0x3,0xc3,0xb5,0xac,0x32,0x43,0x79,0xb0,0x28,0x41,0x7c,0x65,0xd5,0x42,0xca,0xd4,0x47,0x43,0x44,0x19,0x2a,0x42,0xce,0xbc,0xdb,0x40,0x8f,0xa4,0x28,0x42,0x3a,0xfb,0xce,0xc2,0xc8,0x56,0x1e,0x43,0x25,0x6e,0xf4,0xc2,0x87,0x91,0xa3,0xc2,0x7f,0xa4,0x6d,0x42,0xf7,0x35,0xd2,0xc2,0x71,0xd0,0xcf,0xc2,0x1,0xfd,0xa,0x43,0x81,0x95,0x9,0x42,0x3e,0x5,0xf,0x43,0x46,0x61,0xbd,0xc2,0xd8,0xf7,0x86,0x42,0xbe,0x9e,0xb8,0xc2,0x20,0x42,0x4c,0xbf,0x70,0xe6,0x1c,0x43,0x3e,0x2c,0xcc,0xc2,0xf5,0x8d,0xb6,0x42,0x9a,0x7a,0x1,0x43,0xbe,0x7a,0x43,0x42,0x14,0xc2,0x9e,0xc2,0x85,0x99,0xd4,0xc2,0x1e,0x3e,0xab,0xc2,0x60,0xfc,0x3,0xc3,0x4d,0xcf,0xa1,0x41,0xe5,0xe9,0xd1,0x42,0x23,0x80,0x10,0x43,0x29,0x74,0x2f,0x42,0xbb,0xef,0xb7,0xc1,0xe3,0xfa,0x18,0xc1,0xe2,0x1a,0x16,0xc3,0xbe,0xc9,0xf5,0xc1,0xd4,0x63,0x3a,0xc3,0xb2,0xa8,0xa8,0x40,0x52,0x98,0xf2,0x42,0xd5,0xba,0x2b,0xc3,0x15,0x43,0x4,0x43,0x2,0x72,0xbd,0xc2,0x47,0x37,0x37,0x42,0xdb,0x2c,0x64,0x42,0x37,0x34,0xa1,0x42,0xbe,0x76,0xc4,0xc2,0xa0,0x5,0x84,0xc2,0xfd,0x27,0xa,0x42,0x93,0x15,0x75,0x40,0x95,0xb,0xb9,0x42,0x68,0x29,0xad,0x41,0x50,0xf5,0x76,0x41,0x30,0x15,0x15,0xc3,0xaf,0xd6,0xfb,0x42,0xec,0x9e,0x2d,0x43,0x81,0x79,0xa5,0xc2,0x16,0xaa,0xaf,0xc2,0xc0,0x21,0x80,0x42,0x68,0x17,0xa3,0xc0,0x29,0xc3,0xa,0x43,0x36,0x80,0x9,0x42,0x22,0xc2,0xe1,0xc1,0x37,0x60,0x83,0xc3,0x65,0x35,0x92,0xc2,0x62,0xa2,0x1,0xc2,0x75,0x19,0xbe,0xc2,0x9b,0x22,0x15,0xc3,0x1f,0x9e,0x1f,0xc3,0x5c,0xf1,0x36,0xc1,0x55,0x37,0x76,0x42,0x10,0xda,0xf4,0x42,0x23,0xea,0xf6,0xc2,0xad,0xb3,0xe7,0x42,0x5f,0xf1,0xa6,0xc1,0xb9,0x8,0x8d,0xc2,0xba,0xc8,0x56,0x42,0x8a,0xb0,0x6,0xc0,0x26,0x7c,0x8f,0x40,0xe3,0x33,0x38,0xc3,0xf3,0xbb,0x45,0xc2,0x30,0xb2,0x28,0xc2,0xd1,0xfa,0xf,0x42,0x49,0x16,0x9d,0x42,0xe8,0x30,0xa,0x42,0xdb,0x36,0x85,0x42,0x73,0x6e,0x1d,0x42,0x59,0x17,0xe2,0x42,0xfd,0x2a,0xf,0xc3,0x2c,0x6c,0xa,0x41,0x18,0xb9,0x37,0x43,0x45,0xaa,0xa7,0xc2,0x2b,0xee,0x9a,0x42,0x10,0x8d,0x48,0x41,0x69,0xcc,0x2d,0x43,0xd4,0xa,0x1f,0x43,0xe7,0xb5,0x9c,0x42,0xee,0xa2,0xf4,0xc2,0x2b,0x9,0x7b,0xc2,0xee,0x18,0x49,0xc3,0x3e,0xc0,0x39,0x43,0x35,0xbc,0x3f,0xc3,0xc1,0x1a,0xb2,0xc2,0x13,0x44,0xd7,0xc2,0x75,0xf0,0x2b,0xc2,0xc1,0x2c,0xda,0x41,0x1c,0xd2,0x75,0xc2,0xa1,0x66,0x31,0xc3,0x89,0xcf,0x87,0xc2,0xc7,0xdd,0x15,0xc2,0x84,0xdc,0x82,0xc2,0x23,0xfe,0xe7,0xc1,0x61,0x6b,0xc7,0xc2,0xd0,0xf4,0x48,0xc3,0xeb,0x5e,0xe6,0x42,0xd7,0x2d,0x84,0x42,0x77,0x70,0xe7,0xc2,0x87,0xfc,0xc1,0x42,0x94,0x52,0x24,0xc1,0x47,0xae,0x18,0x43,0xb3,0x1d,0x9d,0xc1,0x22,0xfc,0x64,0x42,0xec,0xec,0x28,0x43,0x66,0x39,0x80,0x42,0xe8,0x70,0x1,0xc2,0xa8,0x7e,0x16,0x43,0x33,0x7c,0xd4,0x42,0x16,0x3,0x93,0x42,0x52,0x62,0x9c,0x41,0xa0,0x9b,0x33,0x42,0xf2,0x5,0xc2,0x42,0x50,0xe6,0x73,0x42,0x67,0xeb,0x6a,0xc2,0x9d,0x77,0xc9,0xc2,0xe,0x6,0x3,0x43,0x57,0x3c,0x17,0x43,0x84,0x54,0x1a,0x43,0x94,0xf5,0xf0,0x42,0xe6,0x4,0x2c,0xc2,0x6a,0x37,0xe9,0xc1,0xd7,0xfb,0xaf,0xc2,0xbb,0x9a,0xc0,0xc1,0xd,0xba,0x9b,0xc2,0xc3,0x92,0x75,0xc2,0xb2,0x1f,0x9,0xc2,0x99,0x46,0xe6,0x42,0xd6,0x8d,0xee,0xc2,0xab,0x55,0x7,0xc3,0xbb,0xdb,0xad,0x42,0x2,0x42,0x18,0x43,0xe6,0x42,0xb,0x42,0xa0,0x45,0x2c,0xc3,0x7,0x8c,0x78,0x42,0x4a,0xcd,0xec,0xc0,0x7e,0xb5,0x95,0xc2,0x3c,0x3d,0x20,0x43,0x56,0x4e,0x91,0x43,0xb4,0xb5,0x92,0x42,0x7a,0x5a,0xa0,0x42,0x15,0xc3,0x81,0x42,0x92,0x4,0x1c,0x42,0xeb,0x15,0xdd,0x42,0x65,0x8d,0x45,0xc3,0xd2,0x6e,0x44,0x42,0xf2,0xf7,0xb5,0x42,0xfa,0xec,0x36,0xc2,0xba,0xab,0x28,0x42,0x30,0xb6,0xd9,0x42,0x98,0xc9,0x3b,0x40,0x1a,0x26,0x22,0x42,0x14,0xa7,0xf4,0xc1,0xe0,0xd1,0x9d,0xc0,0x88,0x10,0x75,0x42,0x9e,0x14,0x16,0x41,0xce,0xda,0xf9,0xc1,0x26,0xba,0x60,0x42,0xd6,0x3d,0xce,0x42,0xb,0x85,0xfa,0xc2,0xb3,0x9a,0xda,0xc0,0xb0,0x26,0x5e,0x42,0xc8,0x24,0xa5,0x42,0x6c,0x90,0x3f,0x42,0x52,0x5f,0x17,0x42,0x12,0x8d,0x3b,0x40,0xd5,0xe0,0x5b,0xc2,0x5c,0xe,0x2a,0xc2,0x59,0xe4,0x81,0x42,0xad,0xe7,0xb8,0x42,0x37,0xce,0x9a,0xc2,0x61,0xb0,0x9b,0xc2,0x2f,0x96,0xa4,0xc2,0xe2,0xd7,0x9e,0x41,0xd9,0x6f,0x24,0xc3,0xec,0x16,0x58,0xc2,0x30,0x5a,0x83,0x42,0x4c,0xf3,0xba,0xc2,0x1,0xc4,0x98,0xc2,0x1d,0x62,0x76,0xc2,0x35,0xd4,0xd3,0x42,0xba,0x88,0x37,0x42,0x79,0x8e,0x2a,0x43,0xf6,0xca,0xd8,0xc1,0x23,0x3,0x9,0xc2,0x85,0xe3,0x86,0xc1,0xc4,0x23,0xe1,0xc2,0x7,0xbf,0xb,0xc3,0xc0,0xf7,0x99,0x40,0xb9,0xe9,0xcf,0x42,0x78,0x8b,0xb8,0x41,0xe0,0x56,0xcd,0x42,0xc7,0x39,0x26,0xc2,0xd6,0xe6,0x1,0x43,0xb2,0x70,0x83,0x42,0x6e,0x4b,0xf0,0x41,0x3b,0x33,0x23,0xc2,0x91,0xb2,0xc8,0x41,0xc,0x60,0x42,0x41,0x91,0x3c,0x5a,0xc1,0x62,0x5d,0xce,0xc2,0xa0,0x22,0xbf,0xc2,0xfc,0x1b,0xe9,0x42,0xf3,0x37,0xa,0xc2,0xba,0x10,0xbe,0x42,0xc0,0xdb,0x98,0xbe,0x31,0xf7,0x86,0x42,0x96,0x2e,0xb5,0x41,0xec,0x70,0x86,0xc2,0xba,0x1b,0xaa,0xc2,0x46,0x17,0xf8,0x41,0x8b,0xf5,0x38,0xc2,0x37,0x95,0x2b,0x42,0xa,0x4c,0x8a,0xc1,0xa8,0x0,0x0,0x43,0xf3,0x99,0xab,0x42,0x6a,0xc8,0x9,0xc2,0xa6,0xaa,0xb3,0xc2,0xe0,0xd5,0x56,0x41,0xa1,0xa1,0x20,0x42,0x7c,0xea,0xf,0xc2,0x7e,0x67,0x85,0x42,0x53,0xd2,0xac,0x42,0x5b,0x32,0xb9,0xc2,0x54,0xa6,0xb3,0xc2,0x68,0x23,0x49,0x43,0x5f,0xe2,0xd1,0x42,0xb8,0x1e,0x8f,0x41,0x15,0xa0,0xa6,0xc2,0xb3,0xe,0x3,0x43,0xdd,0x65,0xbf,0xc2,0x1f,0x15,0x78,0xc2,0x58,0x1f,0xae,0x42,0x43,0x2c,0x7a,0x42,0xdc,0x8,0xec,0x41,0xb,0x6e,0x4,0xc3,0x7c,0x21,0xd2,0x42,0xc5,0x66,0x44,0xc2,0x0,0xb7,0xef,0x41,0x41,0xc3,0x42,0xc2,0xc2,0xba,0x2e,0xc0,0x17,0x59,0xaf,0x42,0x1,0x37,0x80,0x42,0x15,0x34,0xf0,0x42,0x8,0x38,0x8,0x43,0x66,0xf3,0x42,0xc3,0xc6,0x81,0x56,0xc2,0x12,0xab,0x3c,0x43,0x34,0xed,0x3,0xc1,0x14,0x68,0xb1,0x42,0xea,0x3b,0x41,0x43,0x4a,0xb5,0xe4,0x40,0x68,0xa8,0x21,0x42,0x98,0x48,0x1e,0x41,0x2a,0xdd,0x9f,0x42,0xca,0x28,0x59,0xc2,0x88,0x1a,0x9,0x42,0x7e,0x68,0xb6,0xc2,0x46,0x1d,0xdf,0x42,0xb,0xe5,0x4,0xc3,0xa2,0xcb,0xdb,0xc2,0xcd,0xda,0x19,0xc2,0x86,0x19,0xab,0xc1,0xea,0x9c,0x39,0x42,0xa5,0xc4,0xa7,0xc2,0x88,0x9a,0xe6,0xc1,0xe5,0xbf,0x5,0x42,0x1a,0xbc,0x75,0x40,0xaa,0xf6,0x1,0xc1,0x9a,0x75,0x84,0xc2,0xf4,0x2b,0x5e,0x42,0x1c,0x91,0xc1,0x40,0x56,0x87,0x29,0xc1,0x7c,0xd8,0xde,0xc2,0x42,0x70,0x1e,0x43,0xbe,0x9d,0x81,0x41,0x87,0x57,0xe4,0x41,0x14,0x56,0x8f,0xc2,0xa3,0xcf,0x48,0x41,0x33,0xf4,0x1d,0xc3,0xf1,0x8,0xc7,0xc2,0x30,0x9,0x8f,0x41,0x42,0x77,0xe5,0x42,0x35,0xc6,0x73,0x41,0xe0,0x7f,0xb3,0xc2,0xa,0x4a,0x8f,0x42,0x1d,0xc7,0x22,0x41,0xd0,0xf8,0xcd,0xc2,0xb8,0x7d,0x2f,0x41,0x95,0x36,0x15,0x43,0x6d,0x3,0x89,0x42,0x6c,0xd0,0xd,0xc2,0x2f,0x61,0xf,0xc3,0xb,0x4,0x92,0xc2,0xe8,0x3f,0xa8,0x42,0x48,0x89,0xb5,0xc1,0x35,0x5d,0x72,0xc2,0xd3,0xe7,0xaf,0xc2,0xb0,0xf9,0xcf,0xc1,0xd,0x10,0x35,0xc3,0x60,0xd8,0xe,0x43,0xfa,0x41,0xaf,0x41,0xc1,0x12,0xa0,0xc1,0x1c,0x1d,0xd1,0xc2,0x4a,0xbe,0x74,0x41,0x41,0xf3,0x67,0x41,0x1,0x57,0x58,0x43,0x5,0xa4,0x7,0x42,0x9,0x8e,0x12,0xc3,0x55,0x97,0x96,0x42,0x38,0x52,0xfc,0x41,0x47,0x44,0xb9,0xc1,0x52,0x38,0xf4,0xc0,0x62,0x52,0xcb,0x41,0x5b,0x26,0x7,0xc3,0x80,0x63,0x33,0x42,0x35,0x7f,0xf9,0xc1,0xb3,0x9d,0xdd,0xc1,0xc9,0xf4,0x84,0x42,0xbe,0x47,0x13,0x41,0x6e,0x55,0x6b,0xc2,0x32,0x49,0xec,0xc1,0xff,0xc5,0xca,0x42,0x9f,0x23,0x43,0x42,0x9d,0xed,0x3,0x43,0x4f,0x64,0x19,0x42,0x8c,0xc1,0x3d,0x43,0x9,0x43,0x1f,0xc2,0x64,0x50,0x33,0x41,0xd6,0x3c,0x51,0x43,0x53,0xde,0xd3,0x41,0xcd,0xef,0xc,0x42,0xff,0x47,0xeb,0xc2,0x5a,0x33,0xbf,0xc1,0x12,0x31,0x40,0x43,0xf5,0xf5,0x60,0x42,0x5d,0x7d,0x59,0x43,0x1d,0xdd,0xf2,0x42,0x94,0xd3,0xc,0xc3,0xf6,0x3,0x8,0x42,0xe2,0xad,0x6f,0x41,0xf0,0x4c,0x48,0xc3,0x97,0xd9,0xc6,0x42,0xfe,0xb5,0x8d,0x42,0x49,0xa7,0x73,0x42,0x2e,0x90,0xe2,0x42,0xed,0xeb,0x49,0xc3,0xa0,0xbd,0x15,0xc2,0xba,0x75,0xba,0xc2,0xf4,0xd4,0x8f,0x42,0xc5,0xc,0xa0,0xc1,0xbe,0x83,0x39,0xc0,0xfb,0xea,0xeb,0xc2,0x43,0x96,0x8d,0x43,0x4,0x49,0xce,0xc0,0x5b,0x5d,0xb5,0xc1,0xf3,0xe0,0x8e,0x43,0xa,0xda,0x4b,0xc3,0x17,0x8e,0xd1,0x41,0x32,0x3,0x34,0xc2,0x5f,0x78,0x99,0x43,0x8b,0xfe,0x28,0xc1,0x74,0xe0,0x94,0xc2,0xcb,0xa5,0xf,0xc1,0x20,0xf8,0xa3,0xc2,0x30,0x37,0x8,0x43,0x71,0x96,0xbf,0xc2,0x7,0xae,0x80,0x42,0x59,0x3f,0x93,0x42,0xef,0x4,0x91,0x42,0x2b,0xaa,0x2d,0xc2,0x33,0xe1,0x96,0x42,0x54,0x3b,0xa4,0x42,0x99,0xe5,0x79,0xc2,0x54,0x42,0x90,0x41,0xce,0xce,0xcf,0x42,0xd3,0x5c,0x11,0xc3,0x39,0xc,0x3e,0x41,0xe8,0x9b,0x91,0x42,0x1b,0xd3,0x82,0xc1,0x8f,0x4a,0x1e,0xc1,0xd5,0x72,0x47,0x43,0xb2,0xd8,0x51,0x43,0xeb,0xad,0x93,0x42,0x9e,0x8f,0xf9,0xc1,0x4a,0x21,0x4c,0x41,0x85,0x4b,0x6a,0x43,0x7f,0xc3,0x9,0x42,0x75,0xb8,0x95,0x42,0x3b,0xbd,0x3f,0xc3,0x94,0x67,0xc5,0xc2,0x9b,0x5d,0xe1,0xc2,0x55,0x96,0xbc,0xc1,0x40,0xd8,0xb1,0xc1,0x2c,0xbc,0x6c,0x42,0x63,0x69,0x45,0xc3,0xe6,0x33,0x19,0x43,0x24,0xa8,0xc6,0x42,0x13,0x59,0x7f,0x41,0x1e,0x56,0x8d,0xc2,0x82,0x34,0x6b,0x43,0x69,0xf1,0x41,0x42,0x65,0xf6,0x79,0x43,0xbc,0xdb,0x19,0xc3,0x3,0xc0,0x48,0xc1,0x70,0x40,0x8c,0xc2,0xb5,0x3d,0x88,0x41,0xb8,0xd0,0xac,0xc2,0x11,0x74,0x42,0xc3,0x1e,0xf9,0x24,0x43,0xec,0xa5,0x5,0x42,0x82,0xdb,0x3e,0xc2,0xb2,0x19,0x15,0xc3,0xe3,0xc7,0x50,0xc2,0x3a,0xca,0x24,0x42,0x57,0x5c,0x36,0xc1,0x22,0x1d,0x31,0x43,0x6c,0xce,0xcb,0xc1,0x32,0xba,0xed,0xc2,0x96,0x8c,0x72,0xc0,0xd8,0x2d,0xc7,0xc1,0x4f,0x40,0x6,0x42,0xa4,0x1e,0x1b,0x43,0x56,0xef,0x85,0xc1,0xb,0xa6,0x8b,0xc2,0xbd,0x2e,0x80,0x42,0xd9,0xd1,0xcc,0x42,0xf7,0x68,0xe,0x43,0x27,0x3d,0x1f,0xc2,0xec,0xcd,0xc5,0xc1,0xfe,0x6,0x95,0xc1,0xd6,0x72,0x8c,0x42,0xe6,0xfa,0x5,0xc2,0x14,0xb2,0xa7,0xc2,0x2f,0xc0,0xcd,0xc2,0xb4,0x2f,0xc4,0x41,0x60,0x53,0x19,0x43,0x52,0xef,0xba,0x42,0x62,0x11,0xdc,0x42,0xd4,0x24,0x99,0x42,0x16,0x4f,0x49,0x41,0x69,0xba,0xf1,0xc2,0xdf,0xa6,0xea,0xc1,0xc2,0xc,0x98,0xc2,0xa0,0x67,0x1e,0xc3,0xab,0x24,0xea,0x42,0xe1,0x7f,0x84,0x42,0x28,0x61,0x20,0x43,0x3,0x26,0xa7,0x42,0x3f,0x4,0x45,0x43,0xf4,0xc0,0x41,0x43,0xdd,0xf4,0x35,0x43,0x11,0x95,0x9d,0x42,0xb4,0xa2,0x85,0x42,0x2c,0xc,0x26,0x43,0xa1,0x54,0x84,0x42,0xb8,0x34,0x8d,0xc2,0x63,0xd,0x82,0xc2,0xc2,0xab,0xd4,0xc2,0x2d,0x1f,0x22,0xc2,0x4c,0x26,0xe5,0x42,0x32,0x79,0x85,0xc1,0x27,0xbf,0x84,0x42,0x28,0x31,0x14,0xc3,0xfc,0xd0,0x34,0xc2,0x90,0x5f,0x3b,0x42,0xec,0x67,0x9c,0xc2,0xf8,0x5e,0xfc,0xc2,0xb9,0x15,0x5d,0xc3,0x83,0x69,0x4,0x43,0x5,0xf,0x56,0xc2,0x31,0x6b,0xd8,0xc2,0xf9,0x91,0x3d,0x42,0x9e,0x45,0xf6,0x42,0xa0,0x48,0x46,0x42,0x2d,0xbc,0x6b,0x40,0x6c,0x25,0x66,0xc2,0x7b,0x2b,0x66,0x42,0xb5,0xb0,0xa7,0xc2,0xe7,0x7f,0x2b,0xc2,0x2b,0x64,0x7,0x42,0xce,0xdc,0x16,0x43,0x7f,0xa1,0x25,0x42,0x21,0x7,0xc8,0xc1,0x24,0x8a,0x82,0x42,0x92,0x8d,0x2f,0xc3,0x23,0xbd,0xaf,0x42,0x2e,0x33,0x19,0x43,0x7b,0x7e,0xd8,0x42,0x75,0xeb,0xc,0xc3,0x51,0xf9,0x25,0x43,0x13,0xd0,0x25,0xc2,0x36,0x61,0x87,0xc2,0x81,0x29,0x18,0xc2,0x0,0xd1,0xb,0xc2,0xf1,0xda,0x85,0xc2,0x1,0xe3,0x74,0xc2,0xc4,0x50,0x33,0xc3,0x99,0x33,0x3d,0xc3,0xc2,0x14,0x4a,0x43,0xdb,0x94,0x8e,0x41,0x87,0xcf,0x86,0x42,0xf,0xa3,0x52,0x42,0x99,0x2f,0x82,0x42,0x68,0x66,0xa,0xc2,0x42,0xbc,0x15,0x42,0x99,0x27,0x4d,0xc2,0x4b,0x38,0x3,0x42,0x3b,0xea,0x38,0x42,0x4,0xcd,0x1b,0x43,0xaf,0x55,0x8a,0xc2,0xdc,0xed,0x8f,0xc0,0x2c,0x97,0x7,0xc2,0x77,0x56,0x7e,0xc2,0x27,0x8c,0x2a,0xc3,0x3,0x53,0xae,0x42,0x50,0xbb,0xa1,0x42,0x98,0xb0,0x37,0xc0,0xe,0x5e,0x52,0xc2,0x99,0xc7,0x56,0x42,0x1c,0x7f,0xb7,0x42,0x24,0x43,0x9c,0x42,0xf4,0xcb,0x2,0xc2,0x19,0x50,0x2,0x43,0xa3,0x6d,0x70,0xc2,0x5d,0x20,0x7f,0x43,0x76,0x2e,0x88,0xc2,0x5c,0x7d,0xb7,0xc2,0xec,0x8d,0xea,0x41,0x7f,0xfc,0x80,0xc3,0xeb,0xf9,0x4d,0x43,0x29,0xe2,0x89,0x42,0x5e,0xed,0xea,0xc2,0xd1,0xb2,0xa,0x42,0x61,0x4a,0x45,0xc2,0x3e,0xfb,0xac,0xc2,0x40,0x80,0x54,0xc2,0x5d,0x1a,0x9e,0xc2,0x14,0x82,0xb3,0xc2,0x8a,0x61,0x7d,0x41,0xd7,0x18,0xd5,0xc0,0x5,0x3d,0x6c,0xc2,0xea,0x7b,0xc3,0xc1,0x13,0x61,0x6,0x41,0x19,0xd3,0xe8,0x41,0x69,0x33,0x88,0x42,0x6c,0xac,0x30,0xc2,0xca,0xd1,0x22,0xc3,0xb3,0xbf,0x22,0xc2,0x72,0x13,0x67,0xc2,0x2d,0xa4,0x80,0xc2,0x80,0x67,0x56,0xc2,0x43,0x15,0x31,0x42,0xe3,0xf0,0x4,0xc3,0x6,0xa6,0x79,0xc1,0x36,0xff,0x8f,0x41,0xc4,0x14,0x8c,0x41,0xfb,0xf6,0x31,0xc2,0xbb,0xb5,0xa,0x41,0x53,0x12,0x9e,0x42,0x5a,0xa7,0x89,0xc2,0x38,0xf4,0xa2,0x42,0x38,0x4a,0xc4,0xbe,0x79,0xed,0x52,0x42,0x45,0x83,0xbb,0xc1,0xca,0x31,0x51,0xc2,0x37,0xcf,0x12,0xc2,0x83,0xfe,0x39,0xc3,0xbd,0xf9,0xc,0x42,0x57,0xea,0x22,0x43,0x3,0x30,0xda,0x42,0x6f,0x14,0x4,0xc2,0x64,0x90,0x8a,0x42,0x3,0xa9,0x48,0x42,0xf6,0xb5,0x1f,0x43,0x5,0xd9,0x82,0xc3,0xa4,0xa8,0x42,0x40,0x55,0x77,0x3,0xc2,0xe4,0xa7,0xc,0xc2,0x41,0x2d,0x5,0xc3,0x3d,0x87,0x41,0xc3,0x18,0x57,0x4,0xc3,0xad,0x26,0x2a,0xc2,0xbc,0x8d,0x2c,0xc2,0x14,0xe5,0x45,0x42,0x48,0x5f,0xa,0xc3,0x1,0xd5,0x2d,0xc3,0x89,0xad,0x1d,0xc2,0x7e,0xaf,0xb5,0x41,0xad,0xce,0xa8,0xc2,0x8b,0x56,0x18,0x43,0x41,0xbc,0x9a,0x42,0xfe,0x86,0x7e,0xc2,0xd6,0x92,0xd0,0xc2,0x9d,0xbe,0xd8,0x41,0xf,0x6d,0xcd,0xc2,0xbf,0x91,0x10,0x42,0xb6,0xcc,0xd0,0xc1,0x30,0x54,0x9,0x42,0x8c,0xfb,0x66,0xc2,0xe3,0x2b,0xac,0x42,0x2f,0xea,0xfd,0x42,0xab,0xb1,0x7,0xc2,0x2a,0xd,0xcf,0xc0,0x9,0x26,0x1f,0xc2,0xc0,0xfb,0xb3,0xc2,0x29,0x59,0x81,0xc2,0xb2,0xf8,0xc7,0x42,0x74,0xa3,0x1a,0xc1,0x3c,0x8a,0xde,0xc1,0x4c,0x0,0x3f,0xc2,0xfa,0x26,0xda,0xc2,0x90,0x72,0x43,0xc2,0x32,0x79,0x4c,0x40,0x13,0xdb,0x4c,0x43,0xc2,0xe3,0x84,0xc2,0x61,0x1b,0x75,0xc1,0x98,0x99,0xe,0xc2,0x7a,0xd2,0xaf,0x41,0x6b,0xef,0x32,0x43,0x1f,0x9f,0x59,0xc2,0x82,0x18,0x89,0x41,0xd3,0x31,0x5,0x43,0x42,0x3,0x7b,0x43,0x7f,0xb6,0x5,0xc3,0xac,0x48,0x4,0x42,0x26,0xbb,0x51,0x41,0xb7,0x56,0xe3,0x41,0xec,0x61,0xa4,0x42,0xf9,0xfe,0x4,0x43,0x44,0x7,0x14,0x42,0x62,0xf0,0xb8,0xc2,0xad,0x60,0x2,0x42,0xa4,0xa7,0xe,0x43,0xc2,0xe4,0xa4,0x42,0x71,0xa3,0x19,0x42,0xda,0xb0,0x25,0x42,0x0,0xa5,0x91,0xc1,0x33,0x5f,0x89,0xc2,0x1,0x1d,0x54,0xc3,0xb0,0x81,0xab,0xc2,0x10,0xb2,0xa0,0xc0,0x63,0x27,0x0,0xc3,0x3e,0xdc,0xbb,0x42,0x87,0xc0,0x10,0x43,0x4e,0x7e,0x10,0xbf,0x8f,0x4d,0x48,0xc3,0x8e,0xcd,0x8a,0xc1,0x81,0xab,0xb8,0xc2,0x82,0xb5,0xb8,0xc2,0xbe,0xbb,0x19,0xc2,0x17,0x9d,0xf9,0xc2,0x62,0xbd,0xbc,0xc1,0xed,0x15,0x6,0x42,0x90,0xd,0xb9,0xc2,0x3e,0x41,0xb,0xc2,0x5c,0x16,0x9,0xc3,0xde,0xf4,0x8e,0xc2,0x92,0xac,0x8b,0x42,0x6b,0x93,0xfd,0xc0,0xf3,0xa1,0x99,0xc2,0x21,0x3f,0x57,0x42,0xa1,0x89,0x62,0x41,0x8b,0x4a,0x8,0x43,0xa4,0x9b,0x16,0xc1,0x25,0xd9,0x48,0x42,0x20,0xe6,0x72,0xc2,0xfc,0xa5,0xfd,0x3f,0xca,0x64,0x77,0x41,0xa7,0x85,0x28,0xc3,0x98,0x7d,0x91,0x42,0x48,0x93,0x20,0xc2,0xcf,0xee,0x10,0x43,0x88,0xca,0x96,0x43,0x27,0x30,0x8b,0x42,0x9c,0xf2,0x12,0x43,0x8b,0x2e,0x51,0x42,0xee,0x63,0xa5,0x42,0x74,0x2b,0xf3,0x42,0x27,0xfd,0x70,0xc2,0xd8,0xe1,0x9,0x41,0xf8,0x64,0x13,0xc3,0x48,0x74,0xde,0x42,0x5b,0x4a,0xdb,0xc1,0x33,0xca,0x2,0xc1,0xc8,0xf7,0xc4,0x41,0x7e,0x8,0xbe,0x42,0x1e,0xfa,0xd6,0x42,0xa,0x4b,0x3,0xc3,0xee,0x41,0x18,0xc0,0xf3,0x62,0xb7,0x42,0xd8,0x45,0xf,0xc3,0xa8,0xb1,0x2e,0xc1,0xd0,0xc1,0xe3,0xc1,0xc9,0x2e,0x51,0x42,0x2f,0x93,0xf1,0x42,0xb0,0xa5,0x1c,0x41,0x79,0xfb,0x90,0xc2,0xd4,0x8e,0xd1,0xc2,0xb,0xfc,0xe3,0x41,0x6e,0xab,0x4b,0xc3,0xdc,0x83,0xe0,0x41,0x46,0xf9,0xb5,0x42,0x5a,0x2,0x8e,0x42,0x18,0xb1,0x7,0xc3,0x8f,0x5,0xdd,0xc2,0x9e,0x5d,0x1,0x42,0xb8,0xae,0x7,0xc3,0x84,0x47,0xd2,0x42,0x34,0x73,0x24,0xc1,0xf8,0xfe,0x49,0x42,0xaa,0x39,0x65,0x42,0x9e,0x73,0x11,0xc2,0xd9,0x94,0xa8,0xc2,0xda,0xca,0xf7,0xc2,0x8b,0xa2,0xe,0x42,0xb,0x5,0xad,0xc2,0x91,0x49,0x6,0xc2,0x58,0x20,0xaa,0xc2,0x59,0x16,0x1b,0x42,0x1a,0xd9,0x5d,0xc2,0x61,0x63,0x73,0xc2,0x9a,0x77,0xe1,0xc2,0x9,0x43,0x25,0xc2,0x60,0xb4,0xa,0xc3,0x69,0x58,0xca,0xc1,0x8d,0xd0,0x63,0x43,0xfa,0x4b,0x9c,0xc1,0x2d,0x6c,0xc9,0xc2,0xc6,0x64,0xd4,0x42,0x3,0xa5,0xaa,0x41,0x48,0x5c,0xeb,0xc1,0xd,0xa9,0x6c,0x42,0xa1,0x1b,0x63,0x42,0xbc,0x43,0x83,0x41,0x42,0xcf,0xba,0xc2,0xb2,0x34,0xc,0xc2,0x5c,0x3d,0xc7,0x42,0xd2,0xa5,0xf4,0x41,0xd7,0xcf,0x72,0x43,0xc3,0x78,0xba,0xc2,0x1e,0x4b,0x64,0xc1,0xf0,0xcb,0x7f,0x42,0xb3,0xa6,0x37,0xc3,0x65,0x63,0xb2,0xc1,0x98,0xf2,0x22,0xbf,0x47,0x70,0x28,0x43,0xd,0xac,0x6d,0x41,0x56,0x27,0x2f,0x41,0xa2,0x44,0x1d,0x42,0xfa,0xbb,0x6e,0xc1,0x78,0x8f,0xd5,0xc2,0x7a,0xde,0x81,0xc2,0x54,0xc1,0xc7,0x41,0x2a,0xd6,0x8,0x43,0x2e,0x40,0xd0,0xc1,0xbf,0xd0,0x6b,0xc2,0x66,0xaf,0xdb,0xc2,0x6e,0x8d,0x82,0xc2,0x74,0xbd,0x19,0xc3,0x7c,0xbe,0x15,0x42,0x42,0x6b,0x7b,0xc2,0x5d,0x9b,0xf3,0xc2,0xf6,0xd5,0x72,0x42,0x2b,0xbb,0x43,0x43,0x35,0x16,0xd7,0xc1,0xfb,0x17,0x1c,0xc3,0x0,0x94,0xbf,0xc2,0x56,0x9,0xf5,0xc2,0x68,0x2e,0x87,0x42,0x77,0xf1,0xa2,0x42,0x4,0x52,0xa1,0x42,0x48,0x9a,0x70,0x42,0xc0,0x45,0xd7,0xc0,0xc2,0x6f,0x64,0xbf,0xfd,0xfe,0x94,0x42,0xd4,0xc,0xd0,0xc2,0xa,0xaf,0x85,0xc2,0x5d,0x66,0xc0,0x41,0x44,0xda,0x84,0xbf,0xd2,0x5,0x16,0x43,0x13,0x48,0x6e,0x42,0x97,0x54,0xe6,0xc2,0xbf,0x12,0xb4,0xc2,0x6a,0x79,0xd3,0x42,0x20,0x7c,0x4f,0xbf,0xe8,0x16,0xd,0xc3,0xf0,0x91,0x9b,0x41,0x35,0xab,0x90,0xc2,0xc1,0xd5,0x86,0x41,0x12,0x87,0x31,0x43,0xa8,0xf2,0x1c,0x42,0xeb,0xad,0x57,0xc2,0xc9,0xb9,0x31,0xc2,0x5d,0x95,0x8b,0xc2,0x14,0xcc,0x2b,0x42,0xd0,0x24,0xb4,0x42,0x1c,0xbf,0x2e,0x42,0x9d,0xcf,0x40,0xc2,0x26,0x3e,0x95,0xc1,0x21,0xce,0xd4,0xc2,0x47,0x33,0x53,0xc2,0x48,0xdd,0xc8,0x42,0xe3,0x84,0xed,0xc2,0x4a,0xbe,0x45,0xc2,0x5b,0xa0,0x82,0xc2,0x7f,0x32,0x9d,0xc2,0xbb,0xf4,0x90,0x42,0xf2,0xb5,0xb7,0x42,0x2f,0xea,0x27,0xc1,0xb7,0xe8,0x32,0xc3,0x87,0x67,0xfc,0xc1,0x50,0x5c,0x87,0xc2,0x4b,0x47,0x27,0xc3,0x7e,0xd,0x8b,0xc2,0x80,0x8,0xe3,0x42,0x44,0x8c,0x15,0xc2,0x32,0x9f,0x5b,0xc2,0xc0,0x6b,0x25,0x43,0xd9,0x1d,0x2,0x43,0x1f,0x2d,0x15,0x42,0x65,0x89,0x26,0xc3,0xbc,0x44,0xdf,0x41,0x61,0x61,0xa1,0xc2,0x58,0x37,0xd9,0xc2,0x4,0xe0,0x87,0xc1,0x38,0x3f,0xe8,0xc1,0x5c,0xb8,0x94,0xc2,0x1c,0x77,0xc3,0x42,0xc6,0x19,0x5d,0x42,0x2e,0xbd,0x55,0xc2,0xa5,0xde,0xad,0xc2,0xe,0xd0,0xab,0xc1,0x1,0x37,0x50,0xc2,0x77,0xac,0x9b,0xc2,0x6c,0x55,0x13,0xc2,0xba,0xed,0xae,0xc1,0x33,0x9b,0xc2,0xc1,0x3a,0xf4,0xf,0x42,0x21,0x32,0x31,0x42,0x93,0x62,0x93,0xc2,0x34,0x47,0x7,0xc3,0xa8,0x2d,0xde,0xc2,0xd,0x38,0x4f,0xc2,0xea,0x7b,0x33,0xc2,0xd,0x98,0x84,0x42,0xe,0x11,0x0,0xc2,0xa5,0x9b,0x2,0xc1,0xb8,0xe8,0xec,0xc1,0x6d,0x6d,0xbf,0xc0,0x72,0xc7,0x5,0xc2,0x1b,0xdf,0x6d,0xc1,0xbe,0xc0,0xc0,0xc1,0x4d,0x55,0x11,0x43,0x3c,0xe6,0xcd,0x42,0x57,0x4d,0xed,0x41,0x50,0x4,0xd8,0x42,0x89,0x1c,0x5,0xc2,0xab,0x6c,0x86,0xc2,0x49,0x98,0x7d,0x41,0xb5,0xde,0x21,0xc2,0x86,0xf6,0x9b,0xc0,0xb2,0x1e,0xb7,0xc2,0x2c,0x34,0x48,0x42,0x4,0x4a,0xe5,0x42,0xa6,0x9b,0xa,0x42,0xc0,0x97,0x62,0xc2,0xce,0x98,0xce,0x41,0xe8,0x51,0x88,0x42,0xbb,0x8a,0xd7,0xc1,0xa1,0xe3,0xda,0xc1,0x92,0xd6,0xdc,0xc1,0x5b,0x4f,0x82,0xc2,0xf3,0xfb,0x2c,0xc2,0xfb,0xa9,0xd8,0x42,0xed,0x0,0x2,0x42,0x65,0xe4,0x27,0x42,0x5c,0x27,0xa0,0xc2,0xdf,0xe3,0x2,0xc3,0x4c,0x40,0x1b,0x42,0xbd,0xc3,0x32,0x43,0x45,0xd4,0xf0,0xc2,0x44,0xe3,0x60,0xc0,0x93,0xbb,0x9e,0xc2,0x38,0x99,0xfa,0x41,0x85,0xa5,0xa,0xc3,0xb8,0x8d,0xff,0xc2,0x95,0xca,0xa1,0x41,0x0,0xef,0x97,0xc2,0xd4,0xff,0xbc,0xbf,0x8f,0x9b,0x47,0x43,0x3b,0x74,0x4c,0xc3,0x92,0x10,0x34,0xc3,0x8f,0x72,0x24,0xc2,0xae,0x2a,0x8a,0xc2,0xa6,0xaa,0xb2,0xc2,0x55,0x15,0x87,0xc2,0x39,0x7,0x91,0xc2,0x29,0xe1,0x16,0x42,0x18,0x39,0x8,0xc3,0x5a,0x19,0x1,0x42,0x8c,0x83,0xb7,0x42,0x54,0xf8,0x8d,0x42,0xcc,0xa2,0x7b,0xc0,0x8e,0xa4,0x57,0xc3,0x46,0x6c,0x80,0x42,0xca,0xd7,0x80,0xc2,0x6d,0x73,0x96,0xc1,0xca,0x8,0x91,0xc0,0x44,0x90,0xb,0xc1,0xb2,0x9d,0xcb,0x40,0x79,0x8c,0xb2,0xc2,0x25,0x61,0x98,0x41,0x6d,0xe6,0xd5,0xc1,0x5f,0x44,0xe2,0x40,0x62,0xd,0x7f,0xc1,0xb1,0x6e,0xed,0xc2,0xa4,0x36,0x1,0xc2,0x5,0x49,0xef,0x41,0xfa,0xee,0x40,0x41,0xe,0x86,0xc9,0xc2,0x30,0xee,0xf4,0xbf,0xc1,0x54,0x63,0xc2,0x97,0x72,0xa0,0x42,0x18,0x20,0xc2,0xc0,0x32,0xa8,0x64,0x42,0xe1,0xcc,0x72,0x42,0x7e,0x56,0xdf,0x42,0x18,0x7,0xc8,0xc2,0x64,0x3,0xa0,0x42,0x4c,0x92,0x1f,0xc2,0xc1,0x89,0xc6,0x42,0xf2,0xd9,0x16,0x42,0x9c,0x36,0xc7,0x41,0xfc,0x9a,0x55,0x42,0xa1,0x82,0x0,0xc3,0x17,0xfe,0xf8,0xc1,0xdc,0x96,0xb6,0x40,0x39,0xcb,0xa8,0xc2,0xa9,0x64,0xea,0xc1,0x8c,0x80,0x9b,0x3e,0xaa,0x86,0x78,0xc1,0x5f,0xf2,0x7b,0xc2,0x79,0x9,0x58,0x42,0xc8,0x9b,0xe3,0xbf,0xd9,0x79,0x17,0xc2,0x4d,0x6e,0x8b,0xc2,0xd4,0x17,0x86,0xc1,0xfa,0x3f,0x2,0xc2,0xa2,0x46,0x4e,0xc1,0x96,0xa4,0xf,0xc3,0x3a,0xd4,0x9d,0x42,0xbd,0x56,0xc2,0xc1,0x9c,0xce,0x3d,0x41,0xf,0xde,0x93,0x41,0xce,0xcb,0xd2,0x42,0x4a,0x8a,0xa0,0xc1,0xc3,0x63,0x7c,0x42,0xaa,0xa,0x3d,0xc2,0xa3,0xe3,0xc0,0x40,0xc1,0x78,0x9a,0x42,0x2e,0xed,0x44,0xc2,0x1,0x38,0x91,0xc3,0x1b,0x7a,0x23,0x43,0x1f,0xd7,0xbc,0x42,0x9d,0xdf,0x21,0x42,0x2f,0x20,0x45,0xc3,0xb4,0xbd,0x84,0x43,0xb8,0x60,0x2,0x41,0x74,0x38,0x42,0x42,0xb5,0xf0,0xb5,0x42,0xa2,0xc7,0x24,0x42,0x28,0x59,0x35,0x42,0x8f,0xaf,0x2f,0xc2,0x84,0x25,0x5,0x43,0x3b,0xef,0x26,0x43,0xee,0x7,0xab,0x42,0xf9,0x65,0x4f,0x41,0xfb,0x1a,0x49,0x43,0x20,0x18,0x87,0x41,0xc2,0x78,0xe8,0xc2,0x21,0x69,0x41,0x43,0x1c,0x89,0xcc,0xc1,0xa8,0x83,0x45,0x43,0x16,0xe0,0x2,0x43,0xca,0x45,0x57,0x41,0x19,0xae,0xed,0x42,0x8e,0x2e,0x73,0xc2,0x28,0x39,0x12,0x41,0x53,0x4b,0xaf,0x41,0x19,0xd7,0xd7,0xc2,0xa0,0x2e,0xba,0x3d,0x72,0x71,0xd5,0x42,0xa1,0x4b,0xdc,0xc2,0xb6,0x28,0x4f,0x43,0x5d,0xce,0x27,0xc1,0xce,0xf1,0x62,0xc2,0x75,0x1b,0x10,0xc3,0x71,0x65,0xa1,0xc2,0xa8,0xa6,0x82,0xbe,0x70,0x3e,0x8a,0xc2,0xda,0xee,0x37,0xc3,0x37,0x73,0x44,0x43,0x80,0xcb,0x3b,0xc2,0x11,0xe6,0xca,0xc2,0xb1,0x2f,0xb2,0xc2,0x12,0x2c,0xe8,0xc2,0xec,0xf7,0x4,0xc3,0xa1,0x9,0xc,0xc3,0xb2,0xf6,0x30,0xc3,0x1c,0x1d,0x76,0xc1,0xdd,0x59,0x3d,0x42,0xe7,0xf6,0x3,0xc3,0x20,0xda,0xd4,0x42,0x87,0x37,0xba,0xbf,0x9a,0x4e,0xda,0x42,0x8b,0xf,0xac,0x42,0xdb,0x97,0xe2,0x42,0x93,0xed,0xe,0x43,0xa2,0x8b,0xe3,0x42,0x1b,0xa,0x3a,0xc3,0xd6,0x1c,0xd7,0xc1,0x2e,0x6c,0xd,0x43,0x4e,0x91,0x8f,0x41,0x81,0xf1,0x14,0x43,0x9a,0xd3,0x65,0xc2,0xf9,0x57,0x2f,0xc2,0xc4,0xfc,0xdb,0x42,0xab,0x96,0x3e,0x43,0xcc,0xc2,0xce,0x41,0x4e,0x30,0xc4,0xc2,0xd5,0x29,0xe2,0xc2,0x81,0x58,0x23,0xc2,0x3f,0x25,0x99,0xc2,0x90,0x3c,0xf8,0x42,0x38,0xda,0x9d,0xc1,0xe9,0xca,0xf8,0xc2,0xbb,0x9,0xdf,0x42,0x4a,0x25,0xf,0x41,0x33,0x51,0x7d,0xc2,0xd4,0x56,0x94,0xbf,0xd8,0xa1,0x15,0x43,0x4f,0xc5,0x2,0x43,0x6e,0x11,0x89,0xc0,0x84,0xac,0xd0,0x42,0x51,0xda,0x81,0xc1,0x37,0x15,0xd4,0x42,0x32,0x53,0x9b,0xc2,0x1c,0x4e,0xa9,0xc2,0xec,0x49,0xeb,0x41,0xf0,0xcc,0x1a,0x42,0x31,0x24,0x1d,0xc3,0xae,0x83,0xaa,0x41,0xfa,0xfa,0xa6,0x42,0x6f,0xb0,0xbd,0xc0,0xa9,0xf2,0xc,0x42,0x2b,0xa3,0x9,0x43,0x6a,0xa1,0x9a,0xc2,0xd6,0xf7,0x4b,0x42,0xbe,0x26,0xce,0x42,0xe,0x18,0x8e,0xc2,0x4b,0x89,0x13,0x43,0x9c,0xb6,0xc,0xc2,0xc0,0x37,0x15,0xc3,0xdf,0x41,0xe9,0xc2,0xa3,0xf,0xbd,0x41,0x52,0x22,0x21,0xc2,0x6a,0x6a,0xed,0x42,0x34,0x8d,0xdc,0xc1,0x46,0x92,0x77,0x42,0x77,0x10,0x45,0xc2,0x2b,0xd4,0xdc,0x41,0x2e,0x3f,0x5a,0x42,0x94,0x4d,0x4,0x43,0xd5,0xb,0x10,0xc2,0x46,0x78,0x2b,0x42,0xe2,0xb6,0x9f,0x42,0x73,0x5b,0xf7,0x41,0xae,0xaa,0x4d,0x42,0x3c,0x53,0x5,0xc1,0x23,0x55,0xb3,0x42,0xb8,0x91,0x9f,0xc2,0xa0,0xec,0x26,0x42,0xe8,0x38,0x64,0x42,0x5e,0x56,0xc9,0xc2,0xc8,0xa9,0x6a,0xc2,0x74,0x6f,0x4c,0xc2,0xcc,0xdd,0x9b,0xc1,0x9e,0xcd,0xb0,0x41,0x81,0x9,0x87,0x42,0x2b,0x4e,0x4,0x43,0x3f,0xe0,0xbf,0x42,0xbc,0x83,0xca,0xc2,0xf2,0xe3,0x6c,0x41,0x7d,0x7e,0xf4,0x42,0x18,0x14,0x40,0x42,0x51,0x66,0xb9,0xc2,0xad,0x6e,0x99,0x42,0xe6,0xaa,0xc3,0x42,0x90,0x42,0xb3,0xc2,0xca,0xb9,0x1e,0x43,0x5a,0x41,0x53,0x41,0xa8,0xcd,0x88,0xc2,0x82,0x96,0x3e,0x43,0x56,0x6f,0xf4,0xc2,0xba,0xfb,0xac,0xc2,0x65,0xf0,0xc9,0x42,0x64,0x9a,0x11,0x42,0xfc,0xfe,0xd7,0x42,0x3a,0xe9,0x86,0xc2,0xe4,0x8c,0x96,0x42,0xb3,0x27,0x3c,0xc2,0xed,0x21,0xcf,0x41,0x41,0x10,0xcd,0xc2,0x44,0xf3,0x69,0xc2,0x2a,0x10,0x55,0xc2,0xe3,0xb1,0x2c,0xc3,0xc7,0x29,0x29,0x43,0xb7,0x77,0xcc,0x42,0x81,0x4f,0xfb,0xc2,0xa8,0x74,0x3c,0x43,0x62,0x5c,0x99,0x42,0x60,0xc5,0xb2,0xc1,0x5f,0x6c,0x44,0x42,0x23,0x80,0x91,0xc1,0x72,0xd,0xf2,0xc2,0x74,0xbc,0x72,0x42,0x41,0xba,0x45,0x43,0xc2,0xcb,0x80,0x43,0x33,0xd5,0x5e,0x42,0x4a,0x2,0xf0,0x42,0x27,0x2,0x8c,0xc3,0xab,0xca,0xc,0xc3,0xd9,0x72,0xc,0x43,0xd2,0xb9,0xdb,0xc0,0xb0,0xdd,0x88,0xc2,0x24,0xa1,0x9f,0xc1,0x6c,0xa0,0x80,0xc2,0xc6,0xc7,0x50,0x42,0x2,0xcb,0x6c,0x42,0x9c,0x37,0x8f,0x42,0xb8,0xf5,0x7,0xc2,0xc9,0x5c,0x9e,0x42,0x16,0x9f,0xbb,0xc0,0xd9,0xe5,0xf,0xc3,0xa,0x74,0x55,0xc3,0x16,0xfd,0x37,0xc1,0x5,0xa1,0x58,0xc2,0xde,0xc1,0xa8,0xc1,0x7f,0x98,0x21,0x42,0xad,0x6d,0x31,0x43,0x50,0x38,0x8,0xc3,0x78,0xfc,0xf3,0xc1,0x7b,0xa2,0xd6,0xc1,0x87,0x5,0x17,0x43,0xf4,0x6c,0xcb,0x41,0xf5,0x68,0x97,0xc2,0x77,0x6d,0x69,0xc2,0x5e,0x8e,0x53,0xc2,0xf3,0xdb,0x84,0xc2,0x0,0x4,0x17,0xc3,0xbc,0xda,0xb8,0x40,0x71,0xfb,0x26,0x41,0x11,0x42,0x59,0x42,0x4b,0x75,0xbe,0xc2,0x12,0x5f,0xd0,0x42,0x1b,0x39,0x61,0x42,0x5b,0x79,0xa0,0x42,0xf0,0xca,0xec,0x42,0x58,0xd6,0xe0,0x42,0x54,0x9c,0x12,0xc3,0x4c,0xdc,0x8f,0x42,0x97,0xcc,0x80,0xc1,0xa1,0x64,0x2c,0x42,0xe,0xe4,0x2,0x43,0x6f,0x44,0x6d,0xc1,0x53,0x8c,0xd5,0x41,0xcc,0xd3,0x5b,0x43,0x62,0x48,0xeb,0xc1,0x9,0xd8,0xb,0x43,0xf6,0xa3,0x96,0x43,0x0,0x9f,0x12,0xc0,0x4e,0xf6,0x10,0x43,0x74,0x7b,0xb0,0x42,0x2e,0xf5,0xe6,0xc2,0x30,0xe0,0x4,0xc3,0x23,0xce,0x48,0x42,0x1f,0x9c,0x4e,0x43,0x52,0xc7,0xb0,0xc1,0xd1,0x88,0x10,0x42,0xaa,0xa5,0x13,0x43,0x1,0x5c,0x6e,0xc2,0xa4,0xa4,0x64,0xc2,0xb0,0xa6,0xf3,0xc2,0x79,0xb6,0xb1,0x42,0xbb,0xd8,0x2b,0xc2,0xda,0xd4,0xef,0xc2,0x98,0xf5,0x3a,0xc2,0x53,0x26,0xdd,0xc2,0x28,0xcb,0xf4,0xc2,0xa1,0xc1,0xb4,0xc1,0x89,0x12,0x28,0xc2,0xf6,0x1f,0x8c,0x41,0xa,0xb8,0x4c,0x43,0x99,0x7c,0x2d,0x43,0x3b,0x14,0x4,0xbf,0x3c,0xa,0x14,0x40,0xa7,0x10,0xdc,0x41,0x2f,0x68,0x2a,0xc2,0x9d,0x10,0x57,0xc2,0xaf,0xc0,0xd6,0xc2,0x2b,0x95,0x83,0x42,0x7d,0x35,0x8a,0x42,0x74,0xe7,0x80,0x41,0x2f,0x3,0x6b,0x42,0x36,0xa2,0xba,0xc1,0x43,0x29,0x1e,0xc3,0x80,0xd2,0x2e,0x43,0x47,0x22,0x9e,0xc2,0x4d,0x5,0x9b,0x42,0xa1,0x0,0x20,0xc3,0x3,0x3f,0x7e,0x42,0x18,0x4e,0x7b,0x42,0xd,0x28,0xb0,0x41,0x2a,0x78,0xcb,0xc2,0x2f,0x3d,0x14,0x43,0x4f,0xa9,0x87,0x42,0xaa,0x2b,0x92,0xc1,0xc9,0x78,0xf1,0x42,0xf,0x3b,0x8b,0x42,0xf0,0x57,0xa8,0xc2,0x5d,0xec,0x54,0x41,0xeb,0x8f,0x99,0x42,0xf8,0xa2,0x1,0xc2,0xce,0x30,0xe4,0xc0,0x26,0xc6,0x9f,0xc2,0xb9,0x9d,0xe9,0x42,0x73,0x2d,0x25,0xc3,0x2f,0xa0,0x8c,0xc2,0xba,0xd9,0xe2,0x42,0x2e,0xf5,0x97,0xc0,0x95,0xb1,0x26,0x42,0xae,0x6e,0x61,0x42,0xd6,0x9d,0xe9,0xc1,0xaa,0x66,0x7,0x42,0x38,0x3a,0x8f,0xc2,0xd1,0x2a,0xaa,0xc2,0xc9,0xe1,0x42,0x42,0xcb,0xee,0x13,0xc3,0x15,0x8f,0xcb,0xc2,0x25,0x18,0xb1,0x41,0x36,0x3e,0xf1,0x42,0x7e,0xf4,0xe4,0x42,0x1e,0x73,0x35,0x42,0xd7,0x60,0xa5,0xc1,0x42,0x84,0x61,0xc3,0xc0,0x2c,0xfb,0x42,0x8d,0x57,0xe1,0xc2,0xc0,0xe6,0x39,0x43,0x18,0x86,0x5c,0x43,0xd0,0x26,0xb2,0xc1,0x60,0xc5,0xe,0x43,0x18,0x80,0x6a,0xc2,0xc4,0x37,0xc1,0xc2,0xa8,0xa3,0x80,0xbf,0x12,0xc6,0x8f,0xc3,0x3e,0x4d,0x3f,0xc2,0x9,0x4b,0xf6,0xc2,0x5f,0xa9,0xaf,0xc1,0x49,0xf9,0xc9,0x40,0x2f,0xfb,0x91,0xc2,0x4e,0x6d,0x6a,0xc2,0xf9,0xec,0xbe,0xc2,0xf2,0xc9,0x46,0x42,0x12,0x43,0x76,0xc2,0xb8,0xc9,0x33,0x42,0x5f,0xf,0x9,0xc3,0xef,0x7,0x5b,0xc3,0xa,0x3d,0x6,0x43,0x5c,0x4d,0xcf,0xc0,0x4e,0xe1,0xa8,0x42,0x8,0x42,0x14,0x43,0x1c,0xd3,0x1c,0xbf,0xd3,0x65,0x94,0x42,0x65,0xa3,0x68,0x42,0xe7,0xca,0x15,0xc2,0x32,0xa5,0x4d,0xc2,0x56,0x68,0xaa,0xc2,0x61,0x33,0xd0,0xc2,0x43,0xdc,0xae,0xc2,0x70,0x40,0x3a,0xc3,0x90,0x8,0x8a,0x40,0xce,0xc,0xd0,0x41,0xbb,0xc4,0x34,0xc2,0x41,0x33,0xb6,0xc2,0x61,0xff,0x24,0xc3,0x7a,0x67,0x14,0xc2,0xfa,0xe3,0xc6,0x42,0x6e,0x2c,0xb2,0x42,0x6f,0x82,0x27,0xc3,0x79,0x52,0xb1,0xc2,0x83,0xb1,0x2,0x42,0xca,0x35,0xb7,0x42,0x30,0x71,0xff,0xc2,0x2b,0xa0,0xc0,0x41,0x11,0x47,0x3e,0xc2,0xb0,0x94,0x29,0x43,0x21,0xee,0xf,0xc2,0xc0,0x7d,0xbd,0x41,0x68,0xd,0x44,0x42,0xef,0x12,0xba,0xc2,0xc0,0xea,0xba,0x42,0x6f,0xf1,0x25,0xc2,0xf9,0xee,0xde,0xc2,0x42,0xbc,0xa5,0xc1,0x2c,0x5d,0xe,0xc3,0xb2,0x15,0x6a,0x42,0x13,0xe1,0xa6,0xc2,0x88,0x65,0x2d,0x42,0x5a,0x39,0x4e,0xc3,0x46,0x13,0xab,0xc1,0x3c,0xdd,0xb7,0x41,0x9d,0xdd,0xfa,0x42,0x4a,0x44,0x3c,0x41,0x7a,0xa0,0xf8,0x42,0x9e,0x1d,0x35,0xc3,0x3a,0x75,0xb0,0xc1,0x32,0x7,0x51,0xc2,0x59,0xc8,0x59,0x42,0x93,0xe4,0xc3,0xc2,0x38,0xec,0x5c,0xc3,0x9a,0xc0,0x1f,0xc3,0x68,0xab,0xa5,0xc2,0xa0,0xf3,0xa5,0x42,0x8,0xc3,0x68,0xc1,0x9a,0x74,0x90,0x42,0xa6,0x6b,0xb0,0xc2,0x66,0xc3,0xac,0xc2,0x15,0xeb,0x70,0x42,0xb1,0x87,0x9,0x43,0x7f,0x1,0xc7,0xc2,0x1b,0xb6,0x52,0xc2,0x8,0x51,0xff,0x41,0xdb,0x69,0x29,0xc1,0x7b,0xbf,0x6e,0xc3,0x4c,0xff,0x75,0xc2,0xc8,0x96,0xa,0x43,0x6f,0xb4,0x1a,0x43,0x4d,0x5f,0xd2,0x42,0x46,0x16,0x65,0x42,0x25,0x75,0x7a,0xc2,0x2f,0xc9,0x33,0xc2,0x8f,0x11,0x76,0xc3,0x66,0x66,0xc8,0x42,0x23,0xd,0x47,0xc3,0x49,0xe7,0xdb,0xc2,0xcb,0xdc,0x16,0xc2,0x66,0x76,0xd,0xc3,0x44,0x69,0x79,0x3f,0x55,0xee,0x9a,0x41,0xb,0x85,0x52,0xc3,0xac,0x59,0x1,0xc2,0xaf,0x7b,0xd7,0xc1,0xaf,0x9,0xbb,0x41,0x75,0xae,0x4,0xc2,0x8a,0x98,0x78,0x42,0xcd,0x86,0xb8,0x42,0xee,0xa7,0x1b,0xc3,0xc8,0xf,0xb6,0xc2,0xe0,0xb7,0x56,0x43,0x6,0xbe,0xc5,0xc2,0x24,0xb9,0xac,0xc1,0xc,0xe9,0x29,0xc2,0x94,0x90,0xc7,0x41,0x99,0x41,0x10,0x42,0x37,0xd7,0x2c,0x42,0xb5,0xac,0xf3,0x42,0xe0,0x79,0x4a,0x41,0x4a,0xd8,0x5c,0x41,0x15,0x5f,0xcd,0x41,0x4,0xe7,0x8c,0x42,0x2d,0x82,0xe1,0xc1,0x6c,0xa3,0xab,0x42,0x1c,0xf0,0x4f,0x42,0xc1,0xb0,0xd2,0xc2,0x40,0x3e,0x86,0xc3,0x86,0x21,0x5b,0xc2,0xc3,0x4f,0xb,0x42,0xb8,0x7a,0xc6,0x42,0xbd,0xb2,0xc,0xc3,0x52,0x4b,0xee,0x41,0xae,0x98,0xd9,0x42,0x81,0x84,0xf2,0xc2,0x4b,0xcd,0xd,0x42,0x8f,0x73,0x9c,0x42,0x9d,0x6,0xd9,0xc2,0x46,0x9f,0x2,0xc3,0x5b,0x84,0x73,0x42,0x85,0x28,0x85,0x42,0x84,0xde,0x71,0xc0,0x3a,0x8e,0xa6,0x42,0x69,0xdf,0xd9,0x42,0x4f,0x10,0x10,0xc2,0xc2,0x1,0xec,0x42,0x7d,0xba,0xcd,0x42,0x1a,0x6a,0xdd,0xc2,0xa,0x53,0x75,0x41,0x16,0x92,0xda,0xc0,0x65,0xa7,0xe,0x42,0x1f,0x9f,0x84,0x42,0x93,0xb4,0xa4,0xc2,0x45,0xbe,0x74,0x42,0xda,0x1e,0x23,0x42,0xee,0xe2,0x5a,0xc2,0x1a,0x4d,0xcd,0xc2,0x48,0xf2,0x98,0x41,0xcc,0xfe,0x30,0xc2,0x89,0xc4,0xf8,0xc0,0xf2,0x49,0xde,0xc2,0x3,0x1e,0xd5,0x42,0xc0,0x8f,0x4,0x42,0x84,0x29,0x58,0x42,0xcb,0x6d,0x47,0x43,0xa3,0x5,0xf2,0xc1,0x55,0x44,0x0,0x43,0x38,0x81,0xfb,0xc2,0x30,0x23,0x4,0x42,0xdc,0xc8,0xc9,0xc1,0x15,0xd6,0x64,0xc2,0x67,0x54,0x40,0x42,0xbf,0xf6,0xa3,0x42,0xd1,0x1e,0xbe,0xc2,0xa3,0x27,0x85,0xc2,0x70,0x3d,0x28,0x41,0x4d,0x83,0xb3,0xc2,0xc7,0x24,0x90,0x42,0x29,0xd1,0xef,0x42,0x4,0xab,0x3e,0xc1,0x34,0x4b,0x33,0xc0,0x2,0x3,0x40,0x42,0x9e,0xff,0x13,0xc2,0x16,0xc8,0x60,0xc2,0x67,0x24,0x13,0xc3,0x66,0xad,0xad,0xc2,0xca,0x98,0x90,0xc2,0x74,0xbb,0x1,0x43,0x83,0xb4,0x5c,0xc2,0x41,0xa,0x24,0x43,0x4d,0x7f,0x2f,0xc3,0x9e,0x5f,0xf7,0x42,0x86,0x6b,0x42,0x42,0x18,0x63,0x17,0x42,0xa5,0xfa,0xa7,0xc1,0x7b,0xaa,0xac,0xc2,0x87,0x2d,0x11,0xc3,0x64,0xe2,0x45,0xc3,0xcf,0x37,0x0,0xc3,0xc3,0x8b,0x1a,0xc3,0x81,0xf9,0x7d,0x42,0x95,0x1e,0xd9,0xc2,0xf1,0x84,0xc4,0x42,0x3f,0x35,0x1a,0x43,0x97,0x17,0x80,0x42,0x1a,0x2f,0x10,0x42,0xac,0x2,0xb4,0x40,0xf,0xa2,0x83,0x41,0x58,0xbe,0x47,0x43,0x80,0xef,0xbc,0x42,0x27,0x70,0x57,0x43,0xd,0x27,0x9b,0xc2,0xd4,0xc3,0x1b,0xc3,0xc5,0x87,0xc,0xc2,0xd2,0x2d,0xbc,0x42,0x7f,0x99,0xbb,0x42,0xa4,0x92,0x5f,0xc3,0x72,0xdc,0x65,0x42,0x9c,0xbb,0x6,0xc2,0x74,0x40,0x8a,0xc2,0x27,0x62,0x75,0x43,0x60,0x8a,0x9d,0x42,0xe1,0x3b,0xb,0x42,0xbd,0xbf,0x1e,0xc2,0xae,0xdf,0x9e,0xc2,0x9b,0xaf,0x50,0x43,0x3a,0x65,0xdd,0xc1,0xf5,0x70,0xb0,0x42,0x4,0xed,0xff,0xc2,0x2d,0x5d,0x16,0x43,0x59,0x71,0x5,0xc1,0xad,0x54,0x5f,0xc2,0xc3,0x6b,0x4d,0x42,0xb1,0xaf,0x6f,0xc0,0xbb,0xce,0xca,0xc2,0x43,0xec,0xe0,0x41,0xe5,0x28,0x90,0xc2,0xc0,0x79,0xc3,0x41,0x18,0x49,0xcf,0x40,0xa4,0xc,0xac,0x42,0x61,0x26,0x76,0x41,0xf7,0x66,0x5d,0x42,0x8c,0xea,0xe2,0xc1,0x6f,0xa,0x3f,0xc2,0x37,0xca,0x5d,0xc2,0xf,0x68,0xfa,0x42,0x52,0x5,0xde,0x41,0x65,0x43,0xe2,0x42,0xef,0xad,0x40,0x42,0x85,0xd7,0x17,0xc3,0xd0,0x47,0x42,0xc2,0x6,0xed,0x79,0xc1,0x11,0x4f,0xff,0x42,0x9a,0xae,0xd9,0xc2,0x6,0xbb,0xb8,0xc2,0x12,0x7,0x2a,0x42,0x88,0xca,0x55,0x3f,0x28,0x86,0x3e,0xc1,0xc9,0xc0,0x4e,0xc3,0x11,0xc6,0x13,0x41,0x3e,0x1e,0xea,0x41,0x14,0x8f,0xdc,0x41,0x7b,0x4b,0xb,0x42,0xb9,0xb8,0x36,0x42,0x84,0x5b,0x23,0x42,0xda,0x69,0xcd,0xc2,0x3e,0xfa,0x8c,0xc1,0x6d,0xd7,0x76,0x42,0xa8,0x44,0xcf,0x42,0x2c,0xab,0x89,0x42,0x95,0xb1,0x2c,0x42,0x9b,0xc2,0x9b,0xc0,0xcc,0x39,0x67,0x40,0xba,0x7b,0x49,0xc0,0xbb,0xd3,0x0,0x43,0x58,0x48,0xe9,0xc1,0xe6,0x56,0x35,0xc3,0x72,0x5c,0x2a,0x42,0x70,0x31,0x98,0x42,0x2a,0x9a,0x8f,0x42,0x8b,0xc9,0x7c,0x42,0x22,0xb5,0x9e,0xc2,0xa7,0x86,0x11,0x41,0xd3,0xe,0xbf,0xc0,0x13,0xa9,0x34,0xc2,0x8a,0x73,0xaf,0xc0,0x34,0x7b,0x82,0xc3,0x9c,0xe7,0xb1,0xc1,0xec,0x5c,0xf7,0x41,0x80,0x39,0x99,0x40,0xba,0xc1,0xb0,0xc0,0x43,0xda,0xa9,0xc2,0x7b,0xde,0x4,0x42,0xa8,0x15,0x37,0x42,0x54,0x14,0x9e,0xc1,0xfa,0xa2,0x5,0xc3,0x40,0xf8,0xaf,0x40,0x8a,0x88,0x34,0xc2,0x20,0x56,0xa1,0x41,0x21,0xb2,0x4a,0xc2,0xa2,0xa5,0x99,0xc1,0x1b,0x7d,0xf7,0xc1,0x4c,0x31,0x66,0xc1,0x84,0x9,0x1,0xc3,0x3f,0xf7,0x50,0xc3,0x9,0xcb,0x93,0x42,0xe3,0xbd,0x8e,0xc2,0x76,0xc2,0x0,0x41,0xd2,0xf1,0x33,0x43,0xd0,0xfb,0x95,0xc1,0xc2,0x7f,0x0,0xc3,0xa4,0x92,0x10,0x41,0xbe,0xcf,0x17,0xc2,0xf2,0x3e,0xb8,0x41,0xd0,0x5d,0xe,0xc3,0x5a,0x33,0x92,0xc2,0x2b,0xc4,0x3b,0x42,0xe1,0x9e,0x1a,0x42,0x70,0x9c,0xe0,0xc1,0x44,0x34,0xb0,0xc2,0x43,0x5c,0x13,0xc2,0x3c,0xb6,0x24,0xc3,0x9d,0x38,0x0,0x43,0x93,0xea,0x22,0xc2,0xe1,0x2,0x18,0x42,0xc2,0xe7,0xf1,0x42,0x86,0x1c,0x19,0x43,0xb4,0x4,0x30,0x41,0xff,0x19,0x59,0x41,0xce,0x66,0x15,0xc2,0x69,0x60,0x42,0x41,0xa4,0x72,0xa7,0x41,0x18,0x2d,0x87,0xbf,0x5f,0x7f,0x17,0x41,0x30,0x9e,0xa9,0x42,0x96,0xc4,0x5d,0x41,0x6d,0x2d,0x95,0xc1,0xc6,0x2e,0x5b,0x41,0xfa,0x64,0xb,0xc2,0x84,0xc8,0x42,0xc2,0xb6,0xba,0x40,0x41,0xf9,0xfd,0x29,0x43,0x17,0x50,0x33,0x42,0x81,0x6e,0x6c,0x42,0x71,0x1b,0x26,0x43,0xc7,0x7d,0xd2,0xc1,0x81,0x44,0xa9,0xc2,0xfa,0xc0,0xc8,0xc1,0x8f,0xe7,0x25,0x43,0x53,0x92,0x10,0x43,0x1e,0x91,0xa,0xc2,0x8f,0x51,0x7b,0x41,0x4a,0x86,0x30,0xc2,0xe,0x57,0x88,0x42,0xd4,0xbc,0x76,0x42,0x1a,0xaa,0xe1,0x42,0x38,0xfd,0x59,0xc2,0xbb,0xb4,0xc,0x42,0xf4,0xc7,0xb7,0xc2,0xd9,0x29,0x24,0xc2,0x80,0x56,0xe3,0x42,0x6b,0xfd,0x61,0x42,0xd5,0x70,0x8b,0xc2,0x54,0x9d,0xec,0xc1,0x4a,0x0,0x9c,0xc0,0x9a,0x5c,0xcc,0x41,0xdc,0xa0,0xc3,0xc2,0x5b,0xb6,0xe4,0xc1,0x4e,0x7,0xcc,0x41,0x32,0x4,0xfa,0xc2,0xea,0x97,0xed,0x41,0xeb,0x69,0x77,0xc2,0x11,0x3c,0xc7,0xc2,0xb4,0x17,0x92,0x42,0x34,0xc1,0x41,0xc1,0x71,0x33,0xdc,0x42,0xcd,0x1d,0xca,0x42,0xc,0x9,0x7f,0xc2,0xb9,0x96,0x17,0xc3,0x80,0x7f,0x27,0x3e,0x6,0x3a,0x21,0x42,0xc9,0x47,0x19,0x42,0x1e,0x31,0x31,0x42,0x8d,0x40,0x1c,0x43,0xce,0xd9,0xbd,0xc1,0x48,0x48,0x89,0xc1,0x7,0xed,0x8,0x43,0xfa,0x51,0xe5,0xc1,0xf2,0x61,0xc1,0x3f,0x1e,0x46,0xb1,0xc2,0x16,0x82,0xf6,0x42,0x2e,0xef,0xb5,0xc1,0x63,0x2,0x3e,0xc3,0x9e,0x3c,0x4e,0xc2,0x1c,0xb6,0xc2,0x41,0x2c,0x7f,0x2f,0x43,0x9c,0xbc,0x50,0x43,0x80,0x8a,0x89,0xc2,0x60,0x9,0x6f,0xc0,0x9a,0x80,0x9,0xc3,0x41,0xbe,0xe0,0x41,0xdf,0xc3,0xa3,0x42,0x45,0x39,0x8,0x42,0xe2,0xac,0x4f,0x42,0x97,0xe,0x6,0x43,0xaa,0x96,0x4f,0x42,0xc,0x21,0x8f,0xc1,0x7e,0xeb,0x9b,0x40,0x3d,0xdc,0xe3,0x42,0xa9,0xbc,0x8,0x43,0x69,0x23,0xfc,0x42,0x8f,0xc2,0xd,0xc3,0x27,0x41,0xed,0x42,0x83,0x7b,0x20,0x43,0x16,0xf3,0x96,0x42,0x2,0x9f,0xf,0xc0,0xd3,0x3d,0xa3,0x41,0xee,0xba,0x36,0x43,0x4f,0x34,0x99,0xc2,0xc7,0xaf,0xba,0x42,0x5a,0xb5,0x8c,0x42,0x51,0x7d,0x19,0x41,0x9d,0xb4,0x2f,0xc3,0xe3,0x9,0xdd,0xc1,0xd0,0x1d,0xd2,0xc2,0xee,0xea,0x88,0x40,0x43,0x36,0xe2,0x40,0x94,0xdc,0x22,0xc3,0xa3,0x4f,0xfd,0xc0,0xd2,0x45,0x9c,0xc2,0xb1,0x7b,0xa6,0x41,0x30,0xe0,0x3f,0x41,0xfe,0x79,0xbc,0xc2,0x7e,0x79,0x4b,0x42,0x12,0x68,0x22,0xc2,0x4a,0xba,0x5f,0x43,0x29,0xdf,0xc0,0x42,0x41,0x73,0x3c,0xc3,0xae,0x58,0x72,0xc2,0x37,0x2a,0xb6,0x42,0x71,0x20,0xc3,0xc0,0x12,0x72,0x1f,0x43,0x5f,0x7,0x11,0xc3,0x73,0xf3,0xa,0x42,0x93,0x2f,0x90,0xc0,0x82,0xb8,0x4b,0x43,0x88,0xa1,0x81,0x42,0x28,0x50,0x4d,0xc3,0x94,0x70,0x85,0x42,0xea,0xa,0xdd,0x42,0x7e,0xac,0xc9,0xc1,0x76,0x84,0xa1,0xc2,0x37,0x5e,0x20,0x43,0x87,0xac,0x1,0xc3,0x79,0x1b,0x6a,0x43,0x60,0x4a,0x10,0xc2,0xe4,0x84,0x2c,0x42,0x35,0xec,0x65,0x43,0x16,0xe8,0xa1,0xbf,0x76,0x1d,0x9,0xc3,0x1,0x30,0x37,0x42,0x30,0xe6,0xe1,0xc1,0x17,0x28,0x23,0xc3,0x9b,0x6,0x41,0x43,0xcf,0x79,0x3,0xc3,0xf9,0x45,0x0,0xc3,0x41,0x16,0x5f,0x42,0xc4,0xf5,0x61,0x42,0xa5,0x2b,0xfd,0x42,0xba,0x2,0x7f,0x43,0xb7,0xa9,0x8a,0x41,0x48,0x58,0x9f,0xc1,0x74,0x1e,0x14,0x3f,0xfc,0x6a,0xaf,0x41,0x6b,0x92,0x85,0xc2,0x72,0x83,0x95,0xc1,0x33,0xed,0x17,0xc3,0xe2,0xbf,0xf4,0xc1,0x1d,0x9,0x64,0x42,0xe7,0xca,0x97,0xc2,0xb3,0x85,0xf7,0x42,0xa1,0xf4,0x4d,0x41,0x35,0xb,0xac,0x42,0x7b,0x90,0x19,0xc2,0x28,0x48,0x5,0xc2,0xcc,0x48,0xa7,0xc2,0x3f,0x22,0xa9,0x42,0x4,0x7c,0x7d,0xc2,0xfc,0x26,0xe7,0xc2,0x94,0xe9,0xa0,0x42,0xb2,0x59,0xa1,0x42,0x27,0x43,0xe6,0x42,0xc0,0x66,0xe8,0xc2,0x1a,0xe,0x39,0x42,0xad,0x24,0x2,0xc3,0x82,0xb7,0x6,0xc2,0x43,0xa3,0xa1,0x42,0x70,0xf2,0xe,0x43,0x5c,0x9a,0xc3,0xc2,0x63,0xc9,0xb9,0x42,0xaa,0xa5,0x3a,0x42,0x18,0x5b,0x40,0x40,0xbe,0x21,0x5f,0x43,0xe6,0x9d,0x2c,0xc2,0x26,0x94,0xf7,0x42,0x80,0x8f,0x2d,0x42,0xfa,0xb9,0xf2,0x41,0xfe,0x2e,0x52,0x43,0x7a,0xd2,0xf,0xc3,0xb8,0x4f,0x1c,0x43,0xee,0x34,0x93,0x40,0xc6,0x5f,0xb0,0x41,0x9b,0x9e,0x38,0x43,0x6e,0xf0,0x3c,0x42,0x9,0xa4,0x7,0xc3,0xef,0x0,0xe1,0xc2,0xd0,0xf9,0x66,0x3f,0x1c,0xd8,0xe7,0x40,0xbf,0x9d,0x91,0x42,0x65,0x6e,0x1a,0x42,0x7d,0x2f,0xd6,0xc2,0x26,0xf7,0xbb,0x41,0x8,0xe3,0xd8,0xc1,0xae,0x4d,0xdf,0xc2,0xc,0x82,0xb,0xc3,0x38,0x2a,0x3,0xc3,0x9f,0x2b,0x54,0xc2,0xdc,0x35,0xae,0x42,0x63,0xdb,0xe,0xc1,0xc,0xd0,0xd1,0x41,0xa9,0x30,0xd3,0xc2,0xc7,0x5e,0x2a,0xc2,0x67,0xd3,0x2,0xc3,0x36,0x8b,0x8e,0x41,0x33,0x64,0xb8,0x3f,0xd0,0xb3,0xbf,0xc2,0x4d,0xf5,0x98,0xc2,0x32,0x11,0x9e,0xc2,0xe9,0x58,0xf4,0xc1,0x92,0x4b,0xbe,0x42,0xef,0x13,0xc9,0x41,0x5f,0x23,0x17,0xc3,0x76,0xc1,0x98,0x41,0xbe,0x4b,0x20,0x43,0x66,0xf5,0xb,0xc2,0xc9,0xe2,0xd4,0x41,0xf3,0xa7,0x96,0xc2,0xba,0x1c,0x45,0x43,0xbf,0xe0,0x72,0xc0,0xc1,0x93,0x6e,0xc3,0xa,0x95,0x54,0xc2,0xd1,0x9a,0xf,0x43,0x1c,0x87,0x7b,0xc2,0xce,0x2,0x1c,0x43,0x61,0x34,0x39,0xc2,0x17,0x7,0x2a,0xc2,0xbf,0xe5,0xec,0x41,0x1d,0x88,0xa2,0xc1,0xda,0xa,0x84,0xc2,0xa3,0xdd,0x3a,0xc1,0xf0,0xb8,0xb1,0x42,0x8c,0x19,0xe4,0x42,0xf3,0xa8,0x91,0x42,0xf6,0xc7,0x88,0xc2,0x15,0xfa,0xe9,0x40,0x16,0x61,0xe4,0xc2,0x91,0x58,0xb6,0x42,0x3a,0xc7,0xf2,0x41,0xf7,0x8c,0xd7,0xc2,0xc9,0x55,0x2a,0x43,0x54,0xfc,0x6c,0x43,0x4e,0x44,0xac,0xc2,0x8a,0xc1,0x6c,0xc3,0x18,0x8c,0x1,0xc3,0xa7,0x32,0x1c,0xc2,0x3,0xef,0xe3,0xc0,0x51,0x9a,0x35,0x41,0xab,0x94,0x13,0xc3,0x2e,0xda,0xa1,0x42,0xf9,0x25,0xac,0xc1,0x8c,0xfc,0x35,0xc2,0x31,0xcc,0xda,0x42,0x65,0xb5,0xf0,0x40,0x7f,0x3f,0x97,0x42,0x2d,0xf3,0x16,0x43,0x27,0x2,0x31,0xc3,0x83,0x64,0xac,0xc2,0x15,0x83,0x33,0xc3,0x17,0xf6,0x8c,0xc2,0x62,0x3f,0xb8,0xc2,0x8a,0x6f,0xfb,0xc2,0x9a,0x5d,0x20,0xc2,0x1b,0xa2,0x23,0xc3,0x78,0x8c,0xbb,0x41,0x76,0xde,0x21,0x40,0x87,0x58,0x33,0x42,0xfc,0xc6,0x70,0xc2,0x33,0xfa,0x34,0xc2,0x97,0x7f,0x31,0x42,0xb9,0xc2,0xdc,0x41,0x8c,0x6b,0xfa,0x41,0xe1,0xe5,0x8e,0x42,0x6c,0x30,0xc1,0x41,0x2d,0x70,0x67,0x42,0x74,0x36,0xb6,0xc2,0xd5,0x7a,0xf,0x42,0xb3,0xe2,0x3,0xc3,0x40,0x6b,0xac,0x42,0xa3,0x9d,0x70,0x41,0x53,0xeb,0x1e,0x42,0x38,0xc2,0xe6,0xc2,0xf2,0x5e,0xb6,0xc2,0xb4,0x8b,0x42,0xc3,0xb2,0x7,0xe4,0x42,0xea,0xe0,0x0,0x41,0xdc,0x39,0x75,0xc0,0xd4,0xdf,0x8e,0xc2,0x83,0xff,0xdb,0x42,0xc2,0x45,0x9,0x42,0x8d,0x75,0xe8,0xc2,0x70,0x66,0x83,0xc1,0x8a,0xf5,0x28,0x43,0xac,0xd1,0x99,0xc2,0xff,0x6a,0xb1,0xc2,0x53,0xb1,0xc8,0x42,0x26,0x57,0x59,0xc2,0x73,0xe1,0x2,0x43,0x4b,0xc0,0x71,0xc2,0x5f,0xa3,0xa0,0xc2,0x20,0xfd,0x87,0xc2,0x87,0xef,0x11,0x42,0x57,0xcc,0x47,0xc3,0x23,0xe7,0x8b,0xc2,0x4c,0xad,0xfb,0x41,0x96,0xdc,0x7,0x42,0x5c,0xa0,0x94,0xc2,0xb7,0x83,0x1f,0xc3,0xcd,0x36,0x86,0xc2,0x64,0x2a,0xa0,0xc1,0x6c,0x75,0xb6,0xc2,0x2f,0xbe,0xeb,0x41,0xb2,0xea,0x97,0x42,0x6e,0x92,0x3b,0xc3,0x5,0x1,0x43,0xc2,0x1f,0xcc,0x91,0x42,0x7e,0x8,0xa6,0x41,0x6d,0xa5,0xd4,0xc2,0x57,0x3b,0x2e,0xc3,0xdf,0xb5,0xea,0x42,0xd6,0x14,0x1e,0xc3,0xf6,0x6b,0x2,0x43,0x9c,0x8b,0x20,0x43,0x2b,0x65,0xd4,0xc1,0x4d,0x51,0xd6,0xc1,0x51,0xa0,0x2e,0xc2,0x3,0x38,0xc2,0x42,0x5,0xbe,0x9f,0x42,0x8f,0xe6,0x9,0x43,0x3e,0x7e,0x81,0xc1,0xfd,0xd9,0x11,0xc2,0x1e,0x17,0x46,0xc3,0xf3,0x17,0xda,0x41,0x74,0xe,0x7c,0x43,0x16,0xad,0x2f,0xc0,0xef,0xc6,0x20,0xc3,0x43,0x6,0x8,0xc3,0x46,0xc7,0xdc,0xc1,0x64,0x6d,0xad,0xc2,0x4a,0xa8,0xac,0x42,0xdb,0x95,0xdd,0x42,0x86,0xab,0x68,0xc1,0x39,0x1,0x64,0xc1,0x5d,0x4b,0x37,0x41,0xf1,0x9e,0x1,0x43,0xf6,0x94,0x2,0x42,0x31,0x18,0xd1,0xc2,0x0,0x1a,0x72,0x41,0x75,0xfa,0x7e,0x42,0x1,0x3c,0xc0,0x42,0xf6,0x4a,0x1e,0xc2,0xaf,0x8a,0xd1,0xc2,0x23,0x25,0x91,0x41,0xd4,0x94,0x76,0x41,0xe1,0xe3,0x27,0xc3,0x38,0x2e,0x1e,0x41,0x96,0xe9,0x89,0xbf,0x17,0xeb,0xc2,0xc1,0x52,0x13,0xfc,0x41,0x17,0x57,0x55,0x41,0x25,0x85,0xa1,0x41,0xb0,0x15,0xa4,0x41,0x34,0x76,0xaf,0xc2,0x7d,0x57,0xd5,0x42,0xd3,0xf7,0x9f,0x42,0xbe,0xda,0x42,0x41,0xf3,0x49,0xbf,0xc0,0x1d,0x4a,0x2f,0x43,0x65,0xed,0x8e,0xc2,0xe5,0x2f,0xfa,0xc2,0xe4,0xd0,0x50,0x43,0x65,0x27,0x8d,0xc2,0x43,0xdb,0x85,0xc2,0xb9,0x90,0xf0,0xc2,0x99,0x71,0x4b,0xc3,0xf1,0x59,0x6,0xc3,0xe2,0xeb,0x52,0xc2,0xca,0xee,0xe7,0x42,0x12,0x51,0xba,0xc2,0xee,0x54,0x25,0x43,0xa0,0xee,0xc7,0xc2,0x6f,0x31,0x9d,0xc1,0xec,0x97,0x8b,0xc2,0x12,0x5d,0x2e,0xc2,0x59,0x12,0x39,0x43,0x64,0xa,0xeb,0xc1,0x7c,0xf3,0x65,0x42,0x3f,0x8b,0x32,0xc2,0x67,0xcb,0x97,0xc2,0xb2,0xd8,0x98,0x42,0x72,0x6c,0xb2,0x40,0x40,0x7f,0x5,0xc2,0xdc,0xb8,0xf2,0x42,0xc0,0xf0,0xf,0xc3,0x2b,0x4,0x8e,0xc2,0xad,0x6e,0x12,0x42,0x84,0xd4,0xe6,0x42,0x2e,0x30,0x85,0x41,0x85,0x77,0x6,0xc3,0xf9,0xad,0x34,0x43,0xbb,0x42,0xd7,0xc2,0xf3,0x45,0xd6,0x42,0x6e,0x18,0xf0,0x42,0x4,0x29,0x50,0xc2,0x5b,0x62,0x55,0xc2,0x50,0x35,0x1f,0x3f,0x13,0xad,0x96,0xc1,0xde,0xec,0x3d,0xc2,0xd2,0x63,0xe6,0x42,0x3a,0xf,0x8b,0x42,0xed,0xe3,0xfc,0xc1,0xa8,0x70,0xa0,0xc2,0xc2,0xf7,0x51,0xc2,0x24,0xa2,0x8,0xc3,0xbd,0x69,0xf7,0x42,0xb9,0xf3,0xe5,0xc2,0xe1,0x7b,0x88,0xc0,0x36,0x6e,0x6e,0xc2,0xda,0xfa,0xe3,0x42,0xa2,0xf5,0xaa,0x42,0xb3,0x33,0x6c,0xc0,0x0,0x66,0x11,0x43,0x6e,0xac,0x93,0x41,0xe,0x89,0xb0,0x42,0x56,0xa0,0x1d,0xc2,0x83,0x59,0xd5,0x42,0x9,0xfe,0x93,0xc2,0x72,0xf3,0x47,0xc3,0x3b,0x5f,0xaf,0x42,0x8d,0x6f,0x42,0x41,0x9a,0xed,0xa,0xc2,0x6d,0xe1,0xab,0xc2,0xd3,0x0,0x8,0x41,0x3a,0x2b,0x17,0xc2,0x78,0xb0,0x25,0x43,0xe0,0x6e,0xe8,0xbe,0x3,0xc6,0x8d,0x40,0x54,0xd1,0x39,0x43,0x19,0xbb,0xfa,0xc2,0xa5,0xeb,0x38,0xc3,0xd8,0xcc,0x8d,0xc1,0xcf,0x20,0x98,0x42,0xde,0x6e,0x20,0x43,0xb9,0x59,0x21,0xc3,0x5,0xee,0xc3,0x42,0xe9,0xbf,0xfd,0xc0,0xcc,0x55,0x16,0xc3,0xa8,0xb7,0xa2,0x42,0x53,0xea,0xcf,0xc1,0x55,0x5f,0x74,0x42,0x18,0x2e,0x24,0x41,0x79,0x3e,0xf5,0xc0,0xf1,0xa5,0xb4,0xc0,0x34,0x58,0x8c,0x42,0x7b,0x2f,0xc8,0xc2,0x50,0x2c,0xa1,0x42,0xef,0x89,0x3d,0x42,0xf5,0x4b,0xa2,0xc2,0x19,0xc1,0x9c,0x42,0xff,0x2f,0x49,0x42,0xc0,0xe,0x5d,0x43,0xa7,0xb5,0xef,0x42,0xca,0x2e,0x9,0x43,0xaf,0x8c,0x8b,0x42,0x86,0xd2,0xe,0xc3,0xa9,0x16,0xf9,0x41,0x27,0x90,0xd4,0x42,0x87,0x83,0xf,0xc3,0xce,0xf0,0x5c,0xc2,0x75,0x3d,0x16,0x43,0x8a,0xd7,0xc6,0xc1,0x56,0x66,0x4,0xc1,0xe9,0x85,0x2,0x42,0x70,0x79,0x5f,0x3d,0xa2,0x5,0xf6,0xc2,0x96,0xce,0xb0,0x42,0xc2,0x93,0xf,0xc3,0x99,0x5,0x17,0xc2,0xcf,0x1d,0x27,0x41,0xaa,0x98,0xaa,0xc2,0x64,0x8,0x1c,0xc2,0x3b,0xaf,0x17,0xc2,0x5e,0x9,0x7e,0xc1,0x3e,0x51,0x2e,0x42,0x79,0x9,0x86,0x42,0x91,0x3f,0x37,0x42,0x45,0x12,0xcd,0xc1,0x71,0x31,0x72,0x41,0xf3,0x2a,0x2b,0xc3,0x5b,0x97,0x44,0xc3,0xdc,0x97,0x28,0xc2,0x9f,0xfa,0xec,0x41,0x45,0x39,0xdd,0x41,0xe7,0xd3,0x6e,0x42,0xfd,0xc4,0xa,0x43,0x4,0x2b,0xc6,0xc2,0x41,0x2,0x24,0x43,0x6c,0xc6,0x39,0xc3,0x32,0x94,0x18,0xc2,0xf8,0x50,0x7b,0x42,0x73,0x44,0x25,0x43,0x9d,0x88,0xce,0x42,0x16,0x7,0x8f,0x42,0x0,0xec,0x3b,0xc3,0xa6,0xb2,0x84,0x43,0x26,0xf0,0x26,0x43,0xc4,0x19,0x6d,0xc1,0xc2,0x4f,0x16,0x43,0xf7,0x24,0xc0,0xc2,0x68,0xfd,0x4a,0x41,0x56,0xd7,0xdc,0x42,0x9b,0xb3,0x24,0x43,0xe3,0x8f,0x48,0xc3,0x98,0xb6,0xa4,0xc2,0x27,0x34,0x43,0x42,0x58,0x37,0xc6,0xc2,0x2b,0xf1,0x44,0x42,0xda,0x19,0xe7,0xc1,0x99,0x20,0xba,0x41,0x63,0xc1,0xe7,0x42,0x91,0x56,0x86,0xc2,0x14,0x7b,0xda,0xc1,0x4c,0x30,0xdb,0xc2,0x75,0x69,0x12,0x42,0xa6,0xa1,0x6d,0x42,0x6e,0x2d,0x1b,0xc2,0x24,0x8b,0x4b,0x42,0xca,0x4a,0x42,0x42,0xb5,0xb6,0xd7,0xc1,0x52,0xe3,0xbe,0x41,0xde,0x1,0xe7,0xc1,0xc0,0x71,0xaf,0x42,0xc3,0x97,0x8c,0x42,0x81,0xf8,0x95,0xc1,0x25,0xcb,0x25,0xc2,0x88,0xac,0x84,0x42,0x2b,0xa9,0x52,0x43,0x47,0x9a,0x89,0xc2,0x89,0x11,0x21,0x42,0x39,0x5f,0x94,0xc2,0xf2,0x7d,0x3,0xc3,0x7d,0x5,0x2f,0x41,0xf0,0xb2,0x9b,0x3f,0x21,0x50,0xa5,0xc1,0xeb,0xf7,0x72,0xc2,0x93,0xc4,0xc2,0xc2,0x24,0xfa,0x16,0x43,0xb2,0x0,0x58,0xc0,0x27,0xeb,0x63,0xc3,0xf7,0x14,0x99,0x42,0x65,0xdf,0x1f,0x42,0x46,0xa6,0x10,0xc0,0x7e,0xc6,0x3d,0xc2,0xd0,0x89,0x39,0x41,0x9d,0x48,0xac,0xc2,0xe4,0xe2,0xe,0x43,0xa5,0xc3,0x7e,0xc3,0xc8,0x2b,0x5,0x40,0x5c,0x68,0xcf,0x42,0x97,0x74,0x18,0xc3,0xf,0xb0,0x1a,0xc2,0xd9,0x1,0xec,0x42,0xe3,0xd1,0x3a,0xc3,0xfd,0x13,0xff,0x42,0xed,0xf5,0x71,0x42,0x42,0xc2,0xea,0x40,0x73,0x8d,0xd,0xc2,0x4a,0x64,0x8a,0xc2,0xe,0xe8,0x1d,0x41,0x75,0x4d,0xa9,0x42,0x61,0xd9,0x54,0xc2,0x35,0x65,0xdd,0x41,0x6,0xbf,0x19,0x42,0xe1,0xbd,0x39,0x43,0x2f,0x98,0xb4,0x42,0x25,0xac,0xd5,0xc2,0x2b,0xe5,0x17,0x42,0x28,0x98,0x36,0xc1,0xa,0x7,0xb1,0x42,0xff,0x90,0x48,0xc2,0x30,0x13,0x8d,0xc3,0x11,0xc1,0xc3,0xc2,0x3f,0xc9,0xf6,0x42,0xa7,0x73,0xb9,0xc2,0x4,0x56,0xb6,0x41,0xd0,0xf,0x6b,0x42,0x2,0x51,0x3f,0x40,0x4a,0x1,0x26,0x43,0xa3,0xd0,0x50,0x41,0xbe,0x31,0xff,0x42,0xb2,0x1c,0xd3,0x42,0x9,0xf5,0x1,0x42,0xa2,0xf,0x99,0x42,0x29,0xe8,0xb2,0x42,0xc7,0xeb,0xd7,0xc2,0x55,0x22,0x99,0xc2,0x96,0x4f,0xf4,0x42,0xe8,0xdc,0xc6,0x42,0x2a,0xac,0x5f,0xc2,0x11,0x5f,0xb,0xc1,0xf1,0x7a,0xf4,0x42,0xde,0x19,0x7,0xc1,0x78,0x69,0xd3,0xc2,0xeb,0x78,0x6,0x43,0xee,0x3c,0x95,0xc1,0xa8,0xd0,0xe,0x43,0x82,0x54,0xf9,0xc2,0x99,0xef,0x51,0xc3,0x47,0x91,0xd4,0xc1,0xe,0xa2,0x81,0x3f,0x87,0x1e,0x41,0x42,0x5d,0xd3,0xba,0xc2,0x23,0xb1,0xb1,0x42,0x4e,0x49,0xc2,0x40,0xea,0x61,0xaa,0x41,0xe9,0x2d,0x62,0x43,0x65,0xbf,0x6e,0xc2,0x6e,0x24,0x95,0x42,0x98,0x1d,0x59,0xc2,0xd8,0xdf,0x27,0xc3,0x8a,0xbb,0x25,0x43,0xbc,0x68,0xc4,0xc2,0xd6,0x63,0x2,0x42,0xa9,0xfa,0x9,0x43,0x21,0x63,0xd1,0xc2,0x8a,0xbc,0xce,0x41,0x5c,0xd4,0xfc,0xc2,0x54,0x96,0x9e,0xc2,0xd1,0x68,0x5d,0x41,0x26,0x86,0x88,0x41,0x4e,0x72,0x41,0xc1,0x95,0x6a,0x5,0x43,0xe8,0xc2,0x33,0x41,0x6e,0x4f,0x47,0xc2,0x6e,0x23,0x59,0xc1,0x9b,0xb2,0x57,0xc2,0xe5,0xcc,0xef,0x41,0x8d,0xe3,0x8a,0x41,0xb0,0x3c,0x54,0x42,0xb0,0x9d,0x8b,0x42,0xac,0x18,0x61,0xc1,0x90,0x80,0xd,0xc1,0x88,0x43,0x1c,0x41,0x3f,0xd1,0x78,0x43,0x6,0xc0,0xa6,0xc2,0x36,0x72,0x1e,0xc1,0x64,0x16,0xda,0x3f,0x94,0xbc,0xe5,0xc2,0x58,0xfe,0x5c,0x41,0xe0,0xec,0x77,0xc2,0x80,0xe2,0x85,0xc2,0x5c,0x80,0x9f,0xc2,0xce,0x30,0xfd,0xc0,0x2c,0xc1,0x3,0x43,0x59,0x23,0x26,0x43,0x3c,0xf0,0x95,0xc2,0xa2,0x1d,0x53,0xc2,0xe5,0xe,0xff,0x41,0x85,0xbb,0x45,0xc2,0xaf,0xe,0xfa,0x41,0x62,0xb9,0xd0,0xc0,0x13,0x6c,0xdf,0x42,0x54,0x15,0x86,0xc2,0x23,0xee,0x47,0x42,0xdd,0x87,0x29,0x41,0x2d,0xaf,0xfd,0x42,0xf4,0x5f,0x37,0x41,0x61,0xa8,0x43,0x40,0xb6,0xc0,0x3,0x42,0x9f,0xc8,0x2,0x43,0x97,0xaf,0xb7,0x41,0x5b,0x3f,0x88,0x41,0x2d,0x7b,0x5b,0x42,0x10,0xe0,0x8d,0x41,0xec,0x9e,0x88,0x41,0x82,0x76,0xe5,0x42,0x3b,0xf2,0x28,0x43,0x8e,0xe7,0xb2,0x42,0x3d,0x4b,0xa6,0x42,0x4c,0x3,0x53,0x43,0x58,0xff,0x49,0x42,0x22,0xfb,0x17,0xc2,0x55,0x30,0xaf,0x42,0x4a,0x77,0x8,0x40,0x66,0x13,0x19,0x43,0xb3,0xbe,0x9e,0x42,0xc6,0xd,0x9f,0x41,0xd1,0x41,0xdf,0x41,0x62,0x2d,0x93,0xc2,0x62,0xab,0x87,0xc2,0x3f,0x6,0x1a,0x42,0x48,0x5e,0xa7,0xc2,0xa7,0x3d,0xc1,0x42,0xbb,0xc,0xc5,0x41,0x2b,0xe5,0x9a,0x42,0x3c,0x5a,0x51,0x42,0x2e,0xa3,0x98,0x41,0xee,0x75,0x9c,0xc1,0xb9,0x73,0xb8,0xc1,0xa0,0xe1,0x1,0x41,0x43,0x87,0x94,0xc1,0x4d,0x20,0xf,0x42,0x2d,0xeb,0xc7,0x42,0x4e,0x2d,0xdf,0x42,0x5,0x85,0xcc,0xc2,0x56,0x6b,0x7c,0xc0,0x2f,0x9a,0xc8,0x42,0x9f,0xd5,0xd9,0xc2,0xb9,0x23,0x80,0x42,0x4f,0x35,0xb5,0x42,0xb9,0xf8,0x82,0x41,0x3a,0x11,0xd7,0x3f,0x2,0xc0,0x82,0xc3,0x9c,0x5a,0xa3,0xc1,0x97,0xbb,0x5d,0xc2,0x5e,0x20,0x71,0xc2,0xc7,0x34,0x5f,0x42,0xf6,0x34,0x0,0x42,0xa3,0xa2,0xbc,0x41,0xe0,0x37,0x1b,0xc3,0x7c,0xfe,0x51,0xc2,0xaf,0xb2,0x2b,0xc2,0x61,0x14,0x1,0x43,0x6,0x5b,0x7d,0x42,0xf6,0x4,0x26,0x42,0xca,0x1c,0x6a,0xc2,0xbe,0xfb,0x24,0xc3,0xba,0x9,0xa,0xc3,0x9b,0x31,0xd1,0x42,0xf7,0xda,0xa8,0xc2,0xf2,0x41,0xf,0x43,0xf7,0xbe,0xd6,0x42,0x36,0x2d,0xfb,0x41,0xf2,0x4f,0x34,0x42,0xfa,0x9c,0xb2,0xc2,0xe,0x8a,0x2f,0x43,0x65,0x4,0x35,0xc2,0x25,0xaf,0x3a,0xc2,0xbe,0xc7,0x8,0x42,0xd2,0x4c,0x85,0x42,0xb7,0x7f,0xb3,0xc1,0x83,0x87,0xf3,0xc2,0xc,0x19,0x12,0x43,0x85,0x8c,0x4e,0x43,0xc5,0xc8,0xce,0x42,0xe9,0x36,0x2d,0xc2,0xd9,0xb,0xe2,0xc2,0xee,0x1d,0xec,0xc2,0x25,0xd,0x11,0x43,0x89,0xf8,0xe8,0xc2,0x4c,0x27,0xca,0xc1,0x78,0xd6,0x48,0x43,0x27,0x6b,0xcc,0x41,0x8c,0x22,0xf,0x43,0x5a,0xb7,0x9,0x43,0x22,0x41,0x18,0x43,0xd4,0x6,0x58,0xc2,0xe8,0xa7,0x21,0x43,0xf1,0xec,0x57,0x42,0x56,0x9d,0x3a,0xc2,0x80,0x8f,0xd8,0xc1,0x69,0x4d,0xde,0xc2,0x10,0x89,0x3f,0x42,0xbb,0x26,0x52,0x42,0x1b,0xcf,0x29,0x42,0x43,0xa1,0x91,0x42,0x37,0xcd,0x2,0x43,0x96,0x40,0xcf,0x42,0x48,0xb8,0x8a,0x41,0x35,0xd1,0x10,0x43,0x28,0x7f,0xad,0x42,0x24,0x4c,0x34,0x42,0xfb,0xf5,0x1,0xc3,0x1b,0xbf,0x53,0x42,0x24,0x1a,0xc3,0xc2,0x3c,0x61,0xb,0xc2,0x4d,0xb0,0xe3,0x42,0xb5,0x17,0x4a,0x42,0x30,0x52,0xee,0xbe,0xbe,0xa5,0xac,0x41,0xc5,0x9c,0x2,0x42,0xd5,0x52,0x88,0x42,0x40,0xeb,0xf6,0x41,0x87,0xd7,0x97,0x42,0xe2,0xdc,0x87,0xc0,0x6c,0xab,0x2a,0x41,0xd0,0xe4,0x17,0x42,0x59,0x42,0x96,0xc2,0x92,0xd7,0xc0,0xc2,0x7,0x45,0x33,0xc2,0x6d,0xc7,0x54,0x42,0x8f,0x18,0x12,0x43,0x9c,0xc,0x8e,0xc2,0xb8,0xf4,0x83,0x3f,0xbd,0x12,0x8c,0x42,0x97,0x58,0xd2,0x42,0xaa,0x56,0x2a,0xc2,0xcb,0xda,0x15,0xc3,0x8c,0xc3,0x4,0x42,0xa1,0x79,0x5c,0x42,0xdd,0x45,0x40,0xc2,0x21,0xa6,0x4b,0x42,0x46,0xa7,0x5d,0xc2,0x7e,0x9f,0x9d,0x42,0xe6,0x33,0xdf,0xc2,0x42,0xea,0xf3,0xc0,0x64,0xde,0xa1,0xc2,0x2f,0x6a,0xb0,0xc2,0x4c,0x52,0xdf,0xc2,0x71,0xaa,0x50,0x42,0x95,0x75,0x19,0xc2,0xbc,0x6b,0x3a,0xc3,0xe0,0x8f,0x7e,0xc2,0x4e,0x5c,0xe8,0x42,0x4e,0x42,0x14,0xc3,0x86,0x8c,0xd4,0x42,0xfc,0xff,0xc,0x43,0x74,0x15,0x3b,0x43,0x92,0x32,0x25,0x43,0xd8,0xcc,0xc1,0xc2,0x61,0x7a,0x4a,0xc2,0x97,0xae,0x52,0xc3,0xde,0xbf,0xd8,0xc2,0xf1,0x2c,0x5f,0xc2,0xbe,0x21,0x98,0xc2,0x54,0x3a,0x36,0x42,0x69,0x63,0x79,0x42,0xd0,0x3e,0x3,0xc3,0x4e,0xd6,0x88,0x42,0xc8,0xcd,0xd6,0x42,0x31,0xf0,0xbb,0x42,0xa7,0x34,0x9d,0x42,0xc9,0xa7,0x1,0x43,0xe3,0xd2,0x9f,0xc2,0x8a,0xa5,0x23,0xc1,0x51,0xe,0x3,0xc3,0xe6,0xdc,0x9,0x43,0x60,0xb5,0x3f,0x43,0x5f,0x22,0x8f,0x41,0xc5,0xac,0x3f,0xc3,0xf9,0x5e,0xf,0xc2,0x4d,0xd9,0x47,0x43,0x7,0x9,0xb3,0x42,0xc2,0x9c,0x3f,0x40,0xcc,0xf3,0xb6,0xc2,0x9a,0xd6,0x9,0xc3,0xf4,0xf2,0x20,0xc3,0x43,0x73,0xc9,0x41,0x51,0xc9,0x53,0x43,0x33,0x62,0xdc,0x42,0xb2,0xdc,0xea,0x42,0x98,0xe9,0x42,0xc1,0xdd,0x9a,0x25,0xc2,0x1c,0xf4,0xfa,0x42,0xb6,0x99,0x29,0x42,0x9e,0xc1,0x40,0xc1,0xf0,0x20,0xa6,0xc1,0x14,0xb1,0x37,0x43,0xc6,0x29,0xa2,0x42,0x9e,0x11,0x9,0xc3,0x36,0x16,0xf4,0xc2,0x81,0x12,0x25,0xc3,0xe6,0xdc,0x6a,0x42,0xdc,0xed,0x46,0x43,0xf8,0xec,0x4e,0x43,0xdc,0xf5,0xb4,0xc1,0xb0,0x24,0xb6,0xc2,0x44,0xcd,0x4,0x42,0x3d,0xa1,0x97,0x42,0xd0,0x44,0xd7,0x40,0xc8,0x5e,0xff,0x42,0x19,0xb4,0x23,0x43,0x71,0xad,0x8a,0x42,0x38,0x4e,0x9f,0xc1,0x7e,0xad,0xa5,0x42,0x6a,0x7,0x98,0xc2,0x87,0x5e,0x49,0xc3,0x20,0x69,0x37,0x42,0x50,0x9c,0x8,0xc2,0x17,0x49,0x4a,0xc2,0x43,0x75,0x95,0x43,0x2,0x35,0x4e,0xc1,0xa8,0x96,0xb1,0xc2,0x96,0x99,0x10,0x43,0xac,0x7b,0xa1,0x42,0xc8,0xb8,0x42,0xc1,0xd6,0x26,0xd1,0xc2,0xae,0x9a,0xc3,0x41,0x44,0xbe,0x8b,0x42,0xef,0xfa,0x4c,0xc2,0x2d,0x88,0xd1,0xc2,0xf4,0x77,0x25,0xc2,0x26,0x97,0x37,0x42,0x63,0x12,0xd7,0x42,0x8e,0x77,0xf2,0x42,0xbc,0x91,0xb9,0xc2,0xd7,0xd1,0xbf,0xc1,0xf1,0x45,0xbb,0x42,0x73,0xb3,0x1c,0xc2,0xab,0x4b,0x0,0xc3,0xe6,0xc5,0xb7,0x42,0x66,0x74,0x7,0x43,0x3d,0x35,0x93,0x40,0x3a,0x13,0xde,0x42,0xbb,0xe6,0x44,0x42,0x28,0x9f,0xe5,0x3f,0x9b,0x91,0x93,0x40,0x2c,0x51,0xa2,0xc2,0x43,0x60,0xfc,0x42,0xd5,0x32,0x4e,0x42,0x35,0xc0,0x4,0x43,0xe8,0x7b,0x9f,0x42,0x56,0xd5,0x99,0xc2,0xf6,0xe9,0xfd,0x42,0x5,0x26,0x94,0x41,0x57,0x40,0x4c,0x43,0xe2,0xb2,0x6c,0xc2,0xf5,0x24,0x74,0xc2,0xe0,0x82,0x33,0x42,0xda,0x89,0x8f,0x42,0x6a,0x47,0xc7,0xc1,0xaf,0x33,0xae,0xc2,0x96,0xd3,0x88,0x42,0x6,0x48,0x7,0x43,0x92,0xd6,0xdf,0xc2,0x85,0x1,0xef,0xc2,0xbe,0xaf,0x49,0xc1,0x55,0xa7,0x97,0xc2,0x12,0x4d,0x96,0x42,0xf5,0x15,0xe1,0x41,0x9a,0x4f,0x24,0xc3,0xde,0xf9,0xae,0xc1,0x52,0x54,0xb,0x42,0x12,0xbc,0x4,0x43,0xd8,0x4e,0x16,0xc2,0x89,0xc4,0xd4,0xc2,0x95,0x33,0x54,0xc3,0x83,0xd,0x8e,0xc3,0x2a,0x42,0x5,0x42,0x52,0xdb,0x2e,0xc3,0x18,0x0,0xc8,0x40,0xc5,0x6a,0xa7,0x42,0x40,0x4a,0x4f,0xc2,0x70,0x92,0xc8,0x42,0x69,0x19,0xd6,0xc2,0xee,0xca,0x69,0xc2,0x35,0x7b,0x90,0xc2,0xad,0x26,0xe5,0xc1,0x27,0x24,0xce,0x42,0x37,0x62,0xe7,0xc1,0x4a,0x33,0x32,0xc1,0x9c,0x1b,0x82,0x3e,0x2e,0x8b,0x60,0xc2,0x4e,0x73,0x4d,0x42,0x19,0xa,0xc1,0xc0,0xa8,0xe4,0x3,0xbf,0x3f,0x5d,0xfb,0x42,0xbe,0xb3,0xc0,0x42,0x80,0x6e,0xd9,0xc0,0xe4,0xc4,0xe1,0xc2,0x6e,0x36,0xdc,0xc2,0xd5,0xb0,0x78,0xc2,0x90,0xa3,0x21,0x43,0x7,0xc8,0x65,0x42,0x5e,0x77,0x4,0x42,0xea,0x26,0x7d,0xc2,0xc1,0x6e,0x6d,0xc2,0x69,0x3a,0xf,0x43,0x90,0x10,0x58,0xc0,0x68,0x76,0xbd,0x3f,0x91,0xfd,0xbe,0xc2,0xbf,0xb6,0xef,0xc0,0x61,0xe8,0x7,0x43,0x6b,0xda,0x79,0x42,0xef,0x5b,0x7,0x42,0x10,0x88,0xc1,0xc2,0xc,0x7,0xda,0x42,0x74,0x4a,0x2e,0x43,0xf1,0x3d,0xf,0x43,0x8c,0x69,0xc0,0xc1,0xd5,0x63,0x97,0x42,0xc2,0x5e,0xa5,0xc1,0x87,0xb4,0x3b,0x42,0x9c,0xe4,0xbf,0x42,0x2f,0x9d,0xb,0x42,0xe7,0xb2,0xa4,0xc2,0x5c,0x1,0xa4,0xc1,0x37,0x36,0x8a,0xc2,0xd1,0x81,0x1c,0x41,0x45,0xae,0xda,0xc1,0x78,0x99,0x12,0x42,0x40,0x64,0x95,0x43,0x17,0x8b,0x1c,0xc3,0x9d,0xdd,0xad,0x41,0xca,0x56,0xce,0x42,0x7d,0xeb,0x91,0xc2,0xad,0xab,0x1f,0xc2,0x81,0x5d,0x1d,0xc2,0x6,0x57,0x56,0x42,0x98,0x77,0xe9,0xc2,0xb0,0x42,0xa0,0x41,0x94,0x7b,0x1,0xc3,0x85,0xfb,0xb,0x43,0x50,0x4b,0x64,0x42,0x99,0x4b,0xcc,0x42,0xff,0x8d,0x46,0xc3,0xd1,0x2a,0xfd,0xc2,0x82,0x4a,0x96,0x41,0x1f,0x31,0xed,0xc1,0xa0,0xdf,0x20,0xc3,0x83,0x9c,0xfc,0x42,0xf4,0x85,0x8,0x42,0x82,0x58,0xcc,0x42,0x3a,0xb3,0x8e,0xc1,0x15,0x9b,0x91,0x41,0xce,0x95,0xe7,0x42,0x47,0x9c,0x51,0xc2,0x6d,0x7e,0x8e,0x42,0xae,0x85,0xc4,0x40,0x36,0x4b,0x8a,0x41,0x1d,0x62,0xb8,0xc2,0xa9,0x14,0x7e,0x43,0xc0,0x22,0xc6,0x40,0xca,0x80,0xc6,0x42,0xb3,0x9,0x36,0x42,0x2e,0x65,0xbd,0x41,0x26,0x54,0x62,0xc2,0x6e,0x23,0xad,0xc2,0x18,0x94,0xbf,0x41,0x15,0x82,0x14,0xc2,0xbb,0x4b,0x4a,0xc3,0x58,0xe0,0x3e,0xc2,0x59,0x5b,0xb4,0x42,0x2d,0x7b,0x92,0x43,0x1e,0x8,0x3d,0xc2,0xd3,0x2f,0xd,0x42,0x60,0x9a,0x6c,0x42,0x4f,0xdb,0x9c,0xc2,0x98,0xc0,0x1f,0xc3,0xf3,0x61,0xef,0x42,0xc,0xc2,0xb2,0x41,0xe1,0x52,0xd7,0x40,0x8d,0x62,0xb8,0x42,0xd5,0xa9,0x33,0xc2,0xd8,0xf0,0xda,0x41,0x7d,0x6d,0x38,0x43,0xdb,0x51,0x89,0x41,0x87,0xc7,0x28,0x43,0xcd,0x5b,0x63,0x41,0x57,0x3,0x6,0xc3,0x54,0xd5,0xe5,0x42,0x7,0xd1,0x83,0x42,0xa9,0xe2,0x28,0x43,0x7f,0x7c,0x90,0x42,0x6f,0x49,0xa5,0xc2,0x6a,0xf3,0xaf,0xc1,0x63,0xb2,0x50,0xc2,0xd4,0xa5,0xa4,0xc0,0x29,0x94,0xc2,0xc2,0x1d,0x33,0x73,0xc2,0x50,0x31,0xeb,0x3e,0xef,0xe8,0x88,0x42,0x9d,0x36,0x8b,0xc1,0xe4,0xbd,0x5f,0x42,0x7,0x37,0x8e,0xc2,0x47,0xd9,0x64,0x43,0xde,0x7c,0x21,0xc2,0xf8,0x44,0x13,0xc1,0x96,0xd8,0xde,0xc2,0x24,0x15,0xf1,0xc1,0x13,0x51,0xed,0x42,0xa0,0x0,0x23,0x42,0xd6,0x23,0x36,0x42,0x23,0xfe,0x37,0x42,0xff,0x97,0xbd,0x42,0x7f,0x39,0x69,0xc2,0xc8,0x9f,0x3d,0xc3,0x78,0xc,0xa2,0x42,0xf0,0x44,0xb6,0x42,0x7b,0x51,0x40,0xc2,0x28,0x5e,0x15,0x42,0xa7,0x9f,0xae,0xc2,0x8a,0x2e,0xd6,0xc1,0xfd,0x5f,0x82,0x42,0xe0,0x10,0x4d,0x40,0x7f,0x59,0x8e,0x42,0x77,0x9a,0xd,0x43,0x99,0x57,0x61,0xc2,0xca,0x9e,0x38,0xc3,0x78,0xc3,0x44,0xc1,0x51,0x4,0x6f,0x42,0xec,0xd9,0x3,0xc0,0xff,0xf1,0x9e,0xc1,0x27,0x6b,0x55,0x42,0xe6,0x5d,0x4a,0xc1,0x1b,0xda,0x79,0xc1,0xd5,0xc9,0xdb,0x42,0x2a,0xc3,0x93,0x43,0x1f,0xd,0xd3,0x42,0x3b,0x31,0x7e,0xc2,0xce,0x73,0xc5,0x42,0x5f,0x79,0x28,0xc3,0x8d,0xd1,0x43,0x41,0x58,0x75,0x25,0xc2,0xca,0xc0,0x37,0xc3,0x49,0x82,0x3,0xc3,0xe2,0xd5,0x85,0xc1,0xc0,0x4c,0x7e,0xc2,0x2e,0xe6,0xa4,0xc2,0x6,0xc0,0x9b,0x41,0x3a,0x56,0x1e,0x42,0xe4,0xa2,0x55,0x43,0x76,0xe4,0x4f,0xc2,0x60,0x93,0x6e,0x41,0x31,0x95,0x3b,0xc2,0x8c,0xbd,0x65,0xc2,0x59,0xe8,0xe9,0x42,0x7f,0x9d,0xb5,0xc2,0x7e,0x25,0xe5,0x42,0x6c,0x82,0xf7,0xc2,0xd,0xaf,0xc3,0x42,0xf2,0x5b,0x8e,0xc2,0x3c,0x17,0xac,0xc1,0x1e,0x70,0x83,0xc1,0xb0,0x92,0x67,0x43,0x73,0x9e,0x53,0xc2,0xc2,0xb7,0x86,0xc1,0x3e,0xb6,0xac,0xc2,0x21,0x57,0x98,0x42,0x5e,0x88,0x48,0x41,0x76,0xbc,0x14,0x43,0x5,0x73,0xc8,0x41,0xbe,0x41,0xf,0xc3,0x25,0x72,0xeb,0x42,0x98,0xa6,0x9c,0xc3,0x68,0x82,0x4e,0xc2,0x94,0xca,0x8c,0xc2,0xca,0xd,0x8c,0xc1,0x29,0xde,0xc7,0x41,0x2a,0x37,0xa8,0xc2,0x10,0x60,0x10,0x43,0x6,0xa1,0xc,0xc2,0x8c,0x82,0x5c,0x42,0x26,0xf8,0xdc,0x42,0x3a,0x45,0xd6,0x42,0x9b,0xc9,0x92,0x42,0xe4,0x1,0xe6,0xc2,0xe4,0xad,0x9c,0x42,0x85,0xa2,0xeb,0xc1,0xbb,0x2,0xc4,0xc2,0x22,0x72,0x19,0x43,0xca,0xd9,0x22,0x43,0x32,0x4e,0x90,0x42,0xf5,0xd7,0x29,0xc3,0x6a,0x2c,0xbd,0xc2,0x4d,0x7d,0x1b,0xc3,0xdf,0xc4,0x19,0x43,0xb9,0x43,0x34,0xc2,0x41,0x19,0xb7,0x41,0x77,0x48,0xa,0x43,0x44,0xc3,0xaa,0x42,0x35,0x3c,0x62,0xc2,0x3f,0xd8,0x3,0xc3,0x6a,0x78,0x69,0xc2,0x9e,0xe9,0x5a,0xc1,0xcc,0xfc,0xb,0xc3,0x62,0x13,0xc7,0x42,0xc,0x3a,0x76,0xc2,0xc9,0xdd,0x2c,0x43,0xfa,0x2f,0x1c,0xc3,0xc1,0x6f,0x36,0x42,0xe1,0xf2,0x1b,0xc3,0x22,0xc6,0xa0,0x41,0x5b,0x6c,0xd0,0xc1,0xf2,0x82,0x81,0x42,0x43,0x60,0x42,0x41,0x2d,0xf4,0xfc,0x41,0x18,0xfd,0xfe,0x41,0x7e,0x5a,0x3e,0x42,0x69,0x86,0xc3,0x41,0x69,0x22,0x37,0x43,0xa9,0x52,0x20,0x43,0x82,0xf8,0x4e,0xc2,0xbe,0x96,0xea,0x42,0xb2,0xac,0xc6,0xc2,0x9d,0x4e,0xab,0xc2,0xd3,0xa6,0x97,0xc1,0x7d,0xd7,0xc7,0xc2,0x92,0x28,0x30,0xc2,0x8f,0x5,0x7,0xc3,0x51,0xa7,0xba,0x40,0xce,0x9e,0xb3,0x42,0xca,0xb3,0x3b,0x42,0x2b,0xdd,0xcc,0x41,0x3d,0x65,0xd6,0xc2,0x1e,0xe,0x92,0x41,0xd5,0xea,0x34,0x43,0x6c,0x86,0xf2,0x42,0xbf,0x58,0xd6,0xc2,0x47,0xf1,0x2a,0x41,0xff,0x7b,0xfe,0x42,0xa4,0x15,0x1f,0xc3,0x65,0x4,0x1b,0x43,0x8e,0x45,0x6a,0xc2,0x5e,0xf,0x6a,0x42,0x71,0x11,0x88,0xc1,0x68,0x57,0xd4,0x41,0xb3,0xad,0xf0,0xc1,0x44,0x94,0xb6,0xc1,0xfa,0x15,0xd,0x40,0x41,0x6,0x81,0x42,0x8c,0x3a,0x48,0x42,0x2f,0x45,0xb,0xc3,0x66,0x30,0xd6,0x42,0xb9,0xba,0x97,0x43,0xe6,0x96,0x14,0x42,0x3b,0x5,0x6,0xc3,0x7,0x8c,0x7e,0xc2,0x2,0x2a,0xef,0x41,0x9,0xa7,0xf,0xc1,0xe5,0xf2,0x7d,0x42,0xf,0xc4,0x3,0xc3,0xd8,0x7c,0x80,0xc1,0xa8,0xfe,0xc5,0xc2,0xe5,0x4f,0x4c,0xc1,0xe4,0x73,0xf1,0xc1,0x19,0xfa,0xe4,0x41,0x13,0x6,0x33,0xc2,0x38,0xdd,0x55,0x42,0xb1,0xe3,0x34,0xc2,0x0,0xec,0x6c,0xc1,0x9f,0x6a,0x4,0x43,0xf9,0x9b,0xef,0xc1,0x9b,0x3a,0xa7,0x42,0x60,0x9c,0x2,0xc3,0x67,0xa1,0x4b,0x43,0x17,0x51,0x5,0x43,0xc5,0xea,0xc,0x43,0x26,0xcd,0xba,0xc2,0x20,0xeb,0x9,0x40,0x38,0x5a,0x86,0xc2,0x8c,0xdc,0x7c,0x40,0x96,0x88,0x11,0x42,0x69,0x17,0xcb,0x42,0xf1,0x9b,0xe7,0xc1,0x7f,0xbf,0x6c,0xc1,0x19,0xc,0xf5,0x42,0xf6,0x73,0xb6,0x42,0xa9,0x47,0x8f,0x42,0x3d,0xf3,0x1d,0xbf,0xff,0x1f,0xc3,0xc0,0x56,0x3f,0x1,0xc3,0xbb,0xfb,0x95,0xc1,0xfa,0xa5,0x3e,0xc3,0x39,0x95,0x30,0x42,0xbc,0xab,0xbe,0xc1,0xbd,0xa2,0xce,0x42,0xc,0xb,0xb3,0x42,0xa4,0x6c,0xd7,0x42,0xd4,0x5c,0x32,0x42,0x61,0x5a,0x74,0x42,0xce,0x7d,0x10,0xc2,0x4c,0xe5,0x19,0xc3,0x9f,0xf9,0xad,0x41,0x7,0xd1,0x8b,0x40,0x85,0xc7,0xc7,0x42,0x5b,0x1a,0xa0,0x42,0xc0,0x18,0xf9,0x42,0x1e,0xe4,0xcc,0xc2,0x39,0x62,0xe1,0xc2,0x76,0xec,0x1f,0x41,0xf7,0x11,0x99,0x42,0xc0,0x30,0x17,0xc3,0x9d,0x16,0x49,0xc2,0xf4,0xfb,0x4c,0x43,0x8b,0xd0,0x76,0xc2,0x26,0xde,0x97,0xc1,0x42,0x8b,0xd5,0x42,0x8d,0x3b,0xa4,0xc2,0xf,0x3,0x13,0x42,0xf0,0x9b,0xb2,0xc2,0x42,0x2e,0xa,0x42,0x23,0xec,0x10,0x43,0x18,0xf0,0xde,0x41,0x85,0x22,0x9e,0x41,0x3a,0x75,0x3,0x41,0x80,0x8,0x84,0xc2,0x29,0x3a,0xff,0x41,0xcd,0x30,0xaf,0xc1,0x4b,0x2,0x13,0x42,0xdf,0x5d,0x62,0xc1,0x11,0x93,0xd2,0x40,0x5e,0x39,0x19,0x42,0xf4,0xb,0xd2,0xc2,0xfb,0xea,0x45,0x42,0x1d,0x18,0x1b,0xc2,0x39,0xaa,0xb,0xc2,0x11,0xba,0xa0,0xc2,0x7e,0xa5,0xfa,0xc2,0x22,0x1c,0x72,0xc2,0x1e,0xb8,0x38,0x42,0x2e,0x1,0x20,0x41,0x19,0xb,0x3b,0x42,0x10,0xa2,0x35,0xc2,0x5a,0xdd,0x19,0x43,0x22,0x8b,0xcf,0xc2,0x26,0x5,0x10,0x41,0x54,0x54,0x53,0xc3,0x84,0xb7,0x74,0xc2,0xbd,0x44,0xa2,0x42,0x12,0xaa,0x2f,0x42,0x6d,0x5c,0xca,0xc2,0x99,0x18,0x9,0xc3,0xf3,0x4b,0x67,0x41,0xd8,0x40,0xbc,0xc2,0xef,0x65,0xcf,0x41,0x43,0xd6,0xf2,0x41,0xa7,0x43,0xfd,0xc0,0x5e,0x26,0x0,0xc0,0xd9,0x8b,0x59,0x42,0x3c,0x93,0x2,0xc3,0xf6,0x70,0x60,0xc0,0xdf,0xf9,0x8d,0x41,0x5b,0xad,0x44,0xc2,0x3d,0x66,0xd,0x43,0xd4,0xb3,0x9c,0xc2,0x0,0x35,0x94,0xc2,0xec,0x7d,0x28,0x42,0xb6,0x25,0xca,0x41,0x8e,0x1f,0x18,0x42,0xb1,0x14,0x3d,0xc2,0x83,0x96,0x66,0x42,0xee,0x5b,0xa7,0xc2,0x77,0x21,0x70,0x42,0x4e,0x4a,0x82,0x42,0xa6,0x63,0x8d,0xbf,0x75,0xc2,0x7a,0x42,0x89,0xf5,0xb6,0xc2,0xd6,0x41,0x35,0x41,0x46,0xa4,0xbe,0xc2,0x2c,0x30,0xb0,0x3f,0x81,0x6e,0x21,0xc3,0x82,0x47,0x6d,0x40,0xd0,0x1e,0x40,0x42,0x45,0x8b,0x26,0x42,0x59,0x84,0xe0,0x42,0x6,0xba,0xf6,0x40,0xb4,0x55,0x53,0x42,0x6d,0x75,0xd0,0xc2,0x56,0x5f,0xe,0xc3,0x52,0xa5,0x37,0x42,0x4f,0x56,0x61,0xc2,0x8f,0xb6,0x9c,0x42,0xc3,0x3a,0x89,0xc2,0xee,0xbb,0x59,0x41,0xb,0x24,0x98,0xc2,0xc8,0x29,0xc8,0x41,0x75,0xd4,0x57,0xc1,0xa6,0x76,0x3f,0x42,0xff,0x17,0x5f,0xc1,0xc0,0x6a,0x8e,0x42,0x90,0xac,0xbe,0x42,0x3f,0x5e,0xf3,0x42,0x7,0xa7,0xe,0xc3,0x9f,0x47,0x84,0xc2,0x89,0x3e,0xb9,0xc1,0x99,0x84,0x18,0x42,0x69,0x28,0x2,0xc1,0x9f,0x4,0xff,0xc1,0x9c,0x90,0xfc,0x41,0x2a,0xc0,0xca,0xc2,0xd1,0xc0,0x8f,0x42,0xde,0xed,0xa,0x41,0xc7,0xb,0x5e,0xc2,0x4f,0xd7,0xd7,0x42,0xd3,0x64,0xad,0x41,0x33,0x38,0xa2,0x40,0xda,0x63,0xea,0x42,0xa5,0xa6,0x31,0x42,0x89,0x5d,0xa9,0xc2,0xbd,0x67,0x75,0x42,0x16,0x4f,0xf0,0x42,0xc4,0xe,0x4a,0x42,0xd6,0xf3,0x23,0x40,0x16,0x57,0x60,0x43,0x96,0x64,0x36,0x42,0x29,0xa6,0x5a,0x42,0x26,0xd2,0xd7,0xc1,0x2c,0x89,0x66,0xc2,0xcc,0xe9,0xf8,0x42,0x47,0x2e,0x47,0xc0,0xa6,0x74,0x91,0xc2,0x99,0x8f,0x5b,0xc2,0x4c,0x94,0x10,0x42,0xec,0x42,0xb1,0x41,0xe8,0xaf,0xf,0x43,0xc7,0x9e,0xf9,0x42,0x18,0x2c,0x46,0x3f,0xc6,0x24,0x42,0x42,0xbd,0xe6,0x15,0x42,0xbf,0x44,0xe7,0xc1,0xd7,0x22,0x14,0x42,0x81,0x86,0x50,0x42,0x19,0xc3,0xef,0xc2,0xec,0x3b,0x3b,0xc2,0xb3,0xa2,0x57,0x42,0x67,0xf5,0x75,0x42,0x40,0x83,0x76,0xc1,0x79,0xb4,0x4b,0x40,0xcf,0x4d,0x41,0xc2,0x37,0x2f,0x98,0xc2,0x32,0x2d,0x66,0xc2,0x15,0x54,0xa3,0x41,0xf6,0x2f,0xf3,0x42,0x6a,0x39,0xfe,0x42,0xc8,0x9a,0x1e,0x43,0x9,0xc7,0x60,0x42,0x6,0xe5,0xb1,0xc2,0xbe,0x81,0x73,0x42,0xda,0xf4,0x37,0xc1,0x4,0x43,0xcd,0xc2,0x9c,0x4e,0x9e,0x41,0xb6,0x52,0x8f,0xc1,0x47,0xf8,0xb3,0x42,0xe1,0xe8,0x1a,0x43,0x22,0xce,0xa,0xc1,0x8b,0xb5,0x98,0x41,0x75,0x13,0xcb,0x42,0xe0,0x5a,0xe,0xc3,0xbc,0x6b,0x8d,0xc2,0xce,0xca,0xa5,0xc2,0xb0,0x1e,0x99,0xc2,0xc3,0xb7,0x43,0x42,0x94,0x45,0x45,0xc2,0x91,0x2b,0x88,0xc1,0xd8,0x1c,0x1,0xc2,0x7e,0x89,0x87,0x41,0x4a,0x11,0x1e,0xc0,0xe4,0xf9,0xd1,0x40,0x2,0xb0,0xcb,0xc2,0xac,0x6,0x1a,0x43,0xac,0xe3,0x99,0xc2,0x27,0xd4,0x8,0xc2,0x57,0x74,0x96,0xc0,0x18,0x3c,0xb0,0x43,0x69,0xc3,0xc5,0x41,0x17,0x37,0xaf,0xc1,0x39,0x6f,0xf1,0x42,0x40,0x94,0x88,0x42,0x24,0x19,0xf3,0x40,0xa9,0x61,0x59,0xc2,0x19,0x95,0xeb,0x41,0xf2,0xac,0xa3,0x42,0x77,0x9e,0x1f,0x41,0xe7,0x7e,0xc3,0x42,0x96,0x7d,0x1e,0xc3,0xcb,0x82,0x9d,0xc2,0x34,0xfd,0xba,0xbe,0x75,0x9c,0x95,0x42,0xa9,0xb,0x54,0xc3,0x2c,0xb1,0x60,0xc3,0x68,0xd8,0x90,0x42,0xe8,0x9b,0xd4,0x40,0xe7,0xab,0x0,0xc3,0x16,0xdb,0x66,0x43,0x86,0xc5,0x34,0xc2,0x8b,0x86,0x24,0x43,0xd2,0x4a,0x10,0xc1,0xc5,0xfa,0x37,0xc3,0x32,0x81,0x5a,0xc2,0x74,0x80,0xf2,0x42,0x6,0x61,0x94,0xc1,0xb0,0x89,0x3d,0x42,0x9c,0xf,0xa8,0x41,0x8a,0xdd,0x96,0xc1,0x63,0x2f,0xb9,0x42,0x30,0x8,0x5b,0xc2,0x29,0xd5,0x16,0x43,0xcc,0xc8,0x85,0xc1,0x9e,0x35,0x62,0x42,0xdd,0x99,0x1a,0xc2,0x11,0x9f,0x24,0xc2,0x80,0x91,0xfd,0xc1,0x39,0xca,0xc1,0xc2,0x80,0x85,0x28,0xc3,0x5d,0x87,0x79,0xc2,0x18,0xfa,0x43,0xbf,0xdc,0xbe,0x2,0xc3,0xe8,0x5a,0x62,0xc2,0x98,0x6d,0xe8,0xc1,0xb5,0xa5,0xc3,0x42,0x78,0xc2,0xd,0xc3,0xe,0x8a,0x91,0xc0,0xc6,0xe5,0x52,0x40,0xdd,0xfa,0xd6,0xc2,0x7a,0x5a,0xa1,0xc2,0x61,0x2b,0x1f,0xc3,0x64,0x7f,0xe7,0xc1,0x8c,0xa3,0xab,0xc2,0x89,0x62,0xa1,0xc1,0x3a,0x50,0x6c,0xc3,0x2b,0xe3,0x51,0x42,0x17,0x6e,0x35,0x42,0xb8,0xe4,0x4b,0x42,0x9a,0x6e,0x3e,0x43,0x76,0xfa,0xac,0x40,0x5b,0x56,0xc1,0xc0,0xa7,0x64,0x57,0xc1,0x5e,0xcc,0x7,0x42,0xac,0x18,0xba,0xc2,0x5a,0xc5,0x53,0x43,0x80,0x79,0xc,0x42,0x71,0xbd,0xf0,0x42,0x11,0x39,0xea,0xc2,0xb8,0x97,0x19,0x43,0xc4,0x2,0x59,0xc0,0x36,0xea,0x75,0x43,0xb3,0x5e,0x11,0x43,0xaa,0xb7,0x1b,0x42,0x15,0x86,0x31,0xc2,0xcd,0x74,0x26,0x42,0xab,0x86,0x3d,0x42,0xef,0xd2,0x89,0x41,0x1c,0xe4,0x1d,0xc2,0x5b,0xa9,0xf9,0xc1,0x2a,0x39,0xb9,0x42,0x64,0x13,0x72,0xc2,0xc9,0xb4,0x8c,0x42,0x30,0x6d,0x78,0x42,0xc3,0x8f,0x8f,0x42,0xcb,0xd0,0xf1,0xc2,0x5c,0xfd,0x86,0x40,0xf8,0x94,0x35,0x42,0x92,0x23,0xc9,0xc2,0xb6,0xab,0xbf,0x42,0x46,0xdf,0xc8,0xc1,0xe0,0xc4,0x10,0x42,0xb0,0xca,0xd7,0x42,0xc6,0xb1,0xbb,0x42,0x5c,0xcb,0x12,0xc2,0x56,0x8a,0xb6,0xc2,0xc2,0x88,0x8e,0xc2,0xa,0x8c,0x18,0xc2,0x22,0xa,0x2e,0x43,0xf0,0x79,0xa9,0xc2,0xdf,0x3d,0x19,0xc2,0xea,0x47,0x26,0xc3,0x89,0x3d,0x19,0xc3,0x79,0xbb,0x71,0xc2,0x5,0xf7,0x4,0xc2,0xad,0xa2,0x67,0xc3,0x76,0x37,0x5,0x43,0xd6,0x50,0x7b,0xc2,0xd4,0xc8,0x10,0xc0,0xf9,0x97,0xa7,0xc1,0xeb,0xb5,0xe6,0xbf,0xa7,0xf1,0x8b,0xc1,0x33,0x7b,0xde,0x42,0xbb,0x6e,0xaa,0x42,0x43,0xc0,0x24,0xc3,0xb9,0x6a,0x32,0xc2,0xc4,0x6b,0x92,0xc1,0xc0,0xc4,0xda,0xc2,0x4e,0xe6,0xaf,0xc1,0xee,0x55,0x3e,0xc1,0x59,0x35,0x9,0xc3,0x2c,0x1,0x8c,0x42,0xbe,0xc9,0xa4,0x42,0x9e,0x9e,0xa3,0xc2,0x2d,0xf8,0x29,0xc3,0xa4,0xe9,0xba,0xc1,0x15,0x5a,0x19,0xc3,0xfc,0xd3,0x5e,0x43,0xe2,0x7b,0x8f,0xc2,0x6f,0xf7,0x39,0x43,0xf6,0x62,0x87,0xc3,0x45,0xc0,0x0,0x43,0x30,0x85,0x81,0x43,0x72,0xea,0x23,0xc3,0xf3,0xa8,0xdf,0x41,0xa5,0xb6,0x5a,0xc2,0xdc,0x70,0xd6,0x41,0xf7,0xe1,0x60,0xc3,0xf9,0x68,0xf5,0xc1,0xa1,0x83,0x4c,0x42,0x48,0x7c,0x3e,0xc2,0x49,0xad,0x8b,0x42,0x33,0xeb,0x32,0xc2,0xb3,0xf4,0x11,0xc3,0xe8,0xef,0xb4,0xc1,0xb6,0xb1,0xd6,0x42,0x5b,0x48,0xad,0xc2,0x22,0xdf,0x13,0xc3,0xe9,0x58,0x12,0x43,0xdc,0xb3,0xd6,0xc0,0xde,0x50,0xdb,0xc1,0x6e,0xf,0x80,0xc1,0x91,0xb6,0xf,0x43,0xd,0x12,0xd7,0x42,0xad,0xb7,0x59,0x42,0x28,0x6e,0xd,0x41,0x36,0x36,0x53,0xc1,0x70,0xb8,0xcd,0xc1,0xd0,0x9c,0x2c,0xc2,0x92,0xbf,0x86,0x42,0x16,0x2c,0x88,0xc1,0xa5,0x6d,0xc1,0xc2,0x90,0x35,0x32,0x42,0x4d,0x3b,0xe8,0x42,0x4d,0x6c,0x2c,0xc3,0x94,0xfe,0x5c,0x42,0x94,0xa,0x74,0x43,0xa3,0xb7,0x2f,0x42,0xea,0x38,0xc2,0xc1,0xe6,0x11,0xd6,0xc2,0xde,0xa2,0x3,0xc3,0xbb,0x86,0x18,0x43,0xd3,0xe,0xb2,0x42,0x57,0x87,0x1f,0x43,0xe9,0xa2,0xff,0xc2,0xfc,0xd7,0xc5,0x42,0xd0,0xa3,0x6c,0x42,0x52,0xda,0x89,0x42,0x6b,0x17,0x61,0x42,0x9c,0x22,0x1c,0xc2,0xf8,0x58,0x6f,0x43,0x8d,0xaf,0xed,0x42,0xee,0xd3,0xb6,0x41,0x9f,0xa8,0xb7,0x42,0x5,0x9,0x0,0x43,0x3f,0xfa,0x1,0x42,0x44,0xc9,0x42,0x43,0x28,0xf1,0xa0,0x42,0xb2,0xcf,0x1e,0xc3,0x2c,0xb6,0x38,0x42,0xa7,0xb9,0x3f,0xc3,0x96,0xe8,0x66,0x43,0xb,0x2c,0xb4,0x42,0x21,0xad,0xe,0x42,0x57,0xe9,0x37,0xc3,0x91,0x4a,0x10,0xc3,0x1a,0xb2,0x61,0x42,0x37,0x31,0xc6,0xc2,0x9f,0x54,0x20,0xc3,0x7e,0x7b,0x1c,0x42,0xe9,0xb3,0x0,0x43,0x74,0x96,0x91,0xc2,0x81,0x10,0x24,0xc2,0xab,0xf5,0x10,0x41,0x27,0xaf,0x42,0xc2,0xbd,0xd8,0xbc,0xc1,0xa6,0xb5,0x9b,0xc2,0x72,0xef,0x2d,0x42,0x8f,0x34,0x82,0xc2,0xbd,0x48,0x1,0x42,0xd1,0x39,0x18,0x43,0xb0,0xe5,0x1d,0xc2,0xdd,0xa,0xef,0x42,0x8f,0xb4,0x0,0x42,0x3d,0xba,0x5b,0xc2,0x50,0xe1,0xbb,0x41,0xf5,0x7b,0xcb,0x42,0x94,0xd4,0x9,0x42,0x47,0x76,0xa8,0xc2,0x4d,0x92,0x3,0xc3,0xe3,0x12,0x75,0xc2,0x14,0x9,0xc0,0xc2,0x6e,0xfb,0x8b,0xc2,0x54,0x10,0x48,0x43,0xc5,0xe1,0x29,0x43,0xfc,0x4d,0x8b,0x42,0x3e,0xfb,0x77,0xc2,0x9d,0xbb,0xe7,0xc2,0x62,0xb9,0x51,0xc2,0x51,0x46,0x7c,0x42,0x28,0xb,0x83,0xc2,0x2c,0x27,0x3a,0x43,0x70,0x25,0x80,0x42,0xa6,0x86,0xd0,0x41,0x5c,0xc6,0x69,0xc0,0x12,0x18,0xd,0x43,0x21,0x66,0xe,0x42,0x67,0xe6,0xcb,0xc2,0xf8,0x1c,0xc7,0x42,0x58,0x47,0xdd,0xc1,0x44,0x48,0xb4,0xc2,0x80,0x5a,0x32,0xc2,0xc0,0xdb,0x9e,0x3f,0xe7,0x8,0xae,0x42,0xc7,0x36,0xf,0xc3,0xe4,0x5f,0x92,0x42,0xc9,0x13,0x3c,0x43,0x75,0xf1,0x74,0x41,0x8c,0x15,0x93,0xc1,0x77,0xa0,0xf0,0xc0,0xe7,0x9,0xb5,0xc1,0x37,0x74,0x96,0xc2,0xeb,0x35,0xbf,0x41,0x12,0x12,0x43,0xc2,0x26,0x5a,0xec,0x40,0xec,0x23,0x21,0x42,0x9d,0x58,0xb3,0xc2,0xf9,0xc7,0xcd,0x42,0x64,0xf8,0x1d,0x43,0xdb,0x8a,0x57,0xc2,0x78,0xd7,0x39,0x43,0x8f,0x73,0x2,0x42,0x4c,0x83,0x72,0xc2,0xfa,0x6d,0x39,0xc1,0x3a,0xe7,0x6f,0xc2,0xec,0xee,0xb8,0x3f,0xf4,0x47,0xf9,0xc2,0x5a,0x1f,0x7,0xc1,0xd,0x40,0x2e,0xc3,0x87,0x6d,0x88,0x42,0xd5,0xda,0x31,0xc2,0x73,0xc9,0x3c,0xc1,0x9e,0x3a,0xba,0x42,0x70,0xc4,0xcb,0xc2,0xbc,0x6,0x5,0x42,0x70,0x6d,0xb4,0x41,0x7d,0x4f,0x11,0xc3,0x12,0x66,0xa6,0xc1,0x77,0x7d,0xf5,0x42,0x4a,0x17,0x1e,0xc3,0x4e,0x86,0x8a,0xc2,0x7d,0x5e,0xb0,0xc2,0xf2,0x95,0x25,0x43,0xaa,0xb7,0xfc,0x42,0xdf,0xf6,0x3e,0x41,0xc9,0x52,0x65,0xc2,0xcd,0xfd,0xb7,0xc2,0xf,0x5e,0x11,0xc3,0x69,0x81,0x5,0x43,0x63,0x74,0x2e,0x42,0x16,0xad,0x6,0x43,0x6c,0xa9,0x5,0x43,0xd7,0x21,0xc1,0x40,0xaa,0x38,0xdb,0xc2,0xf,0x92,0xb9,0xc2,0x26,0x11,0xfc,0x42,0x78,0x27,0xb6,0x42,0x57,0xbc,0x65,0xc1,0x5e,0xf8,0xb3,0x42,0x85,0x6b,0x6b,0x42,0xa4,0xd2,0x64,0x42,0x37,0x9f,0x43,0x42,0xe,0xbc,0x33,0x43,0x3a,0x7c,0xd9,0x42,0xcf,0x6,0xfd,0xc2,0x2,0xd9,0x2e,0x43,0xa3,0xe0,0xd4,0x41,0x7a,0x71,0x1,0x43,0xdf,0x1a,0xda,0xc2,0xbf,0xfb,0xe3,0x42,0xce,0x9b,0x18,0xc3,0x33,0x8d,0x9d,0xc1,0x6f,0xfd,0x3b,0x42,0x93,0xc7,0x41,0xc2,0xde,0x4d,0x73,0xc1,0x33,0x7d,0x37,0xc2,0x71,0xce,0xfb,0xc2,0x8,0x31,0xef,0x42,0x98,0xba,0x9a,0xc2,0xce,0xbb,0x41,0xc2,0x87,0xe1,0x56,0xc2,0xc2,0xbf,0xf5,0xc2,0x55,0x1a,0x54,0xc2,0x45,0x8f,0x1e,0xc3,0x7,0xa7,0x41,0xc2,0x28,0x27,0x1f,0x42,0x35,0x87,0x41,0xc2,0xc,0x6f,0xb9,0xc1,0xdb,0xca,0xb8,0x42,0x67,0xf8,0xd,0xc3,0xdd,0x1d,0xb4,0xc1,0xc4,0x96,0xe0,0xc2,0xfe,0xce,0x2e,0xc3,0x0,0x52,0xf7,0xbd,0xa8,0x72,0x44,0x42,0x40,0xa4,0x80,0x3f,0x26,0xf4,0x8d,0xc1,0xf1,0x8,0x1c,0x42,0x6a,0x56,0xe0,0xc1,0x35,0xd,0xb0,0xc2,0x2c,0xe0,0x38,0x40,0x59,0x81,0xd3,0x42,0x5,0x51,0x98,0xc1,0x25,0xff,0x2c,0x43,0x2c,0x23,0x4b,0xc2,0xbe,0xfe,0x23,0x41,0x70,0x83,0x2e,0x43,0xcf,0x5a,0xb6,0xc2,0x91,0xf0,0x14,0xc2,0xd2,0x47,0xc3,0xc2,0xa,0x53,0xa5,0x42,0x3f,0x9d,0xa1,0x42,0xc0,0xde,0xb9,0xc2,0x6f,0xa4,0x1a,0x43,0xd2,0x1e,0xa2,0xc2,0x18,0x9c,0x9f,0x42,0x1d,0x8e,0xda,0xc2,0xd2,0xd0,0xd4,0x42,0x82,0x90,0x82,0x42,0x9,0x60,0x49,0xc1,0x47,0xa0,0x2e,0x42,0xe,0x47,0x14,0x40,0xc6,0x6e,0x3b,0x42,0xe9,0xd5,0xb,0xc2,0xd,0x73,0x44,0xc3,0xa5,0x93,0xbb,0x41,0xf8,0x69,0xa8,0x42,0x70,0x2e,0xc7,0xc2,0xfe,0xf6,0xde,0x41,0xdd,0x1a,0x47,0x43,0x70,0xd4,0x6d,0x42,0x53,0x59,0x6b,0xc2,0x80,0xf0,0x11,0xc3,0xa0,0xfd,0x2a,0xc3,0xd6,0x73,0xf0,0x42,0x29,0xa8,0xe6,0x42,0x54,0xaa,0x5e,0xc2,0x45,0x77,0x17,0x42,0xae,0x78,0xe3,0xc2,0x16,0x1c,0x78,0xc0,0xed,0x9,0x6e,0x42,0xc7,0xb,0xa6,0x42,0xb6,0x96,0x3f,0xc3,0x38,0x69,0x96,0x41,0x95,0xd,0x5d,0x42,0x17,0x92,0xe2,0xc2,0xeb,0xc9,0xc7,0x42,0x6d,0xf0,0x34,0x42,0xd0,0x9d,0xcf,0x42,0x4a,0xf6,0xd5,0xc1,0x70,0xa6,0x2f,0xc1,0x60,0x99,0xbf,0xc2,0xbc,0xdc,0xcb,0x42,0x69,0xc6,0x85,0xc2,0xd9,0x1c,0xad,0xc2,0x28,0xdd,0x3c,0x41,0x9,0x91,0xf1,0x42,0xb2,0x43,0xad,0x42,0xe0,0xeb,0x14,0x42,0xe0,0xde,0xaf,0xc2,0xd,0x78,0x89,0x40,0x60,0xb4,0xf9,0x42,0x97,0x41,0x10,0x41,0x50,0x5a,0x95,0xc2,0xcf,0x9c,0x8b,0x42,0x2f,0xa,0x1b,0x43,0x5a,0x28,0x68,0xc2,0xcc,0x7b,0x6c,0x42,0x87,0xfd,0x5c,0xc2,0x5f,0x82,0xbc,0x42,0x4a,0x82,0xaa,0x42,0x8e,0x64,0x3b,0xc2,0xef,0x22,0x4e,0xc2,0x4c,0x3c,0x11,0xc3,0x70,0xed,0xcb,0xc2,0x33,0x4,0x3a,0xc2,0xa9,0x45,0x70,0x43,0x78,0x43,0xd6,0x41,0xad,0x3f,0x1c,0x43,0x43,0x27,0xe1,0x41,0x5a,0x88,0x36,0xc2,0xb7,0x1c,0x6b,0x42,0xa3,0x2c,0x15,0xc3,0xa1,0xbf,0x2c,0xc3,0x30,0x76,0xa4,0xbf,0x9e,0xec,0xa3,0x42,0xf9,0xf7,0xac,0xc2,0x70,0x21,0xb7,0x40,0x5c,0xf1,0x69,0x41,0x69,0xb3,0x33,0x43,0xdd,0x1c,0xbd,0xc2,0x3c,0x9d,0x60,0xc2,0x60,0xb5,0x9b,0xc2,0x3b,0x7,0xc4,0x42,0x45,0x19,0x26,0xc2,0x61,0xcf,0x3,0xc3,0xf4,0xd6,0x31,0x42,0xcf,0x4,0xd3,0xc2,0xcc,0xf,0x8c,0x41,0x68,0xf1,0xc1,0x41,0x8a,0xef,0xb4,0x42,0x5f,0xae,0xf0,0x41,0xc3,0xf6,0x55,0xc2,0xb8,0x62,0xfa,0xc1,0x11,0xb2,0x6,0xc3,0x78,0xc0,0xb8,0x41,0xee,0xf,0x12,0x43,0x50,0x7f,0x77,0x42,0xe,0xed,0x94,0xc1,0x60,0xdf,0x6,0x41,0xc1,0xa5,0x5,0xc3,0x76,0x77,0x80,0x42,0x52,0x45,0xef,0x40,0x5a,0x39,0xc7,0xc2,0xd6,0x40,0xb3,0xc2,0x34,0x46,0xa4,0x41,0xe5,0x3f,0x3c,0xc2,0x3d,0xae,0x62,0xc2,0xec,0xf2,0xd9,0x42,0x73,0x8e,0x28,0xc1,0xee,0x26,0x6,0x43,0x5e,0xe2,0xdc,0xc1,0x29,0xf1,0x4e,0xc2,0x21,0xb6,0xbd,0x42,0xf8,0x29,0xd,0x41,0xaa,0x1,0x8a,0x42,0xd3,0xbe,0x2b,0x43,0xf2,0xc3,0x2e,0x42,0x5b,0xe2,0x82,0xc2,0xcd,0x6,0x77,0x42,0xa2,0x8,0x24,0xc1,0xc6,0xc8,0x6b,0xc1,0x99,0xc9,0x1e,0xc2,0x5a,0x68,0x34,0x43,0x73,0x3e,0x2e,0x42,0x93,0xe0,0xf1,0x40,0xf3,0x57,0x98,0xc2,0xad,0x15,0x36,0x43,0x3e,0x65,0xed,0xc2,0xf5,0x10,0xb8,0xc2,0x31,0x40,0xf,0x42,0x62,0xb0,0xc0,0xc1,0x33,0x1c,0x6a,0x41,0xe4,0x8f,0xf7,0xc1,0x3a,0x3c,0xe1,0x3f,0xda,0x64,0xa0,0x42,0x4d,0x19,0x91,0x42,0x23,0x53,0x89,0xc2,0x18,0xb1,0x24,0xc3,0xda,0xf8,0xcb,0x41,0xc2,0x17,0x8f,0xc2,0xb3,0xc5,0x4d,0xc2,0xe2,0x81,0x82,0xc2,0x6a,0x6c,0x15,0x43,0x62,0x1f,0x89,0xc1,0xde,0xbe,0xba,0x41,0xc6,0xc4,0xac,0xc1,0xa9,0x91,0x19,0xc3,0xf2,0x4e,0x17,0xc3,0x59,0xe6,0x16,0xc2,0x25,0x8b,0xc8,0xc2,0x70,0xa4,0xb6,0x42,0x46,0x6f,0x4,0x42,0x8a,0x74,0x47,0xc1,0xb6,0x8a,0x58,0x42,0x29,0xbf,0xf8,0xc0,0xe9,0x73,0x25,0xc1,0xca,0xd4,0x66,0xc2,0x34,0x58,0xd1,0xc1,0x48,0x1,0xab,0x42,0x94,0x87,0x1,0xc2,0x3a,0x6c,0x22,0x42,0x20,0xa8,0xa6,0xc2,0x16,0x26,0xf1,0x41,0x6c,0x18,0x1a,0xc1,0x8f,0xe,0x55,0xc2,0xd6,0x6b,0x35,0x43,0x43,0xdd,0xe8,0xc2,0x4a,0xef,0x80,0xc1,0xa1,0xd5,0x2d,0x42,0x12,0xfd,0xa2,0x41,0x54,0xc0,0x0,0xc0,0x28,0xd9,0x9a,0xc2,0xaa,0x51,0x4f,0x42,0x70,0x96,0x40,0xc2,0x94,0xf9,0x26,0x42,0xb3,0x76,0xdc,0x42,0x0,0x5b,0x9c,0x42,0x76,0x55,0xc9,0x42,0xd,0xdb,0x70,0x42,0x6d,0x66,0xc7,0x41,0xc0,0x5c,0xa9,0xc1,0xf6,0x56,0x5e,0xc1,0x37,0xf4,0x6b,0x42,0x72,0xcd,0x8d,0xc2,0x6,0x32,0x20,0xc3,0x65,0xcc,0x2,0x43,0xb8,0x37,0xde,0xc0,0x2e,0xd7,0x52,0xc2,0x54,0xa4,0x9b,0xc2,0xc4,0xf0,0x46,0xc2,0x4e,0x35,0xb8,0xc2,0x5,0x3b,0x8,0xc3,0xb1,0x56,0xcc,0x41,0xa1,0x8,0xaf,0x42,0x3e,0xd2,0xe9,0xc1,0xab,0x13,0x56,0x41,0x42,0xb6,0x92,0xc2,0x62,0x1c,0x4,0x42,0x71,0x92,0x7b,0x42,0x40,0xff,0x9e,0xc1,0x9f,0x74,0xbf,0xc2,0xa5,0x44,0x7,0xc3,0x5f,0x8e,0x38,0xc3,0xb4,0x81,0x2f,0xc2,0x4e,0xc2,0xef,0x40,0xde,0x3c,0xf5,0xc2,0xfe,0xd5,0x75,0x41,0x2f,0x94,0x6c,0xc1,0xb2,0x20,0x30,0xc2,0x58,0xc9,0x6,0x42,0x55,0x18,0xd5,0x42,0x2,0xc4,0x42,0xc1,0xd6,0x69,0x2c,0x42,0x2b,0xc,0xe,0x43,0xa,0xb8,0x19,0x40,0x7,0xfe,0xbc,0xc2,0x42,0x5d,0x7,0x43,0x93,0x8c,0x89,0x42,0x43,0xe6,0x1f,0x43,0x5b,0x1c,0xfc,0x42,0xb1,0x37,0x94,0x42,0x61,0x3e,0xc1,0x41,0x68,0x27,0xec,0x41,0x67,0xfe,0x31,0x43,0xaf,0x64,0x4c,0x42,0x19,0x10,0xe,0x41,0x68,0xd8,0xe8,0xc2,0xa4,0x69,0x32,0x42,0xa5,0x1a,0x6d,0x41,0xa3,0x9d,0x71,0xc3,0x4,0x6b,0x10,0x41,0x28,0x20,0x65,0x43,0x8f,0x2,0xb7,0x42,0x51,0x7f,0x4e,0xc1,0xab,0x19,0xee,0x41,0x2b,0xe7,0x83,0x42,0x37,0x25,0xa,0xc2,0xb3,0x9a,0xdd,0xc1,0xd0,0xc,0x52,0x40,0x76,0x35,0x5f,0xc2,0xfe,0x8d,0x77,0x42,0xe4,0xd8,0x31,0x42,0xee,0xa4,0x38,0x42,0x82,0x8e,0xf9,0x41,0xf4,0x22,0xd0,0xc2,0xa,0x2f,0xc5,0xc1,0x1d,0x5d,0x2f,0x42,0x8b,0xd4,0xc1,0xc2,0x37,0xa7,0x49,0x42,0x6d,0xd6,0xe5,0xc2,0xaa,0x38,0x6,0xc3,0x9d,0x7c,0x64,0x42,0x77,0x80,0x99,0xc2,0xda,0x84,0x47,0xc3,0x27,0x1f,0x69,0xc2,0x36,0x39,0xe7,0x40,0xc0,0x49,0x8c,0xc1,0x45,0x95,0x86,0xc0,0xc4,0x55,0xcb,0xc0,0xb2,0x94,0x1,0x43,0x34,0x5b,0xec,0xc2,0x7,0xa5,0xcf,0x41,0x15,0x80,0x82,0xc1,0xd1,0x85,0x44,0x41,0xc0,0xee,0x34,0x43,0x4f,0x84,0xa,0x41,0x56,0x97,0xa6,0xc1,0x7,0xa0,0x31,0x43,0xd4,0xc1,0x25,0xc3,0xba,0xcc,0xab,0x42,0x33,0xd4,0xc1,0xc2,0x4,0x1d,0x15,0x43,0xe1,0x84,0xa7,0xc2,0x65,0xb1,0x83,0xc2,0x8c,0xb5,0x98,0x40,0xc3,0x4c,0x23,0xc2,0xca,0xba,0x60,0xc2,0x15,0x75,0xa5,0xc2,0x98,0x4f,0xc2,0xc2,0xc1,0x79,0x15,0x42,0xc7,0x1d,0xa9,0x42,0xda,0x4d,0xdf,0xc1,0xd3,0xbc,0x1,0x43,0x43,0x75,0x13,0xc3,0x72,0x2a,0x9d,0xc0,0x4e,0x8f,0xab,0x41,0xeb,0xab,0xa9,0x42,0x9,0x4,0x9e,0xc2,0x1d,0xc6,0x2b,0x41,0x5f,0x63,0xb9,0xc2,0x4a,0x83,0x54,0xc1,0xb2,0xac,0x97,0xc2,0x64,0x86,0x92,0xc2,0x66,0x1e,0x5e,0xc3,0x94,0xb,0xc9,0x40,0x31,0xbe,0xad,0xc2,0xdf,0x87,0xb9,0xc2,0xfe,0x64,0x1b,0xc3,0x5a,0xbb,0x8b,0x43,0x74,0x90,0x9d,0xc0,0xc9,0x76,0x45,0xc3,0xe0,0xde,0x29,0x42,0x53,0x56,0x74,0xc3,0xbe,0xf8,0x9a,0xc0,0x53,0x83,0x19,0x43,0x31,0x79,0x1f,0x43,0xea,0x30,0xe3,0xc2,0x3e,0xba,0x8c,0xc2,0x4c,0x87,0x9c,0xc2,0xcd,0xf3,0xa6,0x41,0xc,0xb7,0xb,0x43,0x70,0x1d,0x80,0x42,0xa8,0x4b,0xe1,0xc2,0xf1,0x61,0x90,0xc2,0x14,0xe3,0x2f,0xc2,0x5a,0x6,0xc0,0x41,0x25,0xaf,0x43,0x41,0x95,0x2f,0x8c,0x42,0xbe,0xf2,0x49,0x43,0x67,0xa8,0x92,0x41,0x5,0x6,0x3,0xc3,0x78,0x92,0xd2,0x42,0xe2,0xc2,0x20,0xc3,0xb6,0xa9,0x38,0x42,0x51,0xf3,0x67,0x42,0xee,0xb4,0xae,0x42,0xd7,0xf9,0x17,0x42,0x3e,0xfc,0x5f,0xc2,0x3e,0xc4,0x1e,0xc1,0xdd,0xd7,0x12,0x42,0x43,0x3c,0x99,0x40,0xca,0x7e,0x41,0xc1,0x37,0xf9,0x29,0x43,0xfb,0x98,0x1a,0x42,0x44,0x6,0x79,0xc2,0x32,0x3,0x3,0x43,0xe5,0x8f,0x14,0x43,0xeb,0xe5,0x9f,0xc1,0x44,0x35,0x32,0xc3,0xd8,0x8b,0xdd,0xbe,0xb,0x97,0xa6,0xc2,0x10,0x43,0x16,0xc2,0x2a,0xe8,0xf0,0xc2,0x2d,0x12,0x30,0xc2,0x66,0xa2,0xe4,0x42,0xac,0xa5,0xa8,0xc2,0x62,0x4b,0x4b,0x42,0x1a,0x57,0xe4,0x40,0x84,0xdd,0x19,0xc0,0xdc,0xd5,0x9,0x42,0xc5,0x73,0xc7,0xc2,0xc8,0xf2,0xb0,0xc2,0x3d,0xf4,0x9f,0x43,0x5e,0x95,0x6e,0x42,0x68,0x7f,0x18,0xc3,0x1f,0x83,0x96,0xc0,0x7b,0x3f,0x22,0xc1,0xdd,0xd8,0x8c,0xc2,0x2f,0x45,0x70,0x42,0x4b,0xe6,0xcd,0xc2,0xf0,0xe6,0x12,0xc2,0x28,0x83,0x65,0x42,0x21,0x7b,0x54,0x42,0x4e,0xcc,0xa5,0x42,0xbe,0x77,0xe9,0xc2,0x30,0xc7,0x3e,0xc3,0x77,0xdc,0x2a,0xc2,0x39,0x53,0x66,0x42,0x7,0xfa,0xd6,0xc2,0xa5,0x66,0x6,0x41,0xe0,0xeb,0xd1,0x42,0x75,0xd4,0xc6,0x42,0x24,0x4b,0x8a,0xc2,0x2,0x84,0xb5,0x42,0x2f,0x57,0x43,0x43,0x88,0x71,0x85,0xc1,0xe8,0xe6,0x70,0x42,0x98,0x70,0x95,0xc2,0xf2,0x2c,0xc5,0xc1,0xf1,0x19,0xb1,0x42,0xc,0x85,0xd7,0xc1,0x38,0xca,0xc7,0xc2,0x9,0x2a,0x93,0xc3,0x22,0xcf,0xd6,0x3f,0xa8,0xee,0xd4,0x41,0x82,0xa0,0x6e,0x42,0x63,0x2f,0x1f,0x43,0x40,0x13,0xf6,0xc2,0x83,0x18,0x78,0x42,0xed,0xa6,0xe1,0x42,0xfd,0x78,0x80,0x42,0xf,0xad,0xce,0x42,0x2b,0xa7,0x5d,0xc2,0x46,0x35,0xec,0xc2,0x85,0x40,0x58,0x43,0x6e,0x19,0xbc,0x42,0xfd,0xf4,0x3f,0xc2,0x2a,0xb0,0x52,0xc2,0x53,0x43,0x3f,0x42,0x9d,0xdb,0xb7,0xc1,0x93,0x6f,0xc3,0x41,0xad,0x6,0x1a,0xc3,0x98,0x9f,0x4b,0x42,0xee,0xc9,0x2b,0xc1,0x4d,0xc1,0xdf,0xc1,0xc8,0x6b,0xb0,0xc2,0x59,0xc4,0x5,0xc2,0x24,0x8e,0x78,0x43,0xaf,0xd,0x3b,0x43,0x32,0x22,0x1c,0xc3,0x1c,0x9c,0x71,0x43,0x2a,0x94,0x99,0x42,0x42,0x5c,0xe8,0xc1,0x34,0x1c,0xff,0xc1,0x3f,0x2c,0x32,0x42,0x91,0xf3,0x7,0x42,0x77,0x4b,0x63,0x42,0x38,0x3c,0x28,0x41,0x3,0x5,0x91,0xc2,0x51,0xf6,0x4c,0x41,0x76,0x7a,0x59,0x42,0x2a,0xe5,0xaa,0x41,0x4f,0x6d,0x24,0x43,0x4a,0xa7,0xf0,0x41,0xb1,0x5b,0x81,0xc2,0x84,0x68,0x72,0x42,0x6,0x45,0x41,0x42,0xb9,0x76,0x1f,0x42,0xc3,0x98,0xe5,0x42,0x33,0xe2,0xa6,0xc2,0xbc,0xd2,0x9f,0x42,0xe,0x8d,0x3,0xc0,0x93,0x24,0x59,0x43,0x5,0xea,0x64,0xc2,0x13,0x70,0x56,0xc3,0x4e,0x39,0xf7,0xc1,0xda,0xb1,0x3d,0xc3,0x6f,0x7b,0x93,0x42,0x47,0x4d,0xed,0x41,0x30,0x73,0x10,0xc1,0xb9,0x81,0x40,0xc3,0x84,0xc2,0x8f,0x42,0x90,0x80,0xac,0xc2,0x4e,0xa8,0x19,0xc2,0xfc,0x6e,0x55,0xc3,0x67,0x3f,0x84,0xc2,0x18,0xe8,0xef,0xc1,0x42,0x70,0x6,0xc3,0x87,0xa8,0x30,0x42,0xbf,0x3c,0xa7,0xc1,0x88,0x17,0x29,0x42,0xd4,0x4d,0xa7,0xc2,0xfa,0xb9,0x54,0x43,0x9e,0xb0,0xcf,0x40,0xaf,0xc0,0x4f,0x42,0x67,0x46,0x3e,0xc2,0xeb,0x45,0x53,0x40,0x84,0x77,0x52,0xc0,0x76,0x58,0xba,0x41,0xe4,0x6a,0x8,0x43,0x73,0x90,0xe0,0x41,0xaa,0x17,0x1b,0x42,0xed,0xc4,0x35,0xc2,0xc0,0x55,0x2,0xc2,0xc7,0xa5,0xac,0x42,0xa7,0xa9,0xbc,0x41,0xac,0x9d,0x25,0xc3,0xf7,0x97,0x6e,0xc1,0x9d,0x2b,0x23,0x42,0x15,0xda,0xb5,0x40,0x9f,0xe9,0x64,0x42,0x52,0x19,0xb4,0x41,0xd9,0x3e,0x10,0x43,0xce,0x34,0xfe,0xc1,0xba,0xb7,0xbf,0xc2,0x77,0x16,0x31,0x43,0x32,0x42,0x59,0xc2,0x3d,0x4f,0xb3,0xc2,0x7,0x33,0xd3,0xc2,0x9,0x7f,0x41,0x42,0xd7,0x1a,0x4d,0xc3,0x6a,0x59,0xf8,0x42,0x72,0xec,0x3f,0x43,0xc7,0x69,0x14,0xc1,0xf4,0x34,0x8d,0x41,0xb3,0xc9,0xfd,0xc2,0xce,0x9f,0x40,0x42,0x19,0xb1,0xb1,0x42,0x58,0x3e,0xcb,0xc1,0x49,0xf5,0xa5,0x42,0xbf,0x82,0x84,0x42,0x27,0xda,0xc4,0xc2,0xc5,0x7b,0xb4,0x42,0x9,0xf8,0x68,0xc3,0x2,0x65,0x8e,0xc2,0x2,0xd6,0xc,0xc2,0x4a,0xd4,0x25,0x43,0x82,0x30,0x7b,0xc2,0x66,0x71,0xe9,0xc1,0x27,0xb7,0xc8,0x42,0x15,0xc5,0xa0,0x42,0xb0,0x4f,0x24,0x43,0x39,0xb6,0x93,0xc2,0xee,0xa9,0x7e,0xc2,0x21,0x86,0xdd,0xc2,0x42,0x1e,0x96,0xc1,0x5,0xc4,0x37,0x42,0x10,0xb7,0xce,0x42,0xc9,0x37,0x58,0xc2,0xf5,0xb1,0xd9,0x42,0xa0,0x34,0x9b,0x41,0x44,0x32,0x60,0x43,0xce,0xe6,0x3d,0xc3,0xab,0x6b,0xa4,0x42,0x5b,0x37,0x3b,0x43,0xeb,0x8d,0xd5,0x41,0x37,0x6a,0xcf,0x41,0xba,0x1e,0xbc,0x42,0x3d,0xe5,0xcf,0x41,0xbc,0x4c,0xca,0x42,0x80,0xbb,0x62,0xc2,0x60,0x43,0x34,0xc3,0xab,0xb3,0x16,0x43,0x6f,0xd6,0xb1,0xc2,0xd9,0x37,0x2a,0xc3,0xb7,0xbd,0x9b,0x42,0x46,0xa4,0xe3,0x41,0x54,0xde,0x73,0x42,0x4,0xe1,0x97,0xc2,0xcf,0x80,0x88,0x40,0xcf,0xc9,0xb3,0xc2,0xa6,0xef,0x86,0xc0,0x50,0x9d,0x54,0x43,0xe9,0x1f,0xde,0xc2,0xfa,0x1f,0xd2,0x42,0x94,0xd3,0xa1,0xc1,0x22,0x37,0xb9,0x41,0xe5,0xa5,0x65,0xc2,0xe2,0x66,0xd4,0xc2,0x72,0x1a,0x5a,0x41,0x14,0x24,0xac,0xc1,0x6f,0x9d,0x27,0xc3,0x64,0x7b,0x86,0xc2,0xe8,0x99,0xc4,0xc2,0x75,0x4e,0x10,0xc3,0x4f,0x89,0x12,0x42,0x33,0xa5,0x9c,0xc2,0xe9,0x66,0x66,0x42,0x7,0x28,0x1e,0x42,0xb2,0x99,0xbe,0xc2,0x43,0x8,0xf7,0x42,0x90,0xfc,0xa1,0x42,0x9c,0xfd,0x2b,0x41,0x4f,0xd4,0x81,0xc2,0x46,0xd9,0xa6,0x42,0x1b,0x99,0x6f,0x41,0xf8,0x5a,0xbd,0x40,0xd4,0x70,0x98,0x41,0x9b,0xdb,0xdf,0x42,0xc0,0xa4,0x17,0x42,0x6b,0xc9,0x12,0x42,0xe,0xae,0x6,0x42,0x1,0xd4,0x76,0xc1,0xd6,0x25,0xfd,0xc2,0xac,0x20,0x5,0x43,0x35,0xc9,0x96,0xc2,0x9d,0x9b,0xc7,0x42,0xb0,0x51,0xbd,0xc2,0x53,0x8c,0x4,0x42,0x85,0x13,0xb5,0x42,0x12,0x99,0xcc,0x41,0x20,0x89,0x9,0x43,0x5a,0xf4,0xb4,0xc2,0x3e,0xef,0x19,0x42,0x20,0x8f,0xdb,0x42,0x27,0x3f,0x43,0x42,0xb2,0x39,0x9,0xc3,0xcb,0x1c,0x8,0x40,0x8,0x9b,0xb2,0x42,0xcb,0xbd,0x6c,0xc2,0x29,0x9d,0x5,0x43,0xd9,0x67,0x89,0xc2,0x98,0x2d,0x64,0xc1,0xef,0x1b,0xfd,0xbf,0x40,0x30,0x10,0x43,0x78,0x73,0x60,0xc0,0x12,0xb5,0x17,0x43,0x25,0xe7,0xae,0xc1,0xd1,0x2a,0xe,0xc2,0xd0,0xd9,0xe2,0x42,0x81,0xa4,0xfc,0xc2,0xc1,0xfc,0x73,0xc3,0x0,0xdd,0xb,0xc3,0x33,0x63,0xdb,0x42,0x39,0xc7,0x28,0x43,0x8f,0x6d,0xd0,0xc1,0xa8,0x7b,0x14,0xc2,0x35,0xb8,0xaf,0xc2,0x43,0x96,0x37,0x42,0x40,0x8c,0x94,0xc2,0x1e,0x60,0x99,0x42,0x74,0xba,0x2e,0x41,0xe8,0x3d,0xc6,0xc2,0x6e,0xc,0x30,0xc2,0x8d,0xc5,0x8a,0xc2,0x9c,0x3d,0xae,0xbf,0xa2,0x27,0x4a,0x42,0x9,0x49,0xa0,0x42,0xeb,0x97,0xfc,0xc2,0xf8,0x2e,0x1b,0xc3,0x1d,0x11,0xd2,0xc1,0x13,0x5d,0xe1,0x42,0xe7,0x20,0xe8,0xc2,0xb8,0x85,0xd4,0x42,0xd8,0xdd,0x14,0xc3,0x2e,0x50,0x7c,0x40,0xe7,0x5d,0x30,0x43,0x2c,0xfb,0xdf,0xc2,0xb8,0x84,0xde,0x41,0x74,0x52,0xa7,0xc2,0x9b,0xfa,0x25,0xc2,0x14,0x74,0x15,0x43,0xb5,0x2e,0xb,0xc3,0x1a,0xc5,0x45,0x42,0xb9,0xb0,0x72,0xc3,0x90,0x22,0x0,0x42,0x97,0x56,0xca,0x41,0x37,0xea,0x3a,0x43,0xc0,0x2f,0x9a,0x40,0xf9,0x35,0x3c,0x43,0x1f,0x30,0xae,0x42,0xb1,0x9d,0x66,0xc3,0xa6,0x3,0xc0,0xc2,0x44,0xec,0xaf,0x41,0x80,0x99,0x5e,0x42,0x53,0x87,0x56,0xc2,0xe4,0x1,0xf7,0xc0,0xc0,0xe1,0x9e,0xc2,0xd4,0x27,0x9c,0x43,0xd8,0xca,0xc8,0x41,0x2f,0xe8,0x3f,0x42,0xe6,0xf8,0x58,0x41,0xfc,0x70,0x76,0x43,0x1f,0xc9,0xd4,0xc2,0xed,0x8c,0x41,0xc3,0x47,0x32,0x9a,0x41,0xa9,0xfe,0xa6,0x41,0xbf,0xc9,0x46,0x43,0x21,0x92,0x5,0xc3,0x9d,0xd6,0x34,0xc2,0xdb,0xb5,0x55,0x43,0xe2,0x1b,0x14,0x42,0xaa,0xfd,0xf2,0xc2,0xf7,0x64,0x0,0x43,0xf2,0xc7,0x81,0xc2,0xf2,0x8c,0x8b,0x42,0x7f,0x2c,0x17,0x43,0x57,0x7,0x71,0xc1,0x65,0xf9,0x3,0xc3,0x96,0x3c,0x99,0x42,0x31,0xa5,0x57,0xc2,0xc9,0x74,0x2c,0xc1,0x9e,0x3,0x94,0x42,0x8e,0x96,0xb8,0xc1,0xf,0xda,0xc,0x43,0xe6,0x39,0x28,0xc2,0xd0,0xed,0x9f,0xc2,0x12,0x3,0xee,0x42,0x7c,0x6c,0x55,0x42,0x79,0x19,0xe3,0xc1,0x16,0xf0,0xbe,0x42,0xa6,0x26,0xce,0x42,0xa0,0xc8,0x10,0xc3,0x58,0x5c,0x4,0xc2,0x5e,0xb,0xee,0x42,0xd4,0x45,0x6b,0x42,0x6f,0xe7,0x0,0x42,0x4b,0xd7,0x3,0xc3,0x79,0xae,0x61,0x42,0xb5,0x58,0x8,0xc2,0x53,0x9c,0xd5,0x41,0x27,0xac,0x96,0xc2,0xb7,0xb3,0x7,0xc3,0x19,0xac,0x34,0xc1,0x3c,0xaa,0x29,0xc3,0x5c,0xd4,0x79,0x41,0x2d,0x32,0xf0,0x42,0xf5,0x7d,0x5,0x43,0x2a,0xe0,0xcf,0x41,0xe7,0x45,0x88,0xc2,0x85,0x6e,0x4e,0xc2,0x98,0xe4,0xe,0x43,0xbc,0x18,0xe2,0x41,0xb0,0xcf,0xd6,0xc2,0xfb,0x23,0x7a,0xc2,0xcb,0x34,0x25,0xc2,0x69,0xe0,0xee,0x41,0xd9,0x69,0x8,0x43,0x15,0x7c,0x2b,0x43,0x25,0xce,0x3d,0x42,0x4e,0xc8,0x15,0xc2,0xee,0x13,0x90,0xc2,0x58,0x81,0x4d,0x43,0xa2,0x7e,0xb5,0xc1,0xfd,0xa,0x78,0x42,0x57,0x86,0xf1,0x41,0xff,0x54,0x2e,0x43,0xf2,0x10,0x93,0x40,0xc0,0xf,0x29,0x41,0x5a,0x2b,0x83,0xc2,0xb8,0x21,0x8d,0x42,0x9c,0x2e,0xa5,0x42,0x6a,0xac,0x48,0x40,0x7f,0xa4,0x5d,0x41,0x2d,0x1e,0x81,0xc2,0x6f,0xac,0xce,0x42,0x51,0x18,0x1b,0xc3,0x2f,0x48,0x38,0x42,0x11,0x62,0xa8,0xc2,0x47,0xf9,0x12,0x43,0x75,0xfa,0xee,0xc2,0xac,0x68,0x7e,0x42,0x22,0x81,0x9a,0xc2,0x82,0xfc,0x3a,0xc2,0xc,0xaa,0x24,0x42,0xca,0xa9,0xc0,0x42,0x81,0xdc,0x5e,0xc1,0xd,0xfd,0xc8,0x42,0x1b,0x5e,0x6d,0xc1,0xe2,0x43,0x59,0xc1,0xef,0xa4,0x99,0x42,0xd2,0xd6,0x29,0x43,0x51,0xae,0xe5,0x42,0xf9,0x7b,0xbd,0xc2,0x34,0xe6,0xe0,0x42,0x36,0xb6,0xfd,0x42,0xd8,0x8f,0x3a,0x43,0xd2,0xab,0x1c,0xc2,0xc0,0xca,0xf1,0xc1,0x70,0x54,0x48,0xc3,0x7a,0x54,0xa9,0xc0,0x6c,0x90,0x13,0xc1,0x3e,0x3a,0xd4,0x42,0x1c,0xe7,0x88,0xc2,0xe1,0x48,0xce,0xc2,0x2e,0xfa,0xe4,0x42,0xa0,0x72,0xca,0xc2,0x84,0x14,0xba,0xc2,0xb,0x99,0xf6,0xc2,0x2,0x46,0xf1,0xc2,0x1,0xa,0x57,0x41,0x6d,0xa0,0xd7,0xc2,0x24,0x86,0xf2,0x42,0x6,0xb4,0x8a,0x42,0xb9,0x30,0xd3,0x42,0x6d,0x4a,0x1d,0x41,0x58,0x2e,0x96,0xc1,0x4b,0x2d,0xd8,0xc0,0x6e,0xe1,0xf,0xc3,0x13,0x50,0xc0,0xc2,0xe4,0x5e,0x94,0xc2,0x7f,0xd4,0x93,0x40,0x70,0x41,0xc9,0xbf,0xf,0xd3,0x3e,0xc2,0x63,0xb5,0x87,0x42,0x57,0x52,0x10,0xc3,0xa,0xfe,0xe9,0xc0,0x9e,0x94,0xb,0xc3,0x93,0x5,0x68,0x42,0x61,0x44,0x3b,0xc2,0x73,0x5e,0xc1,0x42,0xfb,0xa8,0x89,0xc1,0xb7,0xf7,0x9b,0xc2,0x86,0x37,0x7f,0x42,0x5e,0xf0,0x92,0xc1,0x4f,0x43,0xc,0xc2,0x8e,0x49,0x17,0x41,0x97,0x7c,0x9,0xc2,0x6a,0xbb,0xe7,0xc1,0x7c,0xd6,0x11,0xc2,0x6c,0x4c,0xb7,0xc2,0xa7,0x65,0x0,0xc2,0x23,0xc1,0x73,0xc2,0xcb,0xc8,0xc1,0x42,0xb4,0x7f,0xa3,0x41,0xc2,0x55,0x8,0xc3,0x76,0x27,0xdf,0x41,0x1e,0x63,0xff,0x42,0x91,0x81,0xf8,0x42,0x82,0xf8,0x18,0xc2,0x67,0xbe,0xd5,0x42,0xb3,0x69,0xc0,0x42,0x77,0xd6,0x96,0x43,0x3d,0x91,0x2,0xc3,0x6d,0xc9,0xb8,0x42,0x56,0x84,0xa8,0x42,0x26,0x7,0x21,0x41,0xc9,0xb4,0xea,0xc2,0x27,0x78,0xa2,0x42,0xe,0x7f,0x9c,0x42,0x72,0x30,0x18,0x43,0xe7,0xf8,0xbd,0x41,0x10,0xda,0x51,0xc0,0xd2,0xce,0xfc,0x41,0xa5,0xba,0x6,0x42,0xac,0x42,0xa4,0xc2,0x39,0x6,0x33,0x43,0x25,0xf0,0xf1,0x42,0x8a,0x6b,0x84,0x41,0x65,0x75,0xb7,0x42,0x2e,0x13,0x77,0x42,0xdd,0xa6,0xb2,0x42,0xa2,0xdf,0xfb,0x41,0xce,0x71,0xdc,0xc2,0x20,0x96,0x54,0xbe,0x13,0x7,0xe4,0x42,0x49,0x84,0x5c,0x42,0x81,0xee,0x53,0x42,0x82,0x23,0xec,0xc0,0x21,0x7e,0x68,0x42,0xb6,0xe7,0xe5,0xc2,0x7,0xa6,0x46,0x42,0x5c,0x23,0x19,0x42,0xeb,0x60,0xd2,0x41,0x78,0x66,0xd5,0x42,0x64,0x9a,0x28,0xc2,0x15,0x9c,0xc,0xc2,0x34,0xa,0xb3,0x40,0xe3,0x2c,0xbf,0xc2,0x32,0xdf,0xf6,0xc1,0x27,0x2d,0x84,0xc2,0xb3,0xea,0x10,0x43,0x6c,0x40,0x94,0xc2,0x68,0xcc,0x40,0x42,0xc2,0xab,0xea,0x41,0xb8,0xec,0xbc,0x42,0xe4,0x1e,0x98,0xc2,0x13,0xe5,0xba,0x42,0x40,0xe8,0xaf,0xc2,0x5,0x99,0xf4,0xc1,0xce,0x2c,0x39,0x41,0x8a,0x62,0x87,0x42,0x2e,0x79,0xa4,0x41,0x22,0xd6,0x87,0xc2,0xa1,0xc7,0x8f,0xc2,0x8e,0x70,0x2,0x41,0x94,0xc0,0x9,0x43,0xa2,0x14,0x80,0x41,0x3c,0xa0,0x2,0xc1,0xbc,0xee,0xee,0xc2,0x4a,0x16,0x30,0x42,0x4e,0x90,0x84,0xc2,0xce,0x85,0x86,0xc1,0x2f,0x60,0x97,0xc2,0xdf,0xa0,0xbd,0x41,0x76,0xb,0x8d,0x42,0x9f,0xac,0x32,0xc0,0x5e,0xe1,0xaa,0x42,0x89,0x7,0x50,0x41,0x30,0xf6,0x8b,0x41,0x32,0x95,0x4c,0xc0,0x8c,0xe6,0x4,0xc2,0x57,0xa0,0x35,0x43,0x15,0xf,0x53,0x43,0x63,0x39,0x16,0x42,0x4b,0xcf,0x33,0x43,0x24,0xbc,0xbf,0xc1,0xb1,0x57,0x3e,0xc3,0xa,0x41,0x90,0x42,0xc6,0x28,0x6f,0xc1,0xf4,0x2e,0x65,0x42,0x1,0x9c,0x99,0x42,0xa4,0x7d,0x93,0xc1,0x28,0xeb,0xdc,0xc2,0xaa,0x67,0x8e,0x42,0x6c,0xf,0x22,0xc3,0x62,0x5,0x88,0x40,0x35,0x3f,0x94,0xc0,0x46,0xea,0xd6,0x42,0xf4,0xed,0x3,0x43,0x17,0x1f,0xd,0x43,0xb4,0x8a,0x84,0x42,0xcf,0xb,0x0,0x42,0xf0,0x94,0xc6,0xc1,0xa,0x30,0xa3,0xc2,0x90,0xc7,0x53,0x3f,0x73,0xa3,0xb9,0xc0,0x21,0x1e,0xc4,0x41,0x4e,0xba,0x6b,0xc1,0x6e,0xb7,0x2f,0xc1,0x29,0xf3,0xeb,0x40,0x8,0x24,0xba,0x42,0xd5,0xa4,0xf8,0xc2,0x14,0xc2,0x32,0x42,0x5,0x78,0x62,0xc2,0x86,0xc4,0x4f,0xc0,0x8f,0x61,0xaa,0xc2,0x9e,0xb,0x97,0x42,0xbd,0x31,0x19,0xc3,0xa2,0x8a,0x15,0xc2,0xaa,0x79,0x82,0x40,0x61,0xc7,0xee,0xc2,0x63,0x22,0x1d,0x43,0x79,0x24,0x30,0x42,0xd7,0xfe,0xcf,0xc2,0x62,0x4c,0xa9,0x41,0x32,0xfa,0x93,0x42,0xa0,0x7a,0xd7,0xc0,0x8a,0x79,0x7e,0xc1,0x9d,0x3a,0x8b,0x41,0x81,0xf7,0x9e,0x42,0x3d,0xa6,0x2,0xc2,0x95,0x2b,0xe,0xc3,0x21,0x76,0xe,0x42,0x75,0xdc,0x97,0x42,0x87,0xd8,0x16,0x43,0xcf,0x20,0x5a,0xc2,0xa,0xfa,0x8f,0x40,0x8d,0xd6,0x7b,0xc2,0x4a,0xe0,0xbf,0xc2,0x41,0xdf,0xb8,0xc2,0x6,0xfe,0xf4,0xc2,0x6b,0x25,0x94,0x42,0xb8,0xcf,0xb4,0xc2,0xbc,0xba,0xb3,0x42,0xf9,0x30,0x96,0xc2,0xe3,0x58,0xd0,0x42,0x3f,0x97,0xb3,0xc2,0xef,0x76,0x8e,0x42,0x35,0xd9,0x9c,0x41,0xf6,0x67,0x3f,0xc1,0x1,0xc1,0xa3,0xc2,0xb5,0x43,0xa5,0xc2,0x63,0x55,0x7,0xc2,0x8a,0xec,0xb3,0x42,0xf4,0x79,0x26,0x41,0xb,0x55,0xd,0x43,0x2,0x6e,0x92,0x40,0x1b,0x8d,0x7,0xc2,0xa7,0xcc,0x8d,0xc0,0x4,0x24,0x3a,0x42,0xda,0x37,0x9d,0xc0,0x9f,0xda,0x7b,0xc2,0x56,0x9,0xdd,0x42,0x7e,0xda,0x78,0xc2,0xda,0xa9,0x5,0xc2,0x42,0x9f,0xcc,0xc2,0x5c,0xef,0xbe,0xc0,0x47,0xa3,0xaa,0x42,0xd3,0xfa,0x9f,0xc2,0xc9,0xd9,0xf,0x43,0x89,0x80,0xa,0x42,0x96,0x8b,0xa3,0xc1,0x36,0x20,0xa6,0x41,0xf1,0x68,0x0,0xc1,0x18,0xd8,0x7,0x43,0x47,0x5a,0x57,0x43,0x52,0xb7,0x13,0xc3,0x86,0xa3,0x44,0xc2,0xe5,0xef,0xa4,0xc1,0xc5,0x7e,0xf5,0x41,0xfd,0x2b,0x15,0x43,0x8f,0xd9,0xc4,0x42,0x2d,0xd7,0x56,0x43,0x20,0xc,0xaf,0xc2,0x40,0x23,0x38,0xc2,0x6d,0xc6,0xd1,0xc1,0x70,0x8a,0x3d,0x42,0xc2,0x11,0x88,0x42,0xb6,0x6c,0x44,0xc3,0xbc,0xa8,0x22,0xc0,0x22,0xd8,0xce,0xc0,0x22,0x6d,0x2c,0x42,0x6,0xf9,0x23,0x42,0xec,0xab,0xba,0xc2,0x84,0x3b,0x94,0xc1,0x4e,0xb8,0xeb,0x3f,0x26,0x65,0xa,0x42,0x36,0x4f,0xa,0x43,0x8a,0x20,0x47,0xc1,0xf8,0xda,0x70,0xc2,0x19,0x3a,0x50,0xc2,0x77,0xc,0x60,0x42,0xc9,0x9,0xee,0xc2,0xea,0x5b,0xfd,0xc2,0x89,0x2e,0x9,0x43,0x12,0x8c,0x9d,0x42,0x1a,0xef,0x2f,0xc3,0xbe,0x2d,0xd4,0xc2,0x92,0x3e,0xe6,0x42,0xf2,0x94,0x95,0x42,0xc8,0x26,0xd1,0x41,0x92,0x39,0xc0,0x41,0x8a,0x78,0x60,0x42,0xbd,0x63,0xcf,0x42,0x2b,0xb7,0xc1,0xc2,0x73,0xfe,0x5,0x43,0xb8,0xf7,0xa,0xc3,0xd8,0xb,0x43,0x42,0x47,0x3c,0x3b,0x43,0x7c,0x71,0x92,0x42,0x16,0x9e,0x94,0xc2,0x51,0xef,0x53,0xc2,0xf,0x2,0xe,0x43,0x12,0xd4,0x96,0x42,0x9f,0xfc,0xf1,0xc1,0xff,0x50,0x5c,0xc2,0x47,0xf9,0xf0,0x41,0x24,0x2a,0xf1,0xc1,0x25,0x43,0x1e,0x43,0xdd,0xab,0x2d,0xc3,0x7a,0x80,0x42,0x43,0x4f,0x1e,0x1,0xc3,0x6c,0xad,0x81,0xc1,0xe6,0xea,0x5d,0x42,0x54,0xdb,0x11,0x43,0xf9,0xc3,0x14,0xc3,0x6f,0x80,0x1a,0x41,0xb9,0x68,0x68,0xc2,0x69,0xa2,0x1b,0xc0,0x3f,0xe5,0x4,0x43,0xa1,0x69,0x55,0x42,0x71,0x5d,0x31,0xc3,0xa,0xee,0xb8,0x41,0x7c,0x5f,0xce,0xc2,0xeb,0x20,0xea,0xc1,0x3b,0x43,0x35,0xc3,0xc1,0xf4,0xe2,0xc2,0x27,0x62,0x1b,0x42,0x5c,0xec,0x7,0xc2,0xcd,0x4e,0x75,0xc2,0xdd,0xe8,0x3a,0xc2,0xf8,0xaf,0x5e,0xc2,0x9d,0x4d,0xbf,0xc2,0x7a,0x1b,0xbe,0x40,0xab,0xee,0x1f,0xc3,0x2a,0x86,0xc,0x43,0x8,0x94,0x54,0x3f,0xad,0x94,0x20,0x43,0x39,0xa5,0x89,0x42,0xc2,0xfb,0xbb,0x41,0x45,0x29,0xc9,0x41,0x25,0x7d,0x8d,0xc2,0x80,0x98,0xb6,0xc2,0xeb,0x50,0x35,0xc2,0xd,0x50,0x46,0xc2,0x9e,0x4d,0xfa,0x41,0xb4,0x24,0x21,0xc3,0x8a,0x3,0x10,0xc2,0x8b,0xf3,0x98,0xc2,0x51,0xa9,0xb3,0xc2,0x81,0xd9,0xc2,0xbf,0x6,0x4a,0x2f,0xc3,0x61,0x89,0x7,0xc3,0x18,0x4e,0xb6,0xc1,0x8c,0xfb,0xd7,0x41,0x9,0x69,0x56,0xc2,0x45,0x31,0x87,0x40,0x2d,0xa2,0xc,0xc3,0xcb,0xef,0x82,0xc2,0xc0,0x59,0xf,0xc1,0x3f,0xe1,0xbb,0xc1,0xa3,0xb2,0xa8,0x42,0xf8,0xa5,0x36,0x42,0xbb,0x4,0xe,0xc3,0x10,0xf3,0xb7,0x42,0x7,0x2,0x18,0x42,0x8e,0x4a,0xb3,0x42,0x90,0x90,0x43,0xc2,0xfd,0xf1,0x4a,0xc1,0x3c,0xc7,0x7f,0xc3,0x82,0x1,0x3f,0x41,0x5f,0xbe,0x3c,0xc3,0x2a,0x72,0x11,0x43,0xf8,0x2e,0xae,0x42,0xc,0x77,0xb5,0xc1,0x1d,0x4,0xfc,0x40,0x9a,0x3a,0x31,0x42,0x42,0xf3,0x2f,0xc0,0x2f,0x21,0x1a,0x43,0xa3,0xe6,0xed,0x41,0x2,0xc3,0x56,0xc2,0xa1,0xf7,0x3b,0x42,0x1d,0xc6,0xd9,0x42,0x1b,0x81,0xda,0xc2,0x2a,0xaf,0xb0,0x42,0xf6,0x68,0x25,0xc1,0x55,0xdb,0xa0,0xc2,0xe7,0x6f,0x66,0xc0,0x19,0x75,0xb3,0x42,0x84,0xb9,0xc1,0x41,0x9a,0xdd,0xba,0x41,0x8c,0x1,0x44,0x42,0x1d,0x6d,0x83,0x40,0xa5,0x27,0xc4,0xc2,0xfc,0x4c,0x9,0xc3,0x22,0x50,0xb1,0x42,0xf5,0x85,0xc4,0x42,0xd6,0x9f,0x0,0x42,0x73,0x17,0xb,0xc2,0xae,0xc2,0x47,0x42,0xab,0x25,0x87,0x41,0x78,0x5f,0xb4,0xc2,0x7,0x5,0x5b,0x41,0xd1,0xa1,0x24,0x42,0xc6,0xca,0x64,0x42,0xd,0x14,0xf0,0xc0,0xba,0x3b,0x18,0xc2,0x41,0xf1,0x12,0x42,0x8e,0x80,0xa7,0x40,0xe2,0x3b,0x7f,0x41,0xbb,0x40,0xab,0x41,0x9d,0xed,0x2f,0xc3,0x14,0xf0,0x81,0x43,0xae,0xf8,0x4,0x43,0x29,0x24,0xb7,0x41,0x1b,0xf0,0x2e,0xc2,0x62,0x57,0xa2,0xc2,0x1a,0xc5,0xc9,0xc2,0x5,0xa2,0x24,0xc2,0x1c,0xcf,0xe8,0x40,0x30,0xdc,0x4e,0xc1,0xeb,0xc,0x4e,0xc1,0xf2,0xf8,0x28,0xc1,0x37,0x62,0xf,0x42,0xe3,0x74,0x17,0x42,0x92,0x71,0xe8,0xc2,0x9,0x62,0x9d,0xc0,0xe6,0xa1,0x94,0xc1,0x5c,0xdd,0x13,0x43,0x13,0x6d,0xe7,0xc0,0x69,0xf4,0x7e,0x42,0xbd,0x5e,0xe4,0xc0,0xfb,0x82,0x17,0x42,0x24,0x82,0xdd,0x42,0xb2,0xeb,0x44,0xc2,0x3e,0xd8,0x54,0xc3,0xf3,0x1,0x82,0x42,0xdf,0xdb,0x1b,0xc2,0xc4,0xb9,0xf9,0x41,0x76,0xaa,0x9a,0xc1,0x73,0xc2,0xc1,0xc2,0xd8,0x14,0x8c,0xc1,0x1e,0xbb,0xbc,0x41,0x60,0xce,0x88,0xc2,0xc0,0x88,0x87,0x42,0x44,0x4c,0x1a,0x42,0x25,0x1c,0x99,0x41,0xb,0x2e,0x69,0xc3,0x5e,0xe,0x12,0xc3,0xfe,0xd0,0x21,0x43,0xcf,0xad,0x7a,0x41,0xbb,0x82,0x9a,0x42,0x2c,0x7c,0xd9,0x42,0x66,0xc0,0x6e,0x42,0x84,0xde,0xe4,0x40,0xf7,0x51,0x3,0x41,0xdf,0xd4,0x16,0xc3,0x3c,0x74,0x11,0xc3,0xde,0x65,0xf,0x43,0x46,0x14,0xcf,0xc2,0x74,0x59,0x44,0xc2,0xd8,0x96,0x75,0x42,0xec,0xca,0x37,0xc3,0x29,0xf4,0x41,0x43,0x15,0xfd,0x35,0xc1,0xf1,0x87,0x1,0x43,0x2a,0x7d,0xa7,0xc2,0x11,0x1b,0xe5,0x42,0x5c,0x61,0x8e,0xc1,0x80,0x4f,0xc0,0xc2,0xf1,0x5f,0xa,0xc3,0xa3,0xd4,0x10,0x43,0x42,0x55,0x90,0xc3,0xdc,0xca,0xe,0x43,0xcd,0xe8,0x2a,0x42,0x48,0x40,0xb7,0x42,0x66,0xf0,0xce,0xc2,0xed,0x74,0x98,0x41,0x4c,0x1d,0xc0,0x40,0xb8,0xe0,0xc,0xc2,0xee,0xa1,0xeb,0xc1,0xa5,0x79,0x2,0xc3,0x60,0x3e,0x80,0x43,0x88,0xcd,0x12,0xc0,0x15,0x68,0x3f,0xc1,0xb7,0xfb,0x56,0x42,0xae,0x63,0xf,0x43,0x29,0x35,0x6c,0x42,0xe4,0xf9,0x52,0x43,0x13,0x64,0x87,0xc2,0xd8,0x45,0x13,0x41,0xcf,0x6,0x88,0x42,0xda,0x9c,0x11,0x43,0x19,0x24,0x4,0x43,0xd4,0xa4,0x19,0xc1,0x70,0x40,0x48,0x40,0x1c,0x38,0xfd,0x41,0x5,0xe,0x22,0x41,0xa0,0xb1,0x4d,0xc3,0xd1,0xfa,0xa8,0x42,0x6f,0x1e,0xf1,0xc2,0x59,0x71,0x36,0x42,0x4e,0xee,0x18,0xc3,0xa5,0x7b,0x50,0xc3,0xa8,0x81,0x2b,0xc3,0xf8,0x88,0x95,0x42,0x8f,0x8a,0xe0,0xc2,0xa0,0x49,0xc0,0xc2,0x2b,0xb7,0x19,0xc1,0xc7,0x59,0xeb,0x41,0xf7,0xaa,0x84,0xc2,0x77,0x7,0x2,0xc3,0x24,0xed,0x11,0x43,0xb5,0xba,0x8,0xc3,0x8,0x79,0x82,0xc3,0x1a,0xd6,0xd0,0x42,0x1e,0x77,0x4c,0xc1,0x57,0x3c,0xad,0xc2,0xaf,0xe,0x4c,0xc3,0x99,0x5b,0x8c,0xc2,0x16,0xed,0xf0,0x40,0xd2,0x9f,0x1c,0x43,0x8f,0x92,0x20,0xc3,0x44,0x49,0xf,0xc1,0x11,0xcc,0x15,0x43,0x12,0xf0,0xf2,0xc1,0xf,0x8e,0x65,0x41,0xf8,0xfa,0x55,0x41,0x5,0x47,0xf3,0x40,0x4c,0xfc,0xd4,0x42,0x1a,0xdd,0xe3,0x42,0x78,0x25,0xb1,0xc2,0x45,0xea,0x7f,0x41,0x7c,0xc9,0x71,0x42,0x9f,0xb1,0x37,0xc3,0xce,0xff,0x4f,0x42,0xc8,0x8f,0xd3,0xc1,0x8c,0xa,0xa2,0x42,0x76,0x92,0x6,0xc3,0x2e,0x8f,0x43,0xc1,0xcd,0xb8,0x61,0x42,0xe4,0x6b,0x3,0xc3,0xc5,0x80,0xdb,0x41,0xb6,0x57,0x18,0xc3,0x56,0x9a,0xc5,0x42,0x7,0x92,0x61,0x42,0x5b,0xde,0x63,0x42,0xac,0x67,0x78,0xc3,0xf6,0x47,0xcd,0xc2,0x46,0xde,0xda,0x41,0x24,0x3,0x35,0x42,0x67,0x10,0x92,0x42,0x35,0xa6,0x4b,0xc2,0xe9,0xfd,0x29,0x43,0x1d,0x90,0x83,0xc2,0x66,0xfa,0x31,0x42,0x91,0x72,0x70,0x42,0x3f,0xee,0x6c,0xc2,0xeb,0x65,0x43,0x42,0xcb,0x31,0x2c,0x42,0x29,0x4,0x48,0x42,0x6b,0x9,0x47,0xc2,0xf4,0x4,0xa0,0xc1,0xc3,0x5b,0xbb,0xc2,0x46,0x19,0x4c,0xc2,0x20,0xaa,0x3d,0xc2,0x73,0x8b,0x4a,0xc2,0x1c,0xd2,0xe7,0x40,0x96,0x66,0x60,0xc2,0x2f,0x96,0x5f,0x42,0xff,0x1,0x98,0x42,0xdf,0xcd,0x35,0x42,0xc7,0x9e,0x2d,0x42,0x9c,0xf1,0x5b,0x41,0x6f,0x7a,0xfc,0x42,0xb7,0xd3,0xb4,0xc2,0x71,0xad,0x1f,0xc2,0xd4,0xe8,0xd4,0xc1,0xf9,0x4c,0xf3,0xc2,0xed,0x1e,0xd8,0xc2,0x44,0x59,0x97,0x42,0x8,0x82,0xa6,0xc1,0x52,0x22,0x52,0x42,0x24,0xb0,0x74,0x42,0xd,0xb,0xe5,0xc1,0x37,0xac,0x89,0x42,0x5e,0xa6,0xda,0xc2,0x9f,0xf2,0x40,0x43,0x54,0x1b,0xbc,0xc2,0xa7,0x27,0x2f,0x41,0x68,0x85,0x56,0x42,0x97,0x5b,0x52,0x42,0x16,0x84,0xa,0xc2,0x16,0x63,0x21,0xc3,0x45,0x69,0xf1,0xc1,0xc0,0xdc,0xce,0xc2,0x86,0x6d,0x40,0xc2,0x6,0xa3,0xe1,0x3f,0xaa,0xf4,0xc5,0xc1,0xcb,0x89,0xc4,0x41,0x91,0x2,0x19,0xc2,0x14,0xdd,0x25,0x43,0x53,0xac,0xf2,0xc2,0x7c,0xcf,0x59,0xc2,0x70,0x36,0x57,0x43,0x12,0x53,0x3,0xc3,0x30,0xee,0x86,0xc2,0x70,0x93,0xcc,0xc2,0x5d,0xc9,0x76,0xc2,0x8f,0x3,0x40,0xc3,0x83,0x1c,0x94,0xc2,0xd7,0x60,0x9c,0x41,0x82,0x1b,0x32,0xc3,0x5b,0x97,0x8e,0x40,0xa7,0x8a,0x85,0xc1,0x56,0x74,0x65,0x42,0x81,0xbb,0xd1,0xc2,0x6f,0xee,0x6b,0xc2,0x9a,0x59,0xa2,0x41,0x8a,0x6d,0x5,0xc2,0xb,0x0,0xcd,0xc2,0xfb,0xd8,0x83,0xc1,0x60,0xe3,0xd6,0xc0,0x6d,0x13,0xb,0x43,0xa8,0xf6,0x4c,0x41,0x3d,0x52,0x1,0x43,0xa6,0x10,0xc1,0xc1,0xa,0xfb,0xce,0x42,0x80,0xbd,0x40,0xc2,0x8f,0xd2,0xcb,0x42,0x45,0xcc,0x8d,0x42,0xa7,0x66,0x6,0xc2,0xe7,0xcd,0x9e,0x42,0x9d,0x2a,0x81,0x42,0xc2,0x19,0x2d,0xc3,0x97,0xe5,0x5,0xc2,0xae,0x96,0xd0,0xc2,0x68,0x29,0xae,0xc2,0x86,0xd5,0xa,0xc3,0xef,0x0,0xd8,0xc2,0x91,0x89,0x80,0xc3,0x4b,0xd,0xb3,0x42,0xe4,0x4e,0xf0,0x42,0xce,0xb1,0x5d,0xc2,0x9e,0x14,0x8a,0x42,0xd7,0x9a,0xa1,0x42,0xd7,0x5f,0x72,0x41,0xd,0x1a,0x66,0x43,0x1,0x81,0x1b,0xc3,0x67,0xea,0x23,0x43,0x3d,0x96,0x62,0x42,0x10,0x9f,0x28,0x42,0xe0,0x39,0x11,0x43,0xa9,0x9,0x11,0x43,0xd9,0x6a,0xb4,0xc2,0xef,0xc3,0xb7,0x42,0xcd,0x36,0xe1,0xc2,0xb6,0x42,0x9e,0x41,0x88,0x9b,0xe5,0x42,0x8a,0x58,0x25,0x43,0xd0,0xfb,0xb6,0x42,0x43,0xe8,0x93,0xc2,0xde,0xb1,0xcf,0x42,0x57,0x4f,0x25,0xc2,0x50,0x46,0x8c,0xc1,0xa6,0xb7,0x83,0xc2,0x4,0xf0,0x2c,0xc1,0x68,0xec,0xd5,0xc2,0x56,0x51,0xd,0xc1,0x0,0xbf,0x7c,0x40,0x65,0xf2,0xb,0x40,0xde,0x20,0xdd,0x41,0xa0,0xe2,0x12,0x43,0x1f,0x8f,0x42,0x43,0x7,0x3d,0x8d,0x42,0x52,0x16,0xff,0x41,0x61,0x70,0xfa,0x41,0x33,0xa4,0xac,0xc2,0x7a,0xd5,0x24,0xc2,0xee,0x9a,0x23,0x42,0x2,0x19,0x3d,0x43,0x5,0x68,0x78,0xc3,0x8c,0x42,0x8b,0xc2,0xa,0x16,0x23,0x43,0xf0,0xe2,0x41,0x42,0xcf,0x82,0xec,0x42,0xa4,0x1a,0xcb,0x41,0x91,0xa3,0xf,0x41,0xfa,0xfe,0xf2,0x41,0xf7,0x91,0x41,0xc2,0xbc,0x2,0x7f,0xbf,0x2b,0xf1,0x22,0xc3,0x8c,0xcb,0xaf,0xc2,0x4a,0x50,0x0,0x42,0xda,0x2a,0x12,0x43,0x3f,0x6,0x98,0x42,0x31,0x9c,0x52,0x42,0x82,0x1b,0x91,0xc3,0xc,0xbf,0xfc,0x42,0x33,0x1f,0xc7,0xc2,0x6c,0x9,0x14,0x43,0x7f,0xbb,0x15,0xc3,0x1a,0x98,0x40,0xc3,0x83,0xe9,0x1,0xc3,0x33,0x54,0x5c,0xc1,0x55,0xb2,0x44,0x42,0x90,0x7f,0x9e,0x41,0xcd,0x14,0x9,0xc1,0xe5,0xc0,0x8c,0xc2,0x42,0x96,0xdf,0x41,0xc7,0xf0,0xe4,0xc2,0x9,0x29,0xa,0x43,0x85,0x74,0x1c,0xc3,0x59,0x41,0x9d,0x42,0x81,0x61,0x83,0x42,0x29,0xd,0x8c,0xc3,0xdd,0xd3,0x5c,0xc2,0xbf,0xe,0x99,0xc2,0x5e,0x21,0x3d,0xc3,0x76,0xc1,0x5e,0xbf,0xf1,0x3e,0xfe,0xc2,0x5f,0x69,0x92,0x43,0x77,0x56,0x2b,0x43,0x83,0x84,0x41,0x41,0xb8,0x34,0x59,0x42,0xda,0x42,0xf4,0x42,0x29,0xde,0x33,0xc3,0xba,0x51,0xce,0x42,0xf4,0x99,0x34,0x43,0x19,0x55,0xe1,0xc2,0x5a,0xb7,0x4a,0x42,0x69,0x12,0x1b,0x43,0x9f,0x53,0x79,0x42,0x3d,0xfa,0x8f,0xc1,0xbb,0xee,0x86,0xc2,0x15,0x37,0xa6,0xc2,0x96,0xaf,0x3,0x42,0x7a,0xa0,0x1e,0x43,0xdc,0x42,0x15,0xc3,0x50,0xa0,0x39,0x40,0x3a,0x6a,0x40,0xc2,0x74,0x7d,0xdc,0x42,0xba,0xb,0xca,0xc1,0xe0,0x18,0x4,0x42,0x6e,0x6e,0xab,0x42,0x58,0x9c,0xd5,0xc2,0x50,0xf6,0x5d,0xc1,0x4,0x2f,0x34,0x42,0xaa,0x81,0x88,0x42,0xa0,0x9e,0xf9,0xc1,0x25,0x63,0x7e,0x42,0x54,0xb4,0x97,0xc2,0xfe,0xec,0x6e,0xc3,0xde,0x9b,0xa1,0xc0,0x61,0x6f,0x16,0x42,0x61,0xe3,0x48,0xc2,0xec,0xc5,0x22,0xc2,0x24,0xcb,0x62,0xc2,0x7a,0x7a,0xaa,0x42,0x35,0xb7,0xb7,0xc1,0xbb,0x34,0x74,0xc2,0x85,0x46,0xd1,0xc2,0x55,0x5,0x87,0x41,0xf,0x7,0x72,0x42,0x60,0x93,0x14,0xc2,0x15,0x71,0xf,0x43,0x41,0x56,0x9f,0x41,0xfd,0xaf,0x1e,0x42,0x59,0x69,0xd7,0xc1,0x74,0x36,0xc6,0x42,0xcd,0x9c,0x21,0xc3,0x2f,0xe,0xa5,0xc1,0xb9,0xf9,0x58,0x43,0xd,0x89,0x50,0xc3,0x3b,0xb2,0x6b,0x42,0x8b,0x5,0x18,0xc1,0x59,0xf8,0x28,0x41,0xd4,0x5e,0xd0,0xc2,0x98,0xd1,0x88,0x41,0x93,0x8,0xfe,0xc2,0x60,0x69,0x12,0x42,0x64,0x78,0xb7,0x41,0x45,0xb,0x8f,0x41,0x41,0x52,0x66,0xc3,0x14,0x1e,0xd0,0xc2,0xb9,0xc5,0x96,0x41,0x7d,0x40,0x7b,0x41,0x76,0x5f,0xe0,0x42,0x36,0xf6,0x5a,0x42,0xaf,0x84,0xf3,0xc2,0xf9,0x38,0x24,0xc3,0x52,0xbc,0xaa,0x40,0x8a,0x14,0x86,0xc2,0x10,0x71,0xdf,0x41,0xcf,0xd8,0xa5,0xc2,0x68,0x7e,0x90,0x42,0x66,0x6c,0x87,0xc1,0xf5,0x47,0x76,0x42,0x85,0x46,0xb6,0xc2,0xbe,0x56,0xd,0xc3,0xe6,0xef,0xc6,0x40,0x70,0xb3,0x21,0xc3,0xe2,0xee,0xe2,0x42,0xf2,0x2e,0xb6,0x42,0x7d,0x9c,0xb9,0x41,0xa5,0x47,0x9,0xc3,0xf5,0x99,0xa9,0xc1,0x1b,0x3d,0xf6,0x41,0x43,0xfc,0x9f,0xc2,0x66,0xad,0x89,0xc1,0x4,0xc4,0x44,0x43,0xb3,0xee,0x11,0xc2,0xa,0xeb,0xa6,0xc2,0x74,0xb9,0xa8,0x42,0xc0,0x90,0x93,0xc0,0x0,0x32,0xb4,0xc2,0x74,0x98,0x8a,0x41,0x2f,0xca,0x94,0x42,0x4e,0xc7,0x4,0x43,0xc2,0xcd,0xe5,0x42,0xe3,0xf8,0x9b,0x42,0x7f,0xb6,0x2e,0x43,0xd0,0x25,0x81,0x42,0xcd,0x15,0xff,0x40,0x2b,0xce,0x65,0xc3,0x3d,0x20,0xb4,0x42,0x26,0x2b,0xf3,0x41,0xd0,0xdb,0x4c,0xc2,0xe0,0x19,0xbd,0xc2,0x3a,0x9f,0x25,0xc2,0x44,0x70,0x30,0xc2,0x42,0x6f,0xa3,0xc2,0x8e,0x14,0x35,0xc2,0x85,0xfd,0x25,0x43,0xb4,0x8a,0x29,0xc2,0xa5,0x3,0xaa,0xc2,0x68,0x66,0xb9,0x42,0xab,0xeb,0x95,0x42,0x36,0x5d,0xbe,0xc2,0x74,0x25,0xa,0x42,0xbc,0x50,0x4d,0x41,0x9a,0x5d,0x97,0x42,0x4c,0x4d,0xe4,0xc1,0xb,0x9a,0x6e,0xc1,0x31,0x4,0x17,0xc2,0x0,0x88,0x12,0xc1,0x44,0x85,0x2f,0x42,0x8d,0x5f,0xf0,0xc2,0xd3,0xa3,0xff,0xc1,0x74,0xa2,0xeb,0x42,0x5a,0x39,0xa5,0x41,0x26,0x56,0xc7,0xc0,0x36,0xe6,0xe4,0xc2,0x47,0xb7,0xb,0x40,0xff,0xd1,0x62,0xc2,0x48,0x8d,0xb1,0x42,0x4c,0xcc,0xeb,0xc2,0x50,0x5d,0x45,0x40,0x5d,0x38,0x1,0xc3,0xae,0xaf,0x96,0x42,0x92,0x97,0x5b,0xc2,0x2a,0x4f,0xf4,0x42,0x74,0xd4,0xb2,0xc2,0x5d,0x57,0x13,0x43,0x75,0x78,0xa1,0xc2,0x92,0x8c,0xea,0x42,0x70,0x5,0x26,0x41,0xf3,0xa9,0x77,0x42,0xd9,0x53,0x69,0x42,0x7c,0xd2,0xc3,0xc2,0x3e,0xa1,0xfd,0x42,0xe,0x22,0x1a,0x42,0x87,0x4,0x3b,0x42,0x60,0x4f,0x75,0x42,0x5,0x9f,0x54,0xc2,0x11,0xb2,0xcd,0xc2,0x2d,0xb5,0x88,0xc2,0x1,0x46,0xa6,0xc2,0x33,0x1c,0x5b,0x42,0xec,0x14,0x67,0x42,0xe2,0xe2,0xb7,0x41,0x35,0x3e,0x7,0xc2,0xf2,0xf,0x9d,0xc0,0x78,0xa7,0x97,0x42,0xb8,0x11,0x15,0x42,0xcc,0x28,0xe0,0x42,0x57,0x16,0x54,0xc1,0xed,0xa7,0x14,0x42,0x1a,0x7,0x79,0xc2,0x38,0xef,0xbb,0xc2,0xa2,0x67,0x85,0xc2,0x80,0x9e,0xc2,0x42,0x52,0xb4,0x6f,0x42,0xdf,0x8c,0x1b,0x43,0x2f,0xb6,0x7c,0x42,0x2d,0xed,0x2,0x43,0x5b,0x74,0xae,0xc2,0xbf,0xdf,0xcf,0xc2,0xc8,0x27,0xcd,0xc1,0x96,0x3b,0x8b,0xc2,0x14,0x7f,0x5b,0xc3,0xc0,0xcc,0xd4,0x42,0x48,0x3a,0xab,0x42,0x13,0x9a,0x9,0x43,0xae,0xc8,0xa8,0xc2,0x60,0x41,0x26,0x42,0xf8,0xf3,0x8,0xc3,0x8e,0xd5,0x9f,0xc2,0x5c,0xd0,0xc5,0x42,0xd4,0x9f,0xe3,0x41,0x8e,0x4d,0x26,0x43,0x68,0x8d,0xa7,0x42,0x7c,0x3,0xae,0x42,0x5b,0x9b,0x4a,0x42,0xfb,0x8e,0x98,0x42,0xc0,0x6d,0xa3,0xc2,0xde,0x8e,0x96,0xc2,0x77,0xfb,0xea,0x41,0x9c,0x73,0xd0,0xc1,0x18,0x70,0x2d,0xc2,0x26,0xf0,0x12,0x43,0x65,0x9c,0xd0,0xc2,0x36,0x5f,0xef,0x42,0xf0,0x1,0xa7,0x42,0xc0,0xb7,0x80,0xc2,0xa0,0xba,0x3,0x41,0x87,0xa5,0x7,0x40,0x55,0x61,0x23,0x43,0xac,0xc5,0xc1,0x41,0xec,0x39,0x54,0x42,0xf0,0x0,0xe7,0x42,0xb3,0x6d,0x91,0x42,0xc7,0xa6,0x88,0x42,0x2f,0xfc,0xeb,0xc2,0xc4,0xcf,0x64,0xc1,0x76,0xeb,0x61,0x42,0xd1,0x1f,0xd1,0x41,0x68,0xbc,0x19,0x42,0x7c,0x7a,0x31,0xc0,0x56,0x3,0x23,0xc2,0x72,0xec,0x41,0xc2,0x3e,0x96,0xb2,0xc1,0x54,0x1d,0x15,0xc2,0x54,0x81,0xcb,0x41,0x49,0xc1,0x27,0x42,0xa4,0xe2,0x79,0xc1,0x65,0x3a,0xb1,0x42,0x11,0x29,0xad,0xc2,0x69,0x17,0xd3,0x42,0x7f,0xfe,0x2b,0xc2,0x9b,0xdf,0xea,0x41,0xef,0xc9,0x4,0x43,0x1,0x92,0x3a,0x43,0xdf,0xb3,0xc0,0x42,0xf9,0x31,0x53,0xc2,0x8a,0x1b,0x9c,0x42,0x30,0x56,0x8b,0x42,0x52,0x42,0x8a,0x41,0xa0,0x30,0x71,0x42,0x9b,0x62,0xe6,0xc2,0x54,0xbb,0xf3,0x42,0xde,0xef,0x22,0xc3,0xff,0x6c,0xd6,0x42,0xd1,0xd2,0x34,0x43,0x56,0xb5,0xcb,0xc2,0x32,0x9a,0x6f,0x42,0x4,0xf9,0x83,0x42,0x49,0x16,0xde,0x41,0xee,0x65,0xc2,0x42,0x1e,0x43,0x4,0x43,0xaa,0xc4,0xf1,0xc2,0x55,0xbe,0xfb,0x42,0x7f,0xa5,0x6e,0x41,0x43,0x40,0x85,0xc2,0xad,0x32,0x78,0x41,0x93,0x9a,0xe3,0xc1,0xf3,0x10,0xc7,0x41,0x64,0xbf,0x77,0xc2,0x86,0x87,0xc2,0x42,0x9f,0xd2,0x2a,0x42,0x9c,0x77,0xf2,0x40,0x5e,0x3b,0xac,0xc2,0x35,0x41,0x30,0x42,0xf2,0x7b,0x41,0x42,0x49,0xe3,0x8,0x41,0x5,0x1b,0xba,0x43,0xfc,0xa6,0x14,0xc2,0xd5,0x42,0x20,0x42,0x55,0x64,0x29,0xc3,0xc7,0xde,0xff,0x42,0xce,0x32,0xa9,0x42,0x9f,0x31,0xf0,0x42,0x74,0x49,0xab,0x41,0x3,0x6d,0xe,0xc2,0x90,0x4b,0x2b,0xc2,0x55,0xff,0xbf,0x42,0x35,0x3e,0x31,0x42,0x2e,0xe3,0x20,0xc3,0xf6,0xea,0xb7,0xc2,0x6,0xf9,0x94,0x42,0x3d,0x6d,0xfe,0xc2,0x1c,0xb9,0x6d,0x42,0xde,0x75,0x32,0x42,0x7c,0x29,0x9,0x42,0x51,0x8d,0xca,0xc2,0x73,0xc1,0x9d,0x42,0x3f,0xe7,0x1c,0xc2,0x26,0x3f,0x26,0xc0,0x83,0xa,0xe,0x42,0x6f,0x40,0x2f,0x43,0x85,0x30,0x80,0xc2,0xf8,0x1f,0xb1,0xc2,0xb5,0xb0,0xeb,0xbf,0x64,0xc4,0x85,0xc0,0xf0,0xc2,0x83,0x41,0x64,0xe0,0xce,0x42,0x95,0x74,0xb0,0x42,0x1f,0x26,0x18,0xc3,0x47,0xa6,0x66,0xc2,0x47,0xab,0x4a,0x42,0xb2,0xd5,0x98,0x42,0xfc,0x95,0x19,0xc3,0x4b,0x50,0xb8,0x42,0x5b,0xb0,0xce,0xc2,0x19,0xa8,0xf5,0x42,0xd7,0xc0,0xc8,0xc2,0x0,0xad,0x0,0xc3,0xe3,0x84,0xa,0x43,0x53,0x8a,0x51,0xc2,0x49,0x47,0xf1,0xc0,0x5c,0x6c,0x82,0xc2,0xfb,0xbb,0xfa,0x41,0x8e,0xeb,0xc0,0x42,0xd,0x8d,0x40,0x43,0xe0,0x17,0x60,0xc2,0x17,0x47,0x3e,0x41,0x8c,0x4f,0x83,0x42,0xf2,0xcf,0xc3,0x40,0x91,0xdc,0xb5,0xc1,0x8b,0x17,0x95,0x42,0x4,0x17,0x2d,0x42,0x7e,0xf4,0x1c,0x43,0xc8,0xf5,0xad,0x42,0xe2,0x68,0xe1,0xc2,0x82,0x77,0x31,0xc2,0x6c,0xc7,0xd3,0xc2,0xce,0x91,0xf2,0xc2,0x2f,0x2e,0xba,0xc2,0xc5,0xef,0x3c,0xc0,0x7d,0x9d,0x69,0x42,0x4,0x88,0x12,0x40,0x9b,0x14,0xef,0x42,0x3d,0x8,0xa2,0xc1,0xac,0xe2,0x1,0xc3,0x1,0x3b,0x85,0x42,0xf3,0x97,0x60,0x42,0xd5,0x3f,0xda,0x42,0xbd,0x40,0x75,0xc2,0x71,0xe1,0xcd,0x40,0x9c,0xa0,0xa5,0x41,0x31,0xce,0x23,0x43,0x67,0xc7,0xe0,0xc2,0x61,0xe3,0x75,0x41,0x52,0xcd,0xdd,0xc1,0x5,0xa6,0xad,0x40,0x4e,0xdc,0xdc,0x41,0xc5,0xf6,0xa3,0x42,0x6,0xb8,0x30,0x43,0x54,0x95,0xf8,0xc2,0xee,0x72,0x40,0xc3,0x14,0x5d,0x39,0x42,0x65,0xab,0x5,0xc3,0xee,0x97,0x82,0x41,0x5f,0xc6,0x61,0xc2,0xd6,0xbf,0xac,0x42,0x59,0xa8,0x7,0xc2,0xec,0x34,0xd1,0x42,0x50,0x27,0x35,0xc2,0x25,0x58,0x80,0x43,0x9,0x23,0x9f,0xc2,0xab,0x32,0x7b,0x42,0xdf,0xc4,0x93,0x42,0x70,0xe0,0x3c,0xc2,0xc4,0x11,0x23,0xc3,0x6d,0x9a,0xa1,0xc1,0x1d,0x3e,0x60,0xc3,0xc7,0x6f,0xdc,0xc2,0xb1,0x98,0xa5,0x41,0xc4,0x1d,0x3b,0xc3,0xae,0xb2,0x67,0x42,0x6e,0x3d,0x7e,0xc1,0xac,0xe9,0x97,0xc2,0x97,0xb4,0x18,0xc2,0xaa,0xa3,0x50,0x42,0x4e,0x93,0xa8,0x42,0x40,0xf8,0x83,0xc2,0x22,0x81,0xae,0x41,0xc3,0x30,0xf6,0x41,0x6f,0x88,0x3f,0xc2,0x52,0x95,0xe1,0xc2,0x54,0xa1,0x81,0xc2,0x26,0x27,0x8,0x43,0xd4,0xb5,0x3c,0x43,0xd4,0x85,0xe,0x42,0x96,0x53,0x80,0xc0,0xb4,0xa1,0x41,0xc3,0xc2,0x12,0x48,0xc2,0x1d,0x20,0x81,0x41,0xe3,0x26,0xf1,0x42,0x95,0x19,0x5e,0xc2,0x3,0x33,0xa2,0x42,0x9e,0x60,0xe7,0x41,0x94,0x1d,0xc,0x42,0x64,0xf7,0x3a,0xc3,0x55,0xd7,0x56,0xc1,0xf4,0xf2,0x8,0xc2,0x1c,0x78,0x78,0xc1,0x1b,0x7f,0xb3,0xc0,0x45,0xf1,0xc,0xc3,0xb,0xca,0x84,0xc2,0x67,0xc9,0x37,0x42,0x82,0xb,0x30,0xc1,0xa8,0x7c,0xa9,0xbf,0xb,0xb8,0x58,0xc1,0xfa,0x76,0x9c,0x42,0xe,0x5c,0x34,0x42,0x95,0x27,0x90,0x42,0x89,0xdf,0x55,0x42,0xa6,0xa9,0x2f,0x41,0xd8,0xb7,0x20,0xc3,0x27,0x3c,0x93,0xc2,0x3a,0x3a,0x8a,0x42,0x12,0x9d,0x53,0x43,0xdb,0x6f,0x2d,0xc2,0x6c,0x23,0x91,0xc1,0x22,0x47,0xd8,0x42,0xf1,0x2a,0x9b,0x42,0x89,0x71,0xfe,0xc2,0x50,0x65,0xe8,0xc2,0x70,0xbb,0x2,0xc2,0x60,0x46,0x9d,0x42,0xec,0xae,0x23,0x43,0xe3,0xd0,0x9e,0x41,0xc2,0xe9,0x52,0xc1,0xdc,0xfd,0x73,0xc1,0x5d,0x52,0x9,0x42,0x3d,0xf1,0x55,0x42,0x7c,0x25,0x96,0xc2,0x94,0x94,0xf0,0x42,0xfa,0x39,0x9a,0xc2,0xa1,0xe6,0x7,0xc3,0x39,0xc0,0xd8,0xc2,0xe,0x8,0x1,0x43,0x5a,0x7c,0xf1,0x42,0x9a,0xb6,0xc0,0xc2,0xe0,0xd3,0x9c,0x42,0x59,0x50,0xfb,0xc2,0x3a,0x73,0x44,0xc3,0x23,0xba,0x2f,0x42,0xe3,0xf8,0x95,0xc2,0x8e,0x68,0x27,0x41,0x5f,0x48,0x9d,0x42,0xf4,0x90,0x93,0xc2,0x84,0x71,0x32,0xc2,0x30,0x38,0x81,0x42,0xb3,0x7d,0x92,0x42,0xa4,0xb,0x9e,0x41,0xac,0x8b,0x1e,0xc2,0xc6,0x7b,0x1b,0x41,0x5d,0x6c,0x43,0x43,0x4d,0xd8,0xac,0xc2,0xd0,0x33,0x88,0x42,0x11,0x61,0x3a,0x42,0xa4,0xae,0x9b,0x42,0x91,0x48,0x44,0xc2,0xa4,0x20,0xcb,0xc1,0x62,0x56,0x42,0x41,0xb1,0x92,0x5c,0x42,0xde,0xb6,0x83,0x43,0x55,0x55,0x9,0xc2,0xac,0x1a,0xde,0xc2,0x9,0x7f,0xd6,0xc2,0x8,0x69,0x43,0xc3,0x8c,0x60,0x8e,0xc1,0x33,0xd9,0xed,0x42,0x6,0x4b,0xb8,0x42,0xbb,0x4f,0x33,0x42,0xc0,0xd4,0x50,0x40,0xb4,0x6,0x46,0xc2,0x6d,0x67,0x2,0xc2,0x6e,0x90,0x1d,0x43,0xfa,0x27,0x35,0xc2,0xa3,0xe6,0x1,0xc2,0xc9,0x64,0x1b,0xc3,0xf1,0xed,0x37,0x43,0x89,0x29,0x9,0xc3,0xd,0x49,0xae,0x42,0x27,0xf4,0x7,0xc3,0x3a,0xc9,0x6,0xc3,0xc6,0xfa,0x30,0xc2,0xec,0x0,0x74,0x42,0x58,0xc9,0x9,0x43,0x10,0x83,0x2d,0xc3,0x8,0x6a,0x6d,0xc3,0x9c,0x6,0x98,0x42,0xc6,0xbe,0xb9,0xc2,0x9c,0x10,0x7a,0x41,0x58,0xca,0xe2,0xc2,0x80,0x93,0xef,0xc1,0xcd,0xfd,0x8,0xc3,0x7a,0xb8,0xbf,0xc2,0x31,0x66,0xa3,0xc2,0xe8,0x72,0x38,0x42,0xb1,0xf5,0xef,0x42,0xa4,0xdd,0xdb,0xc1,0xec,0x23,0xa1,0x42,0xc0,0x25,0xfc,0x41,0x87,0x47,0x33,0xc2,0x34,0x9,0xb6,0xc2,0x7c,0x94,0x3b,0x42,0x0,0xb6,0xf1,0x42,0x9b,0x3c,0x5d,0xc1,0xad,0x5,0x5,0xc3,0xb7,0xa8,0xe9,0xc1,0x29,0xab,0x72,0xc2,0xc2,0x7f,0xa1,0x42,0x20,0xa7,0x67,0x42,0x55,0x6a,0x30,0xc2,0xb1,0x21,0xb0,0x41,0xee,0x90,0xdf,0x42,0xb1,0xde,0x57,0x41,0xe1,0xea,0x99,0x42,0x27,0x91,0x98,0x42,0xc8,0xb0,0x1,0xc2,0x64,0xf9,0x4a,0x42,0xbe,0x43,0x95,0xc0,0x7d,0x2c,0xf0,0xc1,0x41,0x28,0xdf,0xc2,0x79,0xc4,0x69,0xc0,0xc7,0x9b,0x11,0xc3,0x18,0x12,0x73,0x3f,0x1c,0x28,0x34,0x40,0x1d,0x9b,0xdf,0xc2,0xec,0x48,0x4f,0xc2,0x7b,0xc9,0x12,0xc3,0xb5,0x5d,0xbf,0x42,0xe5,0xd6,0xc,0xc3,0xe4,0xf,0x1e,0xc2,0x36,0xb6,0x8f,0x41,0x4b,0x7d,0xa0,0xc0,0xc0,0x88,0xc9,0xc2,0x4c,0x7f,0xac,0x42,0xea,0x5c,0x1e,0xbf,0xdb,0xc2,0xec,0x42,0x98,0x1,0x10,0xc3,0xae,0xfb,0x15,0x42,0x3d,0x11,0x19,0xc3,0xb4,0x7f,0x49,0xc2,0x38,0xe0,0x1c,0x43,0x57,0xf9,0x5e,0x41,0x2a,0xbc,0xf2,0x41,0x9a,0x48,0xdd,0xc2,0x98,0x7b,0x95,0xc0,0x66,0x19,0xae,0x3f,0xdf,0xff,0x67,0x41,0x7f,0xcd,0xf8,0xc1,0xfb,0x88,0x28,0x42,0x26,0x2a,0x45,0x43,0xec,0xed,0x6e,0xc2,0xd9,0xd9,0xa6,0x40,0x9c,0x69,0xf4,0x42,0x6e,0x6e,0x4b,0xc2,0x71,0x10,0x3,0x43,0x45,0xbc,0x21,0x41,0x4a,0x6d,0x46,0x43,0xe0,0xaf,0x4a,0xbf,0xab,0xe,0x21,0xc2,0x2,0xd2,0xa7,0xc1,0x4d,0xfd,0x8b,0xc2,0xc5,0xe3,0x30,0x42,0x22,0x83,0x72,0xc2,0xd8,0xff,0xb2,0xc2,0x46,0x89,0x19,0x41,0x10,0x2a,0x8e,0x42,0xc,0x91,0x21,0x41,0xda,0x8e,0x12,0x42,0x10,0xfb,0x66,0xc3,0x45,0x17,0xd2,0x42,0xf3,0xb0,0xd7,0xc2,0xd8,0x8,0xe,0x43,0x3,0x6e,0xb3,0x42,0xb1,0xc0,0x33,0x42,0x32,0x14,0xb6,0x42,0x39,0x49,0xc,0x43,0xe,0xdf,0x13,0x43,0xce,0x8d,0x70,0x42,0xb2,0xf8,0x5,0xc2,0xe1,0xeb,0x21,0x43,0xb,0x8,0x26,0xc1,0x16,0xbb,0x8,0xc3,0xfe,0xfb,0xce,0xc1,0x89,0xc6,0x0,0x42,0xae,0x7b,0xf8,0x42,0xae,0xe1,0x6c,0x42,0x6a,0x21,0x6b,0x42,0x1c,0x3b,0x70,0x42,0x6a,0xba,0xb,0x43,0x4d,0x3a,0x1a,0xc3,0x52,0xf8,0x60,0xc2,0x43,0x15,0xd4,0x42,0xf8,0x1f,0x2c,0xc3,0x63,0xe9,0xfe,0xc2,0xd6,0x83,0x28,0x42,0x36,0x10,0xf5,0x42,0xaa,0x86,0x4a,0x42,0x9a,0x68,0xfc,0x42,0x90,0x9c,0x87,0x42,0x84,0x53,0x3f,0xc3,0x9a,0xea,0x59,0x43,0xa8,0xb8,0xb,0xc3,0x44,0xa5,0x8c,0x41,0x78,0x54,0x5b,0x41,0xba,0x32,0x17,0x41,0xbf,0x2c,0xe2,0x41,0xb9,0xed,0x96,0x42,0x93,0xd1,0x9a,0x42,0x2f,0xec,0xa,0xc3,0xe1,0x92,0xdd,0xc2,0x8,0xd9,0xb2,0xc2,0x14,0xa0,0x16,0x43,0xda,0x32,0x31,0xc3,0xb9,0x41,0xd,0x43,0x2b,0xa5,0xf5,0x42,0xe,0x7e,0xc2,0x41,0xc4,0x47,0x6b,0xc2,0x36,0xcf,0x7,0x43,0x46,0x25,0x3b,0xc2,0x60,0xf7,0x1b,0x42,0xab,0x0,0xe2,0xc1,0xb0,0xaf,0x57,0x42,0xf0,0x3e,0x81,0xc2,0xd1,0xff,0x7a,0xc2,0x9e,0x78,0x1d,0x42,0xc5,0x52,0xcc,0x42,0x15,0xd5,0x37,0x43,0x37,0xcd,0xcd,0xc2,0xb3,0x6,0x69,0x43,0x82,0x38,0x8b,0x42,0x19,0xef,0xba,0xc1,0xa3,0xbd,0xf5,0xc2,0x9c,0xc,0x57,0xc3,0x36,0x15,0xc7,0xc2,0x80,0x15,0xc,0x41,0xc0,0x77,0xd,0xc2,0x8b,0xfe,0xc8,0xc2,0xc,0x11,0x93,0x43,0xe5,0x81,0x95,0xc2,0x7a,0x1c,0xe,0xc1,0x83,0x93,0x4e,0xc1,0x73,0x86,0xeb,0xc2,0x18,0x6f,0x3b,0xc3,0x73,0x7a,0x92,0x41,0x62,0x76,0xd2,0xc2,0x66,0x7a,0x39,0xc2,0x27,0x23,0x83,0x42,0xe6,0x7f,0x8c,0xc1,0x7e,0xe1,0xad,0x42,0xda,0x11,0x20,0x42,0x77,0xc9,0x84,0x42,0x97,0xbd,0x80,0xc3,0xeb,0xbd,0x8b,0x42,0x4a,0xe9,0xb6,0xc2,0x16,0x3b,0x21,0xc3,0xf4,0x66,0x50,0xc2,0x3,0x1d,0xa7,0xc1,0x66,0x3d,0x3d,0xc2,0xd0,0xaf,0xd1,0xc1,0x5a,0xb9,0xbb,0xc2,0xb3,0x4e,0x11,0x43,0xc3,0x5e,0x13,0xc2,0x91,0xbe,0x52,0xc2,0x9f,0xf4,0x47,0x42,0x93,0xd2,0x9e,0xc2,0xf3,0xd6,0xd1,0x42,0xcd,0x34,0x3b,0xc3,0xbe,0x36,0xdb,0x42,0x3a,0x45,0xe9,0x40,0xe0,0xd5,0x37,0xc2,0x95,0x46,0x33,0xc3,0xc0,0x6b,0xa0,0x42,0xc2,0x59,0x40,0x42,0x4e,0xe4,0x85,0xc1,0xe9,0xc0,0xd,0xc3,0xd8,0x58,0xf9,0x42,0xef,0x48,0x5,0x43,0xb1,0xa5,0x8e,0x41,0x7,0x7b,0xb6,0x42,0xd2,0x11,0x92,0xc2,0xd6,0xf0,0xcb,0xc2,0xd9,0x2a,0x15,0x43,0xb3,0x6e,0xdf,0x41,0xfc,0xf7,0xd8,0x42,0xf4,0x24,0x2a,0xc0,0xb1,0x3a,0x16,0x42,0x19,0xb0,0x87,0x42,0xc2,0xc1,0x51,0x43,0x92,0xb2,0xfb,0x42,0xdb,0x8f,0x45,0x42,0xb4,0x46,0xe9,0x42,0xce,0xb4,0xb,0x43,0xf9,0xb8,0x59,0x42,0x66,0x2c,0x42,0xc3,0x1a,0x54,0x44,0xc1,0x88,0xb4,0x13,0xc3,0x43,0x41,0x7f,0x43,0xbc,0xb3,0x7,0x43,0x7f,0x24,0xb,0x43,0x23,0xc8,0xc2,0xc1,0x28,0xcd,0x59,0xc2,0x33,0xba,0x6f,0xc2,0xff,0x1b,0x51,0xc2,0x5a,0x14,0x68,0x42,0x57,0xed,0x47,0x42,0x20,0x95,0x4a,0xc3,0x1f,0xf9,0xd8,0xc2,0xb9,0x8e,0xcb,0x42,0x5,0x45,0xa5,0xc1,0xa7,0x5f,0x7a,0x42,0xf4,0xe2,0x73,0x41,0x8f,0x21,0x82,0x42,0xc9,0xc1,0x12,0x42,0x85,0xd2,0xa,0x42,0x62,0x2e,0x8a,0x41,0x5f,0xfc,0x9a,0x42,0xbf,0xe5,0x69,0xc2,0x45,0x65,0xfe,0x42,0xd9,0x13,0x13,0xc2,0x4f,0xd5,0x9a,0x42,0xc2,0x54,0x76,0x42,0xa7,0xed,0x52,0xc2,0xe0,0x4b,0x5,0xc2,0xba,0x2b,0x8e,0xc1,0xa9,0x52,0x2b,0xc1,0x86,0x45,0xb5,0xc1,0x9a,0xcd,0x3,0x42,0x70,0xcf,0xb3,0xc1,0xbe,0xd,0xe1,0xc2,0x18,0xa2,0xa,0x43,0x91,0x91,0x75,0xc1,0xd8,0xf7,0xe0,0xc2,0xe8,0xd7,0xbf,0xc0,0x9d,0x25,0x54,0xc2,0xf6,0x60,0xc9,0xc2,0x5c,0x75,0x4,0xc3,0xad,0x15,0xd8,0x41,0x2d,0x63,0x56,0xc2,0xbf,0xff,0x9b,0x42,0x90,0x2b,0x12,0x43,0xd6,0x1f,0x6d,0x42,0xee,0x51,0xcb,0x42,0x21,0x4a,0x3e,0xc3,0x1c,0x98,0x90,0x40,0x59,0x1a,0xe3,0xc1,0x20,0xd7,0xae,0x42,0x34,0x40,0xcb,0x41,0x94,0x29,0xe,0xc2,0xb1,0x3e,0xda,0x42,0x24,0xba,0xd6,0x42,0x18,0xd6,0xb6,0x40,0x7,0x84,0xb8,0xc1,0xb0,0x55,0x67,0xc3,0x36,0x4a,0x9f,0xc2,0x0,0x8a,0xfd,0x3d,0xf3,0x5c,0xf2,0xc1,0x16,0xee,0xe1,0x42,0x5d,0x47,0xe5,0xc2,0xe5,0xca,0xfc,0xc1,0xad,0xd6,0x53,0x42,0xcf,0x60,0xde,0xc1,0xc5,0x7f,0x9c,0x41,0xc0,0xdc,0x2c,0x43,0x62,0x6e,0xa9,0x42,0x8d,0x21,0x84,0x42,0x9d,0xcd,0x13,0x41,0xe,0x1c,0x8e,0xc2,0x14,0x52,0x3e,0x42,0x43,0xb9,0x3b,0xc2,0x5c,0x4d,0x56,0x42,0x9b,0x96,0x88,0xc0,0x8f,0x5b,0x54,0x43,0x9f,0x27,0x70,0x42,0x10,0x76,0x7b,0xc2,0x8b,0x97,0x19,0x43,0x63,0x75,0x17,0x43,0xed,0xf0,0x18,0xc3,0xd5,0xa2,0x96,0xc0,0x21,0xde,0xfa,0x42,0xa7,0x72,0x8f,0x42,0x84,0x92,0x87,0x41,0x60,0x76,0x3f,0x42,0x85,0xa8,0xe1,0x41,0x5b,0x23,0x85,0x42,0x6,0x34,0x3e,0x43,0xbc,0x39,0x1b,0xc1,0x42,0xcb,0xb7,0x42,0xd9,0xc3,0xbf,0xc1,0x80,0x93,0xc3,0xc1,0x33,0xbc,0x76,0x42,0xe7,0x5b,0xe8,0x42,0xe9,0x65,0x5a,0x42,0x5c,0xa5,0x29,0x42,0xcb,0x8,0xe7,0x41,0x3b,0x63,0xd5,0xc0,0x3b,0x26,0x33,0xc2,0x99,0x39,0x4,0x42,0xb5,0x72,0x4c,0x41,0x8b,0x38,0x8a,0x42,0x1e,0xc6,0x99,0xc0,0x76,0x1,0xa6,0x42,0x1f,0x4,0xa1,0x42,0x5e,0x48,0xba,0xc1,0x4,0x69,0xa7,0xc2,0xea,0x91,0x2b,0xc1,0x16,0x41,0x11,0xc2,0x51,0xef,0xf5,0xc2,0x14,0xdb,0x3e,0xc1,0x33,0x63,0xd,0xc2,0x81,0xb3,0xb7,0x42,0x94,0xbf,0xcf,0x42,0x94,0xcc,0x39,0xc1,0x6f,0xe,0xa1,0xc1,0x2a,0xda,0xa5,0xc0,0xf9,0x3b,0x44,0x42,0x48,0x9,0xf1,0x42,0x5a,0xfb,0x4,0xc3,0x17,0x4e,0x92,0xc2,0xfe,0x54,0xeb,0xc1,0xd7,0x73,0x2a,0x42,0x8,0x18,0x42,0x41,0x28,0xd8,0xf1,0x42,0x9,0x5a,0x5f,0x41,0xa8,0xf9,0xf5,0x41,0x4e,0x90,0xc8,0xc2,0x2a,0xff,0xe,0xc2,0xc8,0xd0,0x3b,0xc2,0xb2,0x44,0xf,0x43,0x6,0x58,0x84,0x40,0x6a,0x71,0x80,0x42,0x11,0xb1,0x51,0x42,0xd9,0x13,0x9f,0x41,0xf8,0x97,0x3b,0x42,0x74,0x2b,0xe,0xc3,0x17,0xf0,0xbd,0xc1,0x61,0xb9,0x88,0xc2,0x80,0xf2,0xe2,0x42,0x24,0x71,0x10,0xc2,0xbf,0x26,0x4c,0xc2,0x66,0x56,0x8a,0x42,0x4a,0x24,0xed,0x41,0x49,0x2f,0xe4,0xc1,0xf2,0x40,0x15,0xc3,0xaa,0xeb,0x9f,0x42,0xeb,0x49,0x9d,0xc2,0xd5,0xe2,0x41,0x41,0x25,0xb9,0x3,0xc2,0xa2,0x70,0x14,0xc3,0xa,0x79,0x88,0xc2,0x54,0xe6,0x6,0x43,0x79,0x18,0xec,0x41,0x84,0x2a,0x1b,0x42,0x2c,0x21,0x65,0x42,0xd2,0x31,0xb7,0x42,0xb2,0x8a,0x9f,0xc2,0x9a,0xe9,0xf1,0xc2,0xff,0x31,0xce,0xc1,0x8,0xab,0x94,0xc2,0xa,0x2d,0xbb,0x42,0x45,0x61,0x84,0x42,0x28,0xcb,0x9,0xc2,0xa6,0x85,0xb3,0x41,0x9a,0x31,0xc6,0x42,0xc6,0x8f,0x17,0x41,0x11,0x85,0x81,0x42,0x23,0x1b,0x1b,0x43,0xe6,0xb5,0xf6,0xc0,0x46,0x8e,0x82,0x42,0x6f,0x2b,0x20,0xc3,0x40,0xec,0x21,0xbe,0xeb,0xe9,0xa,0x43,0x11,0xc3,0x73,0xc2,0x7b,0x90,0xc9,0x42,0x3e,0xac,0x4,0x43,0x89,0xcf,0x98,0xc1,0x52,0x86,0x41,0x43,0x2e,0xa9,0xac,0x40,0x4a,0x53,0x81,0x42,0x7a,0xf4,0xe0,0x40,0xe,0xb5,0x85,0xc1,0x44,0xdf,0x35,0x43,0x79,0xe,0x4,0x43,0x28,0x77,0x50,0xc3,0x16,0x8b,0xbe,0xc2,0xf1,0x26,0xf0,0x41,0x3f,0x93,0xfc,0x41,0xdb,0x8b,0x16,0xc1,0xf8,0x1f,0x6c,0xc1,0x7b,0xc5,0xe5,0xc1,0xa6,0xf,0x73,0xc2,0xf6,0xa5,0xec,0xc2,0x1a,0xf4,0x82,0x41,0x4e,0x70,0x9d,0xc2,0xe4,0xa4,0xe2,0xc2,0x43,0x4b,0xd0,0x41,0x76,0x52,0x5e,0x42,0xc,0xd1,0xb0,0x41,0x18,0xbb,0x5f,0x42,0x5f,0x93,0xf4,0x42,0xea,0x62,0x1b,0xc3,0x37,0x5e,0xf2,0xc1,0x8c,0x6a,0x83,0xc2,0xb1,0x69,0x7,0xc3,0xb3,0x31,0x8c,0x42,0x2f,0xdb,0x99,0xc2,0x20,0x50,0x7e,0x41,0x85,0x5c,0x4d,0xc2,0x64,0x28,0x27,0x41,0x8c,0x5b,0xaa,0x42,0x17,0xa4,0xe9,0x42,0x25,0x1f,0x2f,0x43,0x7d,0x6e,0x98,0xc2,0x68,0x9f,0xb8,0xc2,0x5e,0xb7,0x0,0xc3,0x1c,0x8c,0xc8,0xc2,0x88,0x1b,0x8c,0x41,0x46,0x37,0x40,0x42,0x42,0x88,0x3a,0xc2,0x2b,0x62,0xe6,0x42,0xba,0x4,0x6,0x42,0x20,0xea,0xa8,0x40,0xf1,0x57,0xcd,0x41,0x68,0xf4,0x0,0xc3,0x53,0xc3,0x2,0xc3,0x55,0x7,0xe8,0x42,0x6a,0x59,0x69,0x41,0x5e,0x88,0xa0,0x42,0x4a,0x5b,0x8f,0x42,0xc5,0xe3,0xc,0x43,0x1f,0xe8,0xf4,0x42,0x66,0x5e,0x6,0x43,0xbf,0xab,0xb9,0xc2,0xac,0xaf,0xa5,0x43,0xd5,0xf8,0xf,0xc1,0x84,0x93,0x89,0xc1,0xaa,0xe1,0xff,0x41,0xf6,0xb0,0xa7,0xc1,0x90,0x9e,0x66,0xc3,0xdb,0x28,0x14,0xc2,0xdb,0x65,0x25,0x42,0x1f,0x39,0x81,0xc2,0xf7,0xef,0xf9,0x42,0xfa,0x87,0xc4,0x41,0x1d,0xa7,0x3,0x43,0x8c,0x71,0x72,0xc1,0x2d,0xab,0xab,0x41,0x48,0x6f,0x20,0xc3,0xa4,0x82,0x88,0x42,0xda,0xfc,0x3a,0xc2,0x44,0x89,0x8b,0x42,0xea,0xc0,0xc9,0xc0,0x93,0xf3,0x5c,0x42,0xda,0x46,0x82,0x42,0xe8,0xb0,0x8a,0xc2,0xb2,0x1b,0xf6,0xc0,0xd7,0xc4,0x50,0x43,0x9b,0x93,0x1,0x43,0xd1,0xdd,0xef,0xc1,0x63,0x40,0xce,0xc2,0x6,0xd8,0xf9,0xc1,0xf3,0x84,0x86,0x42,0x56,0x69,0xba,0x42,0xc9,0xea,0xdd,0x40,0x24,0xf2,0x9d,0x42,0x8b,0x69,0x16,0xc3,0xbd,0xa0,0x27,0x41,0xbe,0x6e,0x91,0x42,0xc6,0x6b,0xa,0xc3,0xfe,0x53,0xb8,0x42,0xe4,0x97,0x81,0x41,0xcd,0xc5,0x5c,0x42,0x6b,0x70,0x5,0x43,0x30,0xc2,0x25,0x42,0xd3,0xf9,0x26,0x43,0xa8,0xa0,0x82,0x42,0xd8,0x1,0xb4,0xc1,0x6,0x7c,0xb,0x43,0x76,0x6d,0x42,0xc2,0x92,0x58,0x71,0xc3,0x99,0x4a,0xde,0xc0,0x7,0x2,0x18,0x43,0x24,0xb8,0xa,0x42,0xa,0xcd,0xf8,0xc2,0xfd,0x94,0x96,0x42,0x2b,0x42,0xbc,0xc1,0x49,0xf7,0xf1,0xc2,0xc8,0x60,0x19,0xc3,0xb9,0xab,0x47,0x41,0xb7,0x5a,0x75,0xc3,0x6a,0xdc,0xb1,0xc2,0xfc,0xb6,0x6,0xc1,0x4c,0x1c,0x7f,0x43,0xd5,0xe9,0x9,0xc3,0x95,0xb4,0x97,0x42,0x48,0xff,0xa,0x43,0x2b,0x5a,0x29,0xc2,0xa1,0x8b,0xc9,0xc1,0x76,0x0,0x39,0x41,0xc4,0xd3,0x16,0x43,0x9c,0xe7,0x8f,0x40,0x34,0x84,0xc5,0xc2,0xcd,0xee,0x9f,0xc2,0x1a,0x0,0xce,0xc1,0xc2,0x61,0x1e,0x43,0x98,0xf8,0xa4,0x41,0x85,0xa8,0x3e,0xc3,0xb6,0x81,0x88,0xc1,0x3c,0x82,0xf1,0xc1,0x2a,0x8d,0x7c,0x42,0x76,0x99,0xcc,0x41,0xfe,0xc2,0xbb,0xc1,0x18,0x70,0x16,0xc3,0x72,0xc7,0x82,0xc1,0xa7,0x9c,0xee,0xc2,0x3d,0xd,0x38,0x42,0xbe,0x40,0xed,0x42,0x8,0x88,0xe6,0xc2,0x37,0x44,0xaf,0x41,0x4b,0xde,0xc,0x43,0x48,0x44,0x67,0xc2,0x1e,0x8,0x15,0xc3,0x3a,0x82,0xd6,0x41,0x6e,0x1c,0x96,0xc2,0x4f,0xcd,0xcd,0xc1,0x5b,0xe6,0x40,0x42,0xa4,0xa1,0x74,0xc1,0xb,0x4b,0x24,0xc3,0x5d,0x76,0x7b,0xc2,0x1a,0x26,0x63,0x42,0x58,0xd5,0x8,0xc1,0xe9,0xe6,0x36,0x42,0xc1,0xa9,0x1a,0x42,0x5f,0xcf,0xc8,0x42,0x5,0x4,0x4c,0xc2,0x24,0xb1,0x8b,0xc2,0x4b,0xf,0x70,0x42,0x95,0xa0,0xb2,0x42,0x53,0xb9,0x8,0xc2,0x12,0xf3,0x8a,0x42,0xdc,0x21,0xed,0x42,0x56,0x82,0x36,0x42,0x50,0x53,0xc0,0xc2,0x98,0xa0,0x43,0xc1,0xcc,0x47,0x72,0x42,0xc5,0x2,0x5f,0x42,0x89,0x8d,0x4d,0xc2,0x1a,0xb6,0x8c,0xc2,0x0,0xba,0xc7,0xc2,0x26,0x8a,0xb5,0xc1,0x8e,0x15,0x66,0xc3,0x66,0x9,0xa6,0x40,0xcd,0x3,0x99,0xc2,0xe2,0x31,0xf8,0x42,0x56,0x8c,0xbe,0xc2,0xec,0x53,0xb3,0xc2,0xaf,0x9f,0x38,0xc3,0x34,0x56,0xa6,0xc2,0x50,0x82,0xdd,0x42,0xb0,0x15,0x21,0xc3,0xc3,0x94,0x74,0x42,0x6a,0x62,0xd7,0xc0,0x40,0x11,0x3,0xc2,0xe2,0xfa,0x8,0x43,0x4e,0x13,0x3f,0xc2,0xba,0x43,0x14,0xc3,0xea,0x7a,0x98,0xc1,0x49,0xb9,0x27,0x42,0x3a,0x5b,0x7d,0x43,0x9a,0x40,0x5,0x42,0x5c,0xca,0x3d,0x42,0x6b,0x83,0x8b,0x42,0x0,0x6d,0x95,0x42,0xa8,0xc3,0x8f,0xc2,0x9e,0x6a,0x9f,0x41,0x3f,0xc4,0x5e,0x42,0x34,0x46,0x86,0xc1,0x24,0x94,0x39,0xc2,0x24,0x2d,0xb4,0x42,0xc4,0xbe,0x64,0xc1,0x94,0x85,0x8b,0x42,0xd6,0x2e,0x2b,0x43,0x92,0xf2,0x20,0xc2,0xd,0x8c,0x42,0x43,0x97,0xfa,0x23,0x43,0x80,0x57,0xac,0xc1,0x80,0x2c,0xaa,0x40,0x6f,0x7a,0x14,0xc3,0xa2,0xd3,0x99,0x42,0x2,0x37,0x7,0x43,0x4a,0x5,0xb6,0xc1,0x91,0x88,0x93,0xc2,0x44,0x2b,0x5d,0x42,0x55,0xcf,0x8c,0x42,0xb3,0xda,0xd3,0xc2,0xa5,0x57,0x9e,0xc2,0xbc,0x45,0x6e,0xc1,0xc1,0x99,0x9,0x43,0x1,0x96,0xbe,0x42,0x5a,0x6,0x80,0xc3,0x33,0xfa,0xf8,0xc2,0x7e,0xbe,0x75,0x41,0x4f,0xa3,0x2b,0xc2,0xf4,0x98,0x8f,0xc2,0x91,0xd1,0x4b,0x42,0xa0,0x19,0x5,0x40,0x49,0x9e,0xc1,0xc2,0xe5,0x48,0x1d,0xc2,0x1c,0x2f,0x93,0x41,0x8c,0xc1,0xec,0xbf,0x8f,0x7e,0x11,0xc3,0x19,0x4,0xbf,0x42,0x8e,0x41,0x82,0xc3,0xfd,0x49,0x8a,0x42,0xa1,0xf3,0x32,0x42,0xba,0x44,0x8a,0xc2,0x6,0x9a,0x9d,0xc2,0x92,0xed,0x97,0xc0,0x2b,0x74,0x97,0x41,0x7a,0x49,0x61,0x42,0x5c,0xdc,0x87,0x42,0x90,0xcf,0x6,0xc2,0xa5,0x5b,0xd6,0xc2,0x50,0x6d,0x8,0xc3,0x93,0xc8,0x5,0xc2,0xbb,0xc4,0x63,0xc2,0x23,0x54,0x80,0x41,0x2c,0x66,0xbb,0x42,0x3a,0x6e,0x63,0x42,0x0,0x55,0x33,0xc3,0xb4,0x9e,0x11,0x40,0xb3,0x8e,0x1d,0x42,0xe6,0x58,0x95,0xc2,0x79,0x27,0xf0,0xc2,0x3,0xa2,0x7d,0xc1,0xfa,0xb4,0xc0,0x42,0x85,0x66,0x54,0x43,0x82,0x4b,0xa,0xc3,0x88,0x7d,0xea,0x3f,0x55,0xab,0xd5,0xc0,0x7a,0x8,0xc6,0x41,0xa1,0x4c,0xd5,0xc2,0x18,0x82,0xd0,0x41,0x49,0xbb,0xa0,0x42,0x57,0x6,0xe9,0xbf,0xf7,0xe1,0x18,0xc3,0xc6,0x87,0x0,0x43,0x6a,0x99,0xdd,0x42,0x37,0xc2,0x4,0xc3,0xa5,0xa6,0xbd,0x41,0xe4,0x4b,0xc1,0x42,0x2e,0x6b,0xb,0xc3,0x90,0x76,0x16,0xc2,0x92,0xc8,0xc8,0xc2,0x45,0x72,0xb3,0x40,0x4f,0x64,0xa1,0x42,0x93,0x6e,0xa,0xc2,0x5a,0x3f,0x98,0xc1,0x18,0xa9,0x14,0xc3,0x2a,0x3c,0xfe,0xc2,0x9a,0xfb,0x11,0xc3,0x8a,0x26,0xa4,0x42,0x84,0x80,0x61,0xc2,0xe1,0xbf,0x99,0x42,0x79,0xac,0x5,0xc3,0xb3,0x50,0x93,0xc2,0x48,0xd7,0x90,0xc1,0x50,0xff,0xa9,0xc2,0xdf,0xa6,0x19,0xc3,0x50,0x1b,0x6b,0xc1,0xb3,0xb2,0xae,0x42,0xbc,0x85,0x67,0xc2,0x18,0x22,0xf6,0x42,0x27,0x75,0x63,0xc2,0xef,0x64,0xba,0xc2,0xd9,0x95,0xa,0x41,0xeb,0x9f,0x30,0xc2,0xc0,0x3,0x51,0x3f,0xf5,0x2c,0xf,0xc3,0xd6,0xf6,0x6c,0x42,0xd4,0x75,0x17,0x43,0x35,0xab,0x4f,0xc2,0x83,0xb9,0xdb,0xc2,0xc0,0xe8,0xc9,0x42,0x52,0xca,0x66,0x42,0xff,0x45,0x9c,0xc2,0xf4,0x2f,0x83,0x3f,0x4e,0xd1,0x3c,0xc0,0x4d,0xd4,0x82,0x42,0xa5,0x4b,0x81,0x42,0xf2,0xc5,0xa9,0x42,0x5b,0x8f,0x20,0xc1,0xd9,0x61,0x9b,0xc2,0x89,0x47,0x3e,0x42,0x4b,0xda,0x2e,0x42,0xac,0xfb,0xf1,0x41,0x30,0x7b,0xfb,0x42,0x7d,0x74,0x1a,0xc3,0x9c,0x92,0xa5,0xc2,0x92,0xd8,0xbc,0x40,0x36,0x7a,0x95,0xbf,0xca,0x9a,0xc3,0x40,0xd4,0x80,0x7,0xc3,0xaf,0x31,0xda,0x42,0xee,0x2f,0xc8,0x42,0x90,0x9d,0x46,0xc3,0x66,0xe0,0x3b,0xc3,0x25,0x83,0x3e,0x43,0x8d,0x4c,0xe,0xc3,0xbf,0xa1,0x22,0xc3,0xd6,0xc5,0x35,0xc3,0x7d,0x57,0x93,0x42,0x16,0x82,0x97,0x41,0x79,0xd9,0x86,0x42,0xdf,0x2d,0x33,0x43,0x66,0xd2,0x8c,0x42,0x2b,0x7c,0xcd,0xc2,0xa2,0xf6,0xb8,0x41,0xf0,0x1d,0x30,0x42,0xe6,0x40,0x77,0xc2,0xa9,0xc3,0xef,0xc1,0x3b,0x18,0xbb,0xc2,0x8c,0xa1,0x52,0x43,0x11,0x82,0x9b,0x42,0x25,0x12,0xc8,0xc2,0x60,0x87,0x6f,0xc1,0xca,0xdb,0x43,0xc1,0x31,0xd,0xa0,0x42,0x4b,0x17,0x32,0x42,0x91,0xc9,0x28,0xc2,0x9d,0x7a,0x1e,0x43,0xbf,0x67,0x54,0xc2,0xd9,0xba,0xf1,0xc2,0x54,0x2f,0xdf,0xc2,0xe0,0xbd,0xe2,0x42,0x3c,0x42,0x8b,0xc3,0x54,0xaf,0xb7,0xc1,0x13,0x53,0xa3,0xc2,0x91,0xd8,0xa2,0x42,0x88,0x73,0x0,0xc3,0x99,0x25,0xc2,0xc2,0x10,0xc2,0xde,0x42,0x73,0xf3,0x3f,0xc3,0xc1,0xe8,0xab,0x41,0xd9,0x50,0x85,0x43,0x8e,0x7b,0xa1,0x41,0x69,0x7e,0xc,0x42,0x4a,0xbd,0x86,0x42,0xec,0xf7,0x58,0x42,0x4,0x72,0xd0,0xc0,0xda,0x56,0x16,0xc2,0x30,0x52,0x9c,0x40,0xf2,0xbb,0x9d,0xc3,0x14,0x3b,0xbb,0xbe,0xfa,0x9,0x55,0xc2,0xa,0x1d,0xa2,0xc2,0x3f,0xd2,0x84,0x42,0x9d,0x33,0xf5,0xc2,0x82,0xb3,0x23,0x42,0x92,0x2f,0xb6,0x41,0xc6,0xa5,0xf1,0xc2,0x40,0x38,0x9d,0x42,0x5c,0x9e,0x20,0x43,0x35,0xd2,0x8a,0xc3,0x3a,0xf1,0x90,0x41,0x81,0x1c,0x8f,0x42,0x26,0xe3,0x1c,0xc2,0x74,0xcb,0x5b,0x41,0xc9,0xe6,0x47,0xc2,0xe0,0xfa,0x3e,0xc2,0x8c,0xed,0x26,0xc2,0x16,0x22,0xa0,0xc2,0xf0,0x7f,0x61,0x42,0x64,0x8a,0xd7,0x42,0xb1,0x72,0x92,0xc2,0x48,0x2,0x23,0x40,0xa8,0x29,0xed,0x42,0x87,0x86,0x87,0x42,0x44,0xe5,0xa6,0xc2,0x2,0x93,0x1d,0x43,0xc7,0x1c,0xda,0x40,0x8,0xa6,0x47,0xc2,0x67,0xaa,0x4b,0xc3,0x6c,0x3e,0x2a,0x41,0x5b,0x8c,0xe1,0x42,0xfa,0xaa,0xe2,0xc1,0x5a,0xc0,0x4f,0xc3,0x97,0xd5,0x84,0xc2,0x46,0x73,0xce,0xc1,0xcc,0xef,0xe1,0x42,0x65,0x59,0xa3,0xc2,0xc6,0x43,0x57,0x43,0x4,0xd2,0x59,0xc2,0xd1,0x72,0x6,0x43,0xcb,0x9e,0x63,0xc0,0x61,0xd3,0xc1,0xc2,0x30,0xee,0x24,0xc2,0x60,0xb,0xe5,0xbd,0x5a,0x8,0xaa,0xc2,0x9b,0x21,0x8e,0xc2,0x92,0xd7,0x1a,0xc3,0xa7,0xb2,0x24,0x43,0x11,0x46,0xdc,0x42,0x8d,0x9e,0xdd,0x41,0x10,0x90,0x95,0x42,0x83,0x1f,0x85,0xc2,0x1f,0x9b,0x15,0x43,0x1d,0xd0,0x7,0xc2,0xa2,0xfd,0xcf,0x42,0x4d,0x6f,0x81,0x41,0x40,0x51,0x0,0x43,0x4b,0x2e,0x1f,0xc1,0x7f,0xf5,0x4b,0xc2,0x76,0x63,0x1c,0xc2,0x29,0x24,0xe3,0x3f,0x61,0x8e,0x81,0x43,0x4c,0xf,0x13,0x43,0x96,0x5b,0xff,0x40,0x48,0x81,0x3b,0xc2,0x63,0x1d,0x8c,0x42,0x31,0x23,0x1b,0xc3,0xd0,0xe4,0x72,0xc1,0xad,0xd2,0x65,0xc2,0xcc,0x44,0x96,0xc2,0x7c,0x41,0xa8,0x41,0x84,0xf5,0xe3,0xc2,0x9a,0x89,0xb6,0xc2,0xa9,0x10,0x9f,0xc1,0x95,0x62,0xa6,0xc2,0xf4,0x5f,0x3,0x42,0xb5,0xe7,0x45,0x43,0xa3,0x96,0xdb,0xc0,0x82,0x83,0xa5,0x42,0x11,0x7c,0xc8,0x42,0xda,0xa0,0xb0,0x41,0x10,0xe,0x40,0xc2,0xfe,0x92,0x2,0x43,0xdb,0x65,0x5b,0x42,0x72,0x4c,0xa9,0xc1,0x8,0xc9,0xd9,0x42,0x68,0xc2,0xdd,0x42,0x22,0x69,0xd0,0xc1,0x86,0xaf,0x54,0x41,0xfd,0xa2,0x9,0x43,0x1d,0xa4,0x1b,0xc2,0x56,0xff,0x8,0x42,0xf7,0xe6,0x8b,0xc2,0xb0,0x30,0x78,0x42,0xce,0x59,0x84,0xc2,0x0,0x87,0x85,0xc2,0x5e,0xc9,0xbc,0xc2,0x74,0x40,0x59,0x41,0x5f,0x71,0xca,0xc2,0x64,0x3e,0x97,0x42,0x2d,0xda,0x2,0xc3,0xef,0x84,0xb3,0xc1,0xd6,0x4c,0xb0,0x42,0xa,0xa6,0x98,0x42,0xf0,0x76,0x62,0xc2,0xa5,0x36,0xfb,0xc1,0xf0,0xe1,0x5f,0xc2,0xc0,0xab,0xd3,0x42,0xe7,0xc4,0xea,0xc2,0xe5,0x6f,0xb7,0xc2,0x96,0x29,0xbd,0xc1,0xf4,0xbe,0x33,0x41,0xf0,0x6b,0x43,0x42,0xec,0x1f,0x14,0xc3,0x65,0xdc,0xd0,0x42,0xb7,0x18,0xf0,0xc2,0x5a,0x6a,0x29,0xc3,0x7e,0xb9,0x69,0x42,0x34,0x4f,0xdf,0xc2,0x2f,0xa5,0x37,0x40,0x72,0xee,0xe4,0x42,0x43,0x37,0xe4,0x42,0xdd,0x87,0xc3,0xc2,0xa8,0xf6,0x9a,0xc0,0x12,0xeb,0x33,0x43,0xb1,0x20,0xa5,0xc1,0x75,0x43,0x5b,0x42,0xda,0x19,0x18,0x43,0x7e,0x23,0x58,0x43,0xa4,0xa4,0x20,0xc3,0x8c,0x93,0xd6,0xc1,0xb0,0x17,0x30,0x42,0x7e,0x1,0x89,0xc2,0xbb,0x1b,0xdb,0xc2,0x7a,0xe0,0x83,0x42,0x97,0x84,0x2c,0x42,0xd9,0x7c,0x84,0x42,0x5c,0x44,0x52,0x42,0x9c,0x46,0x81,0xc0,0x65,0xa3,0x1a,0x43,0xe1,0xc3,0x28,0xc3,0xc4,0xef,0x52,0x42,0x10,0xdc,0xb8,0x41,0xa6,0x30,0x2a,0xc2,0x46,0x97,0x15,0x43,0x50,0x51,0x11,0xc3,0x58,0xf7,0xc3,0xc2,0x32,0x5f,0xf9,0x41,0x83,0x57,0x10,0xc2,0xb5,0x16,0x7d,0xc2,0x3e,0x96,0xdf,0x42,0x9c,0x61,0xc7,0xc2,0x26,0xaa,0x49,0x42,0xd1,0x1e,0x76,0xc2,0x14,0xd9,0x56,0xc3,0xdd,0x95,0x14,0x41,0xb6,0xee,0xfe,0x41,0xe7,0x36,0xc4,0xc2,0x43,0x49,0xc8,0x42,0x3d,0xa,0x9,0x43,0x3a,0x67,0xe7,0xc2,0x2d,0x8b,0x1,0xc3,0xd1,0xbc,0xce,0x41,0x7e,0xa3,0x8a,0xc2,0xf2,0xef,0x4,0xc1,0x84,0x26,0x9a,0x42,0x40,0xed,0x81,0x41,0x40,0xb4,0x9d,0xc2,0x79,0x41,0x2f,0x42,0xaf,0xbc,0xc5,0x42,0x9,0x9,0x6c,0xc2,0x57,0xc5,0x81,0x42,0xc5,0xd8,0x51,0xc2,0x40,0x3e,0xe2,0x41,0x4b,0xe,0x1a,0xc2,0x58,0xa7,0xb8,0xc2,0x9b,0xff,0xe9,0x41,0x69,0x93,0x5a,0x42,0xeb,0xbf,0x7c,0xc2,0x76,0xd5,0x81,0xc2,0xe6,0x75,0x50,0x42,0xc5,0xc7,0xf,0xc2,0x14,0x2e,0x2f,0xc1,0xdc,0xbb,0xfb,0x42,0x10,0x39,0x13,0x42,0x8e,0x71,0xaf,0xc1,0x28,0x37,0x87,0x42,0xa8,0xe2,0x9e,0x42,0x59,0x87,0x31,0xc2,0x49,0x65,0x42,0xc2,0xde,0x6e,0x1d,0x40,0x79,0xf0,0x2c,0x43,0x1e,0x1d,0x7,0xc2,0x15,0xc2,0xaa,0xc2,0xb,0x2e,0x84,0x42,0xa6,0x9e,0xf3,0xc2,0xef,0xff,0x85,0x42,0x7f,0x51,0xfa,0xc2,0xf0,0x2b,0x3,0x43,0xa6,0xb2,0x92,0x41,0xc6,0xb3,0xd7,0xc1,0xbf,0x6c,0x64,0x41,0x5f,0x69,0x71,0xc1,0xac,0xf9,0xdb,0xc0,0x47,0xcf,0x8c,0xc2,0x1b,0x23,0xda,0xc0,0x96,0x39,0x8a,0xc2,0xce,0x2,0x25,0xc2,0x3a,0x3f,0x70,0x42,0x10,0x9e,0x17,0x40,0x2c,0x65,0x33,0xc1,0xfb,0x9d,0xa1,0xc1,0x4c,0xab,0x8,0xc2,0xc0,0x69,0x5,0x43,0xee,0xe2,0xf3,0x41,0xa5,0xa4,0x86,0xc0,0xcc,0x7f,0xd3,0xc1,0x1d,0xe4,0x66,0x41,0x9f,0x32,0x5,0xc1,0xcf,0x1a,0xeb,0xc1,0xd0,0x52,0xa7,0x41,0x57,0x81,0x29,0x42,0x24,0x3,0x9f,0xc1,0x13,0x74,0xaf,0x42,0x1f,0x4a,0x1,0x43,0xc3,0x16,0x73,0xc2,0x6a,0x5a,0xc5,0xc2,0x9d,0x98,0xe4,0xbf,0x99,0x43,0xc7,0xc2,0x53,0x5,0x6f,0xc2,0xca,0xc,0x55,0x40,0xe9,0x86,0x9,0x40,0x9e,0xce,0x77,0xc1,0x61,0x8a,0x74,0xc1,0xec,0xe,0x8c,0x41,0x9c,0x8c,0xf8,0x42,0x69,0x56,0x4d,0xc2,0xc5,0xf8,0xed,0x42,0x20,0xcf,0xa0,0x42,0xb2,0x88,0x1c,0x41,0x65,0x5,0x8f,0x41,0x24,0xe1,0xc,0xc2,0xae,0xe4,0xca,0x41,0x9e,0xab,0xc9,0x41,0xc4,0x81,0x95,0x42,0x86,0x67,0x5c,0xc0,0x65,0x66,0xa5,0x42,0x28,0xfd,0xf,0x3f,0xca,0x81,0x7,0xc1,0x9a,0xb7,0xf2,0x41,0x9,0xdd,0xee,0x40,0x9c,0x47,0xac,0xc0,0x32,0xbb,0x6d,0xc1,0x3,0xeb,0xa5,0xc2,0x91,0xa1,0x3b,0x42,0x24,0x47,0x94,0x42,0xf0,0x6c,0x18,0xc1,0x63,0x34,0xda,0xc1,0xcf,0x1d,0xa,0x42,0x9,0xef,0x26,0xc1,0x55,0x1e,0x9,0x42,0xd1,0xb7,0x9b,0xc2,0xd6,0xb4,0x79,0x41,0xb0,0x13,0x53,0x41,0x3f,0xb0,0x1e,0x42,0x6b,0x47,0x8d,0x42,0xc6,0xe9,0x4b,0xc0,0xaa,0xbb,0x81,0x3f,0x99,0xe5,0xc8,0x42,0x52,0x3c,0x1b,0xc1,0x6e,0x32,0x43,0x41,0xb8,0xef,0xbd,0x41,0x0,0x55,0x62,0x42,0x6b,0x7e,0xef,0x41,0xf0,0x9d,0x93,0x42,0x9e,0x14,0x92,0x42,0x16,0xc8,0xb5,0xc1,0x12,0xea,0x64,0xc1,0xc4,0x46,0x3b,0xc2,0xa7,0xcd,0x19,0xc1,0x56,0x11,0xfd,0xc2,0x7f,0x89,0xe,0xc3,0xb0,0x88,0xb9,0x41,0x42,0xcf,0x77,0xc2,0x82,0xe7,0xae,0x42,0xb,0x97,0xa7,0x42,0x1e,0x82,0xcd,0x42,0x9,0x5,0xa2,0x42,0x2a,0x1d,0xec,0xc2,0x1e,0x52,0x2f,0xc3,0xc1,0x53,0x8a,0xc1,0x8a,0x26,0x71,0xc2,0x69,0xd9,0x23,0xc3,0xc9,0x1e,0x88,0xc2,0x57,0x8b,0x48,0xc2,0x5b,0x15,0x6a,0x42,0xa5,0x14,0x9a,0x42,0xb8,0x4b,0xa6,0x40,0x1c,0xba,0x86,0xc2,0xa3,0xc5,0x53,0x42,0xc3,0xed,0x23,0x40,0x96,0x19,0xc5,0x42,0x21,0xd9,0x4d,0x42,0x96,0xe3,0x5c,0x42,0x7d,0x73,0x5,0x42,0x96,0xf5,0xf3,0xc0,0xf3,0xc6,0xa6,0xc2,0x1c,0x65,0x31,0xc2,0x77,0xce,0x9c,0xc2,0x52,0x89,0xd9,0x42,0xa8,0x16,0xcf,0x42,0x8e,0x87,0x5e,0xc2,0xea,0x1c,0x63,0x41,0xdc,0x92,0xfd,0xc1,0xcf,0x4b,0x3f,0x41,0xf7,0xdf,0x9d,0xc2,0xc1,0xf8,0x90,0x40,0x91,0x52,0xc6,0x42,0xf3,0x96,0x8e,0xc3,0x44,0x19,0xc5,0x40,0x87,0x35,0xcf,0x42,0x8c,0x1a,0x8,0xc3,0xe8,0x31,0xe0,0x40,0x61,0xbd,0xda,0x42,0x99,0x2d,0xc7,0xc2,0x87,0xea,0x86,0xc2,0x3a,0x1b,0x31,0x43,0x11,0x51,0x10,0xc3,0x9a,0x20,0xfc,0x41,0x76,0x2f,0x19,0x3f,0x7c,0x5a,0xf0,0xc2,0x21,0xf8,0x8e,0xc2,0xbe,0xa9,0x9b,0xc2,0xbb,0x7a,0xe5,0xc1,0xde,0xee,0xc8,0xc2,0xa6,0x37,0xca,0xc2,0xe,0x52,0xe9,0x42,0xf7,0x9e,0x8,0xc2,0xc8,0x26,0xf3,0x42,0x38,0x2e,0x10,0x41,0x89,0xf5,0x78,0x41,0x51,0x84,0x9,0x42,0x95,0x29,0xdf,0x42,0x78,0xaf,0xc9,0xc2,0xd3,0xbc,0x5,0x43,0x74,0x9d,0x2d,0xc2,0x84,0xe2,0xe9,0xc1,0x62,0xd5,0x3c,0xbf,0x61,0x6c,0x95,0x42,0x49,0x17,0x6c,0x42,0x4b,0x49,0x84,0x42,0xa9,0x27,0x26,0x43,0x16,0xc5,0x21,0xc3,0x30,0x9b,0x5e,0x40,0x76,0x9,0xfd,0xc1,0x26,0xd4,0x74,0x43,0x5b,0x71,0x94,0xc2,0x11,0x33,0xe2,0xc2,0xb4,0x33,0x35,0x42,0xb6,0xb3,0xd5,0xc1,0x46,0x1b,0xa5,0x41,0x68,0xe5,0xe8,0xc1,0xe9,0x40,0x0,0x42,0x9d,0x5a,0x9c,0x42,0xf8,0xf9,0x63,0xc2,0x2a,0xc9,0x3e,0xc1,0xd9,0xd0,0x97,0xc2,0x5e,0x89,0x5,0xc3,0x33,0x38,0xda,0x42,0x3,0x68,0x7e,0x42,0x9a,0xce,0xc2,0xc1,0x93,0x4a,0xea,0x42,0x26,0x2a,0xca,0xc1,0x7f,0x15,0x32,0x41,0xc4,0xcc,0xb5,0x42,0x2c,0x77,0x19,0xc2,0x86,0xf0,0x7f,0xc2,0x26,0xa9,0x46,0x41,0x3c,0xd9,0x12,0xc2,0x7b,0xf4,0xdd,0x42,0xf0,0x87,0x68,0x41,0xc4,0xc7,0x37,0xc2,0xcc,0x8d,0xe9,0xc2,0x7a,0x51,0xbd,0xc1,0xb9,0xee,0x63,0xc1,0xd3,0x7f,0x10,0x43,0x3d,0x27,0x28,0x43,0xe1,0x87,0x62,0xc1,0xd2,0x85,0x7,0xc2,0xa2,0x89,0x82,0xc2,0xe0,0xdc,0x40,0xc0,0x36,0x93,0x34,0x42,0x18,0xb6,0xc0,0x42,0xad,0x9c,0xbc,0xc2,0x56,0x12,0x4e,0xc2,0xf5,0x4a,0x35,0x43,0x6b,0x62,0xbf,0x41,0xe7,0xb8,0xb3,0x42,0xb3,0x93,0x39,0xc3,0xdd,0xb4,0x5d,0x42,0xee,0x6,0x13,0xc2,0x52,0xe2,0x3b,0x42,0xe4,0x91,0xa1,0x42,0xf1,0xe3,0x2f,0xc2,0x8e,0x2f,0xde,0xc2,0xdd,0x28,0x71,0xc2,0x96,0x98,0xf9,0xc2,0xfa,0x65,0x19,0x43,0x79,0x30,0x32,0x43,0x5e,0xe5,0x9e,0x42,0xe7,0xa,0x54,0xc2,0x63,0x49,0x17,0xc3,0x9b,0x16,0xe7,0x41,0x94,0xe6,0x80,0xc2,0xa9,0xe1,0xf9,0xc1,0x36,0x2d,0x4c,0x43,0x71,0xb6,0x2b,0x43,0x46,0x1e,0x82,0xc2,0x7c,0x4f,0x4a,0xc2,0x38,0x15,0x9f,0xc2,0x28,0x64,0x89,0x40,0xc7,0xf0,0x12,0xc2,0x20,0xd2,0xc,0xc3,0x1e,0x72,0x33,0x40,0xc8,0xa4,0x7c,0xc2,0x7c,0x2d,0x19,0xc2,0x2d,0x89,0x4f,0x41,0x96,0xe1,0x43,0xc2,0xae,0x8c,0xd1,0x42,0x4c,0x97,0xbb,0x41,0xba,0x81,0x35,0xc2,0x1e,0xb3,0xe0,0xc2,0x70,0xb0,0x92,0xc0,0x1f,0x99,0x85,0x42,0x92,0x38,0xfc,0xc2,0x4b,0x7,0x63,0xc2,0x62,0x32,0xb8,0xc2,0x48,0xb2,0x6e,0xc3,0x9,0xc6,0x37,0x43,0x20,0x8d,0x2e,0x43,0x1f,0xb8,0x3e,0xc2,0x55,0x9f,0x43,0xc1,0x99,0x5c,0xee,0xc2,0xb7,0x36,0x88,0x42,0xd6,0xb2,0xb4,0x41,0x52,0xf0,0x4e,0x41,0x19,0xe4,0x4d,0x41,0xc1,0xda,0x3e,0x42,0xda,0x37,0x23,0x41,0x42,0x25,0xbe,0xc2,0x2d,0xfb,0x9a,0xc2,0xe1,0x81,0x17,0xc2,0xc3,0xf5,0xad,0x41,0x18,0x9d,0x5,0xbf,0x8f,0x96,0xf9,0x42,0x2,0x2f,0x8c,0xc0,0xb9,0xe7,0xa1,0xc2,0x1f,0x5a,0x3b,0x42,0x3a,0x63,0x64,0xc2,0x1c,0x2d,0x18,0x43,0x16,0xf2,0xa8,0xc2,0x90,0xd3,0x8c,0xc1,0x24,0x7,0x1f,0xc3,0x90,0x63,0x9b,0xc1,0x81,0x4d,0x4d,0xc2,0xa2,0x28,0xfe,0xc1,0x9a,0xf3,0x53,0x41,0x7d,0x18,0x1c,0x43,0x13,0x25,0x30,0xc3,0x21,0x9f,0x93,0x42,0x7f,0xe8,0x1,0xc3,0xa0,0x6e,0xc0,0xbf,0x10,0x62,0x91,0xc1,0x5,0xc3,0x2d,0xc1,0xb3,0xb0,0x40,0xc2,0x76,0xae,0x2e,0xc1,0x8c,0xef,0x27,0x42,0xd2,0xe2,0xc,0xc2,0x53,0xe0,0x83,0xc2,0xb7,0xa6,0x3f,0xc3,0xf,0x9b,0x23,0xc3,0x98,0x39,0xe,0x43,0x28,0x4a,0xbc,0xc2,0x20,0xfa,0xd3,0x42,0x9e,0x57,0x28,0xc0,0xd9,0x1f,0x4f,0x42,0xfe,0x18,0x6f,0xc3,0x34,0xe1,0xc4,0xc2,0xbd,0x37,0xdf,0x42,0xc8,0xe7,0x38,0xc3,0xa9,0xe,0x96,0xc2,0x72,0x48,0xcc,0xc1,0xab,0xc1,0x4b,0xc2,0xde,0x10,0xc8,0xc1,0xc4,0x4,0x45,0x42,0xee,0x59,0xab,0xc2,0x17,0xf1,0x38,0xc2,0x7d,0xb1,0x10,0x43,0xf9,0x79,0x8a,0xc1,0x80,0x9a,0x9,0xc1,0xbe,0xdb,0x2e,0x43,0x46,0x24,0xd6,0xc2,0xd9,0x9c,0xa,0xc2,0xd5,0x4d,0xc9,0x42,0xb8,0x1,0x95,0x42,0x52,0xd7,0x9a,0x42,0xd4,0x43,0x13,0xc2,0x9a,0xf5,0x9b,0x42,0xa4,0x4a,0x99,0xc1,0x4d,0x89,0x2a,0x43,0xe8,0x91,0x8e,0x42,0x9c,0xd4,0x5,0x42,0x9e,0x68,0xd9,0xc2,0x34,0xdc,0xd0,0xc0,0xd6,0xdb,0x9a,0x40,0xab,0xba,0x91,0xc2,0xa7,0x3c,0x7b,0x41,0x32,0x4a,0x1a,0xc2,0x21,0x5a,0xb9,0xc2,0xe2,0xb0,0x89,0xc2,0x68,0xf,0x2c,0xc2,0x89,0x72,0x17,0xc2,0x8d,0x2b,0x80,0xc2,0xbd,0x2,0xf,0xc2,0x8e,0x34,0xf2,0x41,0xd4,0xe9,0x8d,0x42,0xfd,0xef,0x28,0xc2,0xfb,0x3f,0x3f,0xc2,0x41,0xb4,0xe2,0xc2,0xcf,0xb,0x55,0x42,0x84,0xfd,0x8f,0xc1,0x60,0xa2,0xfa,0x42,0x5f,0x2e,0xf,0x42,0x77,0x2b,0x80,0xc2,0x2f,0xbe,0x7b,0xc2,0xb2,0xf9,0x8d,0xc2,0xe4,0x20,0x93,0xc2,0x90,0x34,0x22,0xc2,0xaa,0x14,0x4a,0xc2,0x14,0x1a,0xa9,0x42,0x59,0x34,0xd,0x43,0x3,0xc3,0x7f,0xc1,0x68,0x2d,0x84,0x42,0x57,0x8d,0xa6,0xc2,0x6,0xd,0x4c,0xc2,0xfc,0xd6,0xd2,0x41,0x6,0xe5,0x19,0xc1,0x95,0xe7,0x10,0xc3,0x70,0xe2,0x47,0xc2,0xd5,0x7a,0xff,0x41,0x9d,0x6b,0xc2,0xc2,0x57,0x25,0x69,0x41,0xea,0x56,0x9a,0x42,0x7d,0xcb,0xa0,0x41,0x7a,0xf1,0xce,0xc2,0xcb,0x81,0x90,0xc2,0xa0,0x46,0x46,0xc2,0x24,0xfe,0xc7,0x42,0x22,0xf8,0x84,0x42,0x5,0x2b,0xeb,0x41,0xf0,0xce,0x87,0xbe,0x91,0x6b,0x73,0xc2,0xca,0xa2,0x61,0xc1,0x3b,0xbd,0xe,0x43,0xd0,0x48,0xe7,0x42,0xd0,0x9a,0x85,0x42,0x2d,0x7e,0x73,0xc2,0xe8,0xff,0xa4,0xc2,0xf0,0xfb,0x47,0xc1,0xb4,0x2e,0x72,0x42,0xe,0x45,0x1,0x42,0x18,0xd0,0x2d,0x41,0x69,0xe7,0x1f,0xc2,0xa,0x60,0x4e,0xc2,0x62,0x7b,0x16,0xc3,0xa8,0x8c,0xb,0x42,0x6e,0x7a,0x21,0x43,0xa0,0x6f,0x9b,0x42,0x84,0x27,0x42,0xc2,0xf,0xba,0x53,0xc2,0x6a,0x48,0x9c,0x41,0x48,0xdf,0xf7,0xc1,0x96,0x45,0x5f,0x42,0x39,0x3a,0xa,0xc2,0x2,0xa5,0xc3,0x41,0xfd,0xab,0x24,0xc2,0xde,0x96,0xd,0xc3,0x91,0x9a,0xa8,0xc2,0x51,0xf8,0x6a,0x42,0x88,0x8b,0x5f,0xc1,0xf9,0x94,0xac,0xc0,0xca,0x66,0x8e,0xc0,0x79,0x18,0x95,0x42,0x73,0xca,0xaa,0x42,0xd3,0x2c,0x9a,0xc2,0x9,0xb6,0x1c,0xc2,0xdb,0x1,0xc1,0xc1,0xe3,0xa1,0x86,0xc2,0x34,0x10,0x1,0x42,0x39,0xf2,0xbb,0xc2,0x7b,0x8e,0xcd,0xc2,0xf3,0x35,0x33,0xc3,0xcf,0x7,0x18,0xc2,0xc3,0xd1,0xc,0x43,0x31,0x9f,0x63,0xc2,0x90,0x3,0x11,0xc3,0x3a,0xb4,0x34,0xc2,0x6d,0x87,0xad,0x42,0x2c,0x40,0xf8,0xc1,0xb1,0x6,0xa1,0xc2,0x44,0xd8,0x56,0x42,0xc5,0x58,0x1a,0x43,0xe4,0x8f,0xf3,0xc1,0x54,0xa4,0x8,0x43,0x8e,0x2e,0xb5,0xc1,0x14,0xc5,0xfa,0x42,0x32,0x5a,0x8,0xc3,0x29,0x5f,0x80,0x42,0x11,0xac,0x69,0x42,0x25,0x8,0xfc,0x42,0x6d,0x57,0xd5,0x41,0xa,0xed,0xb1,0xc2,0xd4,0x5c,0xe7,0x41,0x87,0x66,0xc0,0xc1,0x8d,0x89,0x32,0x42,0x8,0x54,0x5b,0xc2,0x9a,0x81,0xb,0xc1,0x1c,0x1e,0x1d,0xc2,0x6e,0x6e,0x13,0x42,0xd8,0xa2,0x53,0xc2,0xb8,0x8,0x31,0x43,0x54,0x41,0xa6,0x42,0xa6,0x74,0x73,0xc2,0x52,0x3c,0x91,0xc2,0x65,0x39,0x21,0x43,0x5d,0x15,0x5a,0xc2,0xa0,0xc5,0x98,0x42,0xc7,0xa7,0x8e,0xc2,0xcd,0x73,0xcb,0xc2,0x7,0x3c,0x2b,0xc3,0xf6,0xcc,0xa3,0xc0,0xdc,0x4e,0x6c,0x42,0x28,0xff,0xeb,0x3e,0xa1,0x88,0xab,0xc2,0xac,0x6c,0x2e,0xc1,0xbf,0x5a,0xbc,0x42,0x2b,0xd2,0xe5,0x42,0x20,0x8e,0xf7,0xc0,0x5,0xa6,0xea,0x42,0x52,0x0,0xce,0xc1,0x37,0x28,0x81,0x42,0x7a,0xbd,0xbe,0x42,0x5d,0xdd,0xb7,0xc2,0x49,0x5d,0x1d,0x43,0x4d,0xb5,0x44,0xc2,0xa0,0x91,0xe7,0x42,0x80,0x9a,0xcb,0xc2,0xa0,0x2d,0xa2,0x40,0x5,0x1b,0xb1,0x41,0xd5,0x49,0x83,0x42,0x3f,0x23,0x77,0xc2,0x79,0x78,0xd8,0x42,0x43,0x22,0xbb,0x42,0x97,0xaa,0xf,0x43,0x18,0xe,0xc2,0x42,0x25,0xf9,0x71,0xc2,0x56,0xdf,0x27,0xc2,0x4f,0x1f,0xa6,0xc2,0xa1,0x94,0xa,0x43,0xb3,0x47,0x80,0xc2,0xc0,0x8f,0x6a,0xc1,0x3a,0x4,0x9a,0xc2,0x4c,0xe7,0xbb,0x42,0xbf,0x52,0x47,0xc0,0x89,0x3d,0x9f,0x41,0xf8,0x22,0x47,0xc1,0x26,0x9,0xde,0xc2,0xe0,0xa,0x17,0x41,0xb3,0x2e,0x9d,0xc1,0xd0,0x3c,0xf3,0x41,0x72,0x4d,0x70,0x42,0xb7,0xb,0xf6,0x42,0xf8,0x60,0x1c,0x42,0xaa,0x1f,0xf7,0x42,0x96,0x81,0x8b,0x42,0xb9,0x3e,0xc,0x40,0xed,0xf6,0x33,0xc2,0x89,0xe1,0x81,0xc2,0x43,0x85,0xca,0xc2,0x3c,0x6f,0xcc,0xc1,0x81,0x12,0xca,0x42,0x2d,0x3a,0x7a,0xc2,0xd7,0xcf,0xd4,0x42,0xff,0xfb,0x8a,0xc2,0xfa,0x19,0xb3,0xc1,0x83,0xa0,0xc9,0x42,0xbe,0xef,0x6f,0x42,0xa1,0x63,0xfc,0xc2,0xd5,0xf5,0x7e,0x42,0x70,0x49,0x11,0x42,0x84,0x6a,0xcf,0x41,0x72,0x49,0x78,0xc2,0x5c,0x83,0x10,0x41,0x7b,0x5f,0xc6,0x42,0xd5,0x6f,0xd4,0x42,0xef,0x3b,0xc,0xc2,0x91,0x4,0x2e,0xc1,0x1f,0xe3,0xc0,0x42,0xa0,0x94,0x7b,0xc2,0x1,0x1f,0xac,0xc2,0xb2,0x19,0xe6,0x42,0x1d,0x30,0xee,0xbf,0x50,0xc6,0xe,0x42,0x9e,0x6a,0xf0,0x41,0x90,0xae,0x58,0xc1,0x45,0x84,0x30,0xc1,0x47,0x49,0x30,0x43,0x80,0x47,0x36,0x41,0x7f,0xc5,0xdc,0xc1,0xba,0xca,0xb,0xc3,0x90,0x57,0x92,0x42,0xe6,0xa5,0x77,0x40,0x6,0x9e,0x8c,0x42,0x3b,0x48,0x48,0x42,0xcc,0xee,0x6d,0xc2,0xac,0x8a,0x8b,0x42,0xfc,0x1f,0xfe,0x42,0x73,0x1f,0xf8,0x41,0x22,0xe2,0xb2,0xc2,0xb,0x9c,0x91,0x42,0x8,0xef,0x49,0xbf,0x11,0x4f,0xe0,0x40,0x8,0x5a,0xd5,0xc1,0x5f,0x2d,0x1e,0x41,0x8c,0x7f,0x4,0xc2,0xb0,0xe,0xac,0x42,0xeb,0x4c,0x81,0xc3,0x51,0x54,0x84,0xc2,0x5a,0xb8,0x23,0x41,0x26,0x99,0xaa,0xc1,0xb5,0xb5,0x86,0xc2,0x59,0x3b,0xe1,0xc2,0xa3,0x45,0xa2,0x42,0x72,0xe9,0x4a,0xc3,0xcc,0x30,0x82,0xc2,0xea,0x92,0xcd,0xc1,0xa4,0xdd,0xa1,0x41,0x10,0x9c,0xb6,0xc1,0xf8,0x60,0x9d,0x42,0x24,0x63,0x26,0xc0,0xa4,0xc3,0x3d,0x41,0x2a,0xec,0x14,0x42,0x9b,0xbf,0x17,0xc1,0x91,0x5b,0x1c,0xc2,0xb0,0xce,0x28,0xc2,0x49,0xa3,0xbb,0xc2,0x73,0xb4,0xb0,0x41,0xb0,0x12,0x6b,0xc2,0xe6,0x7c,0xec,0x42,0x4a,0xac,0x81,0x42,0x4c,0x34,0xf,0xc3,0x89,0xcc,0x8d,0xc2,0x20,0x47,0x96,0x42,0x27,0x2c,0x44,0xc3,0x12,0xc2,0xa2,0x42,0x2f,0x4,0x7,0xc1,0xf0,0xa0,0x52,0x40,0x74,0x45,0x8d,0xc1,0xfc,0x98,0x26,0xc2,0x59,0xea,0xda,0x40,0xd8,0xa1,0x1b,0x43,0xa0,0xf5,0xb8,0xc2,0xbd,0x5d,0x8c,0x42,0x1,0x82,0x82,0x42,0x3d,0x23,0xfa,0x42,0x65,0x33,0xef,0x42,0xe3,0x57,0xc5,0x42,0x21,0xa5,0xca,0xc2,0x18,0x6c,0xf,0x42,0x46,0x9c,0xbf,0xbf,0x31,0x80,0xae,0x42,0x9d,0xa6,0x70,0x42,0x54,0xff,0x3,0xc1,0x9c,0x41,0x8a,0xc2,0x1f,0x24,0x93,0x41,0xb5,0xcf,0xc6,0xc1,0xf9,0x80,0xe4,0x41,0xf4,0x78,0xec,0xc2,0x97,0x3e,0x85,0xc1,0xfd,0x4f,0x20,0xc3,0x5f,0x82,0xd2,0x41,0xc8,0xf,0xaa,0xc1,0xc9,0x32,0x11,0x43,0x9d,0xe7,0x78,0xc2,0x40,0xb8,0x5,0x41,0xc,0x87,0xc8,0x42,0xb3,0x4d,0xe,0x42,0x5a,0xa9,0xa8,0x42,0x79,0x66,0xb9,0x42,0x5c,0xdb,0x14,0x43,0x20,0x83,0x42,0x41,0x3,0x4d,0x57,0x41,0x5b,0x20,0xc6,0xc2,0x30,0x7,0x5f,0xc0,0xd,0xb5,0xb7,0xc2,0xf5,0xbf,0x1e,0xc2,0x53,0x28,0xab,0x42,0xea,0xfc,0x5b,0x42,0xbf,0xc6,0xc6,0xbf,0x83,0x0,0x2e,0x42,0xd2,0x39,0x47,0x42,0xc9,0xfe,0x20,0x42,0x43,0x0,0xb5,0x42,0x22,0x17,0x3f,0xc1,0x1a,0x80,0xe9,0x40,0xbd,0x2f,0x86,0x42,0x69,0x98,0xc2,0x42,0x3d,0x89,0x43,0x43,0xe9,0xe9,0x3,0xc3,0x2c,0xa5,0x97,0xc2,0x80,0xda,0x71,0xc2,0x34,0xf6,0x5f,0xc3,0x58,0x4b,0x90,0x42,0xce,0xaa,0x1e,0x42,0x19,0x58,0x42,0xc0,0x8f,0xc7,0xc1,0xc0,0x60,0x6e,0xde,0x41,0x38,0xb2,0xa6,0xc2,0x28,0x3,0x1d,0xc1,0x45,0x31,0xde,0x41,0x81,0x67,0x69,0xc2,0xa4,0xed,0x9,0xc0,0x75,0xcd,0x13,0xc3,0xcf,0xf3,0x93,0x41,0x7a,0x2,0x53,0x42,0x1,0xde,0xf5,0xc2,0x1f,0xd2,0x7a,0xc2,0xff,0xba,0x83,0xc1,0xda,0x40,0x5c,0xc1,0x52,0x7d,0x44,0x42,0xa8,0x23,0xb9,0x42,0x37,0x6,0x9f,0xc2,0x4f,0x53,0xa2,0x42,0xd2,0x4a,0x2f,0x41,0xf5,0x4b,0x5d,0x41,0xc,0x9c,0x8a,0xc2,0x20,0x29,0xa0,0xc2,0xa9,0xa9,0xc8,0x41,0xd7,0x6d,0xda,0xc2,0xca,0xaa,0xae,0x41,0x7f,0x23,0x17,0x43,0x24,0xf7,0xa6,0xc2,0xa5,0xac,0x95,0xc2,0x80,0x70,0x35,0xc1,0x70,0x3,0xcd,0x41,0xe6,0xd9,0xbb,0xc1,0x5e,0xf3,0xbc,0xc2,0xfa,0x7a,0x80,0x41,0x7d,0x52,0x8f,0x42,0x90,0x7d,0xf8,0xc2,0x78,0x4c,0x44,0x42,0xc1,0xa5,0x5f,0x41,0x26,0xae,0x4a,0x42,0x82,0x53,0x0,0xc2,0x2f,0x38,0x86,0xc2,0x94,0x85,0x59,0x41,0xd7,0xf0,0xe9,0x42,0xbd,0xa,0xa5,0xc2,0xa7,0x7e,0xb8,0xc2,0x20,0xf7,0xeb,0x42,0xe,0x8a,0x69,0x42,0x56,0x3,0x69,0x42,0x3e,0x13,0x14,0xc2,0x26,0xf0,0x6,0xc3,0x1,0x49,0x34,0x42,0x4,0x93,0x1c,0x43,0xc0,0x23,0x92,0x41,0x9,0x60,0xd3,0x42,0xb0,0x97,0xa8,0xbf,0xea,0xd7,0x1c,0x42,0x6f,0x9,0x91,0x41,0x1c,0xad,0xba,0x42,0x6b,0x4d,0xbd,0x42,0x25,0xfc,0x88,0xc1,0xf8,0x52,0xb8,0x41,0xf,0x5,0x70,0x42,0xcd,0x17,0x1,0xc2,0xee,0x8e,0xce,0xc0,0x9a,0xe9,0xee,0x42,0x53,0x39,0x28,0xc1,0x48,0xc5,0xd6,0xc1 }); - Tensor *actual = NN_zeros(4, (size_t[]){ 1, 12, 12, 56 }, DTYPE_F32); - - cycles = read_cycles(); - NN_conv2d(actual, x, w, b, (size_t[]){1, 1}, (size_t[]){1, 1}, (size_t[]){1, 1}, 1); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(x); - NN_delete_tensor(w); - NN_delete_tensor(b); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("layer_norm: "); - - // [[-4.1312113 2.6232095 4.37248 1.7541105 4.099492 ] [-3.0611162 4. - Tensor *x = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0xe2,0x32,0x84,0xc0,0xaa,0xe2,0x27,0x40,0x5b,0xeb,0x8b,0x40,0xb1,0x86,0xe0,0x3f,0xa,0x2f,0x83,0x40,0x54,0xe9,0x43,0xc0,0xad,0x81,0x8f,0x40,0xb,0x59,0x6b,0x40,0x40,0x70,0x6,0xc0,0xc0,0xc7,0x88,0x40,0x63,0x24,0x11,0xc0,0xc9,0x41,0x87,0xc0,0x6,0xe2,0x95,0x40,0x5c,0xd6,0xc7,0x3f,0x98,0x94,0x32,0x40,0x49,0xca,0x9b,0x3f,0xbc,0xa8,0x38,0x3f,0x1a,0x2e,0xd5,0x3f,0xf8,0x4,0xee,0x3f,0xce,0x1a,0x55,0xc0,0x7c,0x46,0x51,0x40,0x48,0x16,0xab,0x3e,0xcc,0xf,0xb,0x40,0x27,0x52,0x8b,0xc0,0x12,0x40,0x46,0xc0,0x4e,0x6d,0xf,0xc0,0xc,0xf2,0x82,0xc0,0x24,0xb1,0x79,0x40,0x30,0x6b,0x48,0x3f,0x7d,0x24,0x6a,0xc0 }); - // [-3.08712 -1.1476618 4.215437 -2.0621502 4.5133142] - Tensor *w = NN_tensor(1, (size_t[]){ 5 }, DTYPE_F32, (uint8_t[]){ 0x60,0x93,0x45,0xc0,0x95,0xe6,0x92,0xbf,0xdc,0xe4,0x86,0x40,0x45,0xfa,0x3,0xc0,0x12,0x6d,0x90,0x40 }); - // [0. 0. 0. 0. 0.] - Tensor *b = NN_tensor(1, (size_t[]){ 5 }, DTYPE_F32, (uint8_t[]){ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 }); - - - // [[ 5.8688583e+00 -3.2666373e-01 3.5860448e+00 -7.0029483e-03 3.4407492e+00] - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0xb0,0xcd,0xbb,0x40,0x78,0x40,0xa7,0xbe,0xc2,0x81,0x65,0x40,0xfd,0x78,0xe5,0xbb,0x3c,0x35,0x5c,0x40,0xe7,0x62,0x86,0x40,0x88,0x10,0x86,0xbf,0xed,0x9b,0x34,0x40,0xbe,0x59,0xd,0x40,0xb7,0x52,0x75,0x40,0xa8,0x14,0x27,0x40,0xf0,0xe3,0xd3,0x3f,0x42,0x97,0xab,0x40,0x73,0x5a,0x29,0xbf,0xad,0xd0,0x48,0x40,0x2b,0xc3,0xa2,0xbf,0x0,0x6c,0x34,0xbe,0xe5,0x29,0x2e,0x40,0xab,0x17,0xc5,0xbf,0x84,0x5e,0xd,0xc1,0xb7,0x6c,0x71,0xc0,0x6f,0x43,0x85,0xbe,0x90,0x55,0x65,0x40,0x81,0xca,0x33,0x40,0x23,0x41,0x87,0xc0,0xb0,0xc4,0x9a,0x3f,0x42,0xd2,0x93,0x3f,0x2e,0x49,0xde,0x40,0x6e,0xa4,0xa1,0xbf,0x36,0x14,0x79,0xc0 }); - Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F32); - - cycles = read_cycles(); - NN_layer_norm(actual, x, 1, w, b, 1e-05); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(x); - NN_delete_tensor(w); - NN_delete_tensor(b); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("layer_norm: "); - - // [[ 2.7400148 -3.5953224 -4.495681 1.4268243 3.416925 ] [-0.9953773 -4. - Tensor *x = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0x67,0x5c,0x2f,0x40,0xc3,0x19,0x66,0xc0,0x9e,0xdc,0x8f,0xc0,0x2e,0xa2,0xb6,0x3f,0xe6,0xae,0x5a,0x40,0xc,0xd1,0x7e,0xbf,0x37,0x5b,0x8c,0xc0,0xe8,0x23,0xee,0x3f,0x5f,0xad,0xd4,0xbf,0xb0,0x99,0x17,0xc0,0x94,0xaa,0xd9,0x3e,0xe,0x40,0x6f,0x40,0xf4,0xe1,0x8f,0xc0,0x7d,0xfc,0x8f,0x3f,0x40,0x42,0x75,0xbe,0xc5,0x9a,0x5b,0xc0,0xe8,0x1c,0x86,0x40,0x10,0x5b,0x41,0xbf,0x9f,0xc,0x99,0x40,0x74,0xb8,0x63,0xc0,0x88,0xea,0x9b,0x3e,0x65,0x9b,0xa9,0xbf,0x40,0x48,0x86,0x3f,0x12,0x41,0x9a,0xc0,0xd,0x5c,0xbe,0x3f,0xd8,0x7e,0x2a,0xc0,0x9a,0x36,0x33,0x40,0xe4,0x85,0x9,0xc0,0xe0,0x41,0x2b,0xbd,0xda,0xa3,0x77,0xc0 }); - // [-3.2119048 2.37895 4.4623446 4.167028 -4.1119785] - Tensor *w = NN_tensor(1, (size_t[]){ 5 }, DTYPE_F32, (uint8_t[]){ 0xd9,0x8f,0x4d,0xc0,0xb8,0x40,0x18,0x40,0x87,0xcb,0x8e,0x40,0x4b,0x58,0x85,0x40,0x54,0x95,0x83,0xc0 }); - // [-1.6493994 3.4338694 1.9688916 2.7939873 4.531722 ] - Tensor *b = NN_tensor(1, (size_t[]){ 5 }, DTYPE_F32, (uint8_t[]){ 0x85,0x1f,0xd3,0xbf,0x84,0xc4,0x5b,0x40,0xa4,0x4,0xfc,0x3f,0xb0,0xd0,0x32,0x40,0xde,0x3,0x91,0x40 }); - - - // [[-4.4186983 0.91179496 -3.9810324 4.7263665 0.14178845] [-2.463022 0. - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F32, (uint8_t[]){ 0xfa,0x65,0x8d,0xc0,0x65,0x6b,0x69,0x3f,0x3c,0xc9,0x7e,0xc0,0x65,0x3e,0x97,0x40,0xfe,0x30,0x11,0x3e,0x27,0xa2,0x1d,0xc0,0xd1,0x38,0x8b,0x3d,0x22,0xe7,0x15,0x41,0xa0,0xf7,0x1e,0x40,0x1c,0x97,0xc8,0x40,0xec,0xc9,0x1,0xc0,0x5a,0x55,0xd5,0x40,0xe6,0x68,0xb7,0xc0,0x71,0x13,0x8c,0x40,0x39,0x44,0xa2,0x40,0x4c,0xb4,0xcf,0x3f,0x33,0x17,0xc1,0x40,0xb3,0x32,0x3b,0x3f,0xc,0x82,0x0,0x41,0xec,0xd7,0xd,0x41,0x10,0x3d,0x40,0xc0,0x7f,0x9b,0x2f,0x40,0x2f,0xa6,0xa9,0x40,0x86,0xd4,0x98,0xc0,0xfd,0x88,0x2c,0x3f,0x76,0x90,0xc0,0x3e,0x1f,0x36,0xef,0x40,0xbc,0x29,0xa,0x3e,0x6c,0x61,0x9a,0x40,0x53,0xce,0x13,0x41 }); - Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F32); - - cycles = read_cycles(); - NN_layer_norm(actual, x, 1, w, b, 1e-05); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(x); - NN_delete_tensor(w); - NN_delete_tensor(b); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("abs: "); - - // [[ 1.436 -3.793 -2.328 1.855 2.836 -0.4395 -3.89 ]] - Tensor *a = NN_tensor(2, (size_t[]){ 1, 7 }, DTYPE_F16, (uint8_t[]){ 0xbe,0x3d,0x96,0xc3,0xa8,0xc0,0x6c,0x3f,0xac,0x41,0x8,0xb7,0xc8,0xc3 }); - - - // [[1.436 3.793 2.328 1.855 2.836 0.4395 3.89 ]] - Tensor *golden = NN_tensor(2, (size_t[]){ 1, 7 }, DTYPE_F16, (uint8_t[]){ 0xbe,0x3d,0x96,0x43,0xa8,0x40,0x6c,0x3f,0xac,0x41,0x8,0x37,0xc8,0x43 }); - Tensor *actual = NN_zeros(2, (size_t[]){ 1, 7 }, DTYPE_F16); - - cycles = read_cycles(); - NN_abs(actual, a); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(a); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("add: "); - - // [[-0.7617 -2.164 1.372 -3.262 1.836 0.07324 -3.746 ] [ 1.24 0. - Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x18,0xba,0x54,0xc0,0x7d,0x3d,0x86,0xc2,0x58,0x3f,0xb0,0x2c,0x7e,0xc3,0xf6,0x3c,0x1c,0x3b,0x5b,0xbc,0xf2,0x42,0x8d,0xc0,0x58,0xc1,0x8,0x37,0x1a,0xc4,0x90,0xc4,0xb7,0x3f,0x9c,0x42,0x68,0x40,0x41,0xc4,0x60,0x3c,0x4a,0x42,0x0,0x35,0x3c,0x41,0xf,0x41,0x5b,0xc4,0xf0,0xc1,0xe9,0xbf,0xb8,0x3e,0xf4,0x40,0xc1,0xbf,0x29,0x44,0xba,0x42,0xb2,0xbb,0x6c,0x44,0xa4,0x3e,0xe,0xc0,0x58,0xc0,0x63,0x42,0x24,0x38,0xb0,0xb4,0xc8,0x41 }); - // [[ 0.01465 3.701 2.836 2.148 0.01953 -1.938 2.295 ] [-2.363 -4. - Tensor *b = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x80,0x23,0x67,0x43,0xac,0x41,0x4c,0x40,0x0,0x25,0xc1,0xbf,0x97,0x40,0xba,0xc0,0xff,0xc4,0x6a,0x44,0x7e,0x3c,0xf8,0xbf,0x79,0x40,0x74,0x3c,0xea,0xba,0x8a,0xbb,0x15,0xc4,0x6b,0x44,0x51,0xc0,0x26,0xc0,0x58,0x44,0x3c,0xbd,0x8d,0xc4,0x7a,0xc4,0xf0,0x2d,0xe4,0x3f,0xa6,0xc2,0xe4,0x44,0xe2,0x44,0xc8,0x3d,0x80,0x40,0x4,0xb6,0x62,0x3f,0x4,0xb6,0x60,0xb0,0xc8,0xb1,0x7f,0xc4,0xfe,0x3e,0xce,0x44,0x23,0xc1,0x99,0xc3,0xec,0x44 }); - - - // [[-0.747 1.537 4.207 -1.113 1.855 -1.865 -1.451 ] [-1.123 -4. - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0xfa,0xb9,0x26,0x3e,0x35,0x44,0x74,0xbc,0x6c,0x3f,0x76,0xbf,0xce,0xbd,0x7e,0xbc,0x1c,0xc4,0xa6,0x42,0x98,0x44,0x44,0xc4,0xf8,0xb6,0x36,0x3e,0xf7,0xc4,0x81,0xc5,0x4e,0xc0,0xb9,0x47,0xc0,0x29,0x54,0xc6,0x70,0x45,0x58,0x3f,0x3d,0xc4,0x70,0xbf,0x3e,0x41,0xc4,0xc0,0x4b,0xc6,0xd4,0x41,0x90,0x46,0xd8,0x43,0xfc,0x34,0x92,0x43,0x36,0x45,0x5a,0xbd,0x49,0x44,0xeb,0x3d,0x86,0xc6,0xc8,0xb6,0x0,0x48,0x1a,0xc0,0x18,0xc4,0xd0,0x47 }); - Tensor *actual = NN_zeros(2, (size_t[]){ 6, 7 }, DTYPE_F16); - - cycles = read_cycles(); - NN_add(actual, a, b); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(a); - NN_delete_tensor(b); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("matmul_t: "); - - // [[ 1.772 2.94 1.162 -1.147 0.3809 3.688 -4.418 ] [-2.535 -1. - Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x17,0x3f,0xe1,0x41,0xa6,0x3c,0x97,0xbc,0x18,0x36,0x60,0x43,0x6b,0xc4,0x12,0xc1,0x44,0xbf,0x1,0xc4,0x3d,0xc4,0x30,0x33,0xd6,0xbe,0xfc,0x42,0x77,0xc2,0xb0,0xbc,0xcd,0x3d,0xf8,0xb3,0x9e,0xc0,0xa4,0x36,0xab,0x3c,0x6a,0x44,0x72,0xc0,0x50,0xc4,0x91,0x3d,0xcc,0xbe,0xab,0x40,0xa0,0xa9,0x30,0x40,0xd0,0x2f,0xa3,0x43,0x3,0x3f,0xf8,0xc4,0xba,0x40,0xee,0x41,0x5e,0x44,0xc8,0x3d,0xc3,0xbd,0x48,0x44,0x56,0x38,0x50,0x41,0x40,0xb2 }); - // [[-4.215 -2.582 -2.92 -3.629 2.012 -2.125 -0.454] [-2.953 -4.016 4.93 -4.88 - Tensor *b = NN_tensor(2, (size_t[]){ 5, 7 }, DTYPE_F16, (uint8_t[]){ 0x37,0xc4,0x2a,0xc1,0xd7,0xc1,0x42,0xc3,0x6,0x40,0x40,0xc0,0x44,0xb7,0xe8,0xc1,0x4,0xc4,0xee,0x44,0xe2,0xc4,0x54,0x3a,0x42,0x43,0x6d,0xbe,0x25,0x44,0x76,0x43,0x35,0xc3,0x62,0x43,0x5a,0xbd,0x8c,0xbd,0x4e,0x3b,0xd6,0x3e,0x0,0x39,0x30,0xbf,0xaf,0x41,0x3c,0x41,0x95,0xc2,0x4c,0x40,0x9c,0xc2,0x8,0xc0,0x32,0xc3,0xf0,0xc3,0xb,0xc0,0xb2,0x41,0xf8,0x3f }); - - - // [[-19.36 15.07 0.2311 -21.11 -10.48 ] [ 44.94 4.1 -13.24 3 - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F16, (uint8_t[]){ 0xd7,0xcc,0x89,0x4b,0x65,0x33,0x47,0xcd,0x3d,0xc9,0x9e,0x51,0x1a,0x44,0x9f,0xca,0xcb,0x42,0x9d,0x51,0x43,0x47,0x1b,0x4d,0x15,0xcd,0x3c,0xcb,0x3f,0x4c,0xd7,0xca,0x3e,0xce,0x6b,0x4f,0xa3,0x45,0xf0,0x48,0x60,0xd1,0xf3,0x42,0xec,0x47,0x52,0xca,0x2e,0xc5,0xbe,0xd0,0x8a,0xd0,0xfd,0x50,0xb0,0x4b,0xc5,0xcd }); - Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F16); - - cycles = read_cycles(); - NN_matmul_t(actual, a, b); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(a); - NN_delete_tensor(b); - - NN_delete_tensor(golden); - NN_free_tensor_data(actual); - NN_delete_tensor(actual); - } - - { - printf("matmul: "); - - // [[-0.825 0.635 4.617 -0.4834 -1.069 -4.51 4.062 ] [ 1.6455 -3. - Tensor *a = NN_tensor(2, (size_t[]){ 6, 7 }, DTYPE_F16, (uint8_t[]){ 0x9a,0xba,0x14,0x39,0x9e,0x44,0xbc,0xb7,0x47,0xbc,0x83,0xc4,0x10,0x44,0x95,0x3e,0x13,0xc2,0xb4,0x41,0x68,0x44,0xb2,0xbf,0x8,0x43,0x10,0x40,0x36,0xc4,0x99,0x43,0x80,0xbb,0xd0,0x41,0x12,0xc3,0xaf,0xc1,0x3a,0xc4,0x4b,0xc1,0x8c,0x35,0x8,0x41,0xf4,0x42,0x92,0xb8,0x80,0x23,0x64,0xb9,0x80,0xb3,0xac,0xc2,0x31,0x42,0xd7,0x44,0xb0,0xb0,0x80,0x2f,0xf4,0x3e,0x76,0x3b,0x65,0xbc,0x12,0xc1,0x34,0x42,0x2c,0xc2,0xd6,0xba,0x4b,0x41 }); - // [[ 0.1855 3.73 3.297 -2.227 3.266 ] [ 3.203 -1.313 -2.875 -2.295 2. - Tensor *b = NN_tensor(2, (size_t[]){ 7, 5 }, DTYPE_F16, (uint8_t[]){ 0xf0,0x31,0x76,0x43,0x98,0x42,0x74,0xc0,0x88,0x42,0x68,0x42,0x41,0xbd,0xc0,0xc1,0x97,0xc0,0xbf,0x40,0x8e,0x42,0x18,0x40,0xf6,0x40,0x83,0x40,0xa5,0x41,0xe5,0x42,0x4a,0x3e,0x44,0x3f,0x54,0x40,0x7e,0xc4,0x90,0xbe,0xa9,0x3e,0xeb,0xc1,0x7c,0xc2,0x30,0x44,0x72,0xba,0xb7,0x3f,0x70,0x42,0x18,0xb6,0x4c,0xbc,0x46,0x44,0x6a,0xc2,0x24,0x3c,0x44,0x3f,0xd0,0x43 }); - - - // [[ 38.1 -18.73 -1.123 22.31 30.25 ] [ 24.11 19.95 48.34 27.86 -17 - Tensor *golden = NN_tensor(2, (size_t[]){ 6, 5 }, DTYPE_F16, (uint8_t[]){ 0xc3,0x50,0xaf,0xcc,0x7e,0xbc,0x94,0x4d,0x90,0x4f,0x7,0x4e,0xfd,0x4c,0xb,0x52,0xf7,0x4e,0x5f,0xcc,0x2e,0x48,0xee,0xcb,0x3a,0xce,0xd9,0x48,0x16,0xd2,0xb9,0x4c,0x1a,0x3e,0xbf,0x43,0xbb,0x4c,0x58,0xcd,0xeb,0x4d,0xee,0x49,0xf9,0x4e,0x4e,0x4f,0xd1,0xcb,0x6,0x4c,0x55,0xc9,0x59,0x4b,0x25,0x4c,0x94,0xcd }); - Tensor *actual = NN_zeros(2, (size_t[]){ 6, 5 }, DTYPE_F16); - - cycles = read_cycles(); - NN_matmul(actual, a, b); - cycles = read_cycles() - cycles; - printf("%s (%lu cycles)\n", compare_tensor(golden, actual, 1e-3) ? "PASS" : "FAIL", cycles); - - NN_delete_tensor(a); - NN_delete_tensor(b); NN_delete_tensor(golden); NN_free_tensor_data(actual); From 4c2a16534e1979b5300ac531ec2ce324219114d4 Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Thu, 11 Jul 2024 02:10:26 -0700 Subject: [PATCH 20/21] ADD: update Llama example --- example/llama2/README.md | 33 +++++++++++++- example/llama2/main.c | 92 +++++++++++++++++++++++----------------- 2 files changed, 86 insertions(+), 39 deletions(-) diff --git a/example/llama2/README.md b/example/llama2/README.md index 085a2f8..84c0f83 100644 --- a/example/llama2/README.md +++ b/example/llama2/README.md @@ -1 +1,32 @@ -make && spike --isa=rv64gcv_zicntr --varch=vlen:512,elen:32 --misaligned ./llama2 \ No newline at end of file +make && spike --isa=rv64gcv_zicntr --varch=vlen:512,elen:32 --misaligned ./llama2 + + +```bash +wget -P checkpoints/ https://huggingface.co/karpathy/tinyllamas/resolve/main/stories15M.bin +``` + + + + +# Performance Benchmark + +Native impl + +``` +[100%] Built target llama2 +Llama 2: a small transformer model for text generation +forward taking 458394741 cycles +Once +forward taking 458545220 cycles + upon +forward taking 458648904 cycles + a +forward taking 458744673 cycles + time +forward taking 458850691 cycles +, +forward taking 458942021 cycles + there +forward taking 459044968 cycles + was +``` \ No newline at end of file diff --git a/example/llama2/main.c b/example/llama2/main.c index 07b14af..0e48cdd 100644 --- a/example/llama2/main.c +++ b/example/llama2/main.c @@ -13,6 +13,7 @@ // Transformer model #include "nn.h" +#include "rv.h" // load the weight data block from the model.bin file @@ -173,7 +174,7 @@ void read_checkpoint(Config* config, TransformerWeights* weights, // *data = mmap(NULL, *file_size, PROT_READ, MAP_PRIVATE, *fd, 0); // if (*data == MAP_FAILED) { fprintf(stderr, "mmap failed!\n"); exit(EXIT_FAILURE); } - *data = checkpoint_data; + *data = (float *)checkpoint_data; float* weights_ptr = *data + sizeof(Config)/sizeof(float); memory_map_weights(weights, config, weights_ptr, shared_weights); @@ -213,52 +214,50 @@ void rmsnorm(float* o, float* x, float* weight, int size) { } void softmax(float* x, int size) { - // // find max value (for numerical stability) - // float max_val = x[0]; - // for (int i = 1; i < size; i++) { - // if (x[i] > max_val) { - // max_val = x[i]; - // } - // } - // // exp and sum - // float sum = 0.0f; - // for (int i = 0; i < size; i++) { - // x[i] = expf(x[i] - max_val); - // sum += x[i]; - // } - // // normalize - // for (int i = 0; i < size; i++) { - // x[i] /= sum; - // } - Tensor *out = NN_tensor(2, (size_t[]){1, size}, DTYPE_F32, x); - NN_softmax(out, out, 0); + // find max value (for numerical stability) + float max_val = x[0]; + for (int i = 1; i < size; i++) { + if (x[i] > max_val) { + max_val = x[i]; + } + } + // exp and sum + float sum = 0.0f; + for (int i = 0; i < size; i++) { + x[i] = expf(x[i] - max_val); + sum += x[i]; + } + // normalize + for (int i = 0; i < size; i++) { + x[i] /= sum; + } + // Tensor *out = NN_tensor(2, (size_t[]){1, size}, DTYPE_F32, x); + // NN_softmax(out, out, 1); } void matmul(float* xout, float* x, float* w, int n, int d) { // W (d,n) @ x (n,) -> xout (d,) // by far the most amount of time is spent inside this little function - Tensor *out = NN_tensor(2, (size_t[]){d, 1}, DTYPE_F32, xout); - Tensor *a = NN_tensor(2, (size_t[]){d, n}, DTYPE_F32, w); - Tensor *b = NN_tensor(2, (size_t[]){1, n}, DTYPE_F32, x); - - - NN_matmul_t(out, a, b); + + int i; + #pragma omp parallel for private(i) + for (i = 0; i < d; i++) { + float val = 0.0f; + for (int j = 0; j < n; j++) { + val += w[i * n + j] * x[j]; + } + xout[i] = val; + } + // Tensor *out = NN_tensor(2, (size_t[]){d, 1}, DTYPE_F32, xout); + // Tensor *a = NN_tensor(2, (size_t[]){d, n}, DTYPE_F32, w); + // Tensor *b = NN_tensor(2, (size_t[]){1, n}, DTYPE_F32, x); - // int i; - // #pragma omp parallel for private(i) - // for (i = 0; i < d; i++) { - // float val = 0.0f; - // for (int j = 0; j < n; j++) { - // val += w[i * n + j] * x[j]; - // } - // xout[i] = val; - // } + // NN_matmul_t(out, a, b); } float* forward(Transformer* transformer, int token, int pos) { - // a few convenience variables Config* p = &transformer->config; TransformerWeights* w = &transformer->weights; @@ -286,6 +285,13 @@ float* forward(Transformer* transformer, int token, int pos) { s->v = s->value_cache + loff + pos * kv_dim; // qkv matmuls for this position + + // Tensor *tensor_s_q = NN_tensor(2, (size_t[]){dim, 1}, DTYPE_F32, s->q); + // Tensor *tensor_s_xb = NN_tensor(2, (size_t[]){dim, dim}, DTYPE_F32, s->xb); + // Tensor *tensor_w_wq = NN_tensor(2, (size_t[]){1, dim}, DTYPE_F32, w->wq + l*dim*dim); + + // NN_matmul_t(tensor_s_q, tensor_s_xb, tensor_w_wq); + matmul(s->q, s->xb, w->wq + l*dim*dim, dim, dim); matmul(s->k, s->xb, w->wk + l*dim*kv_dim, dim, kv_dim); matmul(s->v, s->xb, w->wv + l*dim*kv_dim, dim, kv_dim); @@ -330,7 +336,10 @@ float* forward(Transformer* transformer, int token, int pos) { } // softmax the scores to get attention weights, from 0..pos inclusively - softmax(att, pos + 1); + // softmax(att, pos + 1); + + Tensor *att_tensor = NN_tensor(2, (size_t[]){1, pos + 1}, DTYPE_F32, att); + NN_softmax(att_tensor, att_tensor, 1); // weighted sum of the values, store back into xb float* xb = s->xb + h * head_size; @@ -747,7 +756,11 @@ int sample(Sampler* sampler, float* logits) { // apply the temperature to the logits for (int q=0; qvocab_size; q++) { logits[q] /= sampler->temperature; } // apply softmax to the logits to get the probabilities for next token - softmax(logits, sampler->vocab_size); + // softmax(logits, sampler->vocab_size); + + Tensor *logits_tensor = NN_tensor(2, (size_t[]){1, sampler->vocab_size}, DTYPE_F32, logits); + NN_softmax(logits_tensor, logits_tensor, 1); + // flip a (float) coin (this is our source of entropy for sampling) float coin = random_f32(&sampler->rng_state); // we sample from this distribution to get the next token @@ -796,7 +809,10 @@ void generate(Transformer *transformer, Tokenizer *tokenizer, Sampler *sampler, while (pos < steps) { // forward the transformer to get logits for the next token + size_t cycles = READ_CSR("mcycle"); float* logits = forward(transformer, token, pos); + cycles = READ_CSR("mcycle") - cycles; + printf("forward taking %d cycles\n", cycles); // advance the state machine if (pos < num_prompt_tokens - 1) { From 5ef4e92fd02b2ae0ce45a3db6d41efbedff6c177 Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Thu, 11 Jul 2024 02:11:09 -0700 Subject: [PATCH 21/21] ADD: ignore llama trained model --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 42b9309..9011ec2 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,7 @@ share/python-wheels/ .installed.cfg *.egg MANIFEST + + +example/llama2/checkpoints/stories15M.bin +